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

پردازش ماتریسی در سیمولینک

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

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

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

ضرب و عملیات ریاضی روی ماتریس‌ها

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

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

پردازش اعداد مختلط

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

بلوک Real-Imag to Complex امکان تشکیل یک سیگنال مختلط از بخش حقیقی و موهومی را فراهم می‌کند. این ورودی‌ها می‌توانند اسکالر، بردار یا ماتریس باشند و در صورت استفاده از آرایه‌ها، ساختار ابعادی خروجی نیز حفظ می‌شود. 

در جهت معکوس، بلوک Complex to Real-Imag می‌تواند بخش حقیقی و موهومی یک سیگنال مختلط را استخراج کند. این قابلیت زمانی اهمیت پیدا می‌کند که یک سیگنال مختلط باید به چند مسیر مستقل برای پردازش‌های بعدی تقسیم شود. 

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

ترکیب پردازش ماتریسی و سیگنال‌های مختلط

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

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

زیرسیستم‌های شرطی

زیرسیستم شرطی یا Conditionally Executed Subsystem یکی از امکانات مهم برای ایجاد منطق کنترلی در مدل‌های پیچیده است. این زیرسیستم‌ها اجازه می‌دهند اجرای مجموعه‌ای از بلوک‌ها به یک سیگنال کنترلی وابسته شود؛ بنابراین همه قسمت‌های مدل الزاماً در هر لحظه اجرا نمی‌شوند. 

در سیمولینک انواع مختلفی از زیرسیستم‌های شرطی وجود دارد؛ از جمله Enabled Subsystem، Triggered Subsystem، If Action Subsystem، Switch Case Action Subsystem، Function-Call Subsystem و ترکیب زیرسیستم‌های فعال‌شونده و تحریک‌شونده. هرکدام برای نوع متفاوتی از منطق اجرای مدل مناسب هستند. 

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

استفاده از If و Switch Case در مدل‌سازی

زیرسیستم‌های Action امکان ایجاد ساختاری مشابه منطق‌های if-then-else و switch-case را در مدل فراهم می‌کنند. در این روش، یک سیگنال کنترلی مشخص می‌کند کدام بخش از مدل در یک لحظه مشخص اجرا شود.

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

اهمیت سازمان‌دهی زیرسیستم‌ها

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

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

جمع‌بندی

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

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

کلیدواژه ها : Matrix Operations-عملیات ماتریسی- Matrix Processing-پردازش ماتریسی- Matrix Multiply-ضرب ماتریسی- Matrix Signal-سیگنال ماتریسی- Complex Signal-سیگنال مختلط- Complex Numbers-اعداد مختلط- Real Imaginary Components-مؤلفه حقیقی و موهومی- Real-Imag to Complex-تبدیل حقیقی و موهومی به مختلط- Complex to Real-Imag-تبدیل مختلط به حقیقی و موهومی- Conditional Subsystem-زیرسیستم شرطی- Enabled Subsystem-زیرسیستم فعال‌شونده- Triggered Subsystem-زیرسیستم تحریک‌شونده- If Action Subsystem-زیرسیستم شرطی If- Switch Case Action Subsystem-زیرسیستم Switch Case- Simulink-سیمولینک