آموزش شبیه سازی (قسمت اول)

آموزش شبیه سازی (قسمت اول)

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

 

Matlab Training 1 (1)

 

همان طور که مشخص است در محیط Library کتابخانه های مختلفی برای شبیه سازی قرار داده شده است که با کلیک بر روی هر کتابخانه محتوای آن نمایش داده می شود. ممکن است هر زیرکتابخانه ای نیز دارای بخش های مختلفی باشد که با کلیک بر روی هر کدام محتوای آن قسمت در سمت راست نمایش داده می شود:

 

Matlab Training 1 (2)

 

در پست های آینده محتوای هر کتابخانه را توضیح خواهیم داد.
برای رسم بلوک دیاگرام می توانید از قسمت File وانتخاب گزینه New و Model یک محیط جدید را باز کنید. قبل از اینکه شبیه سازی را شروع کنید بهتر است تنظیمات حل (Solve) شبیه سازی را مشخص کنید.  
همان طور که می دانید نرم افزار متلب مبتنی بر روش های عددی می باشد بدین معنی که معادلات خود را بر اساس روش های عددی حل می کند و چون روش های عددی متنوع می باشد بر اساس دقت و سرعت حل بهتر است گزینه مناسبی را انتخاب کنید.
برای انتخاب نوع روش حل و تغییر دادن تنظیمات آن دکمه Ctrl+E را زده یا مطابق شکل زیر گزینه مشخص شده را بزنید تا صفحه مربوط به تنظیمات باز شود:

Matlab Training 1 (3)

 

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

Matlab Training 1 (4)

 

در قسمت Simulation time می توانید زمان شروع و پایان شبیه سازی را انتخاب کنید.
در قسمت Solver option می توانید تنظیمات مربوط به شبیه سازی را انجام دهید. در این قسمت ابتدا باید نوع حل که خود دو روش می باشد را انتخاب کنید:
روش گام متغیر (Variable-step) :
بعضی از روش های حل بسته به پاسخ دینامیکی مقدار گام را تغییر می دهند تا بتوانند سریع تر به جواب برسند. روش های گام متغیر برای مدل هایی که حالت ها در آن سریع تغییر می کنند یا شامل المان های discontinue هستند پیشنهاد می شود. بنابراین برای دقیق بودن جواب اگر حالت ها سریع تغییر می کنند بهتر است میزان گام را کاهش دهیم در غیر این صورت اگر حالت ها به آرامی تغییر می کردند بهتر است میزان گام را افزایش داده تا گام های غیر لازم را حل نکند.
نرم افزار متلب بصورت پیش فرض (auto) مقادیری را برای بیشترین، کمترین و مقدار اولیه گام در نظر گرفته است.برای مثال اگر در قسمت Max step size مقدار auto را قرار دهید بدین معنی است که نرم افزار مقدار پیش فرض خودش که در این مورد از رابطه زیر حساب می شود را قرار می دهد:

Matlab Training 1 (5)

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

Discrete (no continuous states)
ode45 (Dormand-Prince)
ode23 (Bogacki-Shampine)
ode113 (Adams)
ode113
ode15s (stiff/NDF)
ode23s (stiff/Mod. Rosenbrock)
ode23t (Mod. stiff/Trapezoidal)
ode23tb (stiff/TR-BDF2)


هر کدام از روش ها خاصیت خود را دارا می باشند ولی معروف ترین آن ها روش ode45 می باشد که برای حل بیشتر مسائل مورد استفاده قرار می گیرد. روش ode15s نیز برای مسائلی که روش ode45 نمی تواند آن را حل کند پیشنهاد شده است.
دو گزینه خطای نسبی (Relative) وخطای مطلق (Absolute) نیز بطور پیش فرض مقدار دهی شده اند.


روش گام ثابت (Fixed-step) :
در این روش بر خلاف روش بالا میزان گام در طول شبیه سازی ثابت در نظر گرفته می شود. در قسمت Fixed-step size می توانید مقدار گام را مشخص کنید:

Matlab Training 1 (6)

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


Discrete (no continuous states)
ode3 (Bogacki-Shampine)
ode8 (Dormand-Prince RK8(7))
ode5 (Dormand-Prince)
ode4 (Runge-Kutta)
ode2 (Heun)
ode1 (Euler)
ode14x (extrapolation)

 

پس اگر مدلی را شبیه سازی کردید و جواب نگرفتید سعی کنید تنظیمات مربوط به روش حل آن را تغییر دهید.
پس از انتخاب روش حل به سراغ شبیه سازی می رویم. برای وارد کردن بلوک ها داخل مدل پس از کلیک کردن بر روی بلوک دکمه Ctrl+I را بزنید یا می توانید بلوک را گرفته و داخل مدل رها کنید.
 در این قسمت برای مثال نحوه شبیه سازی موتور DC را به سه روش آموزش می دهیم:
1) همان طور که در پست مدل موتور DC اشاره شد می توان مدار معادل موتور را بصورت زیر در نظر گرفت:

Block of DC machine

2) تابع انتقال موتور را می توان بصورت زیر نمایش داد:

Matlab Training 1 (7)

به ازای مقادیر زیر تابع انتقال برابر است با:

Matlab Training 1 (8)

3) می توان تابع انتقال را بفرم معادلات دیفرانسیل بصورت زیر نوشت:

Matlab Training 1 (9)
می خواهیم پاسخ پله موتور را بدست آوریم. بلوک های مورد نیاز برای شبیه سازی را می توانید از قسمت های زیر انتخاب کنید:


Simulink>>Commonly Used Blocks>>Constant
Simulink>>Commonly Used Blocks>>Gain
Simulink>>Commonly Used Blocks>>Integrator
Simulink>>Commonly Used Blocks>>Scope
Simulink>>Commonly Used Blocks>>Sum
Simulink>> Continuous >>Transfer Fcn

خروجی بلوک Constant یک مقدار ثابت می باشد. این مقدار ثابت می تواند یک عدد اسکالر باشد یا یک ماتریس ثابت:

Matlab Training 1 (10)

 در اینجا چون بعنوان ورودی پله می باشد مقدار یک را درآن قرار می دهیم.
بلوک Gain نیز ورودی خود را در مقدارش ضرب کرده و به خروجی خود می فرستد. همانند بلوک قبلی این بلوک نیز می تواند بصورت ضرب اسکالر عمل کند یا بصورت ضرب ماتریسی. برای انتخاب نوع عملیات ضرب مطابق با شکل زیر عمل کنید:

Matlab Training 1 (11)

گزینه اول مربوط به ضرب اسکالر و سه گزینه دیگر مربوط به ضرب ماتریسی می باشد (از سمت راست یا چپ و یا بصورت برداری). توجه کنید که در صورتی که ضرب ماتریسی را انتخاب کردید باید ابعاد ماتریس ورودی با ابعاد ماتریس ضرب متناسب باشد در غیر این صورت با پیام خطا مواجه خواهید شد.
بلوک Integrator همان عمل انتگرال گیری را برای ما انجام می دهد. برای مقدار دهی اولیه انتگرال می توانید از قسمت Initial condition استفاده کنید. همچنین اگر می خواهید انتگرال را صفر کنید می توانید از قسمت External reset استفاده کنید. صفر کردن انتگرال بیشتر مواقع برای پارامترهایی مناسب می باشد که متناوب هستند. برای مثال زمانی که از سرعت موتور انتگرال می گیرید خروجی که زاویه روتور می باشد نباید بیشتر از 2π شود. می توانید با بلوکی ساده زمانی که خروجی انتگرال گیر بیشتر از 2π شد مقدار آن را دوباره صفر کنید. همچنین می توانید حد اشباع برای انتگرال گیر تعریف کنید:

 

Matlab Training 1 (12)

 

یکی از پرکاربردترین بلوک ها، بلوک Scope می باشد که برای مشاهده خروجی بلوک ها استفاده می شود. با دو بار کلیک کردن بر آن و انتخاب کلیک Parameters می توانید تنظیمات مربوط به آن را انجام دهید:

 

Matlab Training 1 (13)

 

همان طور که از شکل مشخص است تنظیمات اسکوپ سه قسمت دارد:

Matlab Training 1 (14)

1) در قسمت General می توانید تعداد منحنی ها را مشخص کنید.
2) در قسمت History می توانید مشخص کنید که چه مقدار از داده ها نمایش یا ذخیره شوند.
3) در قسمت Style می توانید رنگ نمودارها و ضخامت خطوط را مشخص کنید.
بلوک بعدی بلوک Sum یا جمع کننده می باشد. با دو بار کلیک کردن بر آن می توانید تنظیمات مربوط به آن را انجام دهید:

Matlab Training 1 (15)

در قسمت Icon shape نوع شکل بلوک را می توانید مشخص کنید و در قسمت List of sign با قرار دادن علامت مثبت و منفی می توانید تعداد ورودی های جمع کننده و علامت آن ها را مشخص کنید.
بلوک آخری که برای شبیه سازی نیاز دارید بلوک Transfer Fcn می باشد. این بلوک برای تابع انتقال در حوزه S مورد استفاده قرار می گیرد. با وارد شدن به بخش تنظیمات شکل زیر نمایش داده می شود:

Matlab Training 1 (16)

در قسمت Numerator ضرایب معادله صورت و در قسمت Denomirator ضرایب معادله مخرج را بصورت ماتریسی می توانید قرار دهید. توجه کنید که برای استفاده از این بلوک، درجه مخرج حتماً باید بیشتر از صورت باشد.
برای شبیه سازی هر سه روش مطابق شکل زیر بلوک ها را به هم متصل کرده و مقدار دهی کنید:

Matlab Training 1 (17)

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

Matlab Training 1 (18)

برای دانلود شبیه سازی بر روی عکس کلیک کنید.

Download

19 Comments

rasool

درباره10 سال ago

سلام بسیار عالی بود ممنون

پاسخ

ahmadreza

درباره9 سال ago

besyar ali va khoub,mamnoun az site e ghashngetooon

پاسخ

امین

درباره9 سال ago

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

پاسخ

امین

درباره9 سال ago

قسمت های بعد رو هم ارائه بدید

پاسخ

موسی

درباره9 سال ago

سلام سایتتان فوقالعاده است مطالبتون خیلی به کار می آید

پاسخ

سعید

درباره9 سال ago

سلام خیلی ممنون آموزشی مفید و عالی هست امیدورم که ادامه بدید موفق باشید ;)

پاسخ

omid

درباره9 سال ago

سلام سایتتون بسیار عالی و مفید بود بسیار ممنون

پاسخ

davood

درباره8 سال ago

مرسی از مطالبتون خیلی عالی بود

پاسخ

mahdi

درباره8 سال ago

اقا حرف نداری خدایی . بهترین سایته

پاسخ

هادی نجفی

درباره8 سال ago

سلام با تشکر از زحمات شما. واقعا عالیه. موفق و پیروز باشید.

پاسخ

مجنون

درباره8 سال ago

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

پاسخ

Admin

درباره8 سال ago

این کتاب ترجمه شده است ولی باید آن را بخرید.

پاسخ

مجنون

درباره8 سال ago

ببخشید، قیمت کتابه چه قده ؟

پاسخ

Admin

درباره8 سال ago

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

http://www.adinehbook.com/gp/product/9646029460

پاسخ

علیرضا

درباره8 سال ago

سلام ممنون از سایت خوبتون مطالب زیادی از سایتتون یاد گرفتم. سوالی داشتم بنده دارم روی پروژه کارشناسیم که مربوط به طراحی درایو IFOC ماشین های القایی هست، کار میکنم.در شبیه سازی هر چقدر تحقیق کردم نتونستم مطلبی در رابطه با تنظیمات داخلی بلوکهایی چونFlux Weakening و کنترل کننده ها مختلف اسن سیستم پیدا کنم.میشه لطف کنین و بنده را راهنمایی کنین. تشکر

پاسخ

Admin

درباره8 سال ago

باید به کتاب های مرجع نظیر Control of Electric Machine Drive Systems - Seung-Ki Sul مراجعه کنید.

پاسخ

فخرالدین

درباره7 سال ago

ممنون ازسایت خوبتون

پاسخ

mehdi

درباره7 سال ago

سلام من با متلب خیلی کم کار کردم و بهم پروژه کنترل دور موتورdc باpid رو دادن میتونین راهنماییم کنین. باتشکر از سایت خوبتون...

پاسخ

Admin

درباره7 سال ago

سلام

پروژه مورد نظر شما در قسمت پروژه های انجام شده سایت

در بخش پروژه های رایگان موجود هست. میتونید دانلود کنید

پاسخ

Leave a Comment

Please be polite. We appreciate that.
Your email address will not be published and required fields are marked