User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 2 của 2

Chủ đề: Hệ thời gian thực và điều khiển thời gian thực

  1. #1
    Stanley Ipkiss Avatar của The Fool
    Tham gia ngày
    Jul 2003
    Bài gửi
    867

    Mặc định Hệ thời gian thực và điều khiển thời gian thực

    Hệ thời gian thực và điều khiển thời gian thực

    Trước tiên, tôi muốn đưa ra hai ví dụ minh họa đơn giản để trả lời câu hỏi về sự liên quan giữa một giải pháp điều khiển với cái gọi là xử lý thời gian thực. Ví dụ thứ nhất, từ lý thuyết điều khiển tự động, ta đã hiểu rõ thuật toán điều chỉnh PID. Câu hỏi đặt ra là phải lập trình như thế nào để cài đặt thuật toán trên nền một hệ vi xử lý, hoặc chỉ đơn thuần mô phỏng thời gian thực trên máy tính cá nhân? Nếu ta cứ bỏ qua các chi tiết như gián đoạn hóa, lọc nhiễu, chuẩn hóa vào/ra và chống reset-windup, thì vẫn có hàng loạt các câu hỏi khác cần phải trả lời:

    * Làm thế nào để tạo các chu kỳ trích mẫu hay chu kỳ điều khiển một cách chính xác (ví dụ 0.01s hoặc 0.5s) trong chương trình theo đúng yêu cầu của lý thuyết điều khiển số?

    * Ngay cả khi ta đã biết sử dụng các ngắt thời gian để tạo chu kỳ trích mẫu, nhưng nếu phải thực hiện nhiều vòng điều chỉnh PID với chu kỳ trích mẫu khác nhau thì giải pháp sẽ phải thế nào? Khi nào và làm thế nào để một vi xử lý có thể đáp ứng đồng thời yêu cầu thực hiện nhiều thuật toán điều chỉnh? Thêm vào đó, nếu một số sự kiện khác xảy ra cần xử lý ngay thì việc tổ chức thực hiện trong chương trình ra sao?

    * Khi một vòng điều chỉnh không được đáp ứng về yêu cầu thời gian (chu kỳ trích mẫu không chính xác, thời điểm đưa ra kết quả tính toán chậm hơn thời điểm trích mẫu tiếp theo), thì chất lượng điều khiển sẽ bị ảnh hưởng như thế nào?

    Rõ ràng, việc đưa ra lời giải đáp cho những câu hỏi trên không đơn thuần chỉ dựa vào những kiến thức của lý thuyết điều khiển, mà liên quan nhiều hơn tới cơ chế xử lý thông tin trong thiết bị điều khiển. Đó là cơ chế xử lý thời gian thực, một nội dung mang tính chất nền tảng cho mọi thiết bị điều khiển.

    Ví dụ thứ hai, giả sử một công ty nào đó muốn tự phát triển một hệ điều khiển (PLC, DCS hay gì đó) trong nước. Ngoài các kiến thức và hiểu biết về cấu trúc phần cứng, thiết kế vi mạch, ngôn ngữ lập trình phần mềm và lý thuyết điều khiển, hàng loạt các vấn đề khác cần phải được làm rõ:

    * PLC hay DCS là một hệ điều khiển chia sẻ, có nghĩa là nó đảm nhiệm nhiều “tác vụ” đồng thời. Việc quản lý và thực thi “đồng thời” một số lượng không nhỏ các “tác vụ” như vậy được thực hiện theo cơ chế nào để đáp ứng được các yêu cầu về thời gian do người sử dụng định nghĩa? Làm thế nào để giữa các tác vụ đó không chanh chấp sử dụng bộ nhớ, cổng vào/ra, timer,...

    * Làm thế nào để lập trình sử dụng bộ nhớ, sử dụng các cổng vào/ra, và giao tiếp với các thiết bị trong mạng được thuận tiện? Làm thế nào để có thể hỗ trợ người sử dụng truyền nạp cấu hình phần cứng và chương trình ứng dụng, thậm chí từng phần chương trình xuống bộ điều khiển một cách dễ dàng?

    * Cơ chế cảnh giới, giám sát lỗi bộ nhớ, lỗi các cổng vào ra và lỗi các module được thực hiện như thế nào để nó độc lập với các chương trình ứng dụng.

    Câu trả lời chung cho các câu hỏi trên là sự cần thiết phải phát triển một hệ điều hành thời gian thực. Có thể nói, cơ chế xử lý thời gian thực trong mỗi bộ điều khiển công nghiệp như trong các hệ PLC hoặc DCS là do một hệ điều hành thời gian thực đảm nhiệm.

    Hệ thống thời gian thực

    Bây giờ ta quay trở lại làm rõ khái niệm “hệ thời gian thực”. Trong các tài liệu cũng như trong thực tế, khái niệm thời gian thực và hệ thời gian thực không phải lúc nào cũng được hiểu một cách thống nhất. Nhiều người cho rằng, hệ thời gian thực là một hệ phải làm việc với yêu cầu thời gian rất nhanh (trong phạm vi một vài micro-giây gì đó), ví dụ các hệ thống điều khiển tay máy, điều khiển động cơ, ... Không ít ý kiến cho rằng, khái niệm thời gian thực luôn gắn với các hệ nhúng, điều khiển thời gian thực là một vấn đề của riêng điều khiển nhúng, tức là các giải pháp sử dụng vi điều khiển, DSP, v.v... Lại cũng có quan niệm rằng thời gian thực là thời gian tuyệt đối, hệ thời gian thực là một hệ có khả năng làm việc với thời gian tuyệt đối theo giờ-phút-giây của ngày tháng. Vậy chúng ta nên hiểu như thế nào đây?

    Một quan điểm được ủng hộ và trích dẫn nhiều nhất là của Stankovic (John A. Stankovic et al.: “Strategic Directions in Real-Time and Embedded Systems”. ACM Computing Surveys, Vol. 28, No. 4, December 1996):

    “A real-time system is one in which the correctness of the system depends not only on the logical results, but also on the time at which the results are produced”.

    Như vậy, một hệ thời gian thực là một hệ thống mà sự hoạt động tin cậy của nó không chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời điểm đưa ra kết quả, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn.

    Trong một bài báo nổi tiếng khác (“Misconceptions About Real-Time Computing”, IEEE Computer, 21(10), Oct. 1988.), Stankovic cũng đã chỉ ra một số quan niệm sai lầm về khái niệm thời gian thực. Ví dụ, khái niệm hệ thời gian thực không đồng nghĩa với khái niệm hệ xử lý tốc độ cao, xử lý nhanh. Nếu ta cho rằng, phải là các ứng dụng điều khiển có yêu cầu thời gian tính toán rất nhanh mới gọi là điều khiển thời gian thực, thì một câu hỏi sẽ được đặt ra là: như thế nào mới được gọi là nhanh? Ta có thể thống nhất là, cỡ một vài micro-giây là rất nhanh, tuy nhiên nếu một vài chục micro-giây thì sao, một trăm micro-giây thì sao? Nếu một trăm micro-giây mới gọi là nhanh, thì 101, 102, ... có nhanh không? Các hệ điều khiển với chu kỳ trích mẫu 5ms, 6 ms, 7ms có được gọi là hệ thời gian thực hay không?

    Có thể nói một cách nôm na, tính thời gian thực là khả năng đáp kịp thời và chính xác. Và ta hoàn toàn có thể định nghĩa như thế nào là kịp thời theo bốn yêu cầu khác nhau, như minh họa trên hình 1.


    Hình 1: Các dạng của tính kịp thời

    Một hệ thống thời gian thực có các đặc điểm tiêu biểu sau:

    * Tính bị động: Hệ thống phải phản ứng với các sự kiện xuất hiện vào các thời điểm thường không biết trước. Ví dụ, sự vượt ngưỡng của một giá trị đo, sự thay đổi trạng thái của một thiết bị quá trình phải dẫn đến các phản ứng trong bộ điều khiển.

    * Tính nhanh nhạy: Hệ thống phải xử lý thông tin một cách nhanh chóng để có thể đưa ra kết quả phản ứng một cách kịp thời. Tuy tính nhanh nhạy là một đặc điểm tiêu biểu, nhưng một hệ thống có tính năng thời gian thực không nhất thiết phải có đáp ứng thật nhanh mà quan trọng hơn là phải có phản ứng kịp thời đối với các yêu cầu, tác động bên ngoài.

    * Tính đồng thời: Hệ thống phải có khả năng phản ứng và xử lý đồng thời nhiều sự kiện diễn ra. Có thể, cùng một lúc một bộ điều khiển được yêu cầu thực hiện nhiều vòng điều chỉnh, giám sát ngưỡng giá trị nhiều đầu vào, cảnh giới trạng thái làm việc của một số động cơ.

    * Tính tiền định: Dự đoán trước được thời gian phản ứng tiêu biểu, thời gian phản ứng chậm nhất cũng như trình tự đưa ra các phản ứng. Nếu một bộ điều khiển phải xử lý đồng thời nhiều nhiệm vụ, ta phải tham gia quyết định được về trình tự thực hiện các công việc và đánh giá được thời gian xử lý mỗi công việc. Như vậy người sử dụng mới có cơ sở để đánh giá về khả năng đáp ứng tính thời gian thực của hệ thống.

    Xử lý thời gian thực

    Xử lý thời gian thực là hình thức xử lý thông tin trong một hệ thống để đảm bảo tính năng thời gian thực của nó. Như vậy, xử lý thời gian thực cũng có các đặc điểm tiêu biểu nêu trên như tính bị động, tính nhanh nhạy, tính đồng thời và tính tiền định. Để có thể phản ứng với nhiều sự kiện diễn ra cùng một lúc, một hệ thống xử lý thời gian thực sử dụng các quá trình tính toán đồng thời.

    Quá trình tính toán là một tiến trình thực hiện một hoặc một phần chương trình tuần tự do hệ điều hành quản lý trên một máy tính, có thể tồn tại đồng thời với các quá trình khác kể cả trong thời gian thực hiện lệnh và thời gian xếp hàng chờ đợi thực hiện.

    Các hình thức tổ chức các quá trình tính toán đồng thời:

    * Xử lý cạnh tranh: Nhiều quá trình tính toán chia sẻ thời gian xử lý thông tin của một bộ xử lý.

    * Xử lý song song: Các quá trình tính toán được phân chia thực hiện song song trên nhiều bộ xử lý của một máy tính.

    * Xử lý phân tán: Mỗi quá trình tính toán được thực hiện riêng trên một máy tính.

    Trong các hình thức trên đây thì hình thức xử lý cạnh tranh có vai trò chủ chốt. Mặc dù hệ thống điều khiển có thể có nhiều trạm, và mỗi trạm có thể là một hệ đa vi xử lý, số lượng các quá trình tính toán cần thực hiện thường bao giờ cũng lớn hơn số lượng vi xử lý. Trong khi một vi xử lý không thể thực hiện song song nhiều lệnh, nó phải phân chia thời gian để thực hiện xen kẽ nhiều nhiệm vụ khác nhau theo thứ tự tùy theo mức ưu tiên và phương pháp lập lịch.

    Trong các hệ thống điều khiển, khái niệm tác vụ (task) cũng hay được sử dụng bên cạnh quá trình tính toán. Có thể nói, tác vụ là một nhiệm vụ xử lý thông tin trong hệ thống, có thể thực hiện theo cơ chế tuần hoàn (periodic task) hoặc theo sự kiện (event task). Các dạng tác vụ qui định trong chuẩn IEC 61131-3 (Programmable Controllers – Part3: Programming Languages) được minh họa trên hình 2. Ví dụ, một tác vụ thực hiện nhiệm vụ điều khiển cho một hoặc nhiều mạch vòng kín có chu kỳ trích mẫu giống nhau. Hoặc, một tác vụ có thể thực hiện nhiệm vụ điều khiển logic, điều khiển trình tự theo các sự kiện xảy ra. Tác vụ có thể thực hiện dưới dạng một quá trình tính toán duy nhất, hoặc một dãy các quá trình tính toán khác nhau.


    Hình 2: Các kiểu tác vụ theo chuẩn IEC 61131-3

    Phương pháp lập lịch (Scheduling)

    Để tổ chức việc thực hiện các tác vụ được hiệu quả, một hệ điều hành thời gian thực cần các phương pháp lập lịch. Trước hết, cơ chế lập lịch thực hiện cho các tác vụ có thể được thực hiện theo hai cách:

    * Lập lịnh tĩnh: thứ tự thực hiện các tác vụ không thay đổi mà được xác định trước khi hệ thống đi vào hoạt động.

    * Lập lịnh động: hệ điều hành xác định lịnh sau khi hệ thống đã đi vào hoạt động.

    Sau khi xác định được cơ chế lập lịch, hệ điều hành cần sử dụng một sách lược lập lịnh (strategy) để áp dụng đối với từng tình huống cụ thể. Có thể chọn một trong những cách sau:

    * FIFO (First In First Out): một tác vụ đến trước sẽ được thực hiện trước.

    * Mức ưu tiên cố định/động: tại cùng một thời điểm, các tác vụ được đặt các mức ưu tiên cố định hoặc có thể thay đổi nếu cần.

    * Preemptive: còn gọi là sách lược chen hàng, tức là chọn một tác vụ để thực hiện trước các tác vụ khác.

    * Non-preemptive: còn gọi sách lược không chen hàng. Các tiến trình được thực hiện bình thường dựa trên mức ưu tiên của chúng.

    Việc tính mức ưu tiên của mỗi tiến trình được thực hiện theo một trong số các thuật toán sau:

    * Rate monotonic: tác vụ nào càng diễn ra thường xuyên càng được ưu tiên.

    * Deadline monotonic: tác vụ nào càng gấp, có thời hạn cuối càng sớm càng được ưu tiên.

    * Least laxity: tác vụ nào có tỷ lệ thời gian tính toán/thời hạn cuối cùng(deadline) càng lớn càng được ưu tiên.

    Bên cạnh phương pháp lập lịch, cơ chế xử lý thời còn đặt ra nhiều vấn đề khác nữa như quản lý và đồng bộ hóa việc sử dụng tài nguyên, giao tiếp liên quá trình, ... Tuy nhiên trong khuôn khổ bài báo này, ta sẽ không đi sâu vào các chi tiết đó.

    Mỗi hệ thống điều khiển là một hệ thời gian thực

    Có thể nói, tất các các hệ thống điều khiển là hệ thời gian thực. Ngược lại, một số lớn các hệ thống thời gian thực là các hệ thống điều khiển. Không có hệ thống điều khiển nào có thể hoạt động bình thường nếu như nó không đáp ứng được các yêu cầu về thời gian, bất kể là hệ thống điều khiển nhiệt độ, điều khiển áp suất, điều khiển lưu lượng hay điều khiển chuyển động. Một bộ điều khiển phải đưa ra được tín hiệu điều khiển kịp thời sau một thời gian nhận được tín hiệu đo để đưa quá trình kỹ thuật về trạng thái mong muốn. Một mạng truyền thông trong một hệ thống điều khiển có tính năng thời gian thực phải có khả năng truyền tin một cách tin cậy và kịp thời đối với các yêu cầu của các bộ điều khiển, các thiết bị vào/ra, các thiết bị đo và thiết bị chấp hành. Tính năng thời gian thực của một hệ thống điều khiển phân tán không chỉ phụ thuộc vào tính năng thời gian thực của từng thành phần trong hệ thống, mà còn phụ thuộc vào sự phối hợp hoạt động giữa các thành phần đó.

    Trong thực tế, yêu cầu về tính thời gian thực đối với mỗi ứng dụng điều khiển cũng có các đặc thù khác nhau, mức độ ngặt nghèo khác nhau. Ví dụ, các hệ thống điều khiển nhúng thường được ứng dụng với các sản phẩm chế tạo hàng loạt, chi phí phần cứng cho từng sản phẩm cần được giảm thiểu, vì vậy dung lượng bộ nhớ cũng như hiệu năng vi xử lý thường thấp. Hơn nữa, điều khiển nhúng lại là giải pháp đặc thù trong các ứng dụng nhanh, tiêu biểu là điều khiển chuyển động, dẫn đến các yêu cầu ngặt nghèo hơn về hiệu suất phần mềm. Trong khi đó, các hệ điều khiển công nghiệp như PLC hoặc DCS đặt ra yêu cầu cao về khả năng lập trình và đưa vào vận hành thuận tiện cho các bài toán lớn. Các hệ thống ứng dụng PLC và DCS cũng thường chậm hơn (ví dụ trong điều khiển các quá trình công nghệ) Nhưng như vậy không có nghĩa là các giải pháp PLC hoặc DCS không phải là các hệ thời gian thực. Điều gì sẽ xảy ra trong một nhà máy điện nguyên tử hay trong một nhà máy lọc dầu, nếu thuật toán điều khiển mặc dù rất hiện đại nhưng bộ điều khiển không có khả năng đưa ra kết quả đáp ứng kịp thời vào những thời điểm trích mẫu, hay khi không đưa ra được các quyết định dừng khẩn cấp một cách kịp thời trong những tình huống bất thường?

    (theo: Tạp chí TĐHNN)
    Học như nghịch thủy hành châu, bất tiến tất thoái.
    Tâm như bình nguyên mục mã, dị phóng nan truy.


  2. #2

+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Chủ đề tương tự

  1. Trả lời: 4
    Bài cuối: 26-02-2009, 03:25 PM
  2. Hội thi dân gian
    Gửi bởi chutichhtcbk trong mục V-Music
    Trả lời: 0
    Bài cuối: 24-01-2006, 11:24 AM
  3. Đàm Vĩnh Hưng - Người tình dối gian
    Gửi bởi khannhachboa trong mục V-Music
    Trả lời: 0
    Bài cuối: 10-09-2005, 12:13 AM
  4. Lược sử thời gian
    Gửi bởi bjet4 trong mục Viện Vật lý kĩ thuật
    Trả lời: 34
    Bài cuối: 10-12-2002, 02:39 AM

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube