در مدل‌های پیشرفته سیمولینک، گاهی اجرای یک زیرسیستم تنها به فعال بودن یک سیگنال کنترلی وابسته نیست، بلکه باید هم‌زمان یک شرط فعال‌سازی برقرار باشد و یک رویداد تحریک نیز رخ دهد. برای این نوع کاربردها، سیمولینک ساختار Enabled and Triggered Subsystem را ارائه می‌کند که امکان ترکیب دو سطح از کنترل اجرای مدل را فراهم می‌سازد. 

مفهوم زیرسیستم Enabled and Triggered

زیرسیستم Enabled and Triggered ترکیبی از دو مفهوم Enable و Trigger است. این زیرسیستم تنها زمانی اجرا می‌شود که سیگنال Enable در وضعیت فعال قرار داشته باشد و هم‌زمان سیگنال Trigger رویداد موردنظر را ایجاد کند. 

به بیان ساده، Enable مشخص می‌کند که «آیا زیرسیستم اجازه اجرا دارد؟» و Trigger تعیین می‌کند که «چه زمانی اجرای آن آغاز شود؟».

این ساختار برای مدل‌هایی مناسب است که اجرای یک الگوریتم باید هم به وضعیت کلی سیستم و هم به یک رخداد مشخص وابسته باشد.

نقش سیگنال Enable

سیگنال Enable وظیفه کنترل مجاز بودن اجرای زیرسیستم را بر عهده دارد. هنگامی که مقدار این سیگنال مثبت باشد، زیرسیستم از نظر شرط فعال‌سازی آماده اجرا خواهد بود. اگر شرط Enable برقرار نباشد، حتی وقوع رویداد Trigger نیز باعث اجرای زیرسیستم نخواهد شد. 

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

نقش سیگنال Trigger

Trigger مسئول ایجاد رویدادی است که اجرای زیرسیستم را آغاز می‌کند. سیمولینک امکان تعریف Triggerهای صعودی، نزولی یا هر دو نوع تغییر را فراهم می‌کند. 

بنابراین Trigger برخلاف Enable صرفاً بیانگر فعال یا غیرفعال بودن یک بخش نیست؛ بلکه وقوع یک تغییر مشخص در سیگنال کنترل را برای شروع اجرای زیرسیستم بررسی می‌کند.

این ویژگی برای مدل‌سازی رویدادهایی مانند دریافت فرمان، وقوع یک تغییر ناگهانی یا ایجاد یک درخواست پردازشی بسیار کاربردی است.

منطق هم‌زمانی Enable و Trigger

نکته اصلی در این ساختار، وجود دو شرط هم‌زمان است. زمانی که Trigger رخ می‌دهد، سیمولینک وضعیت سیگنال Enable را بررسی می‌کند. اگر Enable در وضعیت فعال باشد، زیرسیستم اجرا خواهد شد. 

در نتیجه، وجود Trigger به‌تنهایی کافی نیست و فعال بودن Enable نیز ضروری است. این ویژگی امکان ایجاد منطق‌های کنترلی دقیق‌تر را نسبت به استفاده مستقل از Enabled یا Triggered Subsystem فراهم می‌کند.

مثال کاربردی در سیستم کنترل

فرض کنید یک کنترل‌کننده تنها زمانی باید به یک رویداد مشخص پاسخ دهد که سیستم در وضعیت عملیاتی قرار داشته باشد.

در این مدل، سیگنال وضعیت سیستم می‌تواند نقش Enable را داشته باشد. تا زمانی که سیستم در وضعیت مجاز قرار نگرفته است، کنترل‌کننده اجرا نمی‌شود. پس از فعال شدن سیستم، یک رخداد مشخص می‌تواند از طریق Trigger اجرای کنترل‌کننده را آغاز کند.

این ساختار برای کنترل‌کننده‌هایی که واکنش آن‌ها باید به شرایط عملیاتی خاص محدود شود، بسیار مناسب است.

مثال کاربردی در سیستم حفاظتی

در یک سیستم حفاظتی، ممکن است پایش یک رویداد تنها زمانی انجام شود که سیستم وارد وضعیت حفاظت شده باشد.

در این حالت، Enable می‌تواند وضعیت فعال بودن سیستم حفاظتی را مشخص کند و Trigger وقوع رویداد موردنظر را نشان دهد. در صورت برقرار بودن هر دو شرط، زیرسیستم حفاظتی اجرا می‌شود.

چنین معماری‌ای برای مدل‌سازی سیستم‌های تشخیص خطا، حفاظت تجهیزات و مدیریت شرایط اضطراری قابل استفاده است.

انتخاب نوع Trigger

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

انتخاب صحیح نوع Trigger به ماهیت رویداد موردنظر بستگی دارد. برای مثال، اگر تنها شروع یک فرمان اهمیت داشته باشد، Trigger صعودی می‌تواند مناسب باشد؛ اما اگر شروع و پایان یک رویداد هر دو اهمیت داشته باشند، Trigger دوطرفه کاربرد بیشتری خواهد داشت.

مدیریت وضعیت داخلی زیرسیستم

زیرسیستم‌های فعال‌شونده ممکن است شامل بلوک‌هایی باشند که دارای وضعیت داخلی یا State هستند. در Enabled and Triggered Subsystem می‌توان نحوه برخورد با این وضعیت‌ها هنگام فعال شدن مجدد زیرسیستم را تعیین کرد.

سیمولینک امکان نگهداری وضعیت قبلی یا بازگرداندن Stateها به شرایط اولیه را در هنگام فعال شدن مجدد فراهم می‌کند. این انتخاب می‌تواند رفتار دینامیکی مدل را به‌طور محسوسی تغییر دهد. 

بنابراین هنگام طراحی چنین زیرسیستمی، فقط منطق Enable و Trigger اهمیت ندارد؛ نحوه مدیریت وضعیت داخلی نیز باید متناسب با عملکرد مورد انتظار سیستم انتخاب شود.

مقدار خروجی هنگام غیرفعال بودن

یکی دیگر از موضوعات مهم، رفتار خروجی زمانی است که زیرسیستم اجازه اجرا ندارد. در مدل‌های شرطی، می‌توان نحوه مقداردهی اولیه و رفتار خروجی هنگام غیرفعال بودن زیرسیستم را مدیریت کرد. 

این موضوع در سیستم‌های کنترلی اهمیت ویژه‌ای دارد، زیرا باقی ماندن مقدار قبلی خروجی یا تغییر آن در زمان غیرفعال بودن می‌تواند بر بخش‌های دیگر مدل اثر بگذارد.

محدودیت‌های اجرایی

در Enabled and Triggered Subsystem، بلوک‌های داخلی باید با منطق اجرای شرطی سازگار باشند. به‌طور مشخص، برای این نوع زیرسیستم، بلوک‌های داخلی باید زمان نمونه‌برداری مناسب و سازگار با اجرای Trigger داشته باشند و نمی‌توان هر نوع بلوک پیوسته را بدون توجه به این محدودیت‌ها درون آن قرار داد. 

این موضوع هنگام طراحی مدل‌های دینامیکی اهمیت زیادی دارد. بنابراین بهتر است پیش از ساخت زیرسیستم، نوع سیگنال‌ها، نرخ نمونه‌برداری و وضعیت داخلی بلوک‌های مورد استفاده بررسی شود.

تفاوت Enabled، Triggered و Enabled and Triggered

این سه ساختار را می‌توان بر اساس منطق اجرای آن‌ها از یکدیگر تفکیک کرد.

Enabled Subsystem زمانی اجرا می‌شود که شرط فعال‌سازی برقرار باشد و اجرای آن در گام‌های زمانی مربوط ادامه پیدا می‌کند. 

Triggered Subsystem اجرای خود را بر اساس رخداد Trigger انجام می‌دهد و میان Triggerها خروجی آن آخرین مقدار خود را حفظ می‌کند. 

Enabled and Triggered Subsystem زمانی اجرا می‌شود که هر دو شرط برقرار باشند؛ یعنی زیرسیستم باید فعال باشد و در همان شرایط، رویداد Trigger نیز رخ دهد. 

این تفاوت به طراح اجازه می‌دهد ساختار مناسب را بر اساس منطق واقعی سیستم انتخاب کند.

طراحی مدل شبیه‌سازی

برای طراحی یک مدل مناسب، ابتدا باید سیگنال Enable و منطق تولید آن مشخص شود. سپس باید رویدادی که قرار است Trigger ایجاد کند تعیین گردد.

پس از ایجاد زیرسیستم، ورودی‌های داده، سیگنال Enable و سیگنال Trigger به بخش‌های مربوط متصل می‌شوند. در مرحله بعد، نحوه مدیریت Stateها، مقدار خروجی در زمان غیرفعال بودن و نوع Trigger تنظیم می‌شود.

در نهایت، مدل باید در شرایط مختلف آزمایش شود؛ از جمله حالتی که Enable غیرفعال است، حالتی که فقط Trigger رخ می‌دهد و حالتی که هر دو شرط هم‌زمان برقرار هستند.

بررسی عملکرد در شبیه‌سازی

برای ارزیابی صحیح مدل، بهتر است سیگنال‌های Enable و Trigger به همراه خروجی زیرسیستم مشاهده شوند. این کار مشخص می‌کند که آیا زیرسیستم فقط در زمان موردنظر اجرا شده است یا خیر.

یکی از روش‌های مناسب، بررسی چند سناریوی مختلف است:

  • Enable غیرفعال و Trigger فعال

  • Enable فعال و Trigger غیرفعال

  • Enable فعال و Trigger فعال

  • تغییر وضعیت Enable در زمان نزدیک به Trigger

  • فعال شدن مجدد زیرسیستم پس از یک دوره غیرفعال بودن

این آزمایش‌ها می‌توانند رفتار واقعی زیرسیستم را در شرایط مختلف مشخص کنند.

کاربرد در مدل‌های پیچیده مهندسی

ترکیب Enable و Trigger در سیستم‌هایی که دارای شرایط عملیاتی، رویدادهای ناگهانی و الگوریتم‌های وابسته به وضعیت هستند کاربرد گسترده‌ای دارد.

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

این ساختار همچنین می‌تواند بخشی از یک معماری بزرگ‌تر شامل زیرسیستم‌های شرطی، Function-Call و Variant باشد. سیمولینک به‌طور کلی مجموعه‌ای از زیرسیستم‌های شرطی را برای کنترل زمان و شرایط اجرای بخش‌های مختلف مدل ارائه می‌کند. 

جمع‌بندی

Enabled and Triggered Subsystem یکی از ابزارهای مهم سیمولینک برای مدل‌سازی سیستم‌هایی است که اجرای آن‌ها به دو شرط وابسته است. در این ساختار، Enable مشخص می‌کند که زیرسیستم اجازه اجرا دارد یا خیر و Trigger زمان وقوع رویداد اجرایی را تعیین می‌کند.

با تنظیم صحیح نوع Trigger، مدیریت وضعیت‌های داخلی و تعیین رفتار خروجی در زمان غیرفعال بودن، می‌توان مدل‌هایی ایجاد کرد که رفتار اجرایی آن‌ها به شرایط واقعی سیستم نزدیک باشد. این قابلیت به‌خصوص در کنترل صنعتی، سیستم‌های حفاظتی، تشخیص خطا، مدیریت رویداد و مدل‌سازی سیستم‌های چندحالته کاربرد دارد.

کلیدواژه ها : Enabled and Triggered Subsystem-زیرسیستم فعال و تحریک‌شونده-Enabled Subsystem-زیرسیستم فعال‌شونده-Triggered Subsystem-زیرسیستم تحریک‌شونده-Enable Signal-سیگنال فعال‌ساز-Trigger Signal-سیگنال تحریک-Trigger Type-نوع تحریک-Conditional Execution-اجرای شرطی-Conditional Subsystem-زیرسیستم شرطی-Subsystem State-وضعیت داخلی زیرسیستم-State Management-مدیریت وضعیت-Rising Trigger-تحریک صعودی-Falling Trigger-تحریک نزولی-Event-Based Execution-اجرای مبتنی بر رویداد-Control Signal-سیگنال کنترل-Simulink-سیمولینک