Simulating Observer in Supervisory Control- A Domain-based Method

Document Type : Research Article

Author

Dept. of Computer Engineering, University of Kashan, Kashan, Iran

Abstract

An Observer in the supervisory control observes responses of a discrete system to events of its environment and reports an unsafe/ critical situation if the response is undesired. An undesired response from the system indicates the system response does not adhere to users’ requirements of the system. Therefore, events and conditions of the system environment and user’s requirements of the system are basic elements to observer in determining correctness of the system response. However, the noteworthy matter is that the events, conditions, and requirements should be defined based on data of problem domain because discrete data are primary ingredients of the environment in discrete systems and they are used by system users as a gauge to express their requirements playing a vital role in safety-critical systems, such as medical and avionic ones. A large quantity of methods has already been proposed to model and simulate supervisory control of discrete systems however, a systematic method relying on data of problem domain is missing. Having extracted events, conditions, and user’s requirements from data of problem domain, a Petri-Net automaton is constructed for identifying violation of user’s requirements. The net constitutes the core of the observer and it is used to identify undesired responses of the system. In the third step, run-time simulation of the observer is suggested using multithreading mechanism and Task Parallel Library (TPL) technology of Microsoft. Finally, a case study of a discrete concurrent system is proposed, the method applied and simulation results are analyzed based on the system implementation on a multi-core computer.

Keywords


یک سیستم گسسته، سیستمی با تعداد شمارا از حالات است. این بدین معنی است که رفتار یک سیستم گسسته می­تواند به­طور منظم از طریق حالاتش به ­صورت انتزاعی بیان­ شود. در نتیجه، یک سیستم گسسته اغلب با یک ماشین حالت، مدل و تحلیل می­شود. یک سیستم را سیستم رخداد گسسته[1] گویند اگر حالات آن بر طبق رویداد رخدادهای گسسته تغییر کند و گذار حالت در زمان‌های گسسته در پاسخ به رخدادها انجام شود. از نمونه سیستم‌های رخداد گسسته می‌توان شبکه‌های رایانه‌ای، سیستم‌های ارتباطی، سیستم‌های ترافیک شهری و سیستم­های گردش کار را نام برد.

از آنجا که پاسخ یک سیستم رخداد گسسته ممکن است نیازهای کاربرانش را نقض کند، یک کنترل­کننده به نام سرپرست[2] برای سرپرستی رفتار سیستم لازم است. به این منظور، نظریه کنترل سرپرستی[3] به عنوان یک روش رسمی برای ساخت کنترل­کننده­ سیستم­های رخداد گسسته تدوین شد [1]. کنترل­کننده یا سرپرست، مسؤولیت پایش رفتار سیستم و هدایت آن را به یک حالت امن در زمانی که نیاز کاربران نقض می شود، به عهده دارد.

از طرف دیگر، برای مطالعه یک سیستم با استفاده از شبیه­سازی، ما نخست یک مدل انتزاعی از سیستم که در برگیرنده ویژگی‌های سیستم است، ارائه می دهیم. سپس این مدل را با نوشتن برنامه‌هایی که اجرای آنها رفتار مدل را شبیه‌سازی می­کند، پیاده‌سازی می‌کنیم. شبیه‌سازی یک سیستم رخداد گسسته، مدل سیستمی را مشخص می­کند که در آن تغییرات در زمان­های گسسته اتفاق می­افتد. برای مثال، در یک مدل از یک شبکه رایانه‌ای، ورود یک پیام به شبکه، یک تغییر در حالت مدل است. از آنجا که چنین تغییراتی مهم هستند، لازم است رفتار مدل را در زمانی که یک تغییر رخ می­دهد، مشاهده کنیم.

این مقاله تصمیم دارد تا به مدل­سازی بخش پایشگر کنترل سرپرستی با استفاده از داده­های دامنه مسأله که به وسیله کاربر سیستم بیان می­شود، بپردازد. شبیه­سازی چنین پایشگری با مسأله مشاهده و وارسی رفتار سطح پایین هنگام اجرای سیستم در مقابل توصیف­های سطح بالای نیازهای کاربران مواجه است، زیرا این دو به علت متفاوت بودن ماهیتشان، قابل مقایسه نیستند. به این منظور، رخدادها و نیازهای کاربران را باید از داده­های استفاده شده در دامنه مسأله منتزع کرد و سپس به فعالیت های هنگام اجرای سیستم نگاشت نمود. اگرچه روش­های متعددی تاکنون برای مدل­سازی و شبیه­سازی کنترل سرپرستی سیستم­های گسسته ارائه شده است، فقدان یک روش سیستماتیک که متکی به داده­های دامنه مسأله باشد، به چشم می­خورد.

پس از توصیف رسمی رخدادها و نیازها، یک اتوماتا که معرف نقض نیازهاست، ساخته می­شود تا یک توصیف مبتنی بر حالت از نقض نیازها ارائه شود. این توصیف به عنوان پلی بین توصیف­های مبتنی بر رخداد و مراحل شبیه‌سازی در نظر گرفته می­شود. در حقیقت، این اتوماتا به عنوان یک مدل انتزاعی برای پیاده­سازی مرحله شبیه­سازی استفاده می­شود. این اتوماتا که شامل هسته پایشگر است برای تعیین حالاتی که سیستم نباید وارد آنها شود، استفاده می­شود.

دو نوع همروندی وجود دارد: (1) همروندی در اجرا که به وسیله پاسخ سیستم، رخدادهای محیط سیستم و کنترل سرپرستی ایجاد می­شود و (2) همروندی بین رخدادها. تغییر سرعت و تغییر وضعیت ترمز قطار در سیستم حفاظت قطار، نمونه­ای از همروندی در رخدادهاست. این سیستم هدایت قطارها در نواحی "هشدار" ، "معمولی" و "آزاد" را از طریق توصیه دستورالعمل‌هایی برای تنظیم سرعت و ترمز به عهده می‌گیرد. بنابراین، مکانیسمی برای اداره همروندی در مرحله شبیه­سازی باید استفاده شود. در این راستا، ما شبیه­سازی پایشگر را با استفاده از کتابخانه TPL ماکروسافت روی رایانه چند هسته با زبان C# [2و3] انجام می­دهیم. ما از نخ ها و توابع TPL برای اداره همروندی در شبیه‌سازی رفتار سیستم رخداد گسسته استفاده می‌کنیم و سپس کارایی آنها را در یک مورد مطالعه مقایسه می‌کنیم. در خاتمه، روشمان را برای مدل‌سازی و شبیه‌سازی بخش پایشگر در کنترل سرپرستی سیستم حفاظت قطار به کار می­بریم. کنترل سرپرستی، وارسی ارضا نیازهای کاربران به وسیله سیستم را به عهده دارد.

این مقاله به صورت زیر ادامه می­یابد: در بخش دوّم ابتدا تعاریف رخدادها و ثابت­ها[4] را به صورت رسمی بیان و سپس بر اساس این تعاریف، نیازهای ایمنی[5] را تعریف می‌کنیم. در بخش سوّم، از تعاریف رخدادها و ثابت­ها برای توصیف مبتنی بر حالت سیستم استفاده می­کنیم. در بخش چهارم، به طراحی شبیه­ساز با در نظر گرفتن توصیف مبتنی بر حالت، می­پردازیم. برای نشان دادن این که چگونه باید روش ما برای یک مسأله خاص به کار رود، یک سیستم حساس به ایمنی را به عنوان یک مورد مطالعه در بخش پنجم مطرح می‌کنیم. در بخش ششم، به ارزیابی کارآیی روشمان می پردازیم. در بخش هفتم،کارهای مرتبط را مطالعه می‌کنیم تا تفاوت‌ها و تشابهات آنها را با روش پیشنهادی نشان دهیم. در بخش هشتم، نتایجی، که از روش پیشنهادی به دست می‌آید، مشخص می‌کنیم.

 

2- توصیف رخدادها و ثابت­ها

از داده­های دامنه مسأله که بر حسب واژگان کاربر سیستم بیان می­شود، یک محیط را با ویژگی­هایش توصیف می­کنیم که در آن یک ویژگی، مشخصه مهّمی از محیط سیستم است. پس از آن، رخدادها و ثابت­ها را با استفاده از این ویژگی­ها تعریف می­کنیم. در نهایت، نقض نیازهای کاربران سیستم را با یک رخداد و تعدادی ثابت توصیف می­کنیم. یک رخداد معرّف تغییری جدی در مقدار یک ویژگی است، امّا یک ثابت معرف عدم تغییر در یک ویژگی دیگر در زمان یک رخداد است. برای مثال، در سیستم کنترل قطار، قطار محیط سیستم است و "سرعت" و "ناحیه" دو ویژگی از این محیط هستند. جمله "سرعت قطار نباید در هنگام ورود به ناحیه هشدار بالا باشد"، یک نیاز ایمنی روی این دو ویژگی است که نباید نقض شود. عبارت " ورود قطار به ناحیه هشدار" یک رخداد و عبارت "سرعت بالا" یک ثابت است. به عبارت دیگر، این رخداد نیاز کاربر را نقض می کند، در صورتی که ثابت "سرعت بالا" برقرار باشد. در ادامه، به تعریف رسمی رخدادها، ثابت ها و نیازهای کاربر با استفاده از ویژگی­ها می­پردازیم. برای خوانایی بیشتر، جدولی برای توصیف نمادهایی که در بخش­های بعدی این مقاله استفاده می­شود، ارائه می­شود (جدول 1).

 

 

جدول (1): شرح نمادهای مورد استفاده

توصیف

نماد

مجموعه اعداد حقیقی

´

مجموعه اعداد حقیقی مثبت

´+

رابطه ترتیب

ویژگی

Pr

رابطه انعکاس

a ≤ a

رابطه پادمتقارن

a ≤ b & b ≤ a Þ a=b

رابطه تعدی

a≤ b & b≤ c Þ a≤ c

مجموعه تهی

Æ

iامین بازه ویژگی p

 

یک شاخص روی بازه i از ویژگی p در زمان t

( )t

یک رخداد. iامین بازه ویژگی p در زمان t برقرار می­شود

@T( )t

یک رخداد. از iامین بازه ویژگی p در زمان t خارج می­شویم

@F( )t

ثابت برقرار. iامین بازه ویژگی q  در زمان­های t,t+1 برقرار است و تغییر نمی­کند

t( )t,t+1

ثابت برقرار. iامین بازه ویژگی q در زمان­های t,t+1 برقرار نیست و تغییر نمی­کند

f( )t,t+1

ثابت­های برقرار / ثابت­های نابرقرار

Si,r t( )t,t+1 / Si,rf( )t,t+1

رخدادهای همروند

Si³1@T( )t or Si³1@F( )t

مجموعه متناهی از مکان­ها در شبکه پتری

{P1, P2, …, Pm}

مجموعه متناهی از گذارها در شبکه پتری

{T1, T2, …, Tn}

مجموعه متناهی از قوس­های جهت­­دار از مکان­ها به گذارها و بالعکس

{F1, F2,… , Fk)

رابطه نشانه­گذاری که معرف تعداد نشانه­ها (N) در یک مکان­ (P) است

M: P ® N

نشانه­گذاری اولیه مکان p

m0(p)

jامین نشانه­گذاری مکان p

(p)

مکان ورودی به گذار Ti

Ti

مکان خروجی از گذار  Ti

Ti

کتابخانه TPL ماکروسافت

TPL

واسط برنامه کاربردی

API

نقض نیازهای ایمنی (Safety Requirement Violation)

SRV

مکان تهی در شبکه پتری

 

 

مکان دارای نشانه در شبکه پتری

 

  • ·

گذار در شبکه پتری

 

قوس در شبکه پتری

 

 

 

2-1- مدل سازی داده‌ها

محیط سیستم به وسیله تعدادی ویژگی مشخص می­شود که در آن هر ویژگی که با Pr تعیین می شود. یک مجموعه خوش­ترتیب از مقادیر منطقی، شمارشی، صحیح یا اعشاری است. خصیصه ترتیب، مجموعه منطقی {درست، نادرست} را از مجموعه منطقی {نادرست، درست) متمایز می‌کند. بنابراین، در این مجموعه‌ها، یک خصیصه خوش ترتیب با ترتیب نوشتن عناصر آنها مشخص می شود. یک مجموعه شمارشی شامل مقادیری است که با اسامی، مانند مجموعه ناحیه = {هشدار، معمولی، آزاد} مشخص می­شود. یک مجموعه خوش­ترتیب، یک مجموعه کاملاً (به طور خطی) مرتب است اگر بتوان اوّلین عنصر آن مجموعه و هر زیر مجموعه­اش را مشخص کرد [4]. برای مثال، مجموعه اعداد صحیح ={…-2,-1,0,1,2,…}  ¢که یک مجموعه مرتب خطی است، خوش­ترتیب نیست، زیرا اوّلین عنصر آن را نمی­توان مشخص کرد، اما مجموعه اعداد مثبت ¢+={1,2,3,…} یک مجموعه خوش­ترتیب است، زیرا می‌توان اوّلین عنصر این مجموعه و هر زیر مجموعه آن را تعیین کرد. رابطه ترتیب ">" یک رابطه روی مجموعه Pr  است که سه خاصیت  P1(انعکاس)،  P2 (پادمتقارن) و P3(تعدی) را ارضا کند.

P1. a Î Pr, a ≤ a

P2. a, b Î Pr, if (a ≤ b and b ≤ a) Þ a=b

P3. "a, b, c Î Pr, if (a≤ b and b≤ c) Þ a≤ c.

 

تعریف: فرض کنید a و b دو عدد صحیح یا حقیقی متمایز باشند که a<b . یک بازه با نقاط نهایی a و b به عنوان یک بازه "بسته- باز" از a به b تعریف می‌شود و با [a ...b) نمایش داده می شود. بر اساس دامنه مسأله، هر Pr به بازه های منفصل با رابطه ">" شکسته می شود؛ به طوری که در دو بازه متوالی مانند [a…b) و [b…c) سوپرمم اوّلین بازه، می نیمم دومین بازه باشد. برای مثال، فرض­کنید که سرعت یک ویژگی محیطی باشد که مقدارش به حداکثر 10 مایل در ساعت می­رسد و مقادیر 3 ، 5/7 و 10  مقادیر مرزی هستند. بر اساس این مقادیر دامنه، سرعت را به بازه‌های [0…3)  و [3…7.5) و [7.5…10] تقسیم می‌کنیم. وقتی یک مقدار ورودی از محیط سیستم دریافت می‌شود، با می­نیمم مقدار هر بازه مقایسه می­شود تا بازه متناظر مشخص شود. این بازه، بازه­ای است که مقدار خوانده­شده از ورودی درآن قرار دارد. اکنون به تعریف ویژگی­های بازه­ها روی مقادیر صحیح یا اعشاری می‌پردازیم:

(1)

 = {a0 , a1 , . . . , an}  º

 

که Prp  معرف ویژگی p و یک مجموعه خوش­ترتیب است و Ii,p معرف i امین بازه بسته باز از این ویژگیاست.

(2)

= [a0 , … , aj), . . . , = [am , . . . , an)

 

که Ii,pیک عدد اعشاری یا یک عدد صحیح است و i متعلق به مجموعه [1…k] و p یک ویژگی است. رابطه (2) معرف این است که هر Ii,p یک بازه رویPrp  است که می‌نیمم و سوپرمم مقدارش بر اساس دامنه مسأله و به وسیله کاربر سیستم تعریف می­شود. برای مثال، برای یک وسیله نقلیه که با سرعت حداکثر 10 مایل در ساعت حرکت می­کند، بازه های[1…5)، [5…7) و [7…10] تعریف می‌شوند که به ترتیب معرف سرعت­های "کم" ، "متوسط" و "زیاد" است.

یک بازه، یک مجموعه شامل دو خصوصیت است: (1) یک مجموعه غیرتهی است که به وسیله رابطه (3) به صورت رسمی تعریف می­شود و (2) هیچ عنصر مشترکی با دیگر مجموعه­ها ندارد که به وسیله رابطه (4) به صورت رسمی تعریف می­شود. خصوصیت خوش­ترتیبی یک ویژگی با رابطه (5) بیان می­شود و معرف این است که هر زیر مجموعه از یک ویژگی، خوش‌ترتیب است.

(3)

"i: ¹Æ

(4)

"i, j: Ç = Æ : i ≠  j, , Î

(5)

a < b Þ a Î , bÎ where i < j  or  a,b Î

 

پس از آن که بازه­ها تعیین شدند، می­توانیم "شاخص" را تعریف کنیم. فرض کنید که Ii,p ، i امین بازه Prp  و t یک شماره دنباله باشد که معرف یک ترتیب روی مقادیر اندازه‌گیری­شده روی ویژگی Prp  باشد. یک شاخص روی بازه I که با Ini,p)t) نشان داده می­شود، یک نگاشت برای بازه Ii,pدر زمان t به صورت زیر است:

:  Þ  

 

از این به بعد، هر زمان اندازه­گیری از یک ویژگی را یک "رویداد" می­نامیم. بنابراین، می­گوییم که Ini,p)t) برقرار است اگر امین "رویداد" Prp  به بازه Ii,p تعلق داشته باشد در غیراین صورت Ini,p)t) برقرار نیست که به صورتIni,p)t) Ø نشان داده می­شود. برای مثال، در سیستم حفاظت قطار، فرض کنید Pr1 معرف ویژگی سرعت قطار باشد، در نتیجه، I21 معرف بازه Pr1خواهد بود و عبارت "In2,1)3)  برقرار است" به این معنی است که سومین سرعت اندازه­گیری شده قطار به دومین بازه Pr1تعلق دارد. توجه کنید که در هر زمان، فقط یک شاخص از یک ویژگی برقرار است، زیرا هر مقدار Prp به فقط یکی از بازه­هایش تعلق دارد (رابطه 6). به عبارت دیگر، این خصوصیت معرف این است که یک کمیت اندازه­گیری شده در زمان t نمی­تواند به دو بازه از یک ویژگی متعلق باشد، زیرا بازه­ها منفصل هستند.

(6)

"( , ): ∄ t, ( )t and ( )t  where  i≠j

 

2-2- تعریف رخداد

یک رخداد اتفاق می­افتد اگر تغییر مقدار یک ویژگی مانندPrp  باعث شود تا Prp  از بازه Ii,p به بازه­های مجاورش؛ یعنی Ii-1,pیاIi+1,pگذر کند. به طور مشابه، تغییر در Prp از بازه­های Ii-1,pیاIi+1,p به بازه مجاورش Ii,p معرف یک رخداد است. ما فرض می­کنیم که تغییر مقدار یک ویژگی تدریجی است؛ به این معنی که تغییر مقدار یک ویژگی یا در داخل یک بازه قرار دارد یا این که به انتقال به بازه مجاور خودش منجر می­شود. اکنون یک رخداد را به صورت رسمی تعریف می کنیم:

اگر دو رویداد متوالی از Prp که با t و  t+1 مشخص می­شود، به بازه Ii,p و یکی از بازه­های مجاور آن؛ یعنی Ii-1,pیاIi+1,pمتعلّق باشد، می­گوییم یک رخداد در زمان t رخ داده است (رابطه­های (7) و (8)). رابطه (7) دو مورد را بیان می‌کند: (1) آخرین زمانی که Prp در بازه Ii-1,pیاIi+1,p بوده‌است، زمان t است. این بدین معنی است که Prp در زمان t در Ini,pنبوده است که آن را با  نشان می‌دهیم. (2) در زمان t یک تغییر در مقدار Prp باعث شده است کهPrp بازه Ii-1,pیاIi+1,pرا ترک کند و وارد بازه Ii,pدر زمان  t+1شود. به طور مشابه، رابطه (8) بیان می‌کند که t آخرین زمانی است که Prpدر Ii,p بوده است و در زمان جاری یک تغییر در مقدار Prp موجب شده­است تا Prpبازه Ii,p را ترک کند و وارد بازه Ii-1,pیاIi+1,pدر زمان  t+1شود. این بدین معنی است که Prpدر Ini,pدر زمان  t+1نبوده است. بنابراین، ما این مورد را با  نشان می‌دهیم. همان طور که روابط (7) و (8) نشان می‌دهد، فقط از Ini,pاستفاده کرده­ایم. این بدین معنی است که دغدغه ما تنها ورود به یا خروج ازبازه Ini,pاست و وارد شدن به یا خروج از بازه‌های مجاور Ini,pدغدغه ما نیست. نمادهای "T@" معرف تغییر مقدار از false به true و "F@" معرف تغییر مقدار از true به false است که به ترتیب معرف قرارداشتن و قرارنداشتن در بازه Ini,pاست. رابطه های (7) و (8) معرف ورود به یا خروج از بازه Ii,pدر زمان t+1 است.

(7)

@T  defº [  and

(8)

@F  defº [ and

 

در حالتی که یک ویژگی از نوع منطقی باشد؛ یعنی مقادیر true و false داشته باشد، دو پارتیشن [true] و [false] خواهیم داشت. بنابراین، دو نوع رخداد می­تواند وجود داشته باشد که به وسیله رابطه­های (9) و (10) بیان بیان می­شود. نمادهای "T@" و "F@" معرف بودن و نبودن در بازه In1,1است کهPr1={true,false}  و I1,1=[true]  و I2,1=[false] . رابطه­های (9) و (10) می‌تواند از رابطه­های (7)و (8) به دست آید. رابطه (9) معرف خروج از بازه I1,1در زمان t+1 یا معرف ورود به بازه I2,1 در زمان t+1 است و رابطه 10 معرف ورود به بازه I1,1در زمان t+1 یا خروج از بازه I2,1 در زمان t+1 است.

 

 (9)

@T( )t defº [‌( )t and ( )t+1]  º  [( )t and ‌( )t+1]

(10)

@F( )t defº  [( )t  and ‌( )t+1]  º  [‌( )t and ( )t+1]

 

توجه داشته­باشید که رخدادها می توانند همزمان اتفاق بیفتند. به عبارت دیگر، در هر مرحله زمانی بیش از یک رخداد می­تواند رخ دهد. این بدین معنی است که مقدار ویژگی­ها می­تواند در هر زمان به صورت همزمان تغییر­کند. در رابطه­های (11) تا (14)، طرف چپ معرف تغییر مقدار Prpدر زمان t است و طرف راست معرف تغییر مقدار ویژگی دیگرمانند Prqدر همان زمان است، اما همان طور که در رابطه (6) بیان کردیم، حداکثر یک مقدار از یک ویژگی در هر مرحله از زمان می­تواند تغییر کند.

(11)

@T( )t and @T( )t

(12)

@F( )t and @T( )t

(13)

@F( )t and @F( )t

(14)

Î , Î , p ≠ q

 

2-3- تعریف ثابت

فرض کنید t و t+1 دو رویداد متوالی از ویژگی Prp باشد. می­گوییم یک ثابت روی بازه Ij,q وجود دارد اگر: (1) هر دو رویداد متعلّق به بازه Ij,q باشد یا (2) هیچ یک از آن دو در بازه Ij,q نباشند. حالت اوّل را یک ثابت برقرار رابطه (15) و حالت دوّم را یک ثابت نابرقرار گوییم رابطه (16). رابطه (15) اظهار می­دارد که Inj,q در زمان­های t و t+1 برقرار بوده است و رابطه (16) اظهار می­دارد که  Inj,q در زمان­های t و t+1 برقرار نبوده است.

 

(15)

t( )t,t+1 defº [( )t and ( )t+1]

 

(16)

f( )t,t+1 defº [‌( )t and ‌( )t+1]

 

 

مشابه با رخدادها، ثابت­ها می­توانند همروند باشند؛ یعنی ترکیبی از ثابت­های برقرار و نابرقرار در یک زمان وجود داشته باشد مشروط بر این که هر ثابت متعلّق به یک ویژگی جداگانه باشد. ثابت­­های همروند را با Si,r t( )t,t+1 یا Si,r f( )t,t+1نشان می­دهیم. این نمادها، ثابت­ها را روی بازه­های جداگانه­ای از ویژگی­ها توصیف می­کند. بنابراین برای هر دو ثابت همروند زیر شرط  p≠q وجود دارد:

 ( )t,t+1  ,   ( )t,t+1

 

2-4- نیاز ایمنی

همان طور که در بخش­های 2 و 3 بیان کردیم، یک نیاز ایمنی معرف این است که یک رخداد بد که معرف نقض نیازکاربر سیستم است، رخ نمی­دهد. ما این نقض را به صورت ترکیب رخدادها و ثابت­ها نشان می­دهیم. بروز چندین رخداد را با:

Si³1@T( )t یا Si³1@F( )t

 

و چندین ثابت را با:

Si³0t( )t یا Si³0f( )t

 

نشان می­دهیم. رخداد را با رابطه­های (7) و (8) و ثابت را با رابطه­های (15) و (16) تعریف کردیم. فرض کنید که ویژگی Pr2در سیستم حفاظت قطار معرف ناحیه­ای از خط آهن باشد که اوّلین بازه آن، بازه "هشدار" است، بنابراین In1,2 معرف "ناحیه هشدار" است و فرض کنید که ویژگی Pr3 معرف "ترمز قطار" باشد که اولین بازه­اش، بازه "آزاد" است. بنابراین In1,3 معرف "ترمز آزاد" است. درنتیجه رخداد @T(In1,2)t که به معنی and  (In1,2)t+1] In1,2)t)Ø [ همراه با ثابت t(In1,3)t,t+1که به معنی [(In1,3)t and (In1,3)t+1] است، یک نقض را نشان می‌دهد. ثابت t(In1,3)t,t+1  اظهار می دارد که در زمان رخداد (یعنی ورود قطار به ناحیه هشدار) ترمز قطار آزاد بوده است.

 

3- توصیف اتوماتا

مدل‌سازی رسمی رفتار نرم‌افزار و ویژگی‌های سیستم با استفاده از اتوماتا به عنوان پایه‌ای برای پایش حین اجرا، ایده‌ای است که در ادبیات وارسی حین اجرا بیان شده است [5]. در این میان، شبکه­های پتری اتوماتاهای مناسبی برای مدل­سازی و تحلیل سیستم­های رخداد گسسته همروند و غیرهمگام[6] هستند [6]. علاقه­مندی قابل ملاحظه­ای به شبکه­های پتری برای مطالعه در حوزه مسائل کنترل سرپرستی نشان داده شده­ است [12و11و10و9 و8 و7] زیرا این شبکه­ها قدرت مدل­سازی و تحلیل خوبی دارد. به علاوه، شبکه­های سطح بالا مانند شبکه­های پتری رنگی[7] توانایی­های اضافه­ای در مدل­سازی سیستم­ها دارند [14]. در این بخش، ما می­خواهیم روشی برای نگاشت توصیف رخدادها و ثابت­هایی که در بخش 2 بیان کردیم، به مؤلفه‌های شبکه پتری ارائه دهیم. شبکه­های پتری حاصل رفتار سیستم و محیط آن را نشان می­دهد.

تعریف: یک شبکه پتری معمولی یک 4 تایی به صورت PN = (P, T, F, m0) است که در آن P = {P1, P2, …, Pm} یک مجموعه متناهی از مکان‌هاست و با حباب نشان داده می­شود وT = {T1, T2, …, Tn}  مجموعه‌ای متناهی از گذارهاست که با خط عمودی پررنگ نشان داده می­شود وF = {F1, F2,… , Fk)  یک مجموعه متناهی از قوس­های جهت­دار از مکان­ها به گذارها یا بالعکس است که با پیکان نمایش داده شده است و M: P → N یک نشانه­گذاری[8] است که معرف تعداد نشانه­ها[9] در مکان­هاست وm0  معرف نشانه­گذاری اولیه است [6]. یک نشانه­گذاری با برداری مشخص می­شود که اعضایش معرف تعداد نشانه­ها در مکان­هاست. برای مثال، بردارm0=[1,0,0]  معرف این است که m0(P1)=1, m0(P2)=0, m0(P3)=0 یعنی مکان‌های P1، P2 و P3 در ابتدا به ترتیب شامل یک، صفر و صفر نشانه است. مشابه با بردار m0  ، بردارmi  معرف نشانه­گذاری شبکه پتری در زمان i ام است.

تعریف: فرض کنید که مجموعه همه مکان­های ورودی به خروجی از گذار Tiبه ترتیب با ·Ti و ·Tiنشان داده شوند. گذار Tiاز مجموعه گذارهای T در شبکه پتری PN = (P, T, F, M) را در نشانه­گذاری miتوانا[10] گوییم اگر " p Î •Ti, mi(p) ≥ 1. اگر گذار Tiتوانا باشد، می‌تواند عمل کند[11]. عمل کردن گذار Ti در نشانه گذاری mj(p) که با رابطه 17 نشان داده می‌شود که به نشانه‌گذاری mj+1(p) منجر می‌شود. در این حالت می­گوییم که mj+1(p) از mj(p) قابل دسترسی است.

(17)

 

 

 

3-1- ساختن اتوماتا

وقتی مکان‌ها، گذارها و نشانه­گذاری­ها تعریف شدند، از ویژگی­های محیطی سیستم برای ساختن اتوماتای پتری استفاده می­کنیم. برای هر ویژگی مانندp  یک زیرشبکه درنظر می­گیریم که در آن برای هر Ii,p، یک محل منظور می­شود و محل دارای نشانه، متناظر با بازه جاری از ویژگی  pاست. حال ثابت­های t( )t  یا  f( )tو رخدادهای @T( )t یا F( )tرا که در بخش 2 توصیف شدند، به مکان­ها و گذار بین این مکان­ها منتسب می کنیم.

ویژگی­های محیطی دو نوع هستند: پایشی و کنترلی. یک ویژگی پایشی مانند "ناحیه ورود قطار" ویژگیی است که باید به وسیله سیستم پایش شود و یک ویژگی کنترلی مانند "ترمز قطار" ویژگیی است که باید برای کنترل محیط مانند قطار استفاده شود. پس از آن که زیرشبکه­ها برای ویژگی­ها مشخص شدند، یک شبکه سراسری از اتصال زیرشبکه­های حاصل به دست می­آوریم. زیرشبکه­ها، شبکه‌های پتری هستند که برای ویژگی­های پایشی و کنترلی ساخته شده­اند و شبکه سراسری، در حقیقت اتصال بین این دو نوع ویژگی­های متناظر را نشان می­دهد. برای مثال، در سیستم حفاظت قطار، ویژگی­های "سرعت قطار" و "ناحیه ورود قطار" که ویژگی­های پایشی هستند، برای تعیین وضعیت "ترمز قطار" که ویژگی کنترلی است، استفاده می‌شوند. بنابراین، زیرشبکه­های پتری حاصل از ویژگی­های پایشی به زیرشبکه­های پتری حاصل از ویژگی‌های کنترلی متصل می­شوند. سپس شبکه پتری سراسری حاصل یک توصیف مبتنی بر حالت از رفتار محیط سیستم و پاسخ­های سیستم را مشخص می­کند.

علاوه بر شبکه سراسری پتری، شبکه‌ای نیز برای نقض نیازهای کاربران سیستم ساخته می­شود. عمل کردن هر گذار در این شبکه با یک نشانه­گذاری قابل دسترس رابطه (17) نشان داده می­شود که به معنی نقض یک نیاز است. این نقض نیاز کاربر، به خاطر بروز یک رخداد و برقراری یک یا چند ثابت است. وقتی رابطه 17 برای نقض یک نیاز استفاده می­شود، نماد mj(p) یک حالت (نشانه­گذاری) امن و نماد mj+1(p) یک حالت (نشانه­گذاری) ناامن یا بحرانی را نشان می­دهد. عبارت @T( )tبه این معنی است که اگر گذار عمل کند، مقدار Ini,pدر مکان ورودی شبکه (که یک مکان امن است) false است و در مکان خروجی (که یک محل ناامن یا بحرانی است) برقرار می شود ((true. به طور مشابه، عبارت @F( )t به این معنی است که مقدار Ini,pدر مکان ورودی شبکه برقرار است (true) و در مکان خروجی شبکه برقرار نیست (false). عبارت     t( )t,t+1 به این معنی است که مقدار Inj,rدر مکان ورودی برقرار است(true) و وقتی گذار عمل می­کند، همچنان برقرار باقی می ماند. به طور مشابه عبارت           f( )t,t+1 به این معنی است که مقدار Inj,rدر هردو مکان برقرار نیست. چنین توصیفی نشان دهنده حالت­های ناامن یا بحرانی (یعنی نقض یک نیاز کاربر) است که برای وارسی حین اجرای عملیات سیستم استفاده می­شود. اگر یک مکان در شبکه پتری را یک حالت حین اجرا در نظر بگیریم، شبکه پتری پلی روی شکاف بین رخدادهای محیطی و عملیات حین اجرای سیستم خواهد بود که برای وارسی حین اجرای رفتار سیستم به منظور مطابقت با نیازهای ایمنی مبتنی بر دامنه و سطح بالای کاربران استفاده می شود.

 

4- طراحی شبیه­ساز پایشگر

هنگامی که یک رخداد در محیط سیستم اتفاق می­افتد، پایشگر، نشانه­گذاری جاری در شبکه پتری نقض نیازها که یک نشانه­گذاری امن است و همچنین، رخداد و ثابت­هایی را که معرف شرایط محیط هستند، می­گیرد. اگر گذاری از شبکه پتری حاصل بتواند عمل شود، نشان دهنده این است که پاسخ سیستم نامطلوب بوده و یک نقض رخ­داده است. برای مثال، در سیستم حفاظت قطار که قطار وارد ناحیه هشدار می­شود و سرعت بالا دارد، مشخص می­شود که سیستم سرعت قطار را کنترل نکرده ­است و نقض یک نیاز کاربر محسوب می­شود. این نقض با عمل­کردن یک گذار در شبکه پتری کشف می­شود. اگر سرعت قطار پایین باشد، هیچ گذاری عمل نمی­کند و در نتیجه هیچ نقض نیازی نداریم.

همان طور که در بخش 2-2 بیان شد، یک رخداد به عنوان تغییر مقدار یک ویژگی تعریف می­شود که به ایجاد یک گذار از بازه جاری ویژگی به بازه بعدی یا قبلی آن منجر می‌شود. بنابراین، برای تعیین این که آیا اتفاقی رخ داده است یا نه، پایشگر مقدار تغییر­یافته یک ویژگی را از محیط سیستم دریافت می­کند و آن را با می­نیمم مقدار هر بازه از آن ویژگی مقایسه می­کند تا بازه متناظر در ویژگی را تعیین کند. پس از آن، پایشگر پاسخ سیستم را با پاسخ صحیح در بازه متناظر مقایسه می­­کند. متوسط زمان مقایسه از مرتبه n/2 است که n تعداد بازه­های ویژگی است.

برای شبیه­سازی پایشگر در کنترل سرپرستی، مکانیسمی برای اداره رخدادهای همروند لازم است، زیرا پایشگر باید قادر به دریافت و اداره رخدادهایی که به صورت همروند در محیط سیستم رخ می­دهد، باشد. به طور سنتی، الگوی برنامه­نویسی چندنخی برای پشتیبانی همروندی در رایانه‌های تک­هسته­ استفاده می­شود، اما رشد فزاینده پردازنده­های چندهسته، الگوهای جدید همروندی را در استفاده از پردازنده­ها ایجاد کرده­است. علاوه براین، پردازنده­های چند­هسته می­توانند برای افزایش کارآیی اجرای برنامه ها در اداره داده­ها و وظایف موازی، مدیریت شوند. کتابخانه موازی وظایف (TPL) کتابخانه­ای در محیط .NET است که برنامه­نویسان را برای استفاده از پردازنده‌های چندهسته در اجرای موازی برنامه­ها، توانا می‌سازد. در TPL، یک وظیفه به یک نخ منتسب می شود و سپس وظایف موازی به صورت نخ­های همروند اجرا می‌شوند. TPL مجموعه‌ای از واسط‌های برنامه‌نویسی کاربردی را فراهم می‌سازد که به وسیله آنها برنامه‌نویسان قادر می‌شوند عملیاتی مانند انتظار برای اتمام وظایف، لغو وظایف، ایجاد وظایف طولانی اجرا و اجرای وظایف را به صورت همگام اجرا کنند. علاوه براین، آن الگوی زمانبندی وظایف را با تعیین سطح همروندی و اولویت­ها، پیکربندی می­کند. پایشگر را با استفاده از مکانیسم­های: (1) نخ­، (2) وظیفه (3) ترکیب نخ و وظیفه شبیه­سازی می­کنیم و آن را در "سیستم حفاظت قطار" در بخش بعدی به کار می­بریم تا کارآیی مکانیسم­ها را با یکدیگرمقایسه­کنیم.

 

5- مورد مطالعه: سیستم حفاظت قطار

در این بخش روش­ پیشنهادی را برای طراحی پایشگر کنترل سرپرستی سیستم حفاظت قطار به کار می­بریم و به بررسی کارایی آن می­پردازیم. این سیستم را Cab signaling گویند که به صورت پیوسته اطلاعاتی را درباره محل و سرعت قطار دریافت می­کند تا آن را با اتخاذ کنش‌های مناسب روی سرعت و ترمز کنترل کند. این سیستم­ در بسیاری از کشورها مانند فرانسه، آلمان و ژاپن استفاده می­شود. این سیستم سیگنال­های سبز، زرد یا قرمز را برای راننده قطار نمایش می­دهد تا با توجه به آن راننده قطار سرعت خود را تنظیم کند. سیگنال­های سبز، زرد و قرمز به ترتیب معرف نواحی "امن"، "محدود" و "خطرناک" است. در ناحیه امن قطار می­تواند دارای هر سرعتی باشد، در ناحیه محدود، سرعت قطار دارای حداکثر مجازی است و در ناحیه سوم، خطر تصادف وجود دارد و سرعت باید حداقل شود. وقتی که راننده قطار به سگینال صادره توجهی ندارد و از محدوده سرعت مجاز تخطی می­کند، این سیستم وظیفه دارد تا به راننده قطار هشدار دهد. اگر راننده­ قطار به هشدارها پاسخ ندهد، سیستم خود برای عمل ترمزگیری اقدام خواهد­کرد. سرعت و ترمز قطار براساس نوع سیگنال مشخص می­شود. کنش­هایی که انتظار می­رود تا به وسیله کنترل سرپرستی سیستم اتخاذ شود، به قرار زیر است:

الف- اگر سرعت قطار زیر سرعت مجاز است، کنشی لازم نیست؛

ب- اگر قطار با سرعت خیلی زیاد در هنگام اعلام سیگنال قرمز حرکت می­کند، سیستم باید هشدار دهد و سپس اگر راننده قطار هشدار را جدی نگرفت، خود ترمز قطار را بکشد؛

ج– سیگنال زرد معرف این است که قطار باید آماده توقف حرکت در سیگنال بعدی باشد. بنابراین، کنترل کننده سرپرستی باید منحنی ترمز را محاسبه کند تا سرعت قطار را در هنگام ورود به ناحیه متعادل کاهش دهد؛

د– هنگامی که قطار متوقف شد، ترمزهایش باید آزاد شود.

در زیر بخش­های بعدی، پایشگر را با استفاده از موارد زیر شبیه­سازی می­کنیم: (1) اتوماتا؛ (2) تعیین ویژگی­های قطار به عنوان محیط سیستم و (3) توصیف رخدادها، ثابت‌ها و نیازهای ایمنی کاربران.

 

5-1 مدل سازی داده­ها

با در نظرگرفتن کنش­هایی که باید به وسیله کنترل سرپرستی سیستم برای کنترل محیط سیستم گرفته شود، سه ویژگی محیطی برای کنترل­کردن محیط استفاده می­شود: (1) سرعت قطار که با نماد Pr1 نشان می­دهیم؛ (2) ترمز قطار که با نماد Pr2 نشان می­دهیم و (3) ناحیه­ای که قطار وارد می­شود که با نماد Pr3 نشان می­دهیم. اولین و سومین ویژگی از نوع شمارشی (ر. ک. بخش 2-1) و دومین ویژگی یک عدد صحیح است. سیستم نواحی را که قطار وارد می­شود، پایش می­کند و بر اساس آن قطار را از طریق سرعت و ترمز آن کنترل می­کند. محاسبات برای اعمال ترمز و کاهش سرعت قطار به وسیله نرم­افزار سیستم انجام می‌شود.

 

Pr1: VELOCITY = ¢+ = {v1, v2, . . ., vn}       vi < for i < j

Pr2: BRAKE = {putOn, putOff}

Pr3: REGION = {free, moderate, cautionary}

 

براساس بخش 2-1 ، ویژگی Pr1 را به بازه‌های جدا از هم و متناهی با رابطه ترتیب <” “ تقسیم می‌کنیم؛ به طوری که برای هر دو بازه متوالی، مانند [a1…aj)  و [aj+1…am)  سوپرمم اولین بازه و می­نیمم دومین بازه است. براساس نظر خبره سیستم، سرعت کمتر از یک مقدار مشخص، مانند vi معرف سرعت مجاز در همه وضعیت­هاست و سرعت بین دو مقدار مشخص مانند vi و vj وقتی مجاز است که قطار سیگنال قرمزی را دریافت نکند و سرعت بیش از مقدار vj وقتی مجاز است که قطار از سیستم سیگنال سبز دریافت کند. در نتیجه، ویژگی Pr1 به سه بازه ،  و تقسیم می­شود که:

VELOCITY = ¢+ = {v1, v2, . . ., vn} = È È  :   = [v1…vi), =[vi… ), =[ … vn)

پس از تعیین بازه­ها، شاخص‌ها را تعریف می‌کنیم. فرض کنید که بازه ، iامین بازه ویژگی Pr1 و t یک شماره توالی باشد که معرف یک ترتیب روی مقادیر اندازه‌گیری شده ویژگی Pr1 باشد. یک شاخص روی بازه I که با ( )tنشان داده می­شود، یک نگاشت برای بازه  در زمان t است (رابطه 18).

(18)

( )t:( )t=

 

شاخص­های ،  و  معرف نمادهای "کم"، "متوسط" و "زیاد" هستند. ویژگی Pr2 (برای ترمز) شامل دو بازه [putOn] و[putOff] با مقادیر منطقی و ویژگی Pr3 (برای ناحیه) شامل سه بازه free، moderate و cautionary با مقادیر شمارشی است. در حقیقت، هر بازه یک کمیت است که نشان دهندة مجموعه‌ای از مقادیر است. این کمیت‌ها به عنوان شاخص‌های بازه‌ای منظور می‌شوند:

 

= putOn, = putOff

= free, = moderate, =cautionary

 

همان طور که در بخش 4 بیان شد، هنگامی که مقدار یک ویژگی محیطی تغییر می­کند، پایشگر آن را از محیط سیستم دریافت می­کند و آن را با مینیمم مقدار هر بازه از ویژگی مقایسه می­کند تا بازه متناظر با آن را تعیین کند. با تعیین بازه، کنش مورد انتظار سیستم مشخص می­شود.سپس پایشگر کنش مورد انتظار را با پاسخ واقعی سیستم مقایسه می­کند که درستی رفتار سیستم مشخص شود.

 

5-2- تعریف رخداد و ثابت

براساس رابطه­های (7) و (8) (یک رخداد به معنی تغییر بازه در یک خصیصه است) و رابطه­های (15) و (16) (یک ثابت به معنی عدم تغییر بازه یک ویژگی در هنگام یک رخداد است)، ما رخدادها و ثابت‌های محیطی سیستم حفاظت قطار را تعریف می­کنیم. در ارتباط با شاخص­های بازه­ای برای ویژگی Pr3 (ناحیه آزاد، محدود و هشدار) رخدادها و ثابت­های زیر را می­توان داشت:

 

T(free)t , @F(free)t, @T(moderate)t,F(moderate)t, @T(cautionary)t and @F(cautionary)t

t(free)t,t+1 , f(free)t,t+1, t(moderate)t,t+1,f(moderate)t,t+1, t(cautionary)t,t+1 and f(cautionary)t,t+1

 

توجه داشته باشید که رخداد "@F" می‌تواند با رخداد "@T" روی بازه دیگر تعریف شود. برای مثال، رخداد "@F(moderate)" زمانی رخ می‌دهد که "@T(free)t" یا "@T(cautionary)t" رخ دهد. به طور مشابه یک ثابت از نوع "t" می­تواند با دو ثابت "f" بیان شود. برای مثال، ثابت "t(free)t,t+1" می­تواند با ثابت‌های "f(moderate)t,t+1" و "f(cautionary)t,t+1" بیان شود. به طور مشابه، رخدادها و ثابت­ها برای ویژگی­های Pr1 و Pr2 تعریف می­شوند.

 

5-3- نیازهای ایمنی

با استفاده از تعریف نیاز ایمنی (بخش 2-4 را ملاحظه کنید) و کنش­هایی که باید به وسیله سیستم در برابر رخدادهای محیطی انجام شود (این کنش­ها در بخش 5 با موارد الف تا د مشخص شدند)، نیازهای ایمنی را برای سیستم حفاظت قطار تعیین می­کنیم. در ارتباط با کنش "ب" در بخش 5، یک رخداد بد وجود دارد که باید به وسیله پایشگر به صورت زیر هشدار داده­ شود. هنگامی که قطار می­خواهد وارد ناحیه هشدار شود، سیستم باید یک سیگنال قرمز را برای قطار صادر­کند. بنابراین، یک رخداد بد اتفاق خواهد افتاد اگر سیستم چنین سیگنالی را صادر­نکند یا اینکه راننده قطار توجهی به آن نکند. در این راستا، نقض­های نیازهای ایمنی عبارتند از: (1) قطار با سرعت بالا در ناحیه هشدار حرکت می­کند و (2) ترمز قطار در ناحیه هشدار آزاد است. این دو نقض را با SRV1 و SRV2 تعریف می­کنیم و با رابطه­های (19) و (20) نشان می­دهیم.

(19)

SRV1: @T(cautionary)t and t(high)t,t+1

(20)

SRV2: @T(cautionary)t and t(putOff)t,t+1  

 

در ارتباط با کنش "ج" در بخش 5، یک رخداد بد وجود دارد که باید به وسیله پایشگر به شیوه زیر هشدار داده شود: هنگامی که قطار می‌خواهد در سیگنال بعدی توقف کند، سیستم باید یک سیگنال زرد را صادر کند. بنابراین، یک رخداد بد رخ خواهد داد وقتی که سیستم، سیگنالی را صادر نکند (این می‌تواند به دلیل عدم محاسبه صحیح منحنی ترمز کاهش سرعت قطار باشد) یا این که راننده قطار، سرعت قطار را کاهش ندهد. بنابراین، نقض‌های نیازهای ایمنی که با SRV3 و SRV4 (رابطه‌های 21 و 22) نشان داده می­شوند، عبارتند: از (1) سرعت قطار در هنگام ورود به ناحیه محدود بالاست و کاهش نمی­یابد و (2) وقتی قطار وارد ناحیه محدود می­شود، راننده قطار ترمز نمی­گیرد.

(21)

SRV3: @T(moderate)t and t(high)t,t+1 and ‌@F(high)t

(22)

SRV4: @T(moderate)t and @F(putOn)t,t+1

 

نقض­های SRV1 و SRV2  بحرانی و نقض‌های SRV3 و SRV4 ناامن هستند. به ترتیب نقض­های بحرانی و ناامن هستند. یک نقض بحرانی معرف یک موقعیت خیلی خطرناک است، در حالی که یک نقض ناامن معرف موقعیتی است که می­تواند به وضعیت خطرناک منجر شود.

در ارتباط با کنش "الف" در بخش 5، هیچ نیاز ایمنی وجود ندارد، زیرا هیچ رخداد بدی اتفاق نمی‌افتد حتی اگر سیستم سیگنال قرمزی را صادر کند یا این که دستور ترمز گرفتن بدهد و به طور مشابه، در ارتباط با کنش "د" در بخش 5، هیچ نیاز ایمنی وجود ندارد، زیرا اگر ترمز آزاد نشود، رخداد بدی اتفاق نمی­افتد.

 

5-4- ساخت اتوماتا

براساس بخش 3-1، دو اتوماتا ساخته می­شود: (1) برای نمایش رفتار سیستم و (2) برای نمایش نقض­های بحرانی و ناامن نیازهای ایمنی. از اتوماتای اول برای پایش رفتار سیستم و از اتوماتای دوم برای کنترل سیستم استفاده می­شود. برای ساختن اتوماتای اول، یک شبکه برای هر ویژگی محیطی ساخته می­شود و سپس یک شبکه سراسری با استفاده از اتصال هر شبکه ایجاد می شود. براساس بخش 5-1، محیط سیستم یعنی قطار، 3 ویژگی Pr1، Pr2 و Pr3 دارد که به ترتیب شامل 3، 2 و 3 بازه است. بنابراین، سه شبکه پتری برای ویژگی­های Pr1، Pr2 و Pr3 ساخته می­شود (نک. بخش 3-1). در زیر، مجموعه­های P، T و m0 تا m2 به ترتیب مکان‌ها، گذارها و نشانه‌گذاری‌ها را برای شبکه اول توصیف می­کند که محل­های P0 تا P2 معرف شاخص‌های بازه­ای "کم"، "متوسط" و "زیاد" برای سرعت هستند و نشانه­گذاری­های m1 و m2 از نشانه­گذاری m0 بر طبق رابطه 17 ایجاد می­شوند.

P = {P0, P1, P2}, T = {T0, T1, T2, T3}, •T0={P0}, T0•={P1},  •T1={P1}, T1•={P2}, •T2={P1}, T2•={P0},

•T3={P2}, T3•={P1},  m0={1,0,0}, m1={0,1,0}, m2={0,0,1}

 

به طور مشابه، مجموعه­های P´،  T´ و m´0 و m´1 به ترتیب مکان­ها، گذارها و نشانه­گذاری‌ها را برای شبکه دوم توصیف می­کند که محل‌های P'1 و P'2به ترتیب معرف شاخص­های بازه‌های "ترمز گرفته­شده" و "ترمز آزاد" و نشانه­گذاری از نشانه­گذاری بر طبق رابطه (17)، ایجاد می‌شود.

P' = {P'1, P'2}, T' = {T4, T5}, •T4={P'1}, T4•={P'2}, •T5={P'1}, T5•={P'2}, m'0={1,0}, m'1={0,1}

 

به طور مشابه، مجموعه‌های P´،  T´ و m´0 و m´2 به ترتیب مکان ها، گذارها و نشانه‌گذاری‌ها را برای سومین شبکه توصیف می‌کند که محل‌های P"1 ،  P"2و  P"3  معرف شاخص بازه‌های "آزاد"، "محدود" و "هشدار" است و نشانه‌گذاری‌های m´1 و m´2 از نشانه‌گذاری‌m´0 براساس رابطه (17) ایجاد می­شود.

 

P" = {P"1, P"2, P"3}, T" = {T6, T7, T8, T9}, •T6={P"1}, T6•={P"2}, •T7={P"2}, T7•={P"1}, •T8={P"2}, T8•={P"3}, •T9={P"3}, T9•={P"2}, m"0={1,0,0}, m"1={0,1,0}, m"2={0,0,1}

 

شکل های  (1)،(2) و (3) به ترتیب شبکه‌های پتری را برای سه شبکه فوق‌الذکر نشان می‌دهد که مکان های نشانه‌دار معرف مکان‌های جاری در هر شبکه است.

 

 

 

 

 

شکل (1):شبکه پتری برای ویژگی Pr1

 

 

 

 

 

شکل (2): شبکه پتری برای ویژگی Pr2

 

 

 

 

شکل (3):شبکه پتری برای ویژگی Pr3

 

ویژگی Pr3 که معرف ناحیه(REGION) است، یک ویژگی پایشی است، زیرا به وسیله سیستم نظارت می­شود، در حالی که ویژگی­هایPr1  و Pr2  که به ترتیب معرف سرعت (VELOCITY) و ترمز(BRAKE) است، نقش ویژگی­های هم ­پایشی و هم­کنترلی را ایفا می­کنند زیرا هر دو ویژگی به وسیله سیستم پایش می‌شوند، تا اگر لازم باشد تنظیم (کنترل) می­شوند. شکل (4)، شبکه سراسری است که با استفاده از زیر شبکه‌ها ساخته شده است. در این شکل، زیر­شبکه مربوط به ویژگی Pr3(سمت چپ شکل) ورودی به سیستم است، در حالی که زیر شبکه­های مربوط به ویژگی‌های  Pr1 و Pr2 (بالا و سمت راست شکل) هم ورودی و هم خروجی سیستم است.

اکنون به روش ساخت اتومای نقض نیازها می پردازیم که نشان دهنده نقض‌های بحرانی و ناامن نیازهای ایمنی است و با توجه به رابطه‌های (19) تا (23) به دست می‌آید. برای این که رخداد  در رابطه (19) عمل کند، گذار T8 در شکل (3) باید توانا باشد و ثابت t(high)در رابطه (19) معرف این است که محل P2 در شکل 1، یک نشانه دارد. رخداد  به همراه ثابت  در رابطه (19) با شکل(5)نشان داده می‌شود که در آن نشانه‌گذاری m0=[0, 0, 1, 0, 1, 0]، نشانه‌گذاری اولیه است. هنگامی‌که گذار T8 در شکل (5) عمل می‌کند، نشانه‌ها از محل‌های P2  و P²2  حذف می‌شود و محل P²3  دارای نشانه می­شود که با نشانه‌گذاری m1=[0, 0, 0, 0, 0, 1] مشخص می‌شود. نشانه گذاری m1 از نشانه­گذاری m0 به وسیله پایشگر با استفاده از رابطه (17) به دست می­آید. اتوماتای نقض برای رابطه‌های (20) تا (22) به صورت مشابه ساخته می‌شود.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

شکل (4): شبکه پتری سیستم حفاظت قطار

 

 

شکل (5): اتوماتای نقض نیاز SRV1

 

 

5-5- شبیه‌سازی پایشگر

ما از زبان C# همراه با نخ­ها و از کتابخانه TPL در محیط .NET برای : (1)شبیه­سازی رخدادهای همروند و ثابت­ها در رفتار سیستم و (2) مشاهده و وارسی آنها به وسیله پایشگر در مقابل الگوهای نقض نیازها استفاده می‌کنیم. این الگوهاکه در شکل (5)نشان داده شده است، با یک همروندی نامطلوب تعیین می­شود. این الگوهای همروند در شکل ترکیب رخدادها و ثابت­ها روی ویژگی‌های Pr1 تا Pr3 ظاهر می­شود (نک. بخش 5-1). برای مثال نقض  Ù  در شکل (5)، یک نمونه همروند است که معرف رخداد ورود قطار به ناحیه هشدار در هنگام بالا بودن سرعت قطار (که یک ثابت است) است. برای شبیه­سازی با استفاده از کتابخانه TPL، برای هر اجرای همروند، یک وظیفه در نظر می­گیریم. سیستم کنترل قطار و محیط آن (قطار) با سه اجرای همروند مدل می­شوند: (1) رفتار قطار در ناحیه؛ یعنی ورود یا خروج قطار به یا از ناحیه، (2) رفتار سرعت قطار یعنی افزایش یا کاهش سرعت و (3) رفتار ترمز قطار یعنی گرفتن یا آزاد کردن آن. همچنین، یک وظیفه همروند برای اجرای برنامه پایشگر منظور می­شود تا رخدادها و ثابت­های گزارش شده به وسیله سه وظیفه فوق‌الذکر را دریافت کند.

ما از کتابخانه TPL و نخ‌ها برای شبیه‌سازی اجراهای همروند استفاده می­کنیم، اما کتابخانه TPL، دید روشن‌تری از رفتار سیستم و محیط آن می­دهد. انتساب وظایف به هسته‌های پردازنده به صورت پویاست، در حالی در مکانیسم چندنخی انتساب هر نخ اجرا به یک هسته به صورت ایستاست. روش پویا با سوئیچ کردن بین هسته­های یک پردازنده، یک اجرا را به هر هسته از پردازنده که بیکار است، می­دهد در حالی که در روش ایستا، یک هسته وقف یک نخ می­شود و از هسته بیکار پس از اتمام وظیفه‌اش استفاده نمی­شود. در نتیجه، شبیه‌سازی شبکه‌های همروند با استفاده از کتابخانه TPL دید واقعی‌تری از همروندی در سیستم­های حقیقی و محیط آنها را می‌دهد. علاوه بر این، وقتی تعداد فرآیندهای همروند افزایش می‌یابد، استفاده از کتابخانه TPL به کارآیی محاسباتی سطح بالاتری روی پردازنده‌های چند هسته‌ای نسبت به استفاده الگوی چندنخی منجر می‌شود.

شکل (6) زمان اجرای شبیه سازی را با چهار مکانیسم نشان می­دهد: (1) تک نخی؛ (2) چندنخی؛ (3) مبتنی بر وظیفه و (4) ترکیب چندنخی و مبتنی بر وظیفه. ما این مکانیسم‌ها را روی یک پردازنده دو هسته برای 10، 20 و 30 قطار به کار بردیم .شکل (6) زمان اجرا را نشان می­دهد که در آن محور عمودی نشان دهنده زمان و محور افقی نشان دهنده مکانیسم‌های 1 تا 4 است. میله­ها زمان اجرا را برای 10، 20 و 30  قطار نشان می­دهد. همان طور که شکل (6) نشان می‌دهد، مکانیسم مبتنی بر وظیفه حداقل زمان اجرا را دارد. شکل‌های (7) تا (9)بهره­وری هسته­ها را در استفاده از مکانیسم­ها برای 50  قطار نشان می­دهد. در حالی که شکل‌های (7) و (9) نشان می­دهد که مکانیسم‌های چندنخی و ترکیبی (چندنخی و مبتنی بر وظیفه) از 68% و 54% و هسته­ها استفاده کرده­اند، شکل (8) نشان می­دهد که مکانیسم مبتنی بر وظیفه از هسته­ها نزدیک 100% بهره می‌گیرد.

 

6- ارزیابی کارآیی روش پیشنهادی

این بخش کارآیی روش پیشنهادی را ارزیابی می­کند. ما روش پیشنهادی را برای نیازهای ایمنی کاربران سیستم حفاظت قطار به کار گرفتیم تا پایشگر سیستم را مدل و شبیه­سازی کنیم. ارزیابی قدم­های روش پیشنهادی به شرح زیر است: (1) کارآیی مستندسازی نیازهای کاربران. در ارتباط با سیستم­های حساس به ایمنی، کارشناس سیستم مستندات نیازها را مرور می­کند تا مطمئن شود که آنها سازگار و صحیح هستند. چنین مرورهایی کارآ خواهد بود اگر مستندات واضح و قابل فهم برای کارشناس باشد. برای محقق شدن این ویژگی، ما نیازهای ایمنی مبتنی بر دامنه مسأله را به زبان کارشناس و خبره سیستم بیان کردیم و سپس انتزاع کمیت­های سیستم را با تقسیم آنها به کمیت­های پایشی و کنترلی نشان دادیم. (2) کارآیی توصیف نیازها. در سیستم­های حساس به ایمنی، توصیف نیازها باید قابل وارسی به صورت رسمی (مبتنی بر ریاضی) باشد تا بتوان درستی و سازگاری آنها را نشان داد. (3) کارایی طراحی نیازها. با نگاشت نیازهای ایمنی به یک اتوماتا، یک مدل انتزاعی ساختیم که یک طراحی کارآ را برای پیاده­سازی پایشگر فراهم­کرد. برای نشان دادن کارایی طراحی، آن را برای پایشگر کنترل سرپرستی حفاظت قطار به کار بردیم.

 

 

 

 

 

 

 

 

 

 


شکل (6): زمان اجرا با مکانیسم‌های (1) تک نخی، (2)چند نخی،         شکل (7): بهره‌برداری از هسته‌ها در برنامه چند نخی برای

              (3) وظیفه‌ای و (4) ترکیبی                                                 50  قطار

 

 

 

 

 

 

 

 

 

 


شکل (8): بهره‌برداری از هسته‌ها در برنامه چند وظیفه‌ای                 شکل (9): بهره‌برداری از هسته‌ها در برنامه ترکیب چند وظیفه‌ای

                        برای 50  قطار                                                                     و چند نخی

 

7- کارهای مرتبط

در مقایسه با تحقیق­های دیگران، دو مرحله را در نظر می­گیریم: (1) توصیف مبتنی بر مدل و (2) شبیه­سازی پایشگر، زیرا روش ما شامل دو بخش بود: (1) توصیف مبتنی بر مدل شامل توصیف سطح بالا (مبتنی بر رخداد) و توصیف مبتنی بر حالت و (2) شبیه­سازی پایشگر در کنترل سرستی سیستم ­های رخداد گسسته. بنابراین، ما تحقیق‌های مرتبط به توصیف و شبیه سازی سرپرستی را در نظر می‌گیریم. برادین و ونام چارچوبی ارائه کردند که در آن از رخدادهای زمان­دار برای توصیف کنترل سرپرستی سیستم‌های گسسته استفاده شدند[14]. آنها تنها به موارد نظری در طراحی کنترل سرپرستی پرداختند. جیانگ و کومار [15] و رادیا و سارگنت [16] از منطق برای توصیف استفاده کردند که جیانگ و کومار از منطق زمانی انشعابی CTL و رادیا و سارگنت مشابه با روش ما، رخداد و شرط (ثابت) را برای توصیف استفاده کردند. اما آنها عموماً تنها یک توصیف مبتنی بر رخداد ارائه کردند و روشی برای نگاشت توصیف‌های مبتنی بر رخداد به توصیف‌های مبتنی بر حالت پیشنهاد ندادند. در حالی که برخی از محققان توصیف‌های مبتنی بر رخداد و منطق را مشخص کرده‌اند [14-16] ، برخی دیگر به توصیف‌ها مبتنی بر حالت پرداختند. در این میان، شبکه های پتری عمومی‌ترین اتوماتا برای توصیف‌ها هستند [17-20] . ما روی رفتار پایشگر و شبیه‌سازی و پیاده­سازی آن تأکید کردیم. در این رابطه، گروه لگراند برای شبیه­سازی از شی‌های نخی همروند و زبان جاوا استفاده کردند [21]. دو تشابه بین روش لگراند و متد ما وجود دارد: (1) استفاده از مدل­سازی داده­ها در توصیف و (2) همروندی و مکانیسم چندنخی در شبیه‌سازی. اما گروه لگراند از مکانیسم چندنخی در شبیه‌سازی همروندی استفاده کردند و برای استفاده از مکانیسم ترکیب وظیفه و چندنخی و مکانیسم مبتنی بر وظیفه تلاشی نکردند. شبیه‌سازی ما نشان داد که مکانیسم مبتنی بر وظیفه نسبت به دو مکانیسم دیگر کارآتر است. علاوه بر این، در روش ما، قیودی که وسیله شبیه­سازی استفاده می‌شوند، با استفاده از ثابت‌ها در بخش توصیف مشخص شدند. سرپرستی براساس ثابت‌ها، روش مؤثری در کنترل سرپرستی با استفاده از شبکه‌های پتری است. به این دلیل است که آیورداک و آنت‌ساک‌لیس به اهمیت استفاده از ثابت‌ها در سرپرستی پرداخته‌اند [22].

همان طور که در بخش مقدمه بیان شد، هدف این مقاله مشخص­کردن مسأله مشاهده و پایش رفتار سطح پایین حین اجرای نرم­افزار و وارسی درستی آن در برابر توصیف سطح بالای نیازهای کاربران سیستم است. این مسأله تاکنون توجه محققان دیگر را به خود جلب کرده است. گادین و باگناتو رویکردی را با استفاده از نظریه کنترل برای تثبیت نگاهداری نرم­افزار ارائه­کرده‌اند [5]. این رویکرد، نرم افزار مورد وارسی را قبل از استفاده تغییر می­دهد تا بتواند پایش شود و با سرپرست در زمان اجرا تعامل کند (یعنی گزارش حالت­های خود را به سرپرست گزارش کند). رفتار امن با یک ماشین حالت متناهی توصیف می­شود. مشابه با روش ما، آنها نخست یک توصیف رسمی هم از نرم­افزار مورد وارسی و هم از نیازهای کاربر ارائه کردند و سپس به جای اثبات ارضای نیازها به وسیله نرم­افزار، رفتار نرم­افزار را در زمان اجرا کنترل کردند تا نیازها را اعمال کنند. اما این روش، توصیف رسمی خود را با یک روش مبتنی بر حالت (اتوماتا) آغاز کرد که فاقد : (1) استفاده از داده­های دامنه مسأله که بر حسب واژگان کارشناس سیستم بیان می­شود و (2) توصیف مبتنی بر رخداد است. ما در این مقاله با گره زدن توصیف­ها در سطح کاربر و توصیف­های مبتنی بر رخداد به توصیف‌های مبتنی بر حالت، راه حلّی برای چالش نگاشت توصیف سطح بالا به توصیف سطح پایین ارائه دادیم.

این مقاله و همچنین گادین و باگناتو [5] و گروه ونگ [23] از برنامه­های پایشگری که از نظریه کنترل استفاده می‌کنند و پایش حین اجرا را از طریق کنترل سرپرستی به­کار می­گیرند، استفاده کردند. گروه ونگ مسأله اعتبارسنجی کنترل پویای اجرای نرم­افزار همروند را به منظور اجتناب از بن­بست­ها مطرح کردند. آنها، استفاده از شبکه‌های پتری را در مدل­سازی ارائه و قیود را با استفاده از ثابت‌ها بیان‌ کردند. بنابراین، آنها تنها از توصیف مبتنی بر حالت استفاده‌ کردند و به توصیف­های در سطح کاربر و توصیف‌های مبتنی بر رخداد توجهی نکردند. گروه کالان از نظریه کنترل سرپرستی و اتوماتای متناهی برای پایش نرم­افزارهایی که باید دارای اطمینان بالا باشند، استفاده کردند [24] و گروه برینگر به رابطه بین کنترل سرپرستی و پایش و وارسی حین اجرا پرداختند [25] .

 

8- نتایج و کارهای آینده

در این مقاله، یک روش سه مرحله­ای برای مدل­سازی و شبیه­سازی پایشگر در کنترل سرپرستی سیستم­های گسسته ارائه شد. این روش با ویژگی­های محیطی که به وسیله کاربر سیستم توصیف می­شود، شروع شد و سپس با توصیف­های مبتنی بر رخداد و مبتنی بر حالت برای نیازهای ایمنی ادامه یافت. این توصیف­ها باید در نهایت، به وسیله سیستم مورد سرپرستی رعایت شود. در نهایت این مقاله با شبیه­سازی پایشگر با استفاده از کتابخانه TPL خاتمه یافت. روش ارائه شده یک روش افزایشی بود که توصیف نیازهای ایمنی انتزاعی و سطح بالا را به فعالیت­های نرم­افزاری سطح پایین و حین اجرا نگاشت­کرد. برای نشان دادن به­کارگیری روش ارائه شده در این مقاله، سه قدم آن را برای سیستم حفاظت قطار به­کارگرفتیم.

به منظور سازماندهی بحث گسترده فوق‌الذکر،آن را براساس سه محور مقوله­بندی می­کنیم: (1) بهره‌گیری از دو نوع توصیف برای نمایش دو دید از رفتار سیستم، یکی برای نمایش تعامل­های سیستم با محیطش برحسب رخدادها و دیگری برای نمایش رفتار مبتنی بر حالت سیستم. با گره زدن این دو نوع توصیف، ما راه حلّی برای چالش نگاشت توصیف­های سطح بالا به توصیف‌های سطح پایین ارائه دادیم. (2) ارائه متد سازنده‌ای برای استفاده از سه سطح سلسله مراتبی از توصیف‌های: (الف) سطح کاربر؛ (ب) سطح توصیف و (ج) سطح پیاده‌سازی. توصیف انتزاعی نیازها و گسترش استفاده از متد پیشنهادی، دو فایده جنبی سطح سلسله مراتبی توصیف‌هاست. (3) استفاده از الگوی طراحی مبتنی بر حالت برای تسهیل پیاده‌سازی رفتار پویای سیستم با استفاده از اتوماتای پتری‌ نت. به منظور بررسی کارآیی، ما زمان اجرای شبیه‌سازی‌هایی را که از مکانیسم‌های چندنخی و مبتنی بر وظیفه استفاده کرد، مقایسه کردیم. بررسی­های عملی نشان داد که مکانیسم مبتنی بر وظیفه محض، کاراترین روش برای پیاده‌سازی همروندی وظایف در سیستم‌های رخداد گسسته است. علاوه براین، انتساب پویای وظایف به هسته­های پردازنده که به وسیله کتابخانه TPL فراهم می­شود، زمان اجرا را نسبت به انتساب ایستای وظایف به هسته‌ها کاهش داد.

به عنوان یک تحقیق آتی، کار ارائه شده در این مقاله می­تواند برای سیستم‌های SCADA[xii] گسترش یابد. نمونه‌ای از این سیستم‌ها، سیستم‌های رایانه‌ای هستند که فرایندهای صنعتی را پایش و کنترل می­کنند [26]. سیستم‌های SCADA معمولاً شامل یک پایگاه داده توزیع‌ شده است که در آن داده­ها، مقادیری هستند که به وسیله سیستم پایش و کنترل می­شوند و همراه با زمان محاسبه­شان ذخیره می­شوند. در این پایگاه داده، سابقه داده­ها یک دنباله از جفت­های زمان - مقدار را تشکیل می­دهد. برای به کارگیری روش پیشنهادی این مقاله برای یک سیستم SCADA، باید یک روش خاص برای توصیف ویژگی‌های محیط سیستم و همچنین، تقسیم بازه‌ها درنظر گرفته شود، زیرا داده‌ها زمانی و توزیع شده هستند.

این تحقیق توسط دانشگاه کاشان بر اساس قرارداد طرح پژوهشی شماره 3055 پشتیبانی شده است.

 



[1] Discrete Event System

[2] Supervisor

[3] Supervisory Control Theory

[4]Invariants

[5] Safety Requirements

[6] Asynchronous

[7] Colored Petri-Net

[8]Marking

[9] Marks

[10] Enabled

[11] Fire

[xii] Supervisory Control And Data Acquisition

1] P. Ramadge and W. Wonham. The control of discrete event systems, Proceedings of IEEE, Special Issue on Discrete Event Dynamic Systems, pp. 81–98, 1989.
[2] D. Leijen, W. Schulte, and S. Burkhardt. The Design of a Task Parallel Library, ACM SIGPLAN Notice, 4 (10), pp. 227-242, 2009
[3] J. Sharp. Microsoft Visual C# 2010 Step by Step, Microsoft Press, 2010.
[4] S. Lipschutz. Schaum’s outline of theory and problems of set theory and related topics. McGraw-Hill, 1998.  
[5] B Gaudin and A. Bagnato. Software Maintenance through Supervisory Control, the 34th IEEE Software Engineering Workshop (SEW), pp. 97-105, 2011.  
[6] Petri Nets Fundamental Models, Verification and Applications, In M. Diaz, (Ed.), Wiley, 2009.
[7] X. D. Koutsoukos and P. J. Antsaklis. Hybrid Control Systems Using Timed Petri Nets: Supervisory Control Design Based on Invariant Properties, Lecture Notes in Computer Science, Vol. 1567/1999, 67, Springer, 1999.
[8] M. Iordache and P.J. Antsaklis. Supervisory Control of Concurrent Systems: A Petri Net Structural Approach, Springer, 2006.
[9] G.J. Tsinarakis and N.C. Tsourveloudis. Adding two level supervisory control in the Hybrid Petri Net methodology for Production Systems, in Proceedings of the 17th Mediterranean Conference on Control and Automation, pp. 1090 – 1095, 2009.
[[1]0] Z. Chun-Fu and L. Zhi-Wu. Design of Liveness-Enforcing Supervisors via Transforming Plant Petri-Net Models of FMS, Journal of Asian Control, Special Issue on Petri-Nets for System Control and Automation, Vol.12, No 3, pp. 240–252, 2010.
[[1]1] L. Feihua , W. Weimin, S. Hongye and C. Jian. Non-blocking Decentralized Control of Discrete Event Systems Based on Petri-Nets, Journal of Asian Control, Special Issue on Petri-Nets for System Control and Automation, Vol.12, No.3, pp. 323–335, 2010,
[[1]2] M.V. Iordache and P.J.  Antsaklis. Concurrent program synthesis based on supervisory control, In Proceedings of  American Control Conference, pp. 3378 – 3383, 2010.
[[1]3] F. Basile and P.  Chiacchio. On the Implementation of Supervised Control of Discrete Event Systems, IEEE Transactions on Control Systems Technology, Vol.15, No.4, pp. 725-739, 2007.
[14] B.A. Brandin and W.M. Wonham. Supervisory Control of Timed Discrete Event Systems, IEEE Transactions on Automatic Control, Vol.39, No.2, pp. 329- 342, 1994.
[15] S. Jiang and R. Kumar.  Supervisory Control of  Discrete Event Discrete Systems with CTL* Temporal Logic Specifications, SIAM J. Control Optim., Vol.44, No.6, pp. 2079-2103, 2006.
[16] A. Radiya and R.G. Sargent. A Logic-Based Foundation of Discrete Event Modeling and Simulation, ACM transactions on Modeling and Computer Simulation, Vol.4, No.1, pp. 3-51, 1994.
[17] M. V. Iordache and P. J. Antsaklis. Concurrent Program Synthesis Based on Supervisory Control, American Control Conference, pp. 3378-3383, 2010.
[18] Y. Song, J. Kim and J. Lee. Modeling User Specification Based on Supervisor Control and Petri nets, The International Conference on Computational Intelligence for Modeling Control & Automation, IEEE Society, 76-81, 2008.
[19] J. Flochova. A Petri net based supervisory control implementation, The IEEE International Conference on Systems, Man and Cybernetics, Vol.2, pp. 1039-1044, 2003.
[20] C. Bobeanu, E. J. H. Kerckhoffs and H. V. Landeghem, Modeling of Discrete Event Systems: A Holistic and Incremental Approach Using Petri Nets, ACM Transactions on Modeling and Computer Simulation, Vol.14, No.4, pp. 389-423, 2004.
[21] I. Legrand. Multi-threaded, discrete event simulation of distributed computing systems, Computer Physics Communications, Elsevier, vol. 140, pp. 274-285, 2001.
[22] M. V. Iordache and P. J. Antsaklis. Supervision Based on Place Invariants: A Survey, Journal of Discrete Event Dynamic Systems, Springer, Vol.16, No.4, pp. 451-492, 2006.
[23] Y. Wang, T. Kelly, M. Kudlur, S. Mahlke and S. Lafortune. The Application of Supervisory Control to Deadlock Avoidance in Concurrent Software, The 9th international Workshop on Discrete Event Systems, pp. 287-292, 2008.
[24] S. Callanan et al. Software Monitoring with Bounded Overhead, The IEEE International Symposium on Parallel and Distributed Processing, pp. 1-8, 2008.
[25] H. Barringer, D. Gabbay and D. Rydeheard. From Runtime Verification to Evolvable Systems, The 7th International Conference on Runtime verification, pp. 97-110, 2007.
[26] S. A. Boyer. "SCADA: Supervisory Control and Data Acquisition", ISA: The Instrumentation, Systems, and Automation Society, 4th Ed, 2009.