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

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

بنابر درخواست دوستان از این به بعد هر چند هفته یک بار مطالبی در خصوص نحوه شبیه سازی معادلات مختلف و همچنین آشنایی با بلوک های سیمولینک ارائه می کنیم.
برای وارد شدن به محیط سیمولینک بر روی آیکون آن کلیک کنید یا در قسمت 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

یک امتیازدو امتیازسه امتیازعالی بودخیلی عالی بود (5 votes, average: 4٫40 out of 5)
Loading...

17 Comments

rasool

درباره2 سال ago

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

پاسخ دادن

ahmadreza

درباره2 سال ago

besyar ali va khoub,mamnoun az site e ghashngetooon

پاسخ دادن

امین

درباره2 سال ago

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

پاسخ دادن

امین

درباره2 سال ago

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

پاسخ دادن

موسی

درباره2 سال ago

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

پاسخ دادن

سعید

درباره2 سال ago

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

پاسخ دادن

omid

درباره2 سال ago

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

پاسخ دادن

davood

درباره1 سال ago

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

پاسخ دادن

mahdi

درباره1 سال ago

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

پاسخ دادن

هادی نجفی

درباره11 ماه ago

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

پاسخ دادن

مجنون

درباره6 ماه ago

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

پاسخ دادن

Admin

درباره6 ماه ago

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

پاسخ دادن

مجنون

درباره6 ماه ago

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

پاسخ دادن

Admin

درباره6 ماه ago

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

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

پاسخ دادن

علیرضا

درباره5 ماه ago

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

پاسخ دادن

Admin

درباره5 ماه ago

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

پاسخ دادن

فخرالدین

درباره2 ماه ago

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

پاسخ دادن

Leave a Comment

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


*

code