در ابتدا به بررسی چند مثال کلی می پردازیم سپس شبیه سازی خود را بررسی می کنیم. در چند قسمت، نحوه کارکردن با Simulink رو به شما آموزش داده میشود پس اگه تا حالا با Simulink کار نکردید و یا مشکلاتی در کارکردن با اون دارید این قسمت میتواند برایتان مفید باشد.
سیمولینک نرم افزاریه که شما برای شبیهسازی سیستمهای دینامیکی، میتونید از اون استفاده کنید این نرمافزار زیرمجموعه نرمافزار متلب که دارای کتابخانههای زیادی در زمینه رشتههای مختلف از جمله برق و مکانیکه. اگر ما نرمافزار متلب رو فصل مشترک رشتههای مهندسی در محاسبات عددی بدانیم نرمافزار سیمولینک رو میتوانیم فصل مشترک رشتههای مهندسی در زمینه نرمافزارهای شبیهساز قرار بدیم.
برای شروع کار با سیمولیک ابتدا از مسیر File >> New >> Model یک مدل جدید ایجاد کنید. این مدل رو در شکل زیر مشاهده میکنید.
شکل 1‑49. ایجاد یک مدل جدید در سیمولینک.
حالا
شما باید در این مدل برحسب مسالهای که میخواهید حل کنید عناصر مورد احتیاج رو از
کتابخانه سیمولینک به مدل مورد نظر انتقال دهید. برای بازکردن کتابخانه سیمولینک،
رو صفحه متلب عبارت simulink رو وارد کنید و یا به روی دگمه نشان داده
شده در شکل زیر که هم در صفحه اصلی متلب و هم در مدل ایجاد شده قرار دارد کلیک
کنید
.
شکل 1‑50. باز کردن کتابخانه سیمولینک برای استفاده از عناصر.
همونطور که در کتابخانه سیمونیک مشاهده میکنید کتابخانههای زیادی وجود داره که هرکس بنا به رشتهای که داره با این کتابخانهها کار میکنه مثلا کسی که مکانیک خونده با قسمت مخابرات اون کاری نداره ولی آنچه که مشترک بین کلیه کاربران هستش یادگیری بلوکهای کتابخانه اصلی سیمولیکه که من تا جائیکه بتونم سعی میکنم با مثالهای متنوع، بلوکهایی رو که بیشتر به کار میان برای شما شرح بدم.
برای اولین مثال میخواهیم از یک پالس، مشتق و انتگرال گرفته و روی یک اسکوپ به همراه سیگنال اصلی نمایش بدیم بلوکهایی رو که احتیاج داریم عبارتند از: مولد پالس، انتگرالگیر، مشتقگیر، تسهیم کننده و بلوکی بسیار معروف به نام اسکوپ.
این بلوکها را در مسیرهای زیر میتونید بیابید:
Simulink >> Sources >> Pulse Generator
Simulink >> Continuous >> Integrator
Simulink >> Continuous >> Derivative
Simulink >> Signal Routing >> Mux
Simulink >> Sinks >> Scope
نحوه آوردن بلوکها هم بسیار سادس شما میتونید روی بلوک مورد نظر کلیک چپ کرده و بدون رها کردن آن، موس رو به درون مدل مربوطه ببرید و در جائیکه میخواهید بلوک رو قرار دهید، موس رو رها کنید(Drag and Drop) و یا اینکه روی بلوک مورد نظر کلیک راست کرده و گزینه Add to untitled رو انتخاب کنید بهصورت زیر:
شکل 1‑51. نحوه اضافه کردن المان مد نظر به پروژه اصلی.
در واقع untitled
نام پیش فرض مدل شماست که میتونید اون رو
تغییر بدهید. پس از اینکه تمامی بلوکها رو به مدل خودتون اضافه کردید بلوکها رو
بهصورت زیر دربیارید
:
شکل 1‑52. نحوه قرار دادن و مرتب کردن بلوکها در سیمولینک.
برای مرتب کردن بلوکها، هم با موس میتونید جای اونها رو عوض کنید هم با کیبورد به این صورت که بلوک موردنظر رو انتخاب میکنید و با کلیدهای جهتی بر روی کیبورد، جای بلوک رو تغییر میدید. برای بزرگ کردن اندازه بلوکها از کلید R و برای کوچک کردن آنها از کلید V استفاده کنید.
حالا باید تنظیمات لازم رو بر بلوکها انجام دهیم به روی بلوک مولد پالس دوبار کلیک کنید و مانند شکل زیر تغییرات لازم رو اعمال کنید:
شکل 1‑53. نحوه تنظیم کردن مقادیر داخلی بلوک.
خروجی این بلوک یک پالس با اندازه 1 و دوره تناوب 1.5 ثانیه و بدون تـاْخیر و با پهنای پالس معادل 50 درصد دامنه هست.
(Duty Cycle =50%)
به روی بلوک تسهیم کننده دوبار کلیک کرده و تعداد ورودیهای اون رو به 3 تغییر بدید.
در تنظیمات بلوکهای انتگرالگیر و مشتقگیر و اسکوپ تغییری ایجاد نکنید.
حال باید بلوکها رو به یکدیگر متصل کنیم برای اینکار ماوس رو به سمت خروجی مولد پالس برده و زمانی که ماوس به شکل + در اومد کلیک چپ رو فشار داده و بدون ول کردن آن به سمت ورودی دومی تسهیم کننده حرکت کنید و زمانی که اشارهگر ماوس بصورت یک بعلاوه دوخط درآمد آن را ول کنید تا اتصال ایجاد شود اگر میخواهید از یک سیگنال انشعابی بگیرید از کلیک راست ماوس باید استفاده کنید مثلا در مورد اتصال ورودی انتگرالگیر باید ماوس را به سمت سیگنال خروجی مولد پالس برده و با فشردن کلیک راست به سمت ورودی انتگرالگیر حرکت کنید و زمانی که اشارهگر ماوس بصورت یک بعلاوه دوخط درآمد آن را ول کنید تا اتصال ایجاد شود باقی اتصالات را دقیقا به همینصورت و مطابق شکل زیر انجام دهید:
شکل 1‑54. نحوه اتصال دادن المانهای مداری به هم.
حالا مدل شما آماده شده و میتونید اون رو اجرا کنید البته قبل از اجرا کردن باید تنظیمات شبیهسازی(زمان اجرا، گام حرکت، نوع حلگر و ...) رو انجام بدید که فعلا برای این مثال نیازی نیست پس مدلتون رو با فشاردادن دگمه استارت، ران کنید سپس به روی اسکوپ دوبار کلیک کنید شما قاعدتا باید شکل موجهای زیر رو ببینید:
(یادتان باشد که حتما روی دگمه Autoscale کلیک کنید تا شکل موجها را کامل ببینید)
شکل 1‑55. نحوه مشاهده شکل موج خروجی مدار.
مثال اول را میخواهیم با رسم نمودار یک تابع آغاز کنیم ضابطه این تابع به صورت زیر است:
|
|
ابتدا یک پنجره جدید را باز کرده و بلوکهای مورد نیاز را از مسیرهای زیر وارد میکنید:
Simulink >> Sources >> Clock
Simulink >> Sources >> Constant
Simulink >> Math Operations >> Sum
Simulink >> Math Operations >> Gain
Simulink >> Math Operations >> Math Function
Simulink >> Sinks >> XY Graph
بلوکهای خواسته شده را به تعدادی که در شکل زیر مشاهده میکنید آورده و مانند شکل آنها را مرتب کنید:
شکل 1‑56. نحوه مرتب کردن المانهای مداری در سیمولینک.
حالا تنظیمات زیر را انجام دهید:
روی بلوک Constant دوبار کلیک نموده و مقدار آن را 3 قرار دهید
روی بلوک Gain دوبار کلیک نموده و مقدار آن را 2 قرار دهید
روی بلوک Gain1 دوبار کلیک نموده و مقدار آن را 3 قرار دهید
روی بلوک Math Function دوبار کلیک نموده و در پنجره تنظیمات باز شده نوع تابع را square انتخاب کنید
روی بلوک Math Function1 دوبار کلیک نموده و در پنجره تنظیمات باز شده نوع تابع را pow انتخاب کنید
روی بلوک Sum دوبار کلیک نموده و در قسمت List of signs علامتهای -+-+| را وارد کنید
روی بلوک XY Graph دوبار کلیک نموده و حد پائین x را 5- و حد بالای آن را 5 و حد پائین y را 150- و حد بالای آن را 150 قرار دهید.
اکنون بقیه بلوکها را مانند شکل زیر به یکدیگر وصل کنید:
شکل 1‑57. نحوه متصل کردن المانهای مداری به یکدیگر.
این کلاکی که میبینید در واقع همان زمان شبیهسازی شماست که اینجا نقش متغییر x را بازی میکند و از این جهت است که به اولین ورودی بلوک XY Graph(محور افقی صفحه مختصات) وصل شده است خروجی جمع کننده نیز برابر با متغییر y است که به دومین ورودی بلوک XY Graph(محور عمودی صفحه مختصات) وصل شده است نقش باقی بلوکها را اگر به صورت معادله توجه کنید خواهید فهمید.
احتمالا میدانید که زمان شبیهسازی سیمولینک از صفر تا ده ثانیه(بطور پیش فرض) میباشد پس اگر ما بخواهیم تابع را در بازه [5 5-] رسم کنیم، باید بازه زمانی شبیهسازی را تغییر دهیم. برای این منظور از مسیر ...Simulation >> Configuration Parameters وارد تنظیمات مدل خود میشوید حالا مانند شکل زیر، زمان شروع و پایان شبیهسازی را وارد کنید:
شکل 1‑58. نحوه تنظیم کردن زمان شروع و پایان شبیه سازی.
اکنون مدل شما آماده شده و میتوانید
آن را Run کنید پس از اجراکردن بطور خودکار نمودار نمایش داده میشود
:
شکل 1‑59. مشاهده شکل موج مدنظر در مدار.
برای مثال دوم میخواهیم یک معادله غیرخطی را حل کنیم صورت معادله به شرح زیر است:
|
|
بلوکهای مورد نیاز برای حل این معادله را از مسیرهای زیر وارد یک مدل جدید کنید:
Simulink >> Sources >> Constant
Simulink >> Sinks >> Display
Simulink >> Math Operations >> Sum
Simulink >> Math Operations >> Gain
Simulink >> Math Operations >> Math Function
Simulink >> Math Operations >> Algebraic Constraint
Simulink >> Math Operations >> Trigonometric Function
Simulink >> Math Operations >> Product
Simulink >> Math Operations >> Abs
بلوکهای خواسته شده را به تعدادی که در شکل زیر مشاهده میکنید آورده و مانند شکل آنها را مرتب کنید:
شکل 1‑60. قرار دادن بلوکهای اصلی در شبیه سازی مورد نظر.
تنظیمات بلوکها:
روی بلوک Constant1 دوبار کلیک نموده و مقدار آن را 3 قرار دهید
روی بلوک Constant2 دوبار کلیک نموده و مقدار آن را 3 قرار دهید
روی بلوک Gain دوبار کلیک نموده و مقدار آن را 5 قرار دهید
روی بلوک Gain1 دوبار کلیک نموده و مقدار آن را 2 قرار دهید
روی بلوک Math Function1 دوبار کلیک نموده و در پنجره تنظیمات باز شده نوع تابع را pow انتخاب کنید
روی بلوک Trigonometric Function دوبار کلیک نموده و در پنجره تنظیمات باز شده نوع تابع را cos انتخاب کنید
روی بلوک Sum (توجه کنید که نام بلوک Sum بطور پیش فرض مخفی است و شما میتوانید روی بلوک راست کلیک کرده و از مسیر Format >> Show Name نام بلوک را آشکار کنید) دوبار کلیک نموده و در قسمت List of signs علامت های --+--| را وارد کنید و در قسمت Icon shape نوع نمایش را rectangular برگزینید
روی بلوک Sum1 دوبار کلیک نموده و در قسمت List of signs علامتهای -+| را وارد کنید
حالا مانند شکل زیر بلوکها را به یکدیگر متصل کرده و Run کنید:
شکل 1‑61. نحوه اتصال دادن المانهای مداری به یکدیگر.
توجه کنید که ورودی بلوک Algebraic Constraint تابع و خروجی آن مقداری است که به ازای آن تابع ورودی صفر خواهد شد و به همین دلیل است که از خروجی این بلوک برای تغذیه آرگومانهای تابع ورودی استفاده شده است.
برای مثال آخر در قسمت دوم آموزش میخواهیم دستگاه معادلات زیر را حل کنیم:
|
|
بلوکهای مورد نیاز:
Simulink >> Sources >> Constant
Simulink >> Sinks >> Display
Simulink >> Math Operations >> Sum
Simulink >> Math Operations >> Gain
Simulink >> Math Operations >> Algebraic Constraint
بلوکهای خواسته شده را به تعدادی که در شکل زیر مشاهده میکنید آورده و مانند شکل آنها را مرتب کنید:
شکل 1‑62. نحوه قرار دادن المانهای مورد نظر در شبیه سازی مورد نظر.
نکته: بلوکها را میتوانید به وسیله فشردن کلیدهای Ctrl+R بچرخانید.
تنظیمات بلوکها:
روی بلوک Constant دوبار کلیک نموده و مقدار آن را 3 قرار دهید
روی بلوک Constant1 دوبار کلیک نموده و مقدار آن را 2 قرار دهید
روی بلوک Gain دوبار کلیک نموده و مقدار آن را 2 قرار دهید
روی بلوک Gain1 دوبار کلیک نموده و مقدار آن را 3 قرار دهید
روی بلوک Gain2 دوبار کلیک نموده و مقدار آن را 7 قرار دهید
روی بلوک Gain3 دوبار کلیک نموده و مقدار آن را 5 قرار دهید
روی بلوک Gain4 دوبار کلیک نموده و مقدار آن را 3 قرار دهید
روی بلوک Gain5 دوبار کلیک نموده و مقدار آن را 4 قرار دهید
روی بلوک Gain6 دوبار کلیک نموده و مقدار آن را 4 قرار دهید
روی بلوک Sum دوبار کلیک نموده و در قسمت List of signs علامت های ++-+| را وارد کنید
روی بلوک Sum1 دوبار کلیک نموده و در قسمت List of signs علامت های ++--| را وارد کنید
روی بلوک Sum2 دوبار کلیک نموده و در قسمت List of signs علامت های ++--| را وارد کنید
اگر میخواهید خروجی را با دقت بالاتری ببینید، روی بلوکهای Display دوبار کلیک کرده و فرمت نمایش آنها را long انتخاب کنید
حالا میتوانید مدلتان را Run کرده و جواب دستگاه معادلات مربوطه را مشاهده کنید:
شکل 1‑63. مدار کلی و شکل موجهای اصلی برای دستگاه معادلات.