[آموزش 01] سیمولینک (Simulink) در متلب

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
آموزش سیمولینک نوشته شده توسط مجتبی آیتی نیا

فهرست مطالب:
  1. نحوه ايجاد مدل، آوردن قطعات از كتابخانه، اتصال قطعات به يكديگر
  2. رسم نمودار يك تابع و حل دستگاه معادلات
  3. چهار عمل اصلي رياضي روی اعداد مختلط
  4. نحوه‌ي درون‌يابي و برون‌يابي
  5. اجرای یک سیستم کنترلی
  6. شبیه سازی معادلات دیفرانسیل

منبع: mathworks.ir


تاپیکهای مشابه:
[h=3][آموزش 02] سیمولینک (Simulink) در متلب[/h]
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
قسمت اول - آموزش سیمولینک

قسمت اول - آموزش سیمولینک

با عرض سلام خدمت دوستان عزيز
قصد دارم در چند قسمت، نحوه كاركردن با Simulink رو به شما آموزش بدم پس اگه تا حالا با Simulink كار نكرديد و يا مشكلاتي در كاركردن با اون داريد مي‌تونيد با من همراه باشيد درصورتي‌كه پاسخ مشكلتون رو دريافت نكرديد مي‌تونيد در قسمت نظرات اون مشكل رو مطرح كنيد، اگه بلد بودم پاسختون رو مي‌دم.
سيمولينك نرم افزاريه كه شما براي شبيه‌سازي سيستم‌هاي ديناميكي، مي‌تونيد از اون استفاده كنيد اين نرم‌افزار زيرمجموعه نرم‌افزار متلبه كه داراي كتابخانه‌هاي زيادي در زمينه رشته‌هاي مختلف از جمله برق و مكانيكه. اگه ما نرم‌افزار متلب رو فصل مشترك رشته‌هاي مهندسي در محاسبات عددي بدونيم نرم‌افزار سيمولينك رو مي‌تونيم فصل مشترك رشته‌هاي مهندسي در زمينه نرم‌افزارهاي شبيه‌ساز قرار بديم.
براي شروع كار با سيموليك ابتدا از مسير File >> New >> Model يك مدل جديد ايجاد كنيد. اين مدل رو در شكل زير مشاهده مي‌كنيد.

sim1sim.jpg

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

sim2.jpg

همون‌طور كه در كتابخانه سيمونيك مشاهده مي‌كنيد كتابخانه‌هاي زيادي وجود داره كه هركس بنا به رشته‌اي كه داره با اين كتابخانه‌ها كار مي‌كنه مثلا كسي كه مكانيك خونده با قسمت مخابرات اون كاري نداره ولي آنچه كه مشترك بين كليه كاربران هستش يادگيري بلوك‌هاي كتابخانه اصلي سيموليكه كه من تا جائيكه بتونم سعي مي‌كنم با مثال‌هاي متنوع، بلوك‌هايي رو كه بيشتر به كار ميان براي شما شرح بدم.
براي اولين مثال مي‌خواهيم از يك پالس، مشتق و انتگرال گرفته و روي يك اسكوپ به همراه سيگنال اصلي نمايش بديم بلوك‌هايي رو كه احتياج داريم عبارتند از: مولد پالس، انتگرالگير، مشتقگير، تسهيم كننده و بلوكي بسيار معروف به نام اسكوپ.
اين بلوك‌ها را در مسيرهاي زير مي‌تونيد بيابيد:


Simulink >> Sources >> Pulse Generator
Simulink >> Continuous >> Integrator
Simulink >> Continuous >> Derivative
Simulink >> Signal Routing >> Mux
Simulink >> Sinks >> Scope​

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

sim3.jpg

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



sim4.jpg

