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

زیرسیستم Enable

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

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

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

زیرسیستم Triggered

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

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

نوع Trigger و نحوه واکنش زیرسیستم به سیگنال راه‌انداز باید متناسب با منطق مدل انتخاب شود.

تفاوت Enable و Trigger

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

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

بنابراین می‌توان Enable را بیشتر برای مفهوم «فعال بودن یک بخش» و Trigger را برای مفهوم «شروع اجرای یک بخش در واکنش به رویداد» در نظر گرفت.

ترکیب Trigger و Enable

سیمولینک امکان استفاده از ساختارهایی را فراهم می‌کند که در آن‌ها اجرای یک زیرسیستم می‌تواند هم به فعال‌سازی و هم به رخداد Trigger وابسته باشد.

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

چنین ساختاری در کنترل‌کننده‌های چندحالته، سیستم‌های حفاظتی و مدل‌های دارای رویدادهای مختلف کاربرد زیادی دارد.

زیرسیستم Function-Call

Function-Call Subsystem برای اجرای یک مجموعه از بلوک‌ها در پاسخ به یک فراخوانی تابع طراحی شده است. در این ساختار، اجرای زیرسیستم به یک Function-Call Event وابسته می‌شود.

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

Function-Call Subsystem در مدل‌های پیچیده‌ای که چند بخش مستقل باید بر اساس رویدادهای کنترلی مختلف اجرا شوند، ساختار منظم‌تری ایجاد می‌کند.

کاربرد Function-Call در مدل‌های پیچیده

یکی از مزیت‌های Function-Call Subsystem، ایجاد مرز مشخص میان منطق فراخوانی و منطق محاسباتی است. یک بخش از مدل مسئول ایجاد رویداد فراخوانی است و زیرسیستم مربوطه وظیفه انجام محاسبات را بر عهده دارد.

این ساختار می‌تواند در مدل‌هایی که چند الگوریتم مستقل دارند بسیار مفید باشد؛ زیرا هر الگوریتم می‌تواند بر اساس رویداد مناسب خود اجرا شود و وابستگی میان بخش‌های مختلف مدل کاهش پیدا کند.

مفهوم Atomic Subsystem

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

این موضوع در مدل‌های بزرگ اهمیت زیادی دارد، زیرا تعیین مرزهای اجرایی می‌تواند بر نحوه زمان‌بندی و پردازش بخش‌های مختلف مدل تأثیر بگذارد. Atomic Subsystem همچنین می‌تواند در سازمان‌دهی مدل‌های پیچیده و ایجاد ساختارهای سلسله‌مراتبی مناسب مفید باشد.

اهمیت Atomic بودن زیرسیستم

Atomic بودن یک زیرسیستم صرفاً به معنای گروه‌بندی ظاهری چند بلوک نیست. این ویژگی یک مفهوم اجرایی ایجاد می‌کند و به سیمولینک می‌گوید محتوای زیرسیستم باید در چارچوب مرز تعریف‌شده آن مدیریت شود.

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

Atomic Subsystem و سازمان‌دهی مدل

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

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

تفاوت Subsystem معمولی و Atomic Subsystem

یک Subsystem معمولی عمدتاً برای سازمان‌دهی و ساده‌سازی ساختار مدل استفاده می‌شود، در حالی که Atomic Subsystem علاوه بر سازمان‌دهی، مرز اجرایی مشخصی ایجاد می‌کند.

بنابراین در مدل‌های ساده ممکن است یک Subsystem معمولی کاملاً کافی باشد، اما در مدل‌های پیچیده که زمان‌بندی، اجرای مستقل و تعامل میان بخش‌ها اهمیت دارد، استفاده از Atomic Subsystem می‌تواند انتخاب مناسب‌تری باشد.

ترکیب زیرسیستم‌های شرطی و Atomic

یکی از کاربردهای پیشرفته این قابلیت‌ها، ترکیب زیرسیستم‌های Enable، Trigger یا Function-Call با ساختارهای Atomic است. در چنین مدلی می‌توان یک بخش محاسباتی را به‌صورت یک واحد اجرایی مشخص تعریف کرد و هم‌زمان شرایط اجرای آن را نیز کنترل نمود.

این ساختار برای مدل‌هایی که دارای حالت‌های عملیاتی متعدد، الگوریتم‌های کنترلی مستقل و رویدادهای مختلف هستند، بسیار مناسب است.

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

انتخاب ساختار مناسب

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

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

جمع‌بندی

زیرسیستم‌های Trigger و Enable، Function-Call و Atomic از ابزارهای مهم سیمولینک برای مدیریت شرایط اجرا، رویدادها، فراخوانی الگوریتم‌ها و مرزهای اجرایی مدل هستند.

Enabled و Triggered Subsystem امکان کنترل اجرای بخش‌های مختلف بر اساس شرایط یا رویدادها را فراهم می‌کنند، Function-Call Subsystem اجرای یک بخش را به فراخوانی مشخص وابسته می‌سازد و Atomic Subsystem مرز اجرایی مشخصی برای یک مجموعه از بلوک‌ها ایجاد می‌کند.

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

کلیدواژه ها : Enabled Subsystem-زیرسیستم فعال‌شونده- Triggered Subsystem-زیرسیستم راه‌انداز- Trigger-راه‌انداز- Enable-فعال‌ساز- Function-Call Subsystem-زیرسیستم فراخوانی تابع- Function Call-فراخوانی تابع- Conditional Subsystem-زیرسیستم شرطی- Atomic Subsystem-زیرسیستم اتمیک- Atomic Execution-اجرای اتمیک- Execution Control-کنترل اجرای مدل- Event-Based Execution-اجرای مبتنی بر رویداد- Model Execution-اجرای مدل- Simulink Subsystem-زیرسیستم سیمولینک- Simulink-سیمولینک