Mô hình hóa là phương pháp xây dựng mô hình toán học của hệ thống bằng cách phân
tích hệ thống thành các khối chức năng, trong đó mô hình toán học của các khối chức
năng đã biết hoặc có thể rút ra được dựa vào các quy luật hóa lý. Mô hình hệ thống được
xây dựng dựa trên cơ sở liên kết các khối chức năng.
Trên cơ sở mô hình hóa có thể kiểm tra, đánh giá kết quả xem hệ thống có phù hợp với
yêu cầu hay không. Nên mô hình hóa hệ thống giúp đánh giá tính thực tiễn của các công
việc định làm, từ đó đưa ra phương án lựa chọn tốt nhất dành cho hệ thống. Để mô hình
hóa hệ thống có thể sử dụng rất nhiều hướng khác nhau như: hướng cấu trúc, hướng dữ
liệu, hướng đối tượng, Petri Net (lưới Petri Net).v.v. Trong đó, Petri Net là ngôn ngữ mô
hình hóa dùng để đặc tả các hệ thống phân tán rời rạc. Petri Net được phát minh vào năm
1962 bởi Carl Adam Petri nhằm mục đích mô tả các quá trình hóa học. Ngày nay, Petri
Net đã được phát triển rất mạnh mẽ, đã được ứng dụng rất rộng rãi trong rất nhiều lĩnh
vực khác nhau như: sinh học, hóa học, môi trường, kỹ thuật, truyền thông, điều khiển, hệ
thống sản xuất, robot [1],[2].v.v. Trong nội dung bài báo này chúng tôi sẽ giới thiệu
Petri Net cơ bản và sử dụng nó để mô hình hóa các hệ điều khiển nhúng cụ thể là hệ
thống nhà thông minh.
10 trang |
Chia sẻ: tranhoai21 | Lượt xem: 1307 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Hệ điều khiển nhúng với Petri net, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Hệ điều khiển nhúng với PETRI
NET
I. Mở đầu.
Mô hình hóa là phương pháp xây dựng mô hình toán học của hệ thống bằng cách phân
tích hệ thống thành các khối chức năng, trong đó mô hình toán học của các khối chức
năng đã biết hoặc có thể rút ra được dựa vào các quy luật hóa lý. Mô hình hệ thống được
xây dựng dựa trên cơ sở liên kết các khối chức năng.
Trên cơ sở mô hình hóa có thể kiểm tra, đánh giá kết quả xem hệ thống có phù hợp với
yêu cầu hay không. Nên mô hình hóa hệ thống giúp đánh giá tính thực tiễn của các công
việc định làm, từ đó đưa ra phương án lựa chọn tốt nhất dành cho hệ thống. Để mô hình
hóa hệ thống có thể sử dụng rất nhiều hướng khác nhau như: hướng cấu trúc, hướng dữ
liệu, hướng đối tượng, Petri Net (lưới Petri Net)..v.v. Trong đó, Petri Net là ngôn ngữ mô
hình hóa dùng để đặc tả các hệ thống phân tán rời rạc. Petri Net được phát minh vào năm
1962 bởi Carl Adam Petri nhằm mục đích mô tả các quá trình hóa học. Ngày nay, Petri
Net đã được phát triển rất mạnh mẽ, đã được ứng dụng rất rộng rãi trong rất nhiều lĩnh
vực khác nhau như: sinh học, hóa học, môi trường, kỹ thuật, truyền thông, điều khiển, hệ
thống sản xuất, robot [1],[2]..v.v.. Trong nội dung bài báo này chúng tôi sẽ giới thiệu
Petri Net cơ bản và sử dụng nó để mô hình hóa các hệ điều khiển nhúng cụ thể là hệ
thống nhà thông minh.
II. Petri Net
Petri Net còn được gọi là
Place/Transitions Networks (mạng vị
trí/chuyển tiếp) và được hiển thị bằng
đồ thị có hướng gồm có 2 loại node:
* Transition (chuyển tiếp) có dạng
hình chữ nhật hoặc hình vuông - biểu
diễn các sự kiện rời rạc có thể xảy ra.
* Place (vị trí) có dạng hình tròn -
biểu diễn trạng thái các điều kiện.
Ví dụ minh họa ở Hình 1, Petri Net có
4 place, 2 transition.
Các place và transistion được nối với
nhau bằng các đường nối (liên kết). Chỉ có thể nối place với transition, không thể nối
giữa hai place hoặc hai transition với nhau. Khi một đường nối đi từ một place đến một
transition, thì place đó được gọi là input place của transition đó. Ngược lại, khi có một
đường nối đi từ transition tới một place thì place đó được gọi là output place của
transition đó. Các place có thể chứa một số lượng các token (thẻ) nào đó. Token trong
place được biểu diễn bằng dấu chấm.
Transition của Petri Net có thể hoạt động được khi tất cả các input place của nó có ít nhất
một token. Sau khi transition hoạt động (bắn), mỗi input place sẽ mất một token và mỗi
output place thêm một token. Trong Hình 1, bước 1, place P1 ở trạng thái chứa token tuy
nhiên transistion T1 không thể hoạt động và không cho phép token đi qua. Transition T1
yêu cầu cả place P3 và P1 chứa token thì nó mới hoạt động. Bước 2 minh họa những gì sẽ
xảy ra khi place P1 và P2 có chứa token do đó T1 có thể hoạt động và cho phép một
token chuyển đến place khác, trong trường hợp này là P2. Bước 3 là kết quả từ bước 2
sau khi T1 hoạt động. Token đã được chuyển từ place P1 và P3. Place P1 bị mất token vì
Hình 1. Ví dụ minh họa về Petri Net
từ P1 có đường nối một chiều (input place). Place P3 có đường nối hai chiều (vừa là input
place và vừa là output place) tới T1 vì vậy P3 đã không bị mất token của mình qua
transition T1.
Đường nối hai hướng trong thực tế là
hai đường nối một chiều theo hai
chiều ngược nhau như minh họa trên
Hình 2.
Ở bước 4 Hình 1 là quá trình giống
với bước 2 khi cả place P2 và P4 chứa token (đang hoạt động) do đó transition T2 có thể
hoạt động và cho phép các token vượt qua tới place P1 .
Tại một thời điểm, việc phân bố các token trên các place, được gọi là đánh dấu (marking)
của Petri Net. Nó biểu diễn trạng thái hiện tại của hệ thống được mô hình hóa. Một
marking của Petri Net với m place được biểu diễn bởi vector M (m x1), trong đó các
thành phần của vector là không âm, ký hiệu là M(p), biểu diễn cho số token ở các place P
tương ứng [3]. Trong mô hình Petri Net biểu diễn ở bước 1, Hình 1 thì:
M = (1,0, 0, 0)T
Một cách hình thức, một Petri Net có thể được định nghĩa như sau:
PN = (P, T, I, O, M0)
Trong đó:
1. P = {p1, p2pm} là tập hữu hạn các place.
2. T = {t1,t2,tn} là tập hữu hạn của transition.
P và T là 2 tập tách rời nhau : PT, PT=.
3. I: (P x T) N là hàm xác định hướng đường nối từ các input place tới các transition,
trong đó N là một tập hợp các số nguyên (là 0 hoặc 1). Trong trường hợp tổng quát nó là
các số nguyên không âm.
Hình 2. Biểu diễn đường nối hai hướng
4. O: (P x T) N là hàm xác định hướng đường nối từ các transition tới các output
place.
5. M0: P N trạng thái (marking) ban đầu.
Ví dụ, Petri Net trên Hình 1 với trạng thái ban đầu là bước 1 được biểu diễn với các thành
phần như sau:
PN = (P, T, I, O, M0)
1. P = {P1,P2,P3,P4}
2. T = {T1,T2}
3. Input place
4. Output place
5. M0 = (1,0, 0, 0)T
III. Sử dụng Petri Net để mô hình hóa hệ thống nhà thông minh.
Nhà thông minh (tiếng Anh: smart - home hoặc intelli - home) là kiểu nhà được lắp đặt
các thiết bị điện, điện tử có tác dụng tự động hoàn toàn hoặc bán tự động thay thế con
người thực hiện một hoặc một số thao tác quản lý, điều khiển.
Hệ thống nhà thông minh thường
gồm có:
* Hệ thống điều khiển cửa vào/ra
(access control): Điều khiển cửa
vào/ra dùng mã vân tay, mã số, mã
điều khiển.
* Hệ thống điều khiển âm thanh, ánh
sáng: Đảm bảo chất lượng chiếu sáng
đúng như yêu cầu dựa vào thông số
(lưu lượng, cường độ ánh sáng, độ
rọi).
* Hệ thống rèm cửa, cửa sổ: điều khiển rèm, cửa sổ theo yêu cầu có sử dụng các loại cảm
biến.
* Hệ thống nhiệt, thông gió và điều hòa không khí (HVAC): Giám sát và thay đổi tham
số hệ thống cho phù hợp với thời gian trong ngày, với các mùa, và các kỳ nghỉ. Đảm bảo
chất lượng không khí lưu thông trong tòa nhà.
* Hệ thống điều khiển an ninh (security control): Hệ thống đảm bảo an toàn chống xâm
nhập, chống cháy nổ, khí độc, ngập úng.
Ngày nay, sự phát triển của công nghệ tự động hoá không chỉ làm thay đổi căn bản nền
sản xuất công nghiệp mà còn thay đổi cả môi trường sống của chúng ta. Nhu cầu về sự
tiện nghi, an toàn của các chủ nhà khác nhau, bởi vậy chúng ta có thể tự quyết định "khả
năng" của ngôi nhà khi tương tác với môi trường xung quanh.
Để mô phỏng hệ thống nhà thông minh cần mô phỏng toàn bộ các hệ thống thành phần
như đã nêu ở trên. Chúng tôi sẽ mô phỏng một hệ thống an ninh với yêu cầu như sau: Khi
có xâm nhập trái phép sẽ cảnh báo bằng cách báo đèn sáng, loa kêu, gửi tin nhắn SMS
đến số điện thoại được cài đặt trước.
Hình 3. Mô hình ngôi nhà thông minh
Hoạt động của hệ thống chống xâm nhập: Khi có xâm nhập hệ thống điều khiển sẽ gửi tin
nhắn tới số điện thoại di động đặt trước, đồng thời đèn báo sáng, loa phát tiếng kêu. Hệ
thống đang báo động ta có thể ấn nút reset hoặc đợi hết thời gian trễ đèn báo và loa sẽ tự
tắt. Khi có xâm nhập lần 2 thì hệ thống điều khiển tiếp tục gửi tin nhắn và báo động bằng
đèn và loa. Với yêu cầu này ta có mô hình
như sau:
Hệ thống bao gồm: 4 place XAM NHAP,
SMS, DEN BAO, LOA. 4 transittion DIEU
KHIEN, DI DONG, THOI GIAN TRE,
RESET.
Theo phương pháp Petri Net ta có:
1. P ={XAM NHAP, SMS, DEN BAO, LOA
}
2. T = {DIEU KHIEN, DI DONG, THOI
GIAN TRE, RESET}.
3. Input place
4. Output place
5. M0 = (1, 0, 0, 0)T
Hình 4. Mô hình hệ thống cảnh báo xâm
nhập
Trên Hình 5 biểu diễn một số trạng thái của hệ thống cảnh báo chống xâm nhập sử dụng
Petri Net. Ở hình 5a là trạng thái ban đầu. Hình 5b là kết quả của hình 5a khi có xâm
nhập, hệ thống điều khiển sẽ gửi tin nhắn SMS tới số điện thoại di động đặt trước đồng
thời đèn báo sáng, loa kêu. Quá trình báo động đạng hoạt động ta có thể nhấn nút reset để
tắt báo động hoặc hết thời gian trễ thì đèn báo, loa sẽ tắt như hình 5c. Khi tin nhắn SMS
được gửi đi thành công thì kết quả giống như hình 5d. Ở hình 5c khi có thêm xâm nhập
lần 2 bộ điều khiển sẽ xuất tín hiệu, có 2 tin nhắn, đèn báo lại sáng và loa kêu như hình
5e.
Trên thực tết có rất nhiều phần mềm, công cụ để mô phỏng hệ thống. Trong bài báo này,
chúng tôi sử dụng phần mềm WorkCraft 1.0 [4] để mô hình hóa hệ thống cảnh báo chống
xâm nhập trong nhà thông minh theo phương pháp Petri Net. Lưu ý rằng WorkCraft chỉ
chạy được trên nền tảng của Java.
Ấn Play chạy mô phỏng thì transitoin “DIEU KHIEN” được kích hoạt sẵn sàng hoạt động
như hình hình 5a. Khi ta kích vào transition ‘DIEU KHIEN’ đồng thời 3 place sẽ nhận
một token là: DEN BAO, LOA và SMS như hình 5b). Tiếp theo ta có thể ấn vào
transistion RESET hoặt đợi hết thời gian đặt thì token ở transition DEN BAO và LOA
chuyển tới place XAM NHAP, ta được hình 5c). Từ hình 5b) nếu ta nhấn vào transition
DI DONG thì token ở SMS sẽ mất bởi tin nhắn đã được gửi đi tac được hình 5d). Ở hình
5c) ta nhấn vào transition DI DONG ta lại được hình 5a). Từ hình 5c) ta nhấn vào
transition DIEU KHIEN lần 2 ở place SMS sẽ có 2 token như hình 5e).
Hình 6. Mô phỏng hệ thống an ninh sử dụng WorkCraft
IV. Kết luận.
Như vậy, quá trình mô hình hóa hệ thống chống xâm nhập bằng Petri Net trong đó dùng
WorkCraft 1.0 để mô phỏng trong nhà thông minh tác giả nhận thấy hoàn toàn phù hợp
với yêu cầu đặt ra. Ta có thể ở rộng cho các hệ thống khác phức tạp hơn. Có thể làm
hướng nghiên cứu phát triển cho các ngành, các lĩnh vực khác, đồng thời có thể thực hiện
kiểm tra, đánh giá cho các hệ thống.
Hiện nay có rất nhiều công cụ để chuyển mô hình hệ thống từ Petri Net sang chương trình
với các ngôn ngữ lập trình thông dụng như C, Javađiều đó giúp ta có thể phát triển hệ
thống sau khi mô hình hóa với Petri Net. q