براي مرتب كردن بلوك‌ها، هم با موس مي‌تونيد جاي اون‌ها رو عوض كنيد هم با كيبورد به اين صورت كه بلوك مورد‌نظر رو انتخاب مي‌كنيد و با كليدهاي جهتي بر روي كيبورد، جاي بلوك رو تغيير مي‌ديد. براي بزرگ كردن اندازه بلوك‌ها از كليد R و براي كوچك كردن آنها از كليد V استفاده كنيد.
حالا بايد تنظيمات لازم رو بر بلوك‌ها انجام دهيم به روي بلوك مولد پالس دوبار كليك كنيد و مانند شكل زير تغييرات لازم رو اعمال كنيد:


sim5.jpg

خروجي اين بلوك يك پالس با اندازه 1 و دوره تناوب 1.5 ثانيه و بدون تـاْخير و با پهناي پالس معادل 50 درصد دامنه هست.
(Duty Cycle =50%)

به روي بلوك تسهيم كننده دوبار كليك كرده و تعداد ورودي‌هاي اون رو به 3 تغيير بديد.
در تنظيمات بلوك‌هاي انتگرالگير و مشتقگير و اسكوپ تغييري ايجاد نكنيد.
حال بايد بلوك‌ها رو به يكديگر متصل كنيم براي اينكار ماوس رو به سمت خروجي مولد پالس برده و زماني كه ماوس به شكل + در اومد كليك چپ رو فشار داده و بدون ول كردن آن به سمت ورودي دومي تسهيم كننده حركت كنيد و زماني كه اشاره‌گر ماوس بصورت يك بعلاوه دوخط درآمد آن را ول كنيد تا اتصال ايجاد شود اگر مي‌خواهيد از يك سيگنال انشعابي بگيريد از كليك راست ماوس بايد استفاده كنيد مثلا در مورد اتصال ورودي انتگرالگير بايد ماوس را به سمت سيگنال خروجي مولد پالس برده و با فشردن كليك راست به سمت ورودي انتگرالگير حركت كنيد و زماني كه اشاره‌گر ماوس بصورت يك بعلاوه دوخط درآمد آن را ول كنيد تا اتصال ايجاد شود باقي اتصالات را دقيقا به همين‌صورت و مطابق شكل زير انجام دهيد:


sim6.jpg

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

sim7.jpg
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
قسمت دوم - آموزش سیمولینک

قسمت دوم - آموزش سیمولینک

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


eqs2.jpg


ابتدا يك پنجره جديد را باز كرده و بلوك‌هاي مورد نياز را از مسيرهاي زير وارد مي‌كنيد:


Simulink >> Sources >> Clock
Simulink >> Sources >> Constant
Simulink >> Math Operations >> Sum
Simulink >> Math Operations >> Gain
Simulink >> Math Operations >> Math Function
Simulink >> Sinks >> XY Graph​

بلوك‌هاي خواسته شده را به تعدادي كه در شكل زير مشاهده مي‌كنيد آورده و مانند شكل آنها را مرتب كنيد:

sim8.jpg
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حالا تنظيمات زير را انجام دهيد:

  • روي بلوك Constant دوبار كليك نموده و مقدار آن را 3 قرار دهيد
  • روي بلوك Gain دوبار كليك نموده و مقدار آن را 2 قرار دهيد
  • روي بلوك Gain1 دوبار كليك نموده و مقدار آن را 3 قرار دهيد
  • روي بلوك Math Function دوبار كليك نموده و در پنجره تنظيمات باز شده نوع تابع را square انتخاب كنيد
  • روي بلوك Math Function1 دوبار كليك نموده و در پنجره تنظيمات باز شده نوع تابع را pow انتخاب كنيد
  • روي بلوك Sum دوبار كليك نموده و در قسمت List of signs علامت‌هاي -+-+| را وارد كنيد
  • روي بلوك XY Graph دوبار كليك نموده و حد پائين x را 5- و حد بالاي آن را 5 و حد پائين y را 150- و حد بالاي آن را 150 قرار دهيد

اكنون بقيه بلوك‌ها را مانند شكل زير به يكديگر وصل كنيد:

sim9.jpg

اين كلاكي كه مي‌بينيد در واقع همان زمان شبيه‌سازي شماست كه اينجا نقش متغيير x را بازي مي‌كند و از اين جهت است كه به اولين ورودي بلوك XY Graph(محور افقي صفحه مختصات) وصل شده است خروجي جمع كننده نيز برابر با متغيير y است كه به دومين ورودي بلوك XY Graph(محور عمودي صفحه مختصات) وصل شده است نقش باقي بلوك‌ها را اگر به صورت معادله توجه كنيد خواهيد فهميد.
احتمالا مي‌دانيد كه زمان شبيه‌سازي سيمولينك از صفر تا ده ثانيه(بطور پيش فرض) مي‌باشد پس اگر ما بخواهيم تابع را در بازه [5 5-] رسم كنيم، بايد بازه زماني شبيه‌سازي را تغيير دهيم. براي اين منظور از مسير ...Simulation >> Configuration Parameters وارد تنظيمات مدل خود مي‌شويد حالا مانند شكل زير، زمان شروع و پايان شبيه‌سازي را وارد كنيد:

sim10.jpg
 
آخرین ویرایش:
  • Like
واکنش ها: ahzf

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
اكنون مدل شما آماده شده و مي‌توانيد آن را Run كنيد پس از اجراكردن بطور خودكار نمودار نمايش داده مي‌شود:


sim11.jpg

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

eqs3.jpg

بلوك‌هاي مورد نياز براي حل اين معادله را از مسيرهاي زير وارد يك مدل جديد كنيد:


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​

بلوك‌هاي خواسته شده را به تعدادي كه در شكل زير مشاهده مي‌كنيد آورده و مانند شكل آنها را مرتب كنيد:


sim12.jpg

تنظيمات بلوك‌ها:

  • روي بلوك 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 كنيد:

sim13.jpg
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
توجه كنيد كه ورودي بلوك Algebraic Constraint تابع و خروجي آن مقداري است كه به ازاي آن تابع ورودي صفر خواهد شد و به همين دليل است كه از خروجي اين بلوك براي تغذيه آرگومان‌هاي تابع ورودي استفاده شده است.
براي مثال آخر در قسمت دوم آموزش مي‌خواهيم دستگاه معادلات زير را حل كنيم:

eqs5.jpg

بلوك‌هاي مورد نياز:


Simulink >> Sources >> Constant
Simulink >> Sinks >> Display
Simulink >> Math Operations >> Sum
Simulink >> Math Operations >> Gain
Simulink >> Math Operations >> Algebraic Constraint​

بلوك‌هاي خواسته شده را به تعدادي كه در شكل زير مشاهده مي‌كنيد آورده و مانند شكل آنها را مرتب كنيد:


sim14.jpg

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


sim15.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
قسمت سوم - آموزش سیمولینک

قسمت سوم - آموزش سیمولینک

قسمت سوم آموزش رو با مثالي از اعداد مختلط شروع مي‌كنيم مي‌خواهيم سيستمي طراحي كنيم كه دو عدد مختلط را گرفته و چهار عمل اصلي رياضي(جمع، تفريق، ‌ضرب، تقسيم) را روي آن دو انجام دهد و همچنين قسمت حقيقي، قسمت موهومي،‌ اندازه، فاز و مزدوج يكي از آن دو عدد را محاسبه كند توجه داشته باشيد كه هدف از اين مثال يادگيري كار با اعداد مختلط و نحوه ايجاد زير سيستم است.
طبق معمول ابتدا يك پنجره جديد باز كرده و بلوك‌هاي مورد نياز را از مسيرهاي زير وارد مي‌كنيد:


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​

بلوك‌ها را مانند شكل زير مرتب كنيد:


sim16.jpg

تنظيمات بلوك‌ها:

  • روي بلوك Constant دوبار كليك نموده و مقدار آن را 2+3i و نام آن را z قرار دهيد
  • روي بلوك Constant1 دوبار كليك نموده و مقدار آن را 3-6i و نام آن را z1 قرار دهيد
  • روي بلوك Gain دوبار كليك نموده و مقدار آن را 1- قرار دهيد
  • روي بلوك Sum1 دوبار كليك نموده و در قسمت List of signs علامت‌هاي -+| را وارد كنيد
  • روي بلوك‌هاي Display كليك راست نموده و از مسير Format >> Hide Name نام بلوك‌ها را پنهان كنيد

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


sim17.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
سپس تمامي بلوك‌ها به‌جزء بلوك‌هاي Constant و Display را انتخاب و كليك راست كنيد و از منوي باز شده Create Subsystem را انتخاب كنيد حالا مدلتان احتمالا كمي بهم‌ريخته شده است كمي آن را مرتب كنيد و بلوك Subsystem را از دو طرف بكشيد تا بزرگتر شود برخي از بلوك‌هاي Display نيز احتياج به بزرگترشدن دارند كه اين را بعد از شبيه‌سازي خواهيد فهميد.
نكته: شما مي‌توانيد با دوبار كليك كردن در هرجايي از مدلتان، متني دلخواه وارد كنيد مثلا كنار هر كدام از بلوك‌هاي Display بنويسيد كه چه عددي را قرار است نشان دهند ضمنا مي‌توانيد با دوبار كليك كردن به روي هر سيگنالي، آن را نام‌گذاري كنيد.
اكنون سيستم شما آماده شده و مي‌توانيد آن را Run كنيد:

sim18.jpg
در اين مثال با نحوه‌ي ايجاد زيرسيستم آشنا شديد شما مي‌توانيد زير سيستم‌هاي مختلفي در يك مدل(حتي زيرسيستم‌هاي تودرتو) ايجاد كنيد زيرسيستم‌ها را معمولا براي مدل‌هاي پيچيده و شلوغ به‌كار مي‌برند و با دوبار كليك كردن به‌روي هر كدام از آنها، محتويات آن مشاهده خواهد شد.
در مثال بعدي مي‌خواهيم پاسخ پله و پاسخ ضربه يك سيستم كنترلي را مشاهده كنيم تابع تبديل سيستم به شرح زير است:

eq01.jpg
 

P O U R I A

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


Simulink >> Sources >> Step
Simulink >> Sinks >> Scope
Simulink >> Sinks >> To Workspace
Simulink >> Continuous >> Derivative
Simulink >> Continuous >> Transfer Fcn​

بلوك‌ها را مانند شكل زير مرتب كنيد:

sim19.jpg
تنظيمات بلوك‌ها:

  • روي بلوك 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 به صفحه تنظيمات رفته و مانند شكل زير عمل كنيد:


sim20.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
اتصالات را به صورت زير انجام دهيد:

sim21.jpg

حالا Run كنيد:


sim22.jpg
 

P O U R I A

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

sim23.jpg
نكته: رنك بلوك‌ها را مي‌توانيد با راست كليك كردن به روي آن‌ها و از مسير 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 برويد و مانند شكل زير عمل كنيد:



sim24.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
Apply كرده و به تب Documentation برويد و مانند شكل زير عمل كنيد:


sim25.jpg

حالا ديگر OK كنيد.
حالا اگر روي بلوك دوبار كليك كنيد، ديالوگي براي شما باز مي‌شود تا پارامترهاي مدار را وارد كنيد.
مانند شكل زير عمل كنيد:

sim26.jpg

سپس Run كنيد:

sim27.jpg

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



sim28.jpg
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
قسمت چهارم - آموزش سیمولینک

قسمت چهارم - آموزش سیمولینک

در اين قسمت از آموزش سيمولينك، ابتدا با نحوه‌ي درون‌يابي و برون‌يابي(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 به صفحه تنظيمات مدل رفته و مانند شكل زير عمل كنيد:

sim29.jpg
در نحوه‌ي تنظيمات، احتمالا متوجه شده‌ايد كه مي‌خواهيم منحني را در بازه [5 0] رسم كنيم و براي افزايش تعداد نقاط منحني، از حداكثر گام 0.01 استفاده كرده‌ايم.
حالا مانند شكل بلوك‌ها را به يكديگر متصل كرده و Run كنيد:

sim30.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
خروجي به صورت زير است:
sim31.jpg

اگر سيستم شما دو ورودي داشته باشد، از بلوك (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​


بصورت زير بلوك‌ها را مرتب كنيد:

sim32.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تنظيمات بلوك‌ها:

  • روي بلوك 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 به صفحه تنظيمات مدل رفته و مانند شكل زير عمل كنيد:

sim33.jpg

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


sim34.jpg
 

P O U R I A

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

sim36.jpg

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

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

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
در مثال بعد مي‌خواهيم يك مبدل آنالوگ به ديجيتال(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 قرار مي‌دهيم.
تنظيمات تمام بلوك‌هاي سوئيچ را بصورت زير قرار مي‌دهيم:

sim39.jpg

حال بصورت زير عمل مي‌كنيم:
sim37.jpg
 
آخرین ویرایش:

P O U R I A

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

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

sim40.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
نكته: مي‌توان يك سيگنال‌ژنراتور و يك زمين به‌ كار برد و براي استفاده در مكان‌هاي ديگر از آن‌ها انشعاب گرفت(درواقع هيچ‌گونه اثر بارگذاري روي يكديگر ندارند)
حال خروجي 16 بلوك سوئيچ را به يك جمع‌كننده با 16 ورودي مي‌دهيم تا سيگنال ديجيتال شده را به ما تحويل دهد. سپس خروجي جمع‌كننده را به يك بلوك اسكوپ داده و نهايتا از كل سيستم، يك زيرسيستم تهيه كرده و آن‌را ماسك مي‌كنيم و تنظيمات ماسك را بصورت زير قرار مي‌دهيم:

sim42.jpg


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



sim41.jpg
 

P O U R I A

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

sim43.jpg

sim44.jpg

مدل در لينك زير قابل دسترس است:
 

پیوست ها

  • ADC.rar
    26.8 کیلوبایت · بازدیدها: 0

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
قسمت پنجم - اموزش سیمولینک

قسمت پنجم - اموزش سیمولینک

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



Simulink >> Sources >> Step
Simulink >> Sources >> Clock
Simulink >> Sinks >> Stop Simulation
Simulink >> Sinks >> Scope
Simulink >> Continuous >> Transfer Fcn
Simulink >> Sources >> Constant
Simulink >> Sinks >> Display
Simulink >> Logic and Bit Operations >> Relational Operator​


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

sim00.jpg

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

  • روي بلوك Constant دوبار كليك نموده و مقدار آن را http://www.www.www.iran-eng.ir/attachment.php?attachmentid=245741&d=1436100042 قرار دهيد
  • روي بلوك Relational Operator دوبار كليك نموده و در قسمت Relational operator عملگر =< را انتخاب كنيد
  • روي بلوك Step دوبار كليك نموده و مقدار Step time را 0 قرار دهيد
  • روي بلوك Transfer Fcn دوبار كليك نموده و مقدار Denominator coefficients را [6.748 1] قرار دهيد


تنظيمات مدل:


  • مقدار Max step size را 0.001 قرار دهید

حال می‌توانید مدلتان را Run کنید:


sim01.jpg

توضیح مدل:
در واقع ما خروجی این سیستم را با مقدارمشاهده پیوست 245741 مقایسه کرده‌ایم و هرگاه که خروجی به این مقدار رسید، خروجی بلوک مقایسه‌گر 1 شده و بلوک Stop Simulation شبیه‌سازی را متوقف می‌کند. حال قطعا مقدار زمان شبیه‌سازی، برابر مقدار ثابت‌زمانی سیستم خواهد بود.
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
در مثال بعدی می‌خواهم یک مدار مقسم فرکانس با فلیپ فلاپ T ایجاد کنم. آنطوری که من در کتابخانه سیمولینک گشتم، این FF وجود نداشت. پس مجبوریم از فلیپ فلاپ JK استفاده و دو پایه آن را به‌هم وصل کنیم. در این مدار ما از چهار عدد FF استفاده کرده‌ایم در نتیجه در خروجی FFها به‌ترتیب سیگنال‌هایی با فرکانس‌های 2/1 ، 4/1 ، 8/1 و 16/1 فرکانس ورودی خواهیم داشت.

بلوک‌ها:
Simulink >> Sinks >> Scope
Simulink >> Sinks >> Terminator
Simulink >> Sources >> Constant
Simulink >> Signal Attributes >> Data Type Conversion
Simulink >> Simulink Extras >> Flip Flops >> Clock
Simulink >> Simulink Extras >> Flip Flops >> J-K Flip-Flop​

حال بلوک‌ها را مانند شکل مرتب کرده و سیم‌کشی کنید و تنظیمات لازمه را بر مبنای آنچه که در ادامه آمده است، اعمال کنید:

sim02.jpg
 

پیوست ها

  • sim05.jpg
    sim05.jpg
    1.5 کیلوبایت · بازدیدها: 0
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تنظيمات بلوک‌ها:

  • روي بلوك Constant دوبار كليك نموده و در تب Signal Attributes نوع داده خروجی را boolean برگزینید
  • روي بلوك Clock دوبار كليك نموده و مقدار پریود آن را 0.2 قرار دهید
  • روي تمامی بلوك‌های Data Type Conversion دوبار كليك نموده و در قسمت Output data type نوع داده‌ي خروجي را double انتخاب كنيد
  • روي بلوك Scope دوبار كليك نموده و سپس به منوي Parameters رفته و تعداد محورها را برابر 5 قرار دهيد

اینک می‌توانید مدلتان را اجرا کنید:
sim03.jpg
توجه:
جهت اینکه نمودارها را بطور کامل و واضح ببینید، روی تمامی نمودارها راست کلیک کرده و گزینه Axes properties را انتخاب و سپس تغییرات شکل زیر اعمال کنید:

sim04.jpg
 

P O U R I A

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


Simulink >> Sources >> Constant
Simulink >> Sources >> Ground
Simulink >> Sinks >> Display
Simulink >> Math Operations >> Sum
Simulink >> Signal Routing >> Manual Switch
Simulink >> Logic and Bit Operations >> Logical Operator
Simulink >> Ports & Subsystems >> If
Simulink >> Ports & Subsystems >> If Action Subsystem​

حال بلوک‌ها را مانند شکل مرتب کرده و سیم‌کشی کنید و تنظیمات لازمه را بر مبنای آنچه که در ادامه آمده است، اعمال کنید:

sim06.jpg

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

  • روي بلوك Constant1 دوبار كليك نموده و مقدار آن را 2 قرار دهيد
  • روي بلوك Constant2 دوبار كليك نموده و مقدار آن را 3 قرار دهيد
  • روي بلوك Constant3 دوبار كليك نموده و مقدار آن را 4 قرار دهيد
  • روي بلوك Sum دوبار كليك نموده و در قسمت List of signs علامت‌هاي ++++| را وارد كنيد
  • روي بلوك Logical Operator دوبار كليك نموده و نوع عملگر آن را NOT قرار دهید سپس در قسمت Icon shape نوع نمايش را distinctive انتخاب كنيد
  • روي بلوك Logical Operator1 دوبار كليك نموده و نوع عملگر آن را NOT قرار دهید سپس در قسمت Icon shape نوع نمايش را distinctive انتخاب كنيد

روي بلوك If دوبار كليك نموده و مانند شکل زیر عمل کنید:


sim08.jpg

حال می‌توانید مدلتان را اجرا کنید:


sim07.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
قسمت ششم - آموزش سیمولینک

قسمت ششم - آموزش سیمولینک

سلام خدمت دوستان
در اين قسمت از آموزش سيمولينك ابتدا بنا به درخواست برخي از دوستان، يك معادله‌ي ديفرانسيل رو شبيه‌سازي مي‌كنيم. اين معادله‌ي ديفرانسيل ممكن است معادله‌ي هر نوع سيستمي باشد. حال فرض كنيد معادله‌ي سيستم ما به‌شرح زير باشد:

eq50.jpg

همان‌طور كه مي‌بينيد اين معادله از نوع درجه دو، و ورودي آن نيز پله است. شرايط اوليه براي متغيير خروجي، غير صفر مي‌باشد. حال براي شبيه‌سازي اين معادله‌ي ديفرانسيل به صورت بلوكي، و بدست آوردن خروجي، به‌صورت زير عمل كنيد:


طبق معمول ابتدا يك مدل جديد باز كرده و بلوك‌هاي مورد نياز را از مسيرهاي زير وارد آن مي‌كنيد:


Simulink >> Sources >> Step
Simulink >> Sources >> Constant
Simulink >> Math Operations >> Sum
Simulink >> Math Operations >> Gain
Simulink >> Continuous >> Integrator
Simulink >> Signal Routing >> Bus Creator
Simulink >> Sinks >> Scope​


حال بلوک‌ها را مانند شکل زیر مرتب کرده و بعد از اعمال تنظيمات لازم، بلوك‌ها را سیم کشی کنید:





sim50.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تنظيمات بلوک‌ها:

  • روي بلوك Step دوبار كليك نموده و مقدار Step time را 0 قرار دهيد.
  • روي بلوك Constant دوبار كليك نموده و مقدارآن را 0.5 قرار دهيد.
  • روي بلوك Gain دوبار كليك نموده و مقدارآن را 0.5 قرار دهيد.
  • روي بلوك Gain2 دوبار كليك نموده و مقدارآن را 3 قرار دهيد.
  • روي بلوك Sum دوبار كليك نموده و در قسمت List of signs علامت هاي --+| را وارد كنيد.
روي بلوك Integrator دوبار كليك نموده و در قسمت Initial condition source حالت external را برگزينيد.
تنظيمات مدل:


  • مقدار Stop time را 20 ثانيه قرار دهيد.
حال مدلتان را Run کنید تا ورودي و خروجي را مشاهده كنيد:

sim51.jpg

در مثال بعدي مدار بلوكي جالبي رو بهتون معرفي مي‌كنم كه بوسيله‌ي آن قادر خواهيد بود، ميزان تغييرات گام زماني حل‌گر سيمولينك را مشاهده كنيد. همان‌طور كه احتمالا مي‌دانيد، سيمولينك دو نوع حل‌گر گام‌ثابت و گام‌متغيير دارد كه پيش‌فرض آن بر روي گام‌متغيير قرار داده شده است. هر كدام از اين حل‌گرها درجاي خودشان كاربرد دارند، اما براي اكثر مدل‌ها پيشنهاد مي‌شود كه از حل‌گر گام‌متغيير استفاده شود. اين حل‌گر بنا به نياز، ميزان گام زماني را بطور اتوماتيك تغيير مي‌دهد. حال براي پياده‌سازي اين مدار به‌صورت زير عمل كنيد:


Simulink >> Sources >> Clock
Simulink >> Math Operations >> Sum
Simulink >> Discrete >> Memory
Simulink >> Sinks >> Scope
Simulink >> Sinks >> Display​

حال بلوک‌ها را مانند شکل زیر مرتب کرده و بعد از اعمال تنظيمات لازم، بلوك‌ها را سیم کشی کنید:


sim52.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تنظيمات بلوک‌ها:

  • روي بلوك Sum دوبار كليك نموده و در قسمت List of signs علامت هاي +-| را وارد كنيد.
حال مدلتان را Run کنید:


sim53.jpg

همان‌طور كه مشاهده مي‌شود، حل‌گر سيمولينك اين مدل را با گام زماني ثابت 0.2 حل كرده است، در حالي كه نوع حل‌گر در حالت گام‌متغيير قرار دارد.(چرا؟)
اكنون با فشردن كليد Ctrl+E به صفحه تنظيمات مدل رفته و نوع حل‌گر را گام‌ثابت انتخاب كرده و مقدار Fixed-step size را 0.005 قرار داده و OK كنيد.
حال مدلتان را مجدد Run کنید:

sim54.jpg
بله در اين حالت از همان ابتدا تا انتها، گام زماني ثابت و برابر 0.005 مي‌باشد.(چرا؟!)
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
در مثال بعدي مدار يك اسيلاتور موج مربعي رو بهتون نشون مي‌دم كه بچه‌هاي برق به اون نوسان‌ساز حلقوي مي‌گن(ring oscillator). البته هدف من از معرفي اين مدار توليد موج مربعي نيست، چرا كه همان‌طور كه مي‌دانيد مولدهاي متنوعي در كتابخانه‌ي سورس سيمولينك وجود دارد در واقع نكته‌اي در اين مدار هست كه فهميدن آن خالي از لطف نيست.

بلوك‌ها:


Simulink >> Logic and Bit Operations >> Logical Operator
Simulink >> Discrete >> Unit Delay
Simulink >> Sinks >> Scope​
تنظيمات بلوک‌ها:

  • روي بلوك‌هاي Logical Operator دوبار كليك نموده و نوع عملگر را NOT انتخاب كرده و سپس در قسمت Icon shape نوع نمايش را distinctive انتخاب كنيد.
حال بلوک‌ها را مانند شکل زیر مرتب کرده و سیم کشی کنید:

sim55.jpg

مدلتان را Run کنید:

sim56.jpg



توضيح مدل:
اگر تعداد فرد گيت معكوس‌كننده را پشت سر هم ببنديم و خروجي آخرين گيت را به ورودي اولين گيت وصل كنيم، يك تناقض منطقي بوجود مي‌آيد. اين تناقض منطقي سبب ناپايدارشدن مدار شده و مدار شروع به نوسان مي‌كند. فركانس نوسانات اين مدار بستگي به تاخير در انتشار گيت‌ها دارد كه مسلما هرچه اين تاخير بالاتر باشد، فركانس پايين‌تر است. اما گيت‌هاي NOT موجود در سيمولينك، تاخير ندارند و بايد تاخير بيروني به مدار اعمال كنيم، در غير اين صورت سيمولينك نمي‌تواند مدل را حل كند(چرا؟).
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
در مثال آخر شما را با بلوكي آشنا مي‌كنم كه شما مي‌توانيد به راحتي آن را با كدهاي متلب برنامه‌ريزي كنيد. اين بلوك مانند يك بلوك FPGA است كه با يك زبان توصيف سخت‌افزاري مثل VHDL ، پيكربندي مي‌شود. از جمله مزاياي استفاده از اين بلوك انعطاف‌پذيري آن است، بدين معني كه شما با وجود اين بلوك به گستره‌ي عظيم توابع متلب دسترسي پيدا خواهيد كرد. حالا يك مثال ساده مخابراتي رو براي معرفي اين بلوك بررسي مي‌كنيم. اين مثال مدولاسيون AM است. مي‌خواهيم با داشتن دو موج پيام و حامل، موج مدوله شده AM را بدست آوريم.

بلوك‌ها:

Simulink >> Sources >> Constant
Simulink >> Sources >> Signal Generator
Simulink >> User-Defined Functions >> Embedded MATLAB Function
Simulink >> Sinks >> Scope​

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


  • روي بلوك Constant1 دوبار كليك نموده و مقدار آن را 0.5 قرار دهيد.
  • روي بلوك Signal Generator دوبار كليك نموده و مقدار فركانس آن را 1000 هرتز وارد كنيد.
  • روي بلوك Signal Generator1 دوبار كليك نموده و مقدار فركانس آن را 10000 هرتز وارد كنيد.
  • روي بلوك Scope دوبار كليك نموده و سپس به منوي Parameters رفته و تعداد محورها را برابر 3 قرار دهيد.
  • روي بلوك Embedded MATLAB Function دوبار كليك نموده و در ويرايشگر باز شده، كد زير را وارد كنيد:
function AM = fcn(Message,Carrier,Ac,m)
% Modulation AM
AM = Ac*(1+m*Message)*Carrier;​

تنظيمات مدل:
مقدار Stop time را 10 ميلي ثانيه قرار دهيد.
مقدار Max step size را 10 ميكرو ثانيه قرار دهيد.
حال بلوک‌ها را مانند شکل زیر مرتب کرده و سیم کشی کنید:

sim57.jpg
Run کنید:

sim58.jpg
 
بالا