بلوکها و خطوط در سیمولینک: زبان بصری شبیهسازی
سیمولینک، نرمافزاری قدرتمند از خانواده متلب، به مدد محیط بصری و رابط کاربری مبتنی بر بلوک، ابزاری کارآمد برای شبیهسازی و مدلسازی سیستمهای مختلف در حوزههای گوناگون از جمله مهندسی، علوم پایه و مدیریت ارائه میدهد. در این راستا، درک صحیح مفاهیم بنیادی بلوکها و خطوط به عنوان ارکان اصلی این محیط، نقشی کلیدی در فرایند شبیهسازی ایفا میکند.
بلوکها: اجزای سازنده مدل
بلوکها در سیمولینک، واحدهای پایه برای نمایش اجزای مختلف یک سیستم شبیهسازی شده هستند. هر بلوک وظیفهای خاص را بر عهده داشته و با نمادگرافیکی منحصر به فردی نشان داده میشود. تنوع گستردهای از بلوکها در کتابخانههای سیمولینک موجود است که به دو دسته کلی تقسیم میشوند:
- بلوکهای پایه: این بلوکها، مفاهیم ریاضی بنیادی مانند جمع، تفریق، انتگرال و مشتق را در قالب بلوکهای مجزا ارائه میکنند.
- بلوکهای تخصصی: این دسته از بلوکها، اجزای خاص سیستمهای مختلف مانند موتور، سنسور، کنترلر و فیلتر را مدلسازی میکنند.
هر بلوک دارای مجموعهای از پورت ورودی و خروجی است که تبادل اطلاعات بین بلوکها را امکانپذیر میسازد. نوع داده و سیگنالهایی که از طریق این پورتها منتقل میشوند، توسط کاربر تعریف شده و نقش مهمی در عملکرد صحیح مدل ایفا میکنند.
خطوط: اتصالات بین بلوکها
خطوط در سیمولینک، وظیفه اتصال بلوکها به یکدیگر و برقراری جریان سیگنال بین آنها را بر عهده دارند. هر خط به دو بلوک متصل شده و جهت انتقال سیگنال را مشخص میکند. خطوط دارای رنگهای مختلفی هستند که به تمایز بین انواع سیگنالها مانند ولتاژ، جریان و سیگنالهای دیجیتال کمک میکند.
علاوه بر اتصالات ساده بین بلوکها، سیمولینک امکانات پیشرفتهتری برای مدیریت جریان سیگنالها ارائه میدهد. از جمله این امکانات میتوان به موارد زیر اشاره کرد:
- تقسیمکنندهها: سیگنال را به چند شاخه تقسیم میکنند.
- چندگانهها: سیگنال را به چند بلوک مجزا ارسال میکنند.
- بلوکهای شرطی: مسیر جریان سیگنال را بر اساس شرایط مشخص شده، تغییر میدهند.
دستهبندی بلوکها و خطوط
بلوکها و خطوط در سیمولینک بر اساس دستهبندیهای مختلفی سازماندهی میشوند که به کاربران در یافتن بلوکها و خطوط مورد نیازشان کمک میکند. این دستهبندیها شامل موارد زیر هستند:
- کتابخانهها: بلوکها و خطوط بر اساس حوزههای کاربردی مانند دینامیک سیستم، کنترل، پردازش سیگنال و … در کتابخانههای مجزا دستهبندی میشوند.
- نوع بلوک: بلوکها بر اساس نوع عملکردشان مانند بلوکهای ریاضی، بلوکهای سیستمی و … دستهبندی میشوند.
- نوع سیگنال: خطوط بر اساس نوع سیگنالی که منتقل میکنند مانند خطوط ولتاژ، خطوط جریان و … دستهبندی میشوند.
جمعبندی
بلوکها و خطوط، به عنوان ارکان اصلی محیط بصری سیمولینک، ابزاری قدرتمند برای مدلسازی و شبیهسازی سیستمهای مختلف ارائه میکنند. درک صحیح مفاهیم و عملکرد این اجزا، کلید موفقیت در استفاده از این نرمافزار و دستیابی به نتایج دقیق و قابل اتکا در شبیهسازیها خواهد بود.
در پست قبلی یک توضیح کلی در مورد سیمولینک داده شد و تا حدودی با کلیات کار با سیمولینک آشنا شدید تا به اینجا رسیدیم که سیمولینک برای مدلسازی از بلوکها و خطوط استفاده میکند.
بلوکها در سیمولینک
بلوکهایی که در کتابخانه سیمولینک قرار دارند چند دستهاند شامل:
- منابع (Sources): که برای تولید سیگنالهای مختلف استفاده میشوند.
- سینکها (Sinks): که برای نمایش سیگنالها یا خروجی دادهها استفاده میشوند.
- پیوسته (Continuous): عناصر سیستمهای زمان پیوسته (تابعهای انتقالی، مدلهای state-space، کنترلکنندههای PID و غیره.
- گسسته (Discrete): عناصر سیستمهای خطی یا سیستمهای زمان گسسته (تابعهای انتقالی گسسته، مدلهای state-space گسسته و غیره)
- عملیات ریاضی (Math Operations): این بلوکها شامل تعداد زیادی از عملیات ریاضی متداول هستند (سود، جمع، محصول، قدر مطلق و غیره)
- پورتها و زیرسیستمها (Ports & Subsystems): شامل بلوکهای مفیدی که برای ساختن یک سیستم لازماند.
پایانههای ورودی بلااستفاده هر بلوک را با یک مثلث باز به شکل < و پایانههای خروجی بلااستفاده بلوکها را با یک مثلث کامل کوچک نشان میدهند.
خطوط در سیمولینک
از خطوط برای انتقال سیگنالها در مسیر مشخصشده استفاده میشود و با علامت یک پیکان مانند → نشان داده میشوند.
انتقال سیگنال همیشه از پایانه خروجی یک بلوک به پایانه ورودی یک بلوک دیگر انجام میشود؛ بنابراین ابتدای پیکان باید به پایانه خروجی و نوک تیز آن باید به پایانه ورودی یک بلوک متصل باشند.
یک مدل خط دیگر نیز وجود دارد که از وسط یک خط شروع میشود و سیگنال بین دو بلوک را به دو قسمت تقسیم میکند. توجه داشته باشید که عکس این مسئله امکانپذیر نیست؛ یعنی نباید نوک تیز پیکان به یک خط دیگر برسد و همواره ابتدای پیکان از یک خط میتواند شروع شود و به یک سیگنال برسد.
سیگنالها در سیمولینک
سیگنالها میتوانند بهصورت عددی باشند و یا برداری.
سیگنالهای عددی معمولاً برای سیستمهای سیگنال ورودی و سیگنال خروجی (SISO) استفاده میشوند.
سیگنالهای برداری که از دو یا چند سیگنال عددی تشکیل شدهاند نیز معمولاً برای سیستمهای چند ورودی و چند خروجی (MIMO) استفاده میشوند.
سیگنالهای عددی و برداری در سیمولینک به شکل بلوکهایی دیده میشوند که توسط خطوط انتقالدهنده به هم وصل شدهاند.
به نمونه زیر توجه کنید:

این مثال در پست بعدی بهتفصیل شرح داده خواهد شد.
پرسش و پاسخ درباره بلوکها و خطوط در سیمولینک
1. بلوکها در سیمولینک چیستند؟
بلوکها در سیمولینک واحدهای اصلی برای مدلسازی سیستمهای دینامیکی هستند. هر بلوک نشاندهنده یک عملکرد خاص در سیستم است، مانند فرآیندهای ریاضی، ورودیها، خروجیها یا حتی سیستمهای فیزیکی. بلوکها میتوانند شامل محاسبات ریاضی، کنترلرها، فیلترها، ادوات دیجیتال و سایر اجزای مدل باشند.
2. چگونه میتوان بلوکها را به مدل در سیمولینک اضافه کرد؟
برای اضافه کردن بلوکها به مدل سیمولینک، میتوانید از دو روش استفاده کنید:
- روش اول: از منوی “Simulink” یا “Library Browser”، بلوک مورد نظر را جستجو کرده و به طور مستقیم به مدل خود بکشید.
- روش دوم: از طریق نوار ابزار، گزینه “Add Block” را انتخاب کرده و بلوک مورد نظر را به مدل اضافه کنید.
3. چه نوع بلوکهایی در سیمولینک وجود دارد؟
در سیمولینک انواع مختلفی از بلوکها وجود دارد که شامل موارد زیر هستند:
- بلوکهای ریاضی: برای انجام محاسبات ریاضی مانند جمع، تفریق، ضرب و تقسیم.
- بلوکهای ورودی و خروجی: برای ارتباط با دنیای خارج مدل مانند ورودیها از سنسورها یا خروجیها به عملگرها.
- بلوکهای دینامیکی: برای مدلسازی سیستمهای فیزیکی و دینامیکی.
- بلوکهای کنترل: برای پیادهسازی الگوریتمهای کنترلر مانند PID.
- بلوکهای منطقی و مقایسهای: برای انجام عملیات منطقی یا مقایسه مقادیر.
4. خطوط در سیمولینک چه نقشی دارند؟
خطوط در سیمولینک برای ارتباط دادن بلوکها به یکدیگر و ارسال سیگنالها بین بلوکها استفاده میشوند. هر خط سیگنالهای اطلاعاتی را از یک بلوک به بلوک دیگر منتقل میکند و به نوعی جریان دادهها در مدل ایجاد میشود.
5. چگونه میتوان خطوط را در سیمولینک ایجاد کرد؟
برای ایجاد یک خط در سیمولینک، کافی است از یک بلوک به بلوک دیگر کشیده و رها کنید. این عمل به طور خودکار یک خط ایجاد میکند که سیگنالها را از بلوک مبدا به بلوک مقصد منتقل میکند.
6. آیا میتوان خطوط را در سیمولینک ویرایش کرد؟
بله، میتوان خطوط را در سیمولینک ویرایش کرد. برای این کار، ابتدا خط را انتخاب کرده و سپس با کشیدن نقاط انتهایی آن، مسیر خط را تغییر دهید. همچنین، میتوانید خطوط را به بلوکهای مختلف متصل کنید یا از خطوط با رنگها و ضخامتهای مختلف استفاده کنید.
7. آیا امکان اتصال چند بلوک به یک خط در سیمولینک وجود دارد؟
بله، در سیمولینک میتوانید چندین بلوک را به یک خط متصل کنید. برای این کار، کافی است خطی را از یک بلوک به نقطه مشترک کشیده و سپس آن نقطه را به بلوکهای دیگر وصل کنید.
8. چگونه میتوان تعداد بلوکهای استفادهشده در مدل را مدیریت کرد؟
برای مدیریت بلوکهای مدل در سیمولینک، میتوانید از ابزار “Model Explorer” استفاده کنید. این ابزار به شما امکان میدهد تا بلوکها را گروهبندی کنید، ویژگیهای آنها را مشاهده کنید و حتی تغییرات مدل را در سطح بلوکها پیگیری کنید.
9. چه ویژگیهایی میتوانند برای بلوکها تنظیم شوند؟
ویژگیهای مختلفی برای بلوکها در سیمولینک قابل تنظیم هستند که شامل موارد زیر میشود:
- پارامترهای ورودی/خروجی: مانند اندازه و نوع سیگنالها.
- ویژگیهای عملکردی: مانند تنظیمات مدلسازی و محاسبات داخلی.
- تنظیمات نمایش: شامل رنگها، اندازهها و نامها.
- زمانبندی و شرایط شروع: برای بلوکهایی که به زمانبندی وابسته هستند.
10. چگونه میتوان خطوط را در سیمولینک مرتب کرد؟
برای مرتب کردن خطوط و جلوگیری از بهمریختگی در مدل، از ابزار “Line Routing” استفاده کنید. این ابزار به شما کمک میکند تا خطوط را به صورت مرتب و منظم در اطراف مدل قرار دهید. همچنین میتوانید از ویژگی “Automatic Routing” برای تنظیم خودکار خطوط استفاده کنید.
11. آیا میتوان خطوط و بلوکها را در سیمولینک قفل کرد؟
بله، در سیمولینک میتوانید بلوکها و خطوط را قفل کنید تا از تغییرات ناخواسته جلوگیری کنید. این ویژگی به خصوص زمانی مفید است که بخواهید بخشهایی از مدل را بدون تغییر نگه دارید. برای قفل کردن یک بلوک یا خط، کافی است روی آن راستکلیک کرده و گزینه “Lock” را انتخاب کنید.
12. چه تفاوتی بین خطوط و بلوکهای سیگنال وجود دارد؟
بلوکهای سیگنال در سیمولینک به عنوان یک نقطه تماس برای سیگنالها عمل میکنند و میتوانند ویژگیهایی مانند نام یا نوع سیگنالها را مدیریت کنند. در مقابل، خطوط تنها به عنوان ابزار انتقال دادهها بین بلوکها استفاده میشوند و هیچ ویژگی مدیریتی به خود ندارند.
13. چگونه میتوان خطوط اضافی را از مدل سیمولینک حذف کرد؟
برای حذف خطوط اضافی از مدل سیمولینک، کافی است روی خط مورد نظر کلیک کرده و دکمه Delete را فشار دهید یا راستکلیک کرده و گزینه “Delete” را انتخاب کنید. این کار باعث حذف خط از مدل و آزاد شدن فضای کار میشود.
14. آیا میتوان خطوط را به طور موازی در سیمولینک ایجاد کرد؟
بله، در سیمولینک میتوانید خطوط را به طور موازی ایجاد کرده و بلوکها را از چندین مسیر به یکدیگر متصل کنید. این کار معمولاً برای ایجاد سیستمهای پیچیدهتر و انجام تحلیلهای مختلف روی سیگنالهای مشابه مورد استفاده قرار میگیرد.
15. آیا سیمولینک از بلوکهای سفارشی پشتیبانی میکند؟
بله، سیمولینک از بلوکهای سفارشی پشتیبانی میکند. کاربران میتوانند بلوکهای خاص خود را با استفاده از MATLAB یا S-Function ایجاد کرده و آنها را به مدل سیمولینک خود اضافه کنند. این امکان به شما اجازه میدهد تا عملکردهای خاصی را در مدلها پیادهسازی کنید که در بلوکهای پیشساخته موجود نیست.