متلب
صفحات وبلاگ
نویسنده: پ متلب - چهارشنبه ۱٦ فروردین ،۱۳٩۱

آموزش سیمولینک متلب _ matlab simulink


Click this bar to view the full image.

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

SIMULINK
سیمولینک یکی از متعلقات MATLAB می باشد که امکان ایجاد سریع و دقیق مدل کامپیوتری سیستمهای دینامیکی را با استفاده از نمودار بلوکی برای مهندسین فراهم می سازد. سیستمهای غیر خطی پیچیده را می توان توسط آن بسادگی مدل نمود. تحلیل و طراحی سیستمهای کنترل توسط آن براحتی امکانپذیر است.

Click this bar to view the full image.

نحوه کارکردن با Simulink رو به شما آموزش بدم پس اگه تا حالا با Simulink کار نکردید و یا مشکلاتی در کارکردن با اون دارید میتونید با من همراه باشید .

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

برای شروع کار با سیمولیک ابتدا از مسیر File >> New >> Model یک مدل جدید ایجاد کنید. این مدل رو در شکل زیر مشاهده میکنید.

Click this bar to view the full image.


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


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

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

این بلوکها را در مسیرهای زیر میتونید بیابید:

Simulink >> Sources >> Pulse Generator

Simulink >> Continuous >> Integrator

Simulink >> Continuous >> Derivative

Simulink >> Signal Routing >> Mux

Simulink >> Sinks >> Scope


نحوه آوردن بلوکها هم بسیار سادس شما میتونید روی بلوک مورد نظر کلیک چپ کرده و بدون رها کردن آن، موس رو به درون مدل مربوطه ببرید و در جائیکه میخواهید بلوک رو قرار دهید، موس رو رها کنید(Drag and Drop) و یا اینکه روی بلوک مورد نظر کلیک راست کرده و گزینه Add to untitled رو انتخاب کنید بهصورت زیر:


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

Click this bar to view the full image.


برای مرتب کردن بلوکها، هم با موس میتونید جای اونها رو عوض کنید هم با کیبورد به این صورت که بلوک موردنظر رو انتخاب میکنید و با کلیدهای جهتی بر روی کیبورد، جای بلوک رو تغییر میدید. برای بزرگ کردن اندازه بلوکها از کلید R و برای کوچک کردن آنها از کلید V استفاده کنید.

حالا باید تنظیمات لازم رو بر بلوکها انجام دهیم به روی بلوک مولد پالس دوبار کلیک کنید و مانند شکل زیر تغییرات لازم رو اعمال کنید:

Click this bar to view the full image.


خروجی این بلوک یک پالس با اندازه 1 و دوره تناوب 1.5 ثانیه و بدون تـاْخیر و با پهنای پالس معادل 50 درصد دامنه هست.

(Duty Cycle =50%)

به روی بلوک تسهیم کننده دوبار کلیک کرده و تعداد ورودیهای اون رو به 3 تغییر بدید.

در تنظیمات بلوکهای انتگرالگیر و مشتقگیر و اسکوپ تغییری ایجاد نکنید.

حال باید بلوکها رو به یکدیگر متصل کنیم برای اینکار ماوس رو به سمت خروجی مولد پالس برده و زمانی که ماوس به شکل + در اومد کلیک چپ رو فشار داده و بدون ول کردن آن به سمت ورودی دومی تسهیم کننده حرکت کنید و زمانی که اشارهگر ماوس بصورت یک بعلاوه دوخط درآمد آن را ول کنید تا اتصال ایجاد شود اگر میخواهید از یک سیگنال انشعابی بگیرید از کلیک راست ماوس باید استفاده کنید مثلا در مورد اتصال ورودی انتگرالگیر باید ماوس را به سمت سیگنال خروجی مولد پالس برده و با فشردن کلیک راست به سمت ورودی انتگرالگیر حرکت کنید و زمانی که اشارهگر ماوس بصورت یک بعلاوه دوخط درآمد آن را ول کنید تا اتصال ایجاد شود باقی اتصالات را دقیقا به همینصورت و مطابق شکل زیر انجام دهید:

Click this bar to view the full image.


حالا مدل شما آماده شده و میتونید اون رو اجرا کنید البته قبل از اجرا کردن باید تنظیمات شبیهسازی(زمان اجرا، گام حرکت، نوع حلگر و ...) رو انجام بدید که فعلا برای این مثال نیازی نیست پس مدلتون رو با فشاردادن دگمه استارت، ران کنید سپس به روی اسکوپ دوبار کلیک کنید شما قاعدتا باید شکل موجهای زیر رو ببینید:

(یادتان باشد که حتما روی دگمه Autoscale کلیک کنید تا شکل موجها را کامل ببینید)

Click this bar to view the full image.


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

مثال اول را میخواهیم با رسم نمودار یک تابع آغاز کنیم ضابطه این تابع به صورت زیر است:


ابتدا یک پنجره جدید را باز کرده و بلوکهای مورد نیاز را از مسیرهای زیر وارد میکنید:

Simulink >> Sources >> Clock

Simulink >> Sources >> Constant

Simulink >> Math Operations >> Sum

Simulink >> Math Operations >> Gain

Simulink >> Math Operations >> Math Function

Simulink >> Sinks >> XY Graph


بلوکهای خواسته شده را به تعدادی که در شکل زیر مشاهده میکنید آورده و مانند شکل آنها را مرتب کنید:

Click this bar to view the full image.


حالا تنظیمات زیر را انجام دهید:

روی بلوک Constant دوبار کلیک نموده و مقدار آن را 3 قرار دهید

روی بلوک Gain دوبار کلیک نموده و مقدار آن را 2 قرار دهید

روی بلوک Gain1 دوبار کلیک نموده و مقدار آن را 3 قرار دهید

روی بلوک Math Function دوبار کلیک نموده و در پنجره تنظیمات باز شده نوع تابع را square انتخاب کنید

روی بلوک Math Function1 دوبار کلیک نموده و در پنجره تنظیمات باز شده نوع تابع را pow انتخاب کنید

روی بلوک Sum دوبار کلیک نموده و در قسمت List of signs علامتهای -+-+| را وارد کنید

روی بلوک XY Graph دوبار کلیک نموده و حد پائین x را 5- و حد بالای آن را 5 و حد پائین y را 150- و حد بالای آن را 150 قرار دهید

اکنون بقیه بلوکها را مانند شکل زیر به یکدیگر وصل کنید:

Click this bar to view the full image.


این کلاکی که میبینید در واقع همان زمان شبیهسازی شماست که اینجا نقش متغییر x را بازی میکند و از این جهت است که به اولین ورودی بلوک XY Graph(محور افقی صفحه مختصات) وصل شده است خروجی جمع کننده نیز برابر با متغییر y است که به دومین ورودی بلوک XY Graph(محور عمودی صفحه مختصات) وصل شده است نقش باقی بلوکها را اگر به صورت معادله توجه کنید خواهید فهمید.

احتمالا میدانید که زمان شبیهسازی سیمولینک از صفر تا ده ثانیه(بطور پیش فرض) میباشد پس اگر ما بخواهیم تابع را در بازه [5 5-] رسم کنیم، باید بازه زمانی شبیهسازی را تغییر دهیم. برای این منظور از مسیر ...Simulation >> Configuration Parameters وارد تنظیمات مدل خود میشوید حالا مانند شکل زیر، زمان شروع و پایان شبیهسازی را وارد کنید:

Click this bar to view the full image.


اکنون مدل شما آماده شده و میتوانید آن را Run کنید پس از اجراکردن بطور خودکار نمودار نمایش داده میشود:

Click this bar to view the full image.


برای مثال دوم میخواهیم یک معادله غیرخطی را حل کنیم صورت معادله به شرح زیر است:


بلوکهای مورد نیاز برای حل این معادله را از مسیرهای زیر وارد یک مدل جدید کنید:

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


بلوکهای خواسته شده را به تعدادی که در شکل زیر مشاهده میکنید آورده و مانند شکل آنها را مرتب کنید:

Click this bar to view the full image.


تنظیمات بلوکها:

روی بلوک 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 کنید:

Click this bar to view the full image.


توجه کنید که ورودی بلوک Algebraic Constraint تابع و خروجی آن مقداری است که به ازای آن تابع ورودی صفر خواهد شد و به همین دلیل است که از خروجی این بلوک برای تغذیه آرگومانهای تابع ورودی استفاده شده است.

برای مثال آخر در قسمت دوم آموزش میخواهیم دستگاه معادلات زیر را حل کنیم:


بلوکهای مورد نیاز:

Simulink >> Sources >> Constant

Simulink >> Sinks >> Display

Simulink >> Math Operations >> Sum

Simulink >> Math Operations >> Gain

Simulink >> Math Operations >> Algebraic Constraint


بلوکهای خواسته شده را به تعدادی که در شکل زیر مشاهده میکنید آورده و مانند شکل آنها را مرتب کنید:

Click this bar to view the full image.


نکته: بلوکها را میتوانید به وسیله فشردن کلیدهای 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 کرده و جواب دستگاه معادلات مربوطه را مشاهده کنید:

Click this bar to view the full image.
مثالی از اعداد مختلط شروع می‌کنیم می‌خواهیم سیستمی طراحی کنیم که دو عدد مختلط را گرفته و چهار عمل اصلی ریاضی(جمع، تفریق، ‌ضرب، تقسیم) را روی آن دو انجام دهد و همچنین قسمت حقیقی، قسمت موهومی،‌ اندازه، فاز و مزدوج یکی از آن دو عدد را محاسبه کند توجه داشته باشید که هدف از این مثال یادگیری کار با اعداد مختلط و نحوه ایجاد زیر سیستم است.

طبق معمول ابتدا یک پنجره جدید باز کرده و بلوک‌های مورد نیاز را از مسیرهای زیر وارد می‌کنید:

Simulink >> Sources >> Constant

Simulink >> Sinks >> Display

Simulink >> Math Operations >> Sum

Simulink >> Math Operations >> Gain

Simulink >> Math Operations >> Product

Simulink >> Math Operations >> Divide

Simulink >> Math Operations >> Complex to Real-Imag

Simulink >> Math Operations >> Real-Imag to Complex

Simulink >> Math Operations >> Complex to Magnitude-Angle

بلوک‌ها را مانند شکل زیر مرتب کنید:

Click this bar to view the full image.

تنظیمات بلوک‌ها:

روی بلوک Constant دوبار کلیک نموده و مقدار آن را 2+3i و نام آن را z قرار دهید

روی بلوک Constant1 دوبار کلیک نموده و مقدار آن را 3-6i و نام آن را z1 قرار دهید

روی بلوک Gain دوبار کلیک نموده و مقدار آن را 1- قرار دهید

روی بلوک Sum1 دوبار کلیک نموده و در قسمت List of signs علامت‌های -+| را وارد کنید

روی بلوک‌های Display کلیک راست نموده و از مسیر Format >> Hide Name نام بلوک‌ها را پنهان کنید

حالا مانند شکل بلوک‌ها را به یکدیگر متصل کنید:

Click this bar to view the full image.

سپس تمامی بلوک‌ها به‌جزء بلوک‌های Constant و Display را انتخاب و کلیک راست کنید و از منوی باز شده Create Subsystem را انتخاب کنید حالا مدلتان احتمالا کمی بهم‌ریخته شده است کمی آن را مرتب کنید و بلوک Subsystem را از دو طرف بکشید تا بزرگتر شود برخی از بلوک‌های Display نیز احتیاج به بزرگترشدن دارند که این را بعد از شبیه‌سازی خواهید فهمید.

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

اکنون سیستم شما آماده شده و می‌توانید آن را Run کنید:

Click this bar to view the full image.

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

در مثال بعدی می‌خواهیم پاسخ پله و پاسخ ضربه یک سیستم کنترلی را مشاهده کنیم تابع تبدیل سیستم به شرح زیر است:


این سیستم درجه 3 است و اگر پاسخ پله آن را رسم کنیم خواهیم دید که پاسخ زیرمیرا(سینوسی میراشونده) می‌باشد ضمنا می خواهیم خروجی را در دو حالت(پاسخ پله و ضربه) به فضای کاری MATLAB انتقال دهیم.

بلوک‌های مورد نیاز:

Simulink >> Sources >> Step

Simulink >> Sinks >> Scope

Simulink >> Sinks >> To Workspace

Simulink >> Continuous >> Derivative

Simulink >> Continuous >> Transfer Fcn

بلوک‌ها را مانند شکل زیر مرتب کنید:

Click this bar to view the full image.

تنظیمات بلوک‌ها:

روی بلوک Step دوبار کلیک نموده و مقدار Step time را 0 قرار دهید

روی بلوک Transfer Fcn دوبار کلیک نموده و مقدار Denominator coefficients را [1 1 3 2] قرار دهید

روی بلوک Scope دوبار کلیک نموده و سپس به منوی Parameters رفته و تعداد محورها را برابر 2 قرار دهید

روی بلوک To Workspace دوبار کلیک نموده و در قسمت Variable name عبارت s را وارد کرده و در قسمت Save format حالت Array را انتخاب کنید

روی بلوک To Workspace1 دوبار کلیک نموده و در قسمت Variable name عبارت h را وارد کرده و در قسمت Save format حالت Array را انتخاب کنید

تنظیمات مدل:

با فشردن کلید Ctrl+E به صفحه تنظیمات رفته و مانند شکل زیر عمل کنید:

Click this bar to view the full image.

اتصالات را به صورت زیر انجام دهید:

Click this bar to view the full image.

حالا Run کنید:

Click this bar to view the full image.

یادتان باشد که حتما روی دگمه Autoscale کلیک کنید تا شکل موج‌ها را کامل ببینید.

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

Click this bar to view the full image.

نکته: رنک بلوک‌ها را می‌توانید با راست کلیک کردن به روی آن‌ها و از مسیر Background Color و رنگ پس‌زمینه را با راست کلیک کردن به روی صفحه مدل و از مسیر Screen Color تغییر دهید.

تمامی بلوک‌ها قبلا گفته شده که در کجا قرار دارند بجزء بلوک Reciprocal Sqrt که آن‌هم در کتابخانه Math Operations قرار دارد.

توجه: بلوک‌های به رنگ قرمز، Gain و بلوک‌های به رنگ صورتی، Constant هستند.

تنظیمات بلوک‌ها:

روی بلوک R دوبار کلیک نموده و مقدار آن را R قرار دهید

روی بلوک‌های L دوبار کلیک نموده و مقدار آن‌ها را L قرار دهید

روی بلوک C دوبار کلیک نموده و مقدار آن را C قرار دهید

روی بلوک L/R دوبار کلیک نموده و مقدار آن را L/R قرار دهید

روی بلوک LC\1 دوبار کلیک نموده و مقدار آن را LC\1 قرار دهید

بلوک Sum هم مشخص است که چه تنظیماتی دارد

روی بلوک Product دوبار کلیک نموده و تعداد ورودی‌های آن را 3 قرار دهید

روی بلوک Step دوبار کلیک نموده و مقدار Step time را D و مقدار Final value را A قرار دهید

روی بلوک Scope و بلوک‌های Display کلیک راست نموده و از مسیر Format >> Hide Name نام بلوک‌ها را پنهان کنید

روی بلوک Scope دوبار کلیک نموده و سپس به منوی Parameters رفته و تعداد محورها را برابر 2 قرار دهید

حالا تمامی بلوک‌ها را بجزء بلوک Scope و بلوک‌های Display انتخاب و کلیک راست کنید و از منوی باز شده Create Subsystem را انتخاب کنید پس اندکی مرتب کردن مدل، روی بلوک Subsystem کلیک راست کرده و گزینه ...Mask Subsystem را انتخاب کنید حالا همان‌طور که می‌بینید پنجره Mask Editor به نمایش درآمده است.

تنظیمات Mask Editor:

ابتدا به تب Icon & Ports بروید و Command را در حالت image قرار داده و در قسمت Icon Drawing commands کد زیر را وارد کنید:

(('image(imread('RLC.jpg

«RLC.jpg» عکسی است که من می‌خواهم پس‌زمینه‌ی مدل قرار بدم توجه کنید که این عکس باید در مسیر متلب باشد تا آپلود شود بعد از وارد کردن کد، Apply کرده و به تب Parameters بروید و مانند شکل زیر عمل کنید:

Click this bar to view the full image.

Apply کرده و به تب Documentation بروید و مانند شکل زیر عمل کنید:

Click this bar to view the full image.

حالا دیگر OK کنید.

حالا اگر روی بلوک دوبار کلیک کنید، دیالوگی برای شما باز می‌شود تا پارامترهای مدار را وارد کنید.

مانند شکل زیر عمل کنید:

Click this bar to view the full image.

سپس Run کنید:

Click this bar to view the full image.

برای دیدن شکل موج‌ها به روی اسکوپ دوبار کلیک کرده و دگمه Autoscale را بفشارید:

Click this bar to view the full image.
ابتدا با نحوه‌ی درون‌یابی و برون‌یابی(Interpolation-Extrapolation) در محیط Simulink آشنا می‌شویم. فرض کنید در آزمایشگاه، سیستمی(سیستمی الکتریکی، مکانیکی و یا هر سیستم دیگری) با یک ورودی را مورد آزمایش قرار داده‌اید و با دادن ورودی‌های مختلف، خروجی‌های متناظر را بدست آورده‌اید بصورت زیر:

X = [1 , 1.5 , 1.8 , 2.2 , 2.7 , 3.3 , 3.9]

y = [ 2.434 , 2.667 , 2.738 , 2.956 , 2.904 , 2.819 , 2.708]

حال می‌خواهید منحنی تغییرات این سیستم را به ازای بازه‌ای پیوسته از ورودی، با کمک درون‌یابی و برون‌یابی بدست آورید. بصورت زیر عمل کنید:

بلوک‌های مورد نیاز:

Simulink >> Sources >> Clock

Simulink >> Lookup Tables >> Lookup Table

Simulink >> Sinks >> Scope

تنظیمات بلوک‌ها:

روی بلوک Lookup Table دوبار کلیک کرده و در قسمت Vector of input values بردار x و در قسمت Table data بردار y را قرار داده و OK کنید. حال باید نمودار داده‌ها را روی بلوک مشاهده کنید

تنظیمات مدل:

با فشردن کلید Ctrl+E به صفحه تنظیمات مدل رفته و مانند شکل زیر عمل کنید:

Click this bar to view the full image.

در نحوه‌ی تنظیمات، احتمالا متوجه شده‌اید که می‌خواهیم منحنی را در بازه [5 0] رسم کنیم و برای افزایش تعداد نقاط منحنی، از حداکثر گام 0.01 استفاده کرده‌ایم.

حالا مانند شکل بلوک‌ها را به یکدیگر متصل کرده و Run کنید:

Click this bar to view the full image.

خروجی به صورت زیر است:

Click this bar to view the full image.

اگر سیستم شما دو ورودی داشته باشد، از بلوک (Lookup Table (2-D و در صورت داشتن بیش از دو ورودی، می‌توانید از بلوکی به‌نام (Lookup Table (n-D استفاده کنید. همچنین برای ویرایش نمودن، تغییر نوع و رسم نمودار داده‌ها، می‌توانید با کلیک کردن به روی Edit در پنجره‌ی تنظیمات این بلوک‌ها، به پنجره‌ی Lookup Table Editor وارد شوید.

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

بلوک‌های مورد نیاز:

Simulink >> Sources >> Clock

Simulink >> Sources >> Constant

Simulink >> Sources >> Sine Wave

Simulink >> Math Operations >> Gain

Simulink >> Math Operations >> Product

Simulink >> Continuous >> Derivative

Simulink >> Math Operations >> Math Function

Simulink >> Signal Routing >> Mux

Simulink >> Signal Attributes >> Data Type Conversion

Simulink >> Logic and Bit Operations >> Relational Operator

Simulink >> Logic and Bit Operations >> Logical Operator

Signal Processing Blockset >> Signal Management >> Switches and Counters >> Counter

Simulink >> Sinks >> Display

Simulink >> Sinks >> Scope

بصورت زیر بلوک‌ها را مرتب کنید:

Click this bar to view the full image.

تنظیمات بلوک‌ها:

روی بلوک Gain دوبار کلیک نموده و مقدار آن را 0.5- قرار دهید

روی بلوک Sine Wave دوبار کلیک نموده و مقدار فرکانس آن را 20*pi قرار دهید

روی بلوک Constant دوبار کلیک نموده و مقدار آن را 0 قرار دهید

روی بلوک Constant1 دوبار کلیک نموده و مقدار آن را 0 قرار دهید

روی بلوک Relational Operator دوبار کلیک نموده و در قسمت Relational operator عملگر < را انتخاب کنید

روی بلوک Relational Operator1 دوبار کلیک نموده و در قسمت Relational operator عملگر < را انتخاب کنید

روی بلوک Relational Operator2 دوبار کلیک نموده و در قسمت Relational operator عملگر > را انتخاب کنید

روی بلوک Relational Operator3 دوبار کلیک نموده و در قسمت Relational operator عملگر > را انتخاب کنید

روی بلوک Logical Operator دوبار کلیک نموده و در قسمت Icon shape نوع نمایش را distinctive انتخاب کنید

روی بلوک Logical Operator1 دوبار کلیک نموده و در قسمت Icon shape نوع نمایش را distinctive انتخاب کنید

روی بلوک Data Type Conversion دوبار کلیک نموده و در قسمت Output data type نوع داده‌ی خروجی را double انتخاب کنید

روی بلوک Data Type Conversion1 دوبار کلیک نموده و در قسمت Output data type نوع داده‌ی خروجی را double انتخاب کنید

روی بلوک Counter دوبار کلیک نموده و در قسمت Maximum count عدد 1e100 و در قسمت Output حالت Count و Reset input را غیرفعال کنید

روی بلوک Counter1 دوبار کلیک نموده و در قسمت Maximum count عدد 1e100 و در قسمت Output حالت Count و Reset input را غیرفعال کنید


تنظیمات مدل:

با فشردن کلید Ctrl+E به صفحه تنظیمات مدل رفته و مانند شکل زیر عمل کنید:

Click this bar to view the full image.

سپس بلوک‌ها را مانند شکل زیر به یکدیگر متصل کرده و Run کنید:

Click this bar to view the full image.

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

Click this bar to view the full image.


Click this bar to view the full image.

توضیح مدل:

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

توجه: در صورتی که بخواهید فرکانس موج ورودی را تا حد زیادی(مثلا 1GHz) افزایش دهید، حتما باید حداکثر گام حرکت را کاهش دهید که در غیر این صورت جواب نادرست خواهید گرفت.(چرا؟)

در مثال بعد می‌خواهیم یک مبدل آنالوگ به دیجیتال(ADC) بسیار ساده طراحی کنیم. همان‌طور که احتمالا می‌دانید،‌ یکی از پارامترهای مهم در یک ADC ، تعداد بیت‌های آن است که در واقع مشخص کننده‌ی قدرت تفکیک‌پذیری آن می‌باشد. بطور مثال یک ADC هشت بیت،‌ می‌تواند 256 حالت مختلف را ایجاد کند. حال فرض کنید که ما می‌خواهیم یک مبدل چهار بیت طراحی کنیم(این مبدل 16 حالت مختلف را ایجاد می‌کند).

برای شروع کار ابتدا بلوک‌های زیر را در یک مدل قرار دهید:

Simulink >> Sinks >> Scope

Simulink >> Sinks >> Display

Simulink >> Math Operations >> Sum

Simulink >> Logic and Bit Operations >> Relational Operator

Simulink >> Logic and Bit Operations >> Logical Operator

Simulink >> Sources >> Ground

Simulink >> Sources >> Constant

Simulink >> Sources >> Signal Generator

Simulink >> Signal Routing >> Switch

ابتدا باید سیگنال ورودی را به 16 قسمت مساوی تقسیم کنیم در نتیجه به بعضی از پارامترهای سیگنال ورودی احتیاج داریم(البته شاید بتوان به روش‌هایی این پارامترها را محاسبه کرد ولی در این مثال هدف چیز دیگری است). مثلا فرض کنید که دامنه پیک تا پیک و همچنین مینیمم سیگنال را داریم حالا باید از مقدار مینیمم شروع کرده و به‌نسبت A/15 به مقدار مینیمم اضافه کرده تا به مقدار ماکزیمم سیگنال برسیم این مقادیر را بصورت پارامتری، درون 16 عدد بلوک Constant قرار می‌دهیم سپس سیگنال ورودی را به 17 قسمت مساوی تقسیم می‌کنیم تا بتوانیم از عملگرهای مقایسه‌ای استفاده کنیم(برای تشخیص لحظه‌ای دامنه سیگنال ورودی) پس از آن از مقدار مینیمم شروع کرده و به‌نسبت A/16 به مقدار مینیمم اضافه کرده تا به مقدار ماکزیمم سیگنال برسیم این مقادیر را بصورت پارامتری، درون 17 عدد بلوک Constant قرار می‌دهیم.

تنظیمات تمام بلوک‌های سوئیچ را بصورت زیر قرار می‌دهیم:

Click this bar to view the full image.

حال بصورت زیر عمل می‌کنیم:

Click this bar to view the full image.

زمانی که خروجی بلوک عملگر رابطه‌ای، 1 باشد(دامنه سیگنال از مقدار P+A/16 کمتر باشد) بلوک سوئیچ، عدد P (مقدار اولیه) و در غیر این صورت این بلوک مقدار صفر را عبور می‌دهد.

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

Click this bar to view the full image.

در این شکل همان‌طور که ملاحظه می‌شود، زمانی که دامنه سیگنال ورودی از مقدار P+(2*A)/16 کوچکتر و بزرگتر و یا مساوی مقدار P+A/16 باشد، خروجی بلوک AND یک شده و بلوک سوئیچ مقدار P+A/15 را از خود عبور می‌دهد و در دیگر حالات زمین در مسیر خروجی قرار می‌گیرد.

سپس به‌همین ترتیب ادامه می‌دهیم تا نهایتا به مدل زیر می‌رسیم:

Click this bar to view the full image.

نکته: می‌توان یک سیگنال‌ژنراتور و یک زمین به‌ کار برد و برای استفاده در مکان‌های دیگر از آن‌ها انشعاب گرفت(درواقع هیچ‌گونه اثر بارگذاری روی یکدیگر ندارند)

حال خروجی 16 بلوک سوئیچ را به یک جمع‌کننده با 16 ورودی می‌دهیم تا سیگنال دیجیتال شده را به ما تحویل دهد. سپس خروجی جمع‌کننده را به یک بلوک اسکوپ داده و نهایتا از کل سیستم، یک زیرسیستم تهیه کرده و آن‌را ماسک می‌کنیم و تنظیمات ماسک را بصورت زیر قرار می‌دهیم:

Click this bar to view the full image.

مدل نهایی با اندکی تغییرات اضافی بصورت زیر است:

Click this bar to view the full image.

حال مدل را به‌ازای یک ورودی سینوسی با فرکانس 1KHz و دامنه 1 و مقدار dc برابر 0 شبیه‌سازی می‌کنیم(مقدار مینیمم سیگنال 1- و دامنه پیک تا پیک آن برابر 2 است):

خروجی بصورت زیر است:

Click this bar to view the full image.


Click this bar to view the full image.
برگرفته از http://kanakh.com
نویسندگان وبلاگ:
کدهای اضافی کاربر :