سلام خدمت دوستان

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

 

 

 

 

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

 

 

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

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

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

  • روي بلوك 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 کنید تا ورودي و خروجي را مشاهده كنيد:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Simulink >> Sources >> Clock

Simulink >> Math Operations >> Sum

Simulink >> Discrete >> Memory

Simulink >> Sinks >> Scope

Simulink >> Sinks >> Display

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

همان‌طور كه مشاهده مي‌شود، حل‌گر سيمولينك اين مدل را با گام زماني ثابت 0.2 حل كرده است، در حالي كه نوع حل‌گر در حالت گام‌متغيير قرار دارد.(چرا؟)

اكنون با فشردن كليد Ctrl+E به صفحه تنظيمات مدل رفته و نوع حل‌گر را گام‌ثابت انتخاب كرده و مقدار Fixed-step size را 0.005 قرار داده و OK كنيد.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

بله در اين حالت از همان ابتدا تا انتها، گام زماني ثابت و برابر 0.005 مي‌باشد.(چرا؟ اينكه معلومه ديگه كلك!)

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

بلوك‌ها:

Simulink >> Logic and Bit Operations >> Logical Operator

Simulink >> Discrete >> Unit Delay

Simulink >> Sinks >> Scope

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

توضيح مدل:

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

در مثال آخر شما را با بلوكي آشنا مي‌كنم كه شما مي‌توانيد به راحتي آن را با كدهاي متلب برنامه‌ريزي كنيد. اين بلوك مانند يك بلوك 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 ميكرو ثانيه قرار دهيد.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Run کنید:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

اگر سؤالي داشتيد در بخش نظرات آن‌را مطرح كنيد.

براي رفتن به ديگر قسمت‌ها، به‌روي لينك‌هاي زير كليك كنيد:

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

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

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

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

آموزش سیمولینک (قسمت پنجم)

آموزش سيمولينك (قسمت ششم)


مطالب مشابه

کتاب آموزش شبیه سازی و مدل ساز

  مشخصات: مولف: دکتر نیکوبین (استاد دانشکده مکان

کتاب الکترونیکی سری سوم - آموز

      اي که برای دانلود قرار داده شده است براي

کتاب آموزش MATLAB

  نویسندگان: مهندس علی اکبر علمداری، مهندس نسرین

آموزش كاربردي مباحث پيشرفته با

آموزش كاربردي مباحث پيشرفته با Matlab            

آموزش GUI (قسمت اول)

در چند قسمت قصد دارم نحوه كار كردن با GUI رو به شم

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

با عرض سلام خدمت دوستان عزيز قصد دارم در چند قسمت

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید