Xây dựng hệ thống sinh mô hình Matlab Simulink tự động (Đồ án tốt nghiệp)

Xây dựng hệ thống sinh mô hình Matlab Simulink tự động. Hướng dẫn chi tiết các bước, công cụ và kỹ thuật để tự động hóa quy trình thiết kế.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2022

58
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

DANH MỤC CÁC BẢNG THUẬT NGỮ VÀ CHỮ VIẾT TẮT

DANH MỤC BẢNG BIỂU

DANH MỤC SƠ ĐỒ, HÌNH ẢNH

LỜI MỞ ĐẦU

1. CHƯƠNG 1: TỔNG QUAN

1.1. Giới thiệu hệ thống nhúng và thiết kế mô hình hệ thống nhúng bằng MATLAB/Simulink

1.1.1. Giới thiệu hệ thống nhúng

1.1.2. Giới thiệu MATLAB/Simulink

1.1.3. Mô hình hóa và mô phỏng hệ thống nhúng bằng MATLAB/Simulink

1.2. Bài toán sinh mô hình MATLAB/Simulink tự động phục vụ cho kiểm thử

1.2.1. Giới thiệu kỹ thuật pairwise testing

1.2.2. Giới thiệu kỹ thuật kiểm thử hộp đen

1.2.3. Giới thiệu kỹ thuật pairwise testing

1.2.4. Giới thiệu và cài đặt công cụ PICT sử dụng trong pairwise testing

1.3. Kết luận chương

2. CHƯƠNG 2: XÂY DỰNG PHƯƠNG PHÁP SINH TỰ ĐỘNG MÔ HÌNH MATLAB/SIMULINK

2.1. Sinh tự động mô hình MATLAB/Simulink bằng phương pháp tổ hợp

2.1.1. Ý tưởng thực hiện

2.1.2. Các bước thực hiện sinh tự động mô hình MATLAB/Simulink bằng phương pháp tổ hợp

2.2. Sinh mô hình MATLAB/Simulink sử dụng kỹ thuật pairwise testing

2.2.1. Các bước sinh ca kiểm thử sử dụng kỹ thuật pairwise testing bằng PICT

2.2.2. Các bước sinh mô hình MATLAB/Simulink sử dụng kỹ thuật pairwise testing

2.3. Tổng kết chương

3. CHƯƠNG 3: XÂY DỰNG HỆ THỐNG VÀ THỬ NGHIỆM

3.1. Xây dựng hệ thống

3.1.1. Công cụ sử dụng

3.1.2. Xây dựng hệ thống

3.2. Thử nghiệm hệ thống

3.3. Tổng kết chương

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Khám phá tự động sinh mô hình Matlab Simulink là gì

Tự động sinh mô hình Matlab Simulink là một kỹ thuật tiên tiến trong lĩnh vực Model-Based Design (MBD), cho phép tạo ra hàng loạt các mô hình con từ một mô hình gốc và một tập hợp các tham số đầu vào. Thay vì xây dựng thủ công từng trường hợp kiểm thử, quy trình này tự động hóa việc tạo ra các biến thể mô hình, mỗi biến thể đại diện cho một ca kiểm thử cụ thể. Mục tiêu chính là đẩy nhanh quá trình xác minh và kiểm thử mô hình, đặc biệt trong các dự án phát triển hệ thống nhúng phức tạp. Các hệ thống này thường có vô số tổ hợp đầu vào, và việc kiểm thử toàn diện bằng tay là không khả thi. Theo nghiên cứu của Lê Thị Ngân (2022) tại Học viện Công nghệ Bưu chính Viễn thông, việc tự động hóa giúp "giảm bớt công sức, thời gian" và tăng cường độ bao phủ của bộ kiểm thử. Quá trình này bắt đầu bằng việc phân tích mô hình Simulink gốc để xác định các khối (blocks) và các tham số có thể thay đổi. Sau đó, các giá trị khả dĩ của những tham số này được định nghĩa trong một tệp cấu hình. Hệ thống sẽ tự động lặp qua các tổ hợp tham số này, sử dụng các lệnh của Matlab để sửa đổi mô hình gốc và lưu lại thành các mô hình mới. Quá trình này là nền tảng cho các phương pháp kiểm thử hiện đại như MIL (Model-in-the-Loop), SIL (Software-in-the-Loop), và PIL (Processor-in-the-Loop), giúp phát hiện lỗi sớm trong chu trình phát triển.

1.1. Hiểu về phương pháp Model Based Design MBD hiện đại

Model-Based Design (MBD) là một phương pháp luận phát triển hệ thống mà ở đó, mô hình là trung tâm của toàn bộ quy trình, từ khâu thiết kế, mô phỏng hệ thống, đến sinh mã và kiểm thử. Thay vì dựa trên các tài liệu văn bản và mã nguồn rời rạc, MBD sử dụng một mô hình đồ họa duy nhất (thường là trong Matlab Simulink) để biểu diễn hoạt động của hệ thống. Mô hình này không chỉ dùng để mô phỏng mà còn có thể được sử dụng để sinh mã tự động Matlab cho các nền tảng phần cứng khác nhau thông qua các công cụ như Simulink CoderEmbedded Coder. Cách tiếp cận này giúp đảm bảo tính nhất quán giữa thiết kế và sản phẩm cuối cùng, giảm thiểu lỗi do diễn giải sai yêu cầu và cho phép phát hiện các vấn đề thiết kế ngay từ giai đoạn đầu thông qua mô phỏng.

1.2. Vai trò của mô phỏng hệ thống trong phát triển nhúng

Trong phát triển hệ thống nhúng, mô phỏng hệ thống đóng vai trò cực kỳ quan trọng. Các hệ thống nhúng thường tương tác trực tiếp với thế giới vật lý và các lỗi phần mềm có thể gây ra hậu quả nghiêm trọng. Mô phỏng cho phép các kỹ sư kiểm tra thuật toán điều khiển và logic hệ thống trong một môi trường ảo an toàn trước khi triển khai lên phần cứng thật. Việc sử dụng Matlab/Simulink để mô hình hóa và mô phỏng cho phép "quan sát, phân tích hệ thống trước khi thực hiện trên hệ thống thật và là công cụ hữu dụng cho việc thiết kế, nghiên cứu với chi phí thấp, dễ dàng thay đổi" (Lê Thị Ngân, 2022). Điều này không chỉ tiết kiệm chi phí chế tạo mẫu mà còn rút ngắn đáng kể chu kỳ phát triển sản phẩm.

II. Thách thức khi tạo mô hình Matlab Simulink thủ công

Việc tạo mô hình Matlab Simulink thủ công cho mục đích kiểm thử đối mặt với nhiều thách thức lớn, đặc biệt là với các hệ thống phức tạp. Trở ngại lớn nhất là "bùng nổ tổ hợp" (combinatorial explosion), khi số lượng ca kiểm thử tăng theo cấp số nhân với số lượng tham số và giá trị của chúng. Một hệ thống chỉ với vài đầu vào, mỗi đầu vào có một vài giá trị, có thể dễ dàng tạo ra hàng ngàn, thậm chí hàng triệu tổ hợp cần kiểm tra. Việc tạo thủ công từng mô hình cho mỗi tổ hợp này không chỉ tốn thời gian mà còn dễ gây ra sai sót do con người. Đồ án của Lê Thị Ngân (2022) nhấn mạnh rằng "việc tạo mô hình thủ công với một hệ thống có yêu cầu đầu vào/ra lớn sẽ tương đối phức tạp, tốn thời gian, công sức". Hơn nữa, việc quản lý và theo dõi hàng trăm mô hình được tạo thủ công là một công việc nặng nề. Quá trình xác minh và kiểm thử mô hình trở nên kém hiệu quả, lãng phí tài nguyên và có thể bỏ sót các trường hợp lỗi quan trọng. Những khó khăn này thúc đẩy nhu cầu cấp thiết về một giải pháp tự động sinh mô hình Matlab Simulink để tối ưu hóa quy trình kiểm thử.

2.1. Đối mặt với bùng nổ tổ hợp trong kiểm thử hệ thống

Bùng nổ tổ hợp là hiện tượng khi số lượng các kịch bản cần kiểm thử tăng vọt một cách không thể kiểm soát khi thêm các tham số mới. Ví dụ, một hệ thống có 4 tham số, mỗi tham số có 3 giá trị, sẽ có 3^4 = 81 trường hợp cần kiểm thử. Nếu thêm một tham số nữa với 3 giá trị, con số này tăng lên 243. Trong các hệ thống nhúng thực tế như điều khiển động cơ ô tô hay hệ thống lái tự động, số lượng tham số và giá trị còn lớn hơn nhiều. Kiểm thử toàn bộ các tổ hợp (exhaustive testing) là không thực tế. Đây là lúc các kỹ thuật kiểm thử thông minh như Pairwise Testing trở nên hữu ích, giúp giảm đáng kể số lượng ca kiểm thử mà vẫn đảm bảo độ bao phủ lỗi cao.

2.2. Quy trình xác minh và kiểm thử mô hình tốn kém

Quy trình xác minh và kiểm thử mô hình truyền thống đòi hỏi các kỹ sư phải tự thiết kế các ca kiểm thử, tạo các mô hình tương ứng, chạy mô phỏng, và phân tích kết quả. Mỗi bước trong quy trình này đều tiêu tốn thời gian và nguồn lực đáng kể. Việc tự động hóa, đặc biệt là tự động sinh mô hình Matlab Simulink, giúp giải quyết nút thắt cổ chai này. Bằng cách tự động tạo ra một bộ mô hình kiểm thử có độ bao phủ cao, các kỹ sư có thể tập trung vào việc phân tích các kết quả bất thường và gỡ lỗi, thay vì sa lầy vào công việc lặp đi lặp lại. Điều này không chỉ tăng hiệu suất mà còn nâng cao chất lượng tổng thể của sản phẩm phần mềm nhúng.

III. Phương pháp sinh mô hình Matlab Simulink bằng tổ hợp

Phương pháp sinh mô hình bằng tổ hợp là cách tiếp cận cơ bản và trực tiếp nhất để tự động hóa. Ý tưởng cốt lõi là tạo ra tất cả các kết hợp có thể có từ các giá trị của những tham số đã được định nghĩa. Quá trình bắt đầu bằng việc phân tích mô hình Simulink gốc để xác định các khối có tham số cần thay đổi. Các tham số này và dải giá trị của chúng được lưu trong một tệp cấu hình, thường là định dạng JSON để dễ dàng xử lý. Hệ thống tự động sẽ đọc tệp JSON này, sau đó sử dụng các vòng lặp lồng nhau để duyệt qua mọi tổ hợp giá trị. Với mỗi tổ hợp, hệ thống sử dụng các lệnh Matlab như getSimulinkHandle để truy cập vào từng khối trong mô hình gốc và set_param để gán giá trị tham số mới. Sau khi cập nhật tất cả các tham số cho một tổ hợp, mô hình mới sẽ được lưu lại bằng lệnh save_system với một tên định danh duy nhất. Mặc dù phương pháp này đảm bảo độ bao phủ 100% các tổ hợp, nó lại chính là nguyên nhân gây ra vấn đề bùng nổ tổ hợp đã đề cập. Tuy nhiên, đây là nền tảng quan trọng để phát triển các phương pháp thông minh hơn như Pairwise testing, và rất hữu ích cho các hệ thống có số lượng tham số nhỏ. Việc tạo khối Simulink từ code và điều khiển chúng bằng script là kỹ năng cốt lõi của phương pháp này.

3.1. Quy trình phân tích mô hình gốc và tệp tham số JSON

Bước đầu tiên là phân tích mô hình gốc để xác định các target_blocks - những khối có tham số cần thay đổi cho việc kiểm thử. Các thông tin quan trọng bao gồm đường dẫn đầy đủ đến khối (full_path), tên tham số (parameter_name), và danh sách các giá trị (values). Theo cấu trúc được đề xuất trong tài liệu nghiên cứu, một tệp JSON được tạo ra để lưu trữ thông tin này một cách có hệ thống. Tệp JSON này đóng vai trò là đầu vào cho hệ thống sinh mô hình, cho phép định nghĩa các ca kiểm thử một cách linh hoạt mà không cần phải chỉnh sửa mã nguồn của công cụ tự động hóa.

3.2. Lệnh Matlab chính để tự động hóa tạo khối Simulink

Để thực hiện việc sinh mô hình, một số lệnh Matlab cốt lõi được sử dụng. filereadjsondecode được dùng để đọc và phân tích tệp cấu hình JSON. Vòng lặp for được sử dụng để duyệt qua tất cả các tổ hợp giá trị. Bên trong vòng lặp, lệnh set_param(block_path, param_name, param_value) là công cụ chính để thay đổi giá trị của các khối trong mô hình đang mở. Cuối cùng, save_system(model_handle, new_model_name) được gọi để lưu lại mô hình đã được sửa đổi thành một tệp .slx mới. Việc nắm vững các lệnh này là chìa khóa để triển khai thành công hệ thống tự động sinh mô hình Matlab Simulink.

IV. Hướng dẫn sinh mô hình Simulink với Pairwise Testing

Để khắc phục nhược điểm của phương pháp tổ hợp, kỹ thuật Pairwise Testing (kiểm thử theo cặp) được áp dụng. Kỹ thuật này dựa trên một quan sát thực nghiệm rằng phần lớn các lỗi phần mềm (khoảng 70%) là do sự tương tác giữa hai tham số, chứ không phải ba hay nhiều hơn. Thay vì kiểm thử tất cả các tổ hợp, Pairwise Testing chỉ tạo ra một tập hợp con các ca kiểm thử sao cho mọi cặp giá trị có thể có của bất kỳ hai tham số nào cũng xuất hiện ít nhất một lần. Điều này giúp giảm đáng kể số lượng mô hình cần sinh ra mà vẫn duy trì khả năng phát hiện lỗi cao. Trong đồ án của Lê Thị Ngân (2022), công cụ PICT (Pairwise Independent Combinatorial Testing) của Microsoft được sử dụng để thực hiện việc này. Quy trình bao gồm: tạo một tệp văn bản đầu vào cho PICT định nghĩa các tham số và giá trị, chạy PICT để sinh ra các tổ hợp tối ưu, sau đó đọc kết quả đầu ra và sử dụng nó để tự động sinh mô hình Matlab Simulink tương ứng. Cách tiếp cận này giúp tối ưu hóa mô hình Simulink và quy trình kiểm thử, tiết kiệm thời gian và tài nguyên một cách hiệu quả. Đây là một phương pháp mô hình hóa thuật toán kiểm thử thông minh.

4.1. Giới thiệu công cụ PICT trong kiểm thử theo cặp

PICT là một công cụ dòng lệnh miễn phí của Microsoft, được thiết kế để tạo ra các tập hợp ca kiểm thử nhỏ gọn dựa trên kỹ thuật Pairwise Testing. Người dùng chỉ cần cung cấp một tệp định nghĩa mô hình đơn giản, trong đó liệt kê các tham số và giá trị của chúng. PICT sẽ tự động tính toán và tạo ra một bảng các trường hợp kiểm thử tối ưu. Ví dụ, thay vì 72 ca kiểm thử cho phương pháp tổ hợp trong ví dụ của đồ án, PICT chỉ tạo ra 12 ca. Sự đơn giản và hiệu quả đã khiến PICT trở thành một công cụ phổ biến trong ngành công nghiệp phần mềm để kiểm thử cấu hình và tham số.

4.2. Các bước tạo ca kiểm thử tự động từ file tham số

Quy trình bắt đầu bằng việc chuyển đổi tệp cấu hình JSON thành định dạng tệp đầu vào mà PICT có thể hiểu. Sau đó, lệnh dos('pict input.txt > output.txt') được thực thi từ Matlab để gọi PICT và lưu kết quả vào một tệp đầu ra. Tệp đầu ra này chứa một bảng các tổ hợp giá trị. Tiếp theo, một script Matlab sẽ đọc tệp kết quả này, thường là bằng cách chuyển đổi nó sang định dạng Excel (.xlsx) để dễ xử lý. Cuối cùng, hệ thống sẽ lặp qua từng hàng của bảng (mỗi hàng là một ca kiểm thử) và thực hiện các bước gán tham số và lưu mô hình mới, tương tự như phương pháp tổ hợp.

V. Ứng dụng thực tiễn tự động sinh mô hình Matlab Simulink

Ứng dụng thực tiễn của hệ thống tự động sinh mô hình Matlab Simulink được minh họa rõ nét qua việc xây dựng một công cụ hoàn chỉnh với giao diện người dùng đồ họa (GUI) trong Matlab. Công cụ này cho phép người dùng tải lên mô hình gốc và tệp thuộc tính (JSON), sau đó chọn phương pháp sinh mô hình (tổ hợp hoặc Pairwise). Kết quả, là danh sách các mô hình được tạo ra, sẽ hiển thị trực tiếp trên giao diện. Một case study cụ thể được trình bày trong đồ án cho thấy sự khác biệt rõ rệt về hiệu quả. Với một mô hình mẫu có 4 tham số với số lượng giá trị lần lượt là 3, 3, 4, và 2, phương pháp tổ hợp tạo ra 72 mô hình. Trong khi đó, phương pháp Pairwise Testing chỉ tạo ra 12 mô hình. Việc giảm 83% số lượng ca kiểm thử mà vẫn đảm bảo kiểm tra tất cả các tương tác cặp đôi là một minh chứng mạnh mẽ cho tính hiệu quả của phương pháp này. Ứng dụng này đặc biệt giá trị trong việc tích hợp code C vào Simulink thông qua các khối S-Function hoặc Legacy Code Tool, nơi việc kiểm thử các giao diện và tham số là rất quan trọng để đảm bảo tính đúng đắn của hệ thống.

5.1. Xây dựng hệ thống sinh mô hình tự động Một Case Study

Hệ thống được xây dựng sử dụng Matlab GUI, cung cấp một giao diện trực quan cho người dùng cuối. Các chức năng chính bao gồm: nút tải tệp cho mô hình gốc (.slx) và tệp tham số (.json), các nút radio để lựa chọn giữa phương pháp "Tổ hợp" và "Pairwise", một nút "Sinh mô hình" để bắt đầu quá trình, và một bảng để hiển thị danh sách các mô hình đã được tạo thành công. Việc xây dựng hệ thống này cho thấy khả năng tích hợp mạnh mẽ của Matlab, từ xử lý tệp, thực thi các công cụ bên ngoài (như PICT), điều khiển mô hình Simulink, cho đến tạo giao diện người dùng hoàn chỉnh.

5.2. So sánh hiệu quả giữa phương pháp tổ hợp và Pairwise

So sánh trực tiếp cho thấy ưu thế vượt trội của Pairwise Testing về mặt hiệu quả. Phương pháp tổ hợp, mặc dù toàn diện, nhưng nhanh chóng trở nên không khả thi khi độ phức tạp của hệ thống tăng lên. Nó tạo ra nhiều ca kiểm thử dư thừa, kiểm tra lặp lại cùng một tương tác lỗi. Ngược lại, Pairwise Testing tập trung vào các tương tác có khả năng gây lỗi cao nhất (tương tác cặp đôi), giúp tối ưu hóa nỗ lực kiểm thử. Sự lựa chọn giữa hai phương pháp phụ thuộc vào yêu cầu của dự án: nếu hệ thống nhỏ và yêu cầu độ tin cậy tuyệt đối, tổ hợp có thể được xem xét; nhưng đối với hầu hết các hệ thống thực tế, Pairwise là lựa chọn thông minh và kinh tế hơn.

VI. Tương lai của tự động hóa trong kiểm thử hệ thống nhúng

Tương lai của kiểm thử hệ thống nhúng nằm ở việc tích hợp sâu hơn các quy trình tự động hóa vào toàn bộ chu trình phát triển. Việc tự động sinh mô hình Matlab Simulink chỉ là bước khởi đầu. Các mô hình được tạo ra này sẽ là đầu vào cho các bước kiểm thử tự động tiếp theo như MIL (Model-in-the-Loop), SIL (Software-in-the-Loop)PIL (Processor-in-the-Loop). Trong đó, mô hình được kiểm thử trong môi trường mô phỏng (MIL), mã nguồn sinh ra từ mô hình được kiểm thử trên máy tính chủ (SIL), và cuối cùng mã được kiểm thử trên bộ xử lý mục tiêu (PIL). Toàn bộ quy trình này có thể được tự động hóa, tạo thành một chu trình Tích hợp liên tục/Kiểm thử liên tục (CI/CT) cho các hệ thống nhúng. Các công cụ như Simulink CoderEmbedded Coder đóng vai trò trung tâm trong việc sinh mã tự động Matlab, tạo ra mã C/C++ hoặc HDL (với HDL Coder) hiệu quả và đáng tin cậy trực tiếp từ mô hình. Sự kết hợp giữa Model-Based Design, sinh mô hình tự động và sinh mã tự động sẽ định hình lại cách các hệ thống nhúng phức tạp được thiết kế, kiểm thử và triển khai trong tương lai.

6.1. Tích hợp MIL SIL PIL vào quy trình kiểm thử tự động

Tích hợp MIL, SIL, PIL tạo thành một quy trình xác minh toàn diện. MIL xác minh thuật toán ở cấp độ mô hình. SIL xác minh mã nguồn được sinh ra có hoạt động tương đương với mô hình hay không. PIL xác minh rằng mã thực thi đúng trên phần cứng mục tiêu. Bằng cách tự động hóa việc sinh mô hình cho từng giai đoạn, các nhóm phát triển có thể chạy hồi quy một bộ kiểm thử lớn sau mỗi lần thay đổi, đảm bảo rằng các tính năng mới không phá vỡ các chức năng hiện có và hệ thống luôn ở trạng thái ổn định.

6.2. Lợi ích của sinh mã tự động Matlab với Simulink Coder

Simulink Coder (trước đây là Real-Time Workshop) và Embedded Coder là những công cụ mạnh mẽ cho phép chuyển đổi trực tiếp các mô hình Simulink thành mã nguồn C, C++, hoặc các ngôn ngữ khác. Lợi ích chính của sinh mã tự động Matlab là loại bỏ các lỗi phát sinh trong quá trình viết mã thủ công, đảm bảo sự nhất quán 100% giữa mô hình đã được kiểm thử và mã được triển khai. Điều này không chỉ tăng tốc độ phát triển mà còn cải thiện đáng kể độ tin cậy và chất lượng của phần mềm nhúng, đặc biệt trong các ngành công nghiệp đòi hỏi tiêu chuẩn an toàn cao như hàng không và ô tô.

22/09/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN 1. Giới thiệu hệ thống nhúng và thiết kế mô hình hệ thống nhúng bằng MATLAB/Simulink 1. Giới thiệu hệ thống nhúng Hệ thống nhúng (embedded system) [3] là một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hóa điều khiển, quan trắc và truyền tin.

Đặc điểm của hệ thống nhúng là hoạt động ổn định và có tính năng tự động hóa cao. Hệ thống nhúng thường có một số đặc điểm chung như: • Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ nhất định chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng. Một số hệ thống yêu cầu ràng buộc về tính hoạt động thời gian thực để đảm bảo độ an toàn và tính ứng dụng. Một số hệ thống không yêu cầu ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất.

• Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thống phức tạp nằm trong thiết bị mà nó điều khiển. • Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được lưu trữ trong các chip bộ nhớ ROM hoặc bộ nhớ flash chứ không phải là trong một ổ đĩa. Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, dung lượng bộ nhớ thấp. Hệ thống nhúng rất đa dạng, phong phú về chủng loại (đồng hồ kỹ thuật số, máy chơi nhạc MP3, đèn giao thông,.

Hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết bị ngoại vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn. Lê Thị Ngân-D17HTTT1 13 ĐỒ ÁN TỐT NGHIỆP Đặc điểm của các thành phần trong hệ thống nhúng: • Giao diện: Các hệ thống nhúng có thể không có giao diện (đổi với những hệ thống đơn nhiệm) hoặc có đầy đủ giao diện giao tiếp với người dùng tương tự như các hệ điều hành trong các thiết bị để bàn. Đối với các hệ thống đơn giản, thiết bị nhúng sử dụng nút bấm, đèn LED và hiển thị cỡ chữ nhỏ hoặc chỉ hiển thị số, thường đi kèm với một hệ thống menu đơn giản. Trong một hệ thống phức tạp hơn, một màn hình đồ họa, cảm ứng hoặc có các nút bấm ở lề màn hình cho phép thực hiện các thao tác phức tạp mà tối thiểu hóa được khoảng không gian cần sử dụng, ý nghĩa của các nút bấm có thể thay đổi theo màn hình và các lựa chọn.

Một lựa chọn mới khi thiết kế hệ thống nhúng là sử dụng một giao diện web thông qua việc kết nối mạng. Điều này có thể giúp tránh được chi phí cho những màn hình phức tạp nhưng đồng thời vẫn cung cấp khả năng hiển thị và nhập liệu phức tạp thông qua một máy tính khác. Điều này hết sức hữu dụng với các thiết bị điều khiển từ xa, cài đặt vĩnh viễn (router). • Kiến trúc CPU: Các bộ xử lý trong hệ thống nhúng có thể được chia thành hai loại: vi xử lý và vi điều khiển.

• Thiết bị ngoại vi: Hệ thống nhúng giao tiếp với bên ngoài thông qua các thiết bị ngoại vi (Serial Communication Interfaces (SCI), Universal Serial Bus (USB), …) • Công cụ phát triển: phần mềm hệ thống nhúng được phát triển nhờ sử dụng các trình biên dịch (compilers), chương trình dịch hợp ngữ (assembler) hoặc các công cụ gỡ lỗi (debuggers). • Độ tin cậy: Các hệ thống nhúng thường được kỳ vọng là sẽ chạy trong thời gian dài liên tục mà không bị lỗi hoặc có thể khôi phục hệ thống khi gặp lỗi. Vì vậy các phần mềm hệ thống nhúng được phát triển và kiểm thử một cách cẩn thận hơn phần mềm cho máy tính cá nhân. Ngoài ra, các thiết bị rời không đáng tin cậy như ổ đĩa, công tắc hoặc nút bấm thường bị hạn chế sử dụng.

Việc khôi phục hệ thống khi gặp lỗi có thể được thực hiện bằng cách sử dụng các kỹ thuật như watchdog timer - nếu phần mềm không đều đặn nhận được các tín hiệu watchdog định kỳ thì hệ thống sẽ bị khởi động lại. Lê Thị Ngân-D17HTTT1 14 ĐỒ ÁN TỐT NGHIỆP Một số vấn đề về độ tin cậy: • Hệ thống không thể ngừng để sửa chữa một cách an toàn mà sẽ chuyển sang sử dụng các hệ thống con dự trữ hoặc các phần mềm cung cấp một phần chức năng (hệ thống dây cáp dưới đáy biển). • Hệ thống phải được chạy liên tục vì tính an toàn, ví dụ như các thiết bị dẫn đường máy bay, thiết bị kiểm soát độ an toàn trong các nhà máy hóa chất,. Giải pháp đưa ra là backup hệ thống.

• Nếu hệ thống ngừng hoạt động sẽ gây tổn thất rất nhiều tiền. Ví dụ như các dịch vụ bán tự động, hệ thống chuyển tiền,. Xuất phát từ những thực tiễn trên cho thấy việc mô phỏng, kiểm thử hệ thống nhúng là vô cùng quan trọng để giảm thiểu rủi ro, sai sót trong quá trình sử dụng. Giới thiệu MATLAB/Simulink 1.

MATLAB MATLAB [2] là viết tắt từ “Matrix Laboratory” - thư viện về ma trận. MATLAB là một ngôn ngữ lập trình bậc cao, là phần mềm cung cấp môi trường tính toán kỹ thuật số và lập trình, do công ty MathWorks thiết kế. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với các chương trình máy tính được viết bằng nhiều ngôn ngữ lập trình khác. Dữ liệu cùng với các thư viện có sẵn, MATLAB cho phép: • Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường.

• Lập trình tạo ra những ứng dụng mới • Mô phỏng các mô hình thực tế • Phân tích, khảo sát và hiển thị dữ liệu • Phát triển và giao tiếp với một số phần mềm khác như C, Fortran. Lê Thị Ngân-D17HTTT1 15 ĐỒ ÁN TỐT NGHIỆP 1. Simulink Simulink [8] là một phần mềm mở rộng của MATLAB dùng để mô hình hóa, mô phỏng và phân tích một hệ thống động. Thông thường dùng để thiết kế hệ thống điều khiển, thiết kế DPS, hệ thống thông tin và các ứng dụng mô phỏng khác.

Simulink là thuật ngữ mô phỏng được ghép bởi Simulation và Link. Simulink cho phép mô tả hệ thống tuyến tính, hệ phi tuyến, các mô hình trong miền thời gian liên tục, hay gián đoạn hoặc một hệ gồm cả liên tục và gián đoạn. Để mô hình hóa, Simulink cung cấp một giao diện đồ họa để sử dụng và xây dựng mô hình sử dụng thao tác nhấn và kéo chuột. Với giao diện đồ họa ta có thể xây mô hình và khảo sát mô hình một cách trực quan hơn.

Simulink được sử dụng phổ biến như một công cụ tạo mẫu hoặc thiết kế hệ thống ở mức cao trong nhiều linh vực như hệ thống máy bay, điều khiển động cơ ô tô, … Mô hình Simulink gồm 2 yếu tố chính là khối và đường. Khối là các đơn vị chức năng được sử dụng để tạo, điều khiển và xuất tín hiệu. Các khối được kết nối với nhau bởi các đường, một khối có thể là một khối cha bao gồm các khối và đường khác. Các khối được lấy từ thư viện khối có sẵn trong thư viện Simulink.

Từ các khối kết nối với nhau bằng các đường tín hiệu để tạo thành một mô hình Simulink và dựa trên đó để có thể mô phỏng, phân tích trước khi xây dựng một hệ thống thật. Vì vậy, Simulink đang ngày càng đóng vai trò quan trọng trong việc xây dựng, phân tích thiết kế hệ thống nhúng. Mô hình hóa và mô phỏng hệ thống nhúng bằng MATLAB/Simulink 1. Mô hình hóa và mô phỏng Mô hình(model) là một sơ đồ phản ánh đối tượng, con người dùng sơ đồ đó để nghiên cứu, thực nghiệm nhằm tìm ra quy luật của hoạt động của đối tượng.

Mô hình hóa (modeling) là thay thế đối tượng gốc bằng một mô hình nhằm thu nhận các thông tin quan trọng về đối tượng bằng cách tiến hành thực nghiệm trên mô hình. Lý thuyết xây dựng mô hình và nghiên cứu mô hình để hiểu biết về đối tượng gốc gọi là lý thuyết mô hình hóa. Lê Thị Ngân-D17HTTT1 16 ĐỒ ÁN TỐT NGHIỆP Mô phỏng (Simulation) là phương pháp mô hình hóa dựa trên việc xây dựng mô hình số (Numerical model) và dùng phương pháp số (Numerical method) để tìm các lời giải. Mô hình hóa và mô phỏng là cho phép xây dựng mô hình của hệ vật lý và thực hiện thực nghiệm trên mô hình đó.

MATLAB/Simulink là công cụ hữu hiệu để biểu diễn mô hình toán của hệ trên máy tính số và cho phép phân tích nó. Mô hình hóa và mô phỏng được sử dụng khi hệ vật lý không tồn tại, tốn thời gian hoặc chi phí để xây dựng. Đồng thời cũng cho phép quan sát, phân tích hệ thống trước khi thực hiện trên hệ thống thật và là công cụ hữu dụng cho việc thiết kế, nghiên cứu với chi phí thấp, dễ dàng thay đổi. Thiết kế mô hình hệ thống nhúng bằng MATLAB/Simulink Mô hình hệ thống nhúng MATLAB/Simulink được tạo bởi nhiều khối như: inport(vào), outport (ra), mathematical operator (phép toán), logical/relational operator (logic/quan hệ), multiport switch, delay,.

Các block liên kết với nhau bằng lines, truyền dữ liệu Boolean, integer, floating/fixed/point giữa chúng. Mỗi khối thực hiện một vài chức năng trên các đầu vào của nó và xuất ra kết quả. Đầu ra của các khối là đầu vào cho khối khác (được biểu diễn bằng các đường nối các cổng vào/ra tương ứng). Các mô hình có thể được phân cấp.

Mỗi khối có thể là một hệ con bao gồm các khối và đường khác. Mô hình thiết kế bằng MATLAB/Simulink Lê Thị Ngân-D17HTTT1 17 ĐỒ ÁN TỐT NGHIỆP 1. Bài toán sinh mô hình MATLAB/Simulink tự động phục vụ cho kiểm thử Sinh dữ liệu kiểm thử để kiểm tra là một bước quan trọng đối với bất kỳ hệ thống nào. Trong hệ thống nhúng, đối với các hệ thống lớn yêu cầu tổ hợp đầu vào, việc sinh mô hình MATLAB/Simulink thủ công gặp nhiều khó khăn, tiêu tốn nhiều thời gian và công sức.

Vì vậy việc sinh mô hình MATLAB/Simulink tự động giúp giảm đáng kể thời gian, công sức, đồng thời giúp tăng hiệu quả kiểm thử.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