intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài 1: Tổng quan về hệ điều khiển

Chia sẻ: Hao Quang Halo | Ngày: | Loại File: PDF | Số trang:0

228
lượt xem
64
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tổng quan về hệ tin học thời gian thực: hệ tin học thời gian thực nhận các thông tin về trạng thái của quá trình bên ngoài, xử lý các dữ liệu, và tuỳ thuộc vào kết quả mà đưa ra "quyết định" tác động đến môi trường bên ngoài trong điều kiện các ràng buộc nghiêm ngặt về thời gian bảo đảm trạng thái ổn định của quá trình.

Chủ đề:
Lưu

Nội dung Text: Bài 1: Tổng quan về hệ điều khiển

  1. Các hệ thời gian thực – Giới thiệu Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 1 Tổng quan về hệ tin học thời gian thực (1/5) - Hệ tin học thời gian thực nhận các thông tin về trạng thái của quá trình bên ngoài, xử lý các dữ liệu, và tùy thuộc vào kết quả mà đưa ra "quyết định" tác động đến môi trường bên ngoài trong điều kiện các ràng buộc nghiêm ngặt về thời gian nhằm bảo đảm trạng thái ổn định của quá trình. - Một chương trình thời gian thực không có các đặc tính thường thấy ở các chương trình tuần tự: ⇒ không có sự ràng buộc nào giữa kết quả tính toán với thời gian tính toán, ⇒ có khả năng tái sử dụng (comportement reproductible). Hệ thời gian thực là hệ môi trường song song Ngô Khánh Hiếu 1
  2. Các hệ thời gian thực – Giới thiệu 2 Tổng quan về hệ tin học thời gian thực (2/5) - Khái niệm "song song" (Parallélisme) trong hệ tin học có thể được hiểu đơn giản theo các cách sau: (1) Hệ tin học hình thành từ nhiều máy tính (2) Hệ tin học chỉ gồm một máy tính nhưng có nhiều vi xử lý (processeurs) (3) Hệ tin học chỉ gồm một máy tính với một vi xử lý (mono-processeur) nhưng có khả năng quản lý thời gian tính toán theo "khoảng thời gian" xác định (tranches de temps). Khái niệm "song song" nếu được hiểu theo nghĩa này còn được gọi là "pseudo-parallélisme". - Một vòng lặp: ứng mỗi lần lặp sẽ thực hiện việc tính toán một ít của "tâche 1", một ít của "tâche 2",… và cứ thế cho đến khi các "tâches" kết thúc việc tính toán. - Chia một chương trình tin học thời gian thực làm hai phần: phần I liên quan đến việc thiết kế (conception) các "tâches" cho chương trình; phần II giải quyết vần đề "parallélisme" hay "pseudo-parallélisme" giữa các "tâches". Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 3 Tổng quan về hệ tin học thời gian thực (3/5) - Phân loại các hệ thống "song song" (Système parallèle): (1) Dạng dãy tuyến tính: hệ thống song song "pipeline" (dạng cấu trúc của "processeur" hay "microprocesseur" cho phép thực hiện cùng một lúc nhiều lệnh (instructions). (2) SIMD (Single Instruction Multiple Data): cùng thực hiện chung một lệnh (instruction) nhưng mỗi một "ouvrier" sẽ tính các phần khác nhau hay các dữ liệu khác nhau. (3) MIMD (Multiple Instruction Multiple Data): cho phép cùng một lúc thực hiện nhiều "tâches" khác nhau (lưu ý: một "tâche" có thể gọi một hay nhiều lệnh). (4) SPMD (Single Program Multiple Data): là dạng đặc biệt của MIMD, ở mỗi thời điểm trong quá trình thực hiện một chương trình (program), một "tâche" không thể được tính ở hai hay nhiều nơi khác nhau (lưu ý: một chuơng trình là tập hợp của một hay nhiều "tâche"). Ngô Khánh Hiếu 2
  3. Các hệ thời gian thực – Giới thiệu 4 Tổng quan về hệ tin học thời gian thực (4/5) - Phân loại tổng quát các hệ thống tin học (Systèmes informatiques): (1) Các hệ biến đổi (Systèmes transformationnels): là các hệ sử dụng các dữ liệu đầu vào (input) được cung cấp lúc khai báo ban đầu, sau đó xử lý các dữ liệu đó để xuất ra các dữ liệu đầu ra (output) mà không có bất cứ ràng buộc nào về thời gian. (2) Các hệ tương tác (Systèmes interactifs): là hệ được hiểu theo nghĩa dữ liệu được tạo ra bởi sự tác động với "môi trường" bằng nhiều hính thức khác nhau như: bàn phím, file dữ liệu, mạng, chuột,... Đặc tính về thời gian trong trường hợp này không có ảnh hưởng nào khác ngoài cảm giác không thoải mái khi làm việc (aspect confort de travail) hay chất lượng phục vụ (qualité de service). (3) Các hệ điều khiển hay phản ứng (Systèmes de contrôle-commande ou réactifs): là các hệ có mối quan hệ với môi trường thực tế thông qua các dữ liệu đầu vào, tuy nhiên khác với hệ tương tác, hệ điều khiển hay phản ứng có sự ràng buộc bắt buộc về thời gian dưới các hình thức như: thời gian phản ứng (temps de réaction), hạn thời gian phản hoàn thành (temps d’une échéance à respecter),... Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 5 Tổng quan về hệ tin học thời gian thực (5/5) Ngô Khánh Hiếu 3
  4. Các hệ thời gian thực – Giới thiệu 6 Phân loại hệ điều khiển (Système de contrôle-commande ou réactif) (1/2) Từ định nghĩa hệ điều khiển ta có thể phân loại hệ điều khiển dựa theo các yêu cầu (specifications) riêng của hệ như sau: (1) Các hệ thời gian thực (Systèmes temps réel): là hệ điều khiển mà yêu cầu ứng xử "đúng/chính xác" (exactitude) của các ứng dụng của nó không những chỉ phụ thuộc vào kết quả (résultat), mà còn phụ thuộc vào thời gian mà kết quả đó được tạo ra. Và nếu các ràng buộc về thời gian (contraintes temporelles) của ứng dụng không được tuân thủ, ta nói hệ bị sai sót/lỗi (défaillance du système). Dựa vào các ràng buộc thời gian này ta có thể chia hệ thời gian thực làm 2 loại: 1.a. ràng buộc thời gian lỏng/tương đối (contraintes temporelles relatives ou lâches): là hệ có thể chịu được/bỏ qua (tolérance) một số lỗi xác định về thời gian nếu phát sinh trong quá trình vận hành (ví dụ: trò chơi điện tử, các ứng dụng về nghe nhìn, điện thoại di động,…). 1.b. ràng buộc thời gian chặt/nghiêm ngặt (contraintes temporelles strictes ou dures): là hệ không chấp nhận/bỏ qua bất kỳ lỗi về thời gian nào phát sinh trong quá trình vận hành (ví dụ: thiết bị điện tử hàng không, tàu vũ trụ, xe hơi, hệ thống đường sắt…). Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 7 Phân loại hệ điều khiển (Système de contrôle-commande ou réactif) (2/2) (2) Các hệ điều khiển "embarqué" (Systèmes de contrôle-commande embarqué): được hiểu đơn giản là hệ được tích hợp trên các thiết bị hay các hệ thống khác để điều khiển quá trình hoạt động của thiết bị hay hệ thống đó. (3) Các hệ điều khiển "dédié" (Systèmes de contrôle-commande dédié): được hiểu đơn giản là các hệ "cứng" hoặc "mềm" (architectures matériels ou logiciels) được thiết kế dành riêng cho một ứng dụng cụ thể (ví dụ: hạt nhân hay lõi (noyau) của một microprocesseur, vi xử lý (processeur),...). (4) Các hệ điều khiển "distribué" (Systèmes de contrôle-commande distribué): được hiểu đơn giản là một cấu trúc phần "cứng" (l’architecture matériel) được hình thành từ nhiều vi xử lý (processeurs) liên kết với nhau thông qua một "bus" hay một hệ thống mạng (réseau). Ngô Khánh Hiếu 4
  5. Các hệ thời gian thực – Giới thiệu 8 Các đặc tính cơ bản của hệ điều khiển (1/6) Mối quan hệ tương hỗ giữa hệ điều khiển với môi trường bên ngoài mà nó điều khiển có thể phân chia thành hai phần sau: ■ phần "quan sát" (observations) thông qua các cảm biến (sensors), cho phép thu nhận các thông tin dưới hình thức các ngắt (interruptions, information tout ou rien), hoặc các giá trị đo (mesures, information continue) từ quá trình thực tế mà hệ điều khiển. ■ phần "hành động" (actions) được thực hiện nhờ các cơ cấu chấp hành (actuators), cho phép phản ứng lại quá trình thực tế mà hệ điều khiển dưới hình thức các lệnh (commandes) làm thay đổi trạng thái hiện hành của hệ thống, hoặc đơn giản là dưới hình thức các hiển thị (affichage) như diodes, bóng đèn, màn hình hiển thị, thiết bị hiển thị,… Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 9 Các đặc tính cơ bản của hệ điều khiển (2/6) Một ứng dụng của hệ điều khiển trong điều khiển quá trình đốt cháy của động cơ Ngô Khánh Hiếu 5
  6. Các hệ thời gian thực – Giới thiệu 10 Các đặc tính cơ bản của hệ điều khiển (3/6) Các đặc tính cơ bản của hệ điều khiển là: (1) rất đa dạng các thiết bị đầu vào và đầu ra (dispositifs d’entrées/sorties): dữ liệu đầu vào yêu cầu, được cung cấp bởi các cảm biến, và các dữ liệu đầu ra cung cấp cho các cơ cấu chấp hành có các kiểu dữ liệu (types) rất đa dạng (liên tục, rời rạc, "tout ou rien", hoặc "analogique"). (2) có khả năng tính toán song song (comportements concurrents): tập hợp tất cả các dữ liệu thực tế từ bên ngoài, và "mạng" (le réseau) cho phép nhập các dữ liệu dạng tin nhắn (messages) không được đồng bộ (ne sont pas synchronisés) so với sự phát triển của chúng. Điều này dẫn đến, hệ thống tin học phải có khả năng chấp nhận những sự khác biệt đồng thời của các tham số (variations simultanées des paramètres). Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 11 Các đặc tính cơ bản của hệ điều khiển (4/6) Các đặc tính cơ bản của hệ điều khiển là: (tiếp theo) (3) tuân thủ các ràng buộc về thời gian (contraintes temporelles): đặc tính trước đó của hệ điều khiển đặt ra cho hệ thống tin học một mặt phải có một khả năng "phản ứng" (réactivité) đủ để xét hết tất cả các ứng xử đồng thời (comportements concurrents), mặt khác phải trả lời các ứng xử đó bằng cách tạo ra các lệnh trong tuân thủ một giới hạn thời gian (un délai) tương ứng/phù hợp với tính động học của hệ thống (la dynamique du système) (4) sự chắc chắn trong hoạt động (sureté de fonctionnement): các hệ điều khiển thường được sử dụng trong các ứng dụng mà ở đó yêu cầu ở mức độ rất quan trọng về sự an toàn vì lý do chi phí (cout) hoặc tính mạng của con người (vies humaines). Để đáp ứng được yêu cầu này, rất cần thiết phải bảo đảm tính chắc chắn trong hoạt động của các hệ điều khiển thông qua các biện pháp như phát triển "chắc chắn", tests, các phương pháp "formelles", các dự đoán (prévisibilité), déterminisme, tolérance aux fautes, redondance,… Ngô Khánh Hiếu 6
  7. Các hệ thời gian thực – Giới thiệu 12 Các đặc tính cơ bản của hệ điều khiển (5/6) So sánh tính động học của các ứng dụng khác nhau của hệ điều khiển Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 13 Một vài ứng dụng của hệ điều khiển (6/6) ■ Robot sản xuất: một robot, thực hiện một hoạt động cụ thể trong một chuỗi sản xuất, phải hoàn thành công việc của nó trong khoảng thời gian cố định xác định bởi dây chuyền chế tạo. Nếu thời gian này quá sớm hoặc quá trễ sản phẩm chế tạo sẽ bị phá hủy hoặc làm hư hỏng dẫn đến các thiệt hại về kinh tế hoặc con người nghiêm trọng. ■ Robot thăm dò/thám hiểm: robot này phải có khả năng tự dịch chuyển trong một phạm vi mà về cơ bản là không biết rõ trước (như vùng nhiễm phóng xạ gần một tại nạn về phóng xạ, hành tinh,…). Điều quan trọng đối với các robot loại này là chúng phải có thể phản ứng lại các chướng ngại vật cố định hoặc di động để tránh bị mất lái hay bị kẹt. ■ Điện thoại di động: hệ thống điều khiển phải có khả năng hoàn thành nhiều chức năng mà trong đó một số có ràng buộc về thời gian cao để có chất lượng phục vụ tốt (QoS, Quality of Service). Chức năng đầu tiên là truyền và nhận tín hiệu giọng nói (577 µs giọng nói được phát cho mỗi 4.6 ms, và 577 µs giọng nói được nhận cho mỗi 4.6 ms ở các khoảng cách khác nhau). Vi vậy cần phải Ngô Khánh Hiếu 7
  8. Các hệ thời gian thực – Giới thiệu 14 Cấu trúc của các ứng dụng của hệ điều khiển (1/16) ■ Cấu trúc phần mềm (Architecture logicielle) (1/14) Ứng xử đồng thời của các tín hiệu được thể hiện dưới dạng các "événements" và các đại lượng thực bên ngoài (grandeurs physiques externes) dẫn đến mô tả/thể hiện môi trường điều khiển như là một hệ thống bắt buộc song song. Cấu trúc phần mềm có thể đáp ứng tốt nhất để trả lời các ứng xử song song của quá trình điều khiển bên ngoài (comportement parallèle du procédé externe) là cấu trúc "multitâche" (multi-task hay multiprogrammation). Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 15 Cấu trúc của các ứng dụng của hệ điều khiển (2/16) ■ Cấu trúc phần mềm (Architecture logicielle) (2/14) “In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for that task. Multitasking solves the problem by scheduling which task may be the one running at any given time, and when another waiting task gets a turn. The act of reassigning a CPU from one task to another one is called a context switch. When context switches occur frequently enough the illusion of parallelism is achieved. Even on computers with more than one CPU (called multiprocessor machines), multitasking allows many more tasks to be run than there are CPUs.” (Trích nguồn Wikipedia) Ngô Khánh Hiếu 8
  9. Các hệ thời gian thực – Giới thiệu 16 Cấu trúc của các ứng dụng của hệ điều khiển (3/16) ■ Cấu trúc phần mềm (Architecture logicielle) (3/14) “Operating systems may adopt one of many different scheduling strategies, which generally fall into the following categories: - In multiprogramming systems, the running task keeps running until it performs an operation that requires waiting for an external event (e.g. reading from a tape) or until the computer's scheduler forcibly swaps the running task out of the CPU. Multiprogramming systems are designed to maximize CPU usage. - In time-sharing systems, the running task is required to relinquish the CPU, either voluntarily or by an external event such as a hardware interrupt. Time sharing systems are designed to allow several programs to execute apparently simultaneously. - In real-time systems, some waiting tasks are guaranteed to be given the CPU when an external event occurs. Real time systems are designed to control mechanical devices such as industrial robots, which require timely processing.” (Trích nguồn Wikipedia) Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 17 Cấu trúc của các ứng dụng của hệ điều khiển (4/16) ■ Cấu trúc phần mềm (Architecture logicielle) (4/14) Ngô Khánh Hiếu 9
  10. Các hệ thời gian thực – Giới thiệu 18 Cấu trúc của các ứng dụng của hệ điều khiển (5/16) ■ Cấu trúc phần mềm (Architecture logicielle) (5/14) (1) “tâches" nhập/xuất (tâches d’entrées/sorties): đây là các "tâches" cho phép tiếp cận với các dữ liệu bên ngoài thông qua các "cartes" giao tiếp nhập/xuất, và các cảm biến (capteurs), các cơ cấu chấp hành (actionneurs) liên kết trực tiếp với quá trình điều khiển. Các "tâches" này có thể được kích hoạt một cách đều đặn (façon régulières) hoặc bằng "ngắt" (par interruption). (2) “tâches" xử lý/tính toán (tâches de traitement): các "tâches" này tạo nên phần trung tâm của ứng dụng. Nó tích hợp các phương pháp xử lý tín hiệu (traitements de signaux) như phân tích phổ, sự tương đồng, xử lý hình ảnh,…; các quy luật điều khiển (lois de commande) như điều khiển có chu kỳ theo thời gian, điều khiển kiểu "tout ou rien", điều khiển PID,… Trong khuôn khổ của môn học này, ta có thể xem các "tâches" xử lý/tính toán như là các hộp đen mà ở đó phần xử lý/tính toán của từng "tâche" sẽ là phạm vi của các lĩnh vực liên quan như xử lý tín hiệu, xử lý hình ảnh, điều khiển tự động,… Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 19 Cấu trúc của các ứng dụng của hệ điều khiển (6/16) ■ Cấu trúc phần mềm (Architecture logicielle) (6/14) (3) “tâches" quản lý giao tiếp người sử dụng (tâches de gestion de l’interface utilisateur): đây là các "tâches" cho phép hiển thị trạng thái của quá trình điều khiển, cũng như việc giao tiếp với người sử dụng. Theo đó, người điều khiển có thể hiệu chỉnh các dữ liệu điều khiển hoặc thay đổi các lệnh điều khiển. Các "tâches" này có thể rất phức tạp và đắt về mặt thời gian tính toán nếu giao diện điều khiển có kích thước "quan trọng" (de taille importante) như bảng điều khiển trong buồng lái máy bay (tableau de bord) hoặc thuộc kiểu giao điện đồ họa như hiển thị 3D,… (4) “tâches" thông tin liên lạc (tâches de communications): các "tâches" này được tạo ra để dành cho việc quản lý việc gởi và nhận các "messages" trong một hoặc nhiều mạng hoặc thiết bị kết nối (réseaux ou bus de terrain). Nếu các "tâches" dạng này xuất hiện trong ứng dụng của hệ điều khiển thì ứng dụng được gọi là "phân phối" (distribuée ou répartie). Ngô Khánh Hiếu 10
  11. Các hệ thời gian thực – Giới thiệu 20 Cấu trúc của các ứng dụng của hệ điều khiển (7/16) ■ Cấu trúc phần mềm (Architecture logicielle) (7/14) (5) “tâches" lưu trữ (tâches de sauvegarde): đây là các "tâches" cho phép lưu trữ trạng thái của hệ thống (l’état du système) ở các thời điểm cố định. Việc lưu trữ này có thể được sử dụng sau đó (a posteriori) để phân tích việc vận hành của ứng dụng hoặc ngay sau một sự lấy lại trạng thái vận hành ở một giai đoạn trước đó (une reprise d’exécution à une étape précédente). Sau giai đoạn phân tích (l’analyse) và thiết kế (la conception) ứng dụng, ta thu được tập hợp các "tâches" hay các "activités" có quan hệ lẫn nhau để thực hiện việc điều khiển của quá trình. Các "tâches" này thuộc về các nhóm khác nhau như liệt kê ở trên. Cách thức phân chia theo chức năng này có thể được sửa đổi trong trường hợp áp dụng phương pháp thiết kế hướng về các đối tượng hoặc các "entités" điều khiển. Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 21 Cấu trúc của các ứng dụng của hệ điều khiển (8/16) ■ Cấu trúc phần mềm (Architecture logicielle) (8/14) Sơ đồ thể hiện cấu trúc "multitâche" của một ứng dụng của hệ điều khiển Các "tâches" cấu thành lên ứng dụng của hệ điều khiển không phải là các thực thể hoạt động độc lập. Một số "tâches" được kết nối với bên ngoài để nhập/xuất; một số "tâches" có thể được liên kết với nhau trong quá trình vận hành của ứng dụng. Ngô Khánh Hiếu 11
  12. Các hệ thời gian thực – Giới thiệu 22 Cấu trúc của các ứng dụng của hệ điều khiển (9/16) ■ Cấu trúc phần mềm (Architecture logicielle) (9/14) - Synchronisation: đây là kiểu kết nối giữa hai hay nhiều "tâches" để thể hiện một mối quan hệ trước sau (une relation de précédence d’exécution) giữa chúng. - Communication: đây là kiểu kết nối giữa hai hay nhiều "tâches" để thể hiện một mối quan hệ trước sau nhưng có bổ sung thêm sự chuyển dữ liệu (le transfert de données) giữa chúng. - Partage de ressources: đây là kiểu kết nối giữa hai hay nhiều "tâches" cùng chia sẽ với nhau các nguồn nghiêm ngặt (ressources critiques). Các nguồn nghiêm ngặt là các nguồn mà sự tiếp cận chúng bởi hai hay nhiều "tâches" cùng một lúc hoặc không thể thực hiện được, hoặc không thể để có một sự vận hành đúng. Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 23 Cấu trúc của các ứng dụng của hệ điều khiển (10/16) ■ Cấu trúc phần mềm (Architecture logicielle) (10/14) Vai trò chính yếu của hệ tin học là điều phối sự đan xen (l’enchainement) và đồng thời (la concurrence) của các "tâches" nhằm tối ưu thời gian chiếm dụng vi xử lý, chức năng này thường được gọi là "ordonnancement" (schedulability). Ta có thể phân chia mô hình vận hành của các hệ điều khiển thành hai mô hình sau: mô hình "synchrone" và mô hình "asynchrone". - Mô hình “synchrone”: ở mô hình này sự nhận thức thời điểm kích hoạt của tất cả dữ kiện điều khiển (l’occurrence de tout événement) bởi hệ thống bị trễ bởi thời gian tính toán của "tâche" hiện hành. Hay nói cách khác, các "tâches" của mô hình "synchrone" là các "tâches" không thể ngắt (non interruptibles ou non préemptibles) - Mô hình “asynchrone”: ở mô hình này sự nhận thức thời điểm kích hoạt của tất cả dữ kiện điều khiển (l’occurrence de tout événement) được ghi nhận ngay lập tức bởi hệ thống để cân nhắc tính chất khẩn (urgence) hay tính chất quan trọng của chúng. Hay nói cách khác, các "tâches" của mô hình "asynchrone" là các "tâches" có thể ngắt (interruptibles ou préemptibles) Ngô Khánh Hiếu 12
  13. Các hệ thời gian thực – Giới thiệu 24 Cấu trúc của các ứng dụng của hệ điều khiển (11/16) ■ Cấu trúc phần mềm (Architecture logicielle) (11/14) Mô hình "synchrone" của một ứng dụng điều khiển Phương pháp phân tích "ordonnancement" trong mô hình "synchrone" được gọi là phương pháp phân tích "ordonnancement hors ligne". Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 25 Cấu trúc của các ứng dụng của hệ điều khiển (12/16) ■ Cấu trúc phần mềm (Architecture logicielle) (12/14) Mô hình "asynchrone" của một ứng dụng điều khiển Phương pháp phân tích "ordonnancement" trong mô hình "asynchrone" được gọi là phương pháp phân tích "ordonnancement en ligne". Ngô Khánh Hiếu 13
  14. Các hệ thời gian thực – Giới thiệu 26 Cấu trúc của các ứng dụng của hệ điều khiển (13/16) ■ Cấu trúc phần mềm (Architecture logicielle) (13/14) Cấu trúc của ứng dụng: tâches và noyau temps réel Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 27 Cấu trúc của các ứng dụng của hệ điều khiển (14/16) ■ Cấu trúc phần mềm (Architecture logicielle) (14/14) Các ngôn ngữ lập trình được sử dụng để phát triển các ứng dụng điều khiển với hạt nhân thời gian thực 1. Gestion des interruptions 2. Ordonnancement 3. Relations entre les tâches Ngô Khánh Hiếu 14
  15. Các hệ thời gian thực – Giới thiệu 28 Cấu trúc của các ứng dụng của hệ điều khiển (15/16) ■ Cấu trúc phần cứng (Architecture matérielle) (1/2) Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 29 Cấu trúc của các ứng dụng của hệ điều khiển (16/16) ■ Cấu trúc phần cứng (Architecture matérielle) (2/2) Cấu trúc phần cứng giữ một vai trò rất quan trọng trong các ứng dụng hệ điều khiển. Nó liên quan một mặt đến sự kết nối trực tiếp với môi trường thực tế nhờ vào các hệ thống nhập/xuất đa dạng (une grande diversité de systèmes d’entrées/sorties); mặt khác đến thiết bị tin học phần cứng (matériel informatique) chuyên biệt và được phát triển dành riêng cho một ứng dụng nào đó. Rất nhiều ứng dụng của hệ điều khiển vận hành dựa trên các nền PC truyền thống. Tuy vậy, việc lắp đặt các cartes nhập/xuất, chúng phải được đồng bộ hóa (việc thu nhận dữ liệu và xuất lệnh được thực hiện ở các thời điểm chính xác), là luôn cần thiết. Vì vậy, trong các ứng dụng tin học này, các phần cứng chuyên biệt luôn tồn tại và hỗ trợ tính năng về thời gian. Trong nhiều trường hợp, các ứng dụng của hệ điều khiển thuộc dạng "distribué" mà ở đó chúng vận hành trong môi trường "multitâche", được kết nối với nhau bởi một hoặc nhiều hệ thống mạng (như Erthenet, CAN, FIP…) Ngô Khánh Hiếu 15
  16. Các hệ thời gian thực – Giới thiệu 30 Sự phát triển của các ứng dụng của hệ điều khiển (1/27) Sự phát triển của các ứng dụng tin học có thể được chia thành các giai đoạn phát triển chính sau: giai đoạn mô tả đặc tính/yêu cầu (Spécification); giai đoạn thiết kế (Conception); giai đoạn xây dựng/triển khai (Implémentation/Codage); và giai đoạn kiểm tra (Test/Validation). Vòng phát triển với các giai đoạn chính nêu trên cho phép vừa thu được các ứng dụng đạt chất lượng cao xét về khía cạnh cấu trúc phần mềm, vừa gia tăng khả năng về bảo dưỡng/sửa chữa (maintenabilité) và mở rộng/phát triển (évolutivité). Nếu như việc kiểm tra (Test/Validation), giữ vai trò quan trọng sống còn trong việc đạt được chất lượng của hệ thống, có thể được thực hiện dễ dàng trong các ứng dụng tin học truyền thống (như các programmes tính toán…) thì đối với các ứng dụng của hệ điều khiển việc kiểm tra vận hành thực tế của hệ thường rất phức tạp phát sinh từ rất nhiều nguyên nhân mà ta có thể nêu ra sau: việc vận hành là duy nhất (vệ tinh do thám…), chi phí rất cao (hệ thống tên lửa, hệ thống tạo lực đẩy…), rủi ro cao về nhân mạng (thiết bị bay…)… Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 31 Sự phát triển của các ứng dụng của hệ điều khiển (2/27) Vòng phát triển cổ điển "Cascade" (1/5) Được đưa ra đầu tiên bởi W. Royce vào những năm 1970, vòng "Cascade" nguyên thủy là một sự phát triển theo trình tự từ giai đoạn "Spécification" đến giai đoạn "Test". Có sự xuất hiện của một liên kết giữa các giai đoạn sau giai đoạn "Spécification" ban đầu cho phép thực hiện các "Tests" ở cuối mỗi giai đoạn trong vòng phát triển và phản hồi kịp thời đến giai đoạn liền trước đó nếu có vấn đề phát sinh Ngô Khánh Hiếu 16
  17. Các hệ thời gian thực – Giới thiệu 32 Sự phát triển của các ứng dụng của hệ điều khiển (3/27) Vòng phát triển cổ điển "Cascade" (2/5) ? ? Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 33 Sự phát triển của các ứng dụng của hệ điều khiển (4/27) Vòng phát triển cổ điển "Cascade" (3/5) (1) Giai đoạn “Spécification": tìm hiểu hệ thống dưới cái nhìn tổng quát đến tất cả các đặc tính của nó nhằm mục đích trả lời cho câu hỏi "Hệ thống làm gì?". Các khía cạnh khảo sát ở đây không chỉ đơn thuần là các yêu cầu thuộc về chức năng (besoins fonctionnels), mà còn bao hàm cả những yêu cầu không thuộc về chức năng (besoins non fonctionnels) như yêu cầu về ứng xử/đáp ứng của hệ thống (services comportementaux), vật liệu (matériaux), yêu cầu về chất lượng (qualités requises), các ràng buộc về thời gian đối với các hệ thời gian thực… Ngô Khánh Hiếu 17
  18. Các hệ thời gian thực – Giới thiệu 34 Sự phát triển của các ứng dụng của hệ điều khiển (5/27) Vòng phát triển cổ điển "Cascade" (4/5) (2) Giai đoạn “Conception": có thể phân chia thành hai giai đoạn, thiết kế sơ bộ (conception préliminaire) và thiết kế chi tiết (conception détaillée). Mục đích của giai đoạn này là "định nghĩa" cấu trúc bên trong của hệ thống (architecture interne du système) từ các yêu cầu đặt ra ở giai đoạn trước đó nhằm mục đích trả lời cho câu hỏi "Hệ thống làm như thế nào?". Thiết kế sơ bộ đưa ra cấu trúc tổng quát của hệ thống bằng cách phân chia nó thành các bộ phận cấu thành, đặc biệt là các "tâches" và các "modules". Module ở đây có thể được hiểu là một đơn vị tập hợp một nhóm các "fonctions" hoặc các "procédures" dành cho việc sử dụng kết hợp với các bộ phận khác. Thiết kế chi tiết cho phép đi từ kết quả của thiết kế sơ bộ việc phân chia tiếp tục hệ thống cho đến cấp độ mô tả chi tiết/cụ thể nhất từng bộ phận cấu thành của nó như: các lựa chọn "algorithmes", mô tả chi tiết từng "tâche", "fonction", cấu trúc dữ liệu, quan hệ giữa các "tâches"… Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 35 Sự phát triển của các ứng dụng của hệ điều khiển (6/27) Vòng phát triển cổ điển "Cascade" (5/5) (3) Giai đoạn “Implémentation": giai đoạn này cho phép triển khai các khái niệm được đưa ra trong giai đoạn thiết kế thể hiện dưới dạng code chương trình. Đối với các hệ song song, hoặc sử dụng các ngôn ngữ hỗ trợ song song như Ada, Module 2…; hoặc sử dụng một ngôn ngữ tuần tự được dùng kết hợp với một hệ điều hành "multitâche" hay một hạt nhân thời gian thực (noyau temps réel) như ngôn ngữ C phát triển thành các chuẩn POSIX, VxWorks, OSEK/VDX… Ngôn ngữ đồ họa có thể được sử dụng trong giai đoạn này. Dựa vào đặc tính đồ họa, ngôn ngữ này cho phép không những triển khai các khái niệm thiết kế, mà còn có thể tích hợp với các bộ phận của ứng dụng thực tế trong một môi trường đồng nhất liên tục một cách trực quan. LabVIEW là một trong số những ngôn ngữ đồ họa trong quá trình phát triển của các ứng dụng của hệ điều khiển. Ngô Khánh Hiếu 18
  19. Các hệ thời gian thực – Giới thiệu 36 Sự phát triển của các ứng dụng của hệ điều khiển (7/27) Vòng phát triển dạng "V" (1/3) - Đường dốc xuống bên trái là sự thể hiện lại của các giai đoạn phát triển của mô hình "Cascade" từ "Spécification" đến "Conception". - Đường dốc lên bên phải là sự thể hiện của các quá trình "tests" mà ở đó ứng với mỗi giai đoạn của quá trình "Analyse" và "Conception" ta thực hiện một quá trình "Test" và "Validation". Là một dạng thay đổi của mô hình "Cascade", mô hình V tập trung vào quá trình kiểm tra/làm cho có hiệu lực quá trình phát triển của hệ điều khiển (vérification et validation). Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 37 Sự phát triển của các ứng dụng của hệ điều khiển (8/27) Vòng phát triển dạng "V" (2/3) (4) Giai đoạn “tests unitaires": cho phép kiểm tra sự hoạt động của các thành phần của hệ thống một cách độc lập để đảm bảo mỗi chúng phải thỏa các yều cầu hoạt động riêng, và phải hoạt động "đúng" trong mọi điều kiện. (5) Giai đoạn “tests d’intégration": là giai đoạn kiểm tra được tiến hành sau giai đoạn "tests unitaires" nhằm mục đích kiểm tra sự hoạt động của các thành phần của hệ thống trong sự vận hành tổng thể của nó: mối quan hệ giữa các bộ phận; sự hoạt động của các "tâches" dựa trên các bộ phận này; các cơ chế bảo đảm "communication/synchronisation" giữa các "tâches"… (6) Giai đoạn “validation": là giai đoạn cho phép kiểm tra tính hiệu lực/tính đúng của hệ điều khiển được phát triển trước các yêu cầu (besoins) đề ra ở giai đoạn đầu tiên: "besoins fonctionnels" và "besoins non fonctionnels". Ngô Khánh Hiếu 19
  20. Các hệ thời gian thực – Giới thiệu 38 Sự phát triển của các ứng dụng của hệ điều khiển (9/27) Vòng phát triển dạng "V" (3/3) Mô hình "V" so với mô hình "Cascade" giúp giảm bớt quá trình "retours" về các giai đoạn trước đó trong vòng phát triển của hệ điều khiển: cụ thể là mỗi giai đoạn ở phần "lên" (montant) sẽ chỉ phản hồi thông tin lại cho một giai đoạn tương ứng của phần "xuống" (descendant) trong sơ đồ V nhờ đó các lỗi được phát hiện sẽ được chỉnh sửa kịp thời. Mô hình "V" vẫn mang đặc tính của một mô hình tuyến tính (modèle linéaire) nên các vấn đề gặp phải ở mô hình "Cascade" vẫn chưa được khắc phục: giai đoạn sau chỉ được bắt đầu khi giai đoạn trước hoàn tất và kết thúc, nên giai đoạn "tests" và "validation" chỉ được tiến hành sau khi giai đoạn "implémentation" kết thúc, phần lớn các lỗi lại phát sinh ở giai đoạn "spécification" ⇒ les retours coûtent chers Ngô Khánh Hiếu Các hệ thời gian thực – Giới thiệu 39 Sự phát triển của các ứng dụng của hệ điều khiển (10/27) Một số vòng phát triển khác (1/6) Mô hình tuyến tính sẽ rất phù hợp đối với các hệ điều khiển mà ở đó các yêu cầu của nó có thể được xác định ngay từ giai đoạn đầu. Điều đó một mặt giúp chuẩn bị tốt hơn cho giai đoạn "tests et validation"; mặt khác cố định và xuyên suốt các yêu cầu ở những giai đoạn tiếp theo của vòng phát triển. Tuy nhiên, đối với các mô hình "dirigés par les documents" thì phần lớn các ý tưởng ban đầu của hệ được xác định ở giai đoạn "spécification" đều ở dạng chưa hoàn chỉnh, nên rất có nhiều khả năng những "code" hay những thiết kế (conception) đưa ra trong các giai đoạn tiếp theo của vòng phát triển không thể sử dụng được/không phù hợp (inutilisable). Việc áp dụng các vòng phát triển dưa trên mô hình tuyến tính (Cascade, V) cho các mô hình này là không thật sự phù hợp. il est favorable d’utiliser d‘autres techniques de prototypage qui permettent de valider tout ou une partie du cahier des charges et de prendre en considération le «feed-back» entre le concepteur et l’utilisateur. Ngô Khánh Hiếu 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2