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.
12 trang |
Chia sẻ: tranhoai21 | Lượt xem: 1278 | 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 Petrinet, để 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
Hình 1. Ví dụ minh họa về Petri Net
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ì 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:
Hình 2. Biểu diễn đường nối hai hướng
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.
.T=, PTP và T là 2 tập tách rời nhau : P
N là hàm xác định hướng3. I: (P x T) đườ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.
N là hàm xác định hướng đường nối từ các transition tới các output place.4. O:
(P x T)
N trạng thái (marking) ban đầu.5. M0: P
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ình 3. Mô hình ngôi nhà thông minh
* 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.
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