اولین قدم در شبیهسازی هر سیستم، مدلسازی آن سیستم است. برحسب نیاز، میتوان مدلهای مختلفی برای یک سیستم ارائه داد که از نظر پیچیدگی و دقت تفاوت دارند. مدل بسیاری از سیستمهای مهندسی، یک یا چند معادله دیفرانسیل خواهد بود که ممکن است خطی یا غیرخطی باشند. یکی از سادهترین روشهای حل معادلات دیفرانسیل استفاده از محیط سیمولینک (Simulink) نرمافزار متلب (MATLAB) است. در محیط سیمولینک به سادگی میتوان به صورت گرافیکی معادلات را تشکیل داده و آنها را حل کرد. در ادامه یک مثال ساده مورد بررسی قرار میگیرد که با استفاده از آن میتوان هر سیستم پیچیدهتری را حل و شبیهسازی کرد.
فهرست مطالب
مدلسازی یک سیستم ارتعاشاتی یک درجه آزادی
در این آموزش، یک سیستم مکانیکی ساده که شامل جرم، فنر و دمپر است را مدلسازی کرده و پس از استخراج معادله دیفرانسیل حاکم، آن را در محیط سیمولینک حل و رفتار سیستم را شبیهسازی میکنیم. شکل 1 یک سیستم مکانیکی جرم-فنر-دمپر را نمایش میدهد.
شکل 1 – سیستم مکانیکی جرم-فنر-دمپر و نمودار جسم آزاد آن
به روشهای مختلفی میتوان معادله دیفرانسیل حاکم بر سیستم شکل 1 را استخراج کرد. در مورد این سیستم، سادهترین روش استفاده از قانون دوم نیوتن است. معادله دیفرانسیل حاکم بر این سیستم با توجه به مختصات نشان داده شده به صورت معادله (1) نوشته میشود.
m\ddot{x}+c\dot{x}+kx=F\left( t \right)\,\,\,\,\,\,\,\,\left( 1 \right)
در این معادله F\left( t \right) نیروی تحریک خارجی است. همچنین مشتق نسبت به زمان با نماد نقطه (Dot) نمایش داده شده است. یک نقطه به معنی مشتق مرتبه اول نسبت به زمان و دو نقطه به معنی مشتق مرتبه دوم نسبت به زمان است. این معادله دیفرانسیل، مدل سیستم مکانیکی شکل 1 است که در مرحله بعد آن را حل کرده و حرکت سیستم را شبیهسازی میکنیم.
تشکیل معادله دیفرانسیل و مدلسازی سیستم در محیط سیمولینک
پس از استخراج معادله دیفرانسیل، میبایست آن را در محیط سیمولینک مدل نماییم. برای این کار، بالاترین مرتبه مشتق را در یک طرف تساوی نگه داشته و سایر ترمها را در طرف دیگر تساوی بازنویسی میکنیم. بدین ترتیب معادله (1) به فرم معادله (2) نوشته میشود.
\ddot{x}=\frac{1}{m}\left( F\left( t \right) -c\dot{x}-kx \right) \,\,\,\,\,\,\,\,\left( 2 \right)
حال با توجه به اینکه بالاترین مرتبه مشتق در معادله دیفرانسیل (2) دو است، مطابق شکل 2 دو بلوک انتگرالگیر (Integrator) به مدل سیمولینک انتقال میدهیم. نام سیگنالها به صورت فرضی روی آنها نوشته شدهاست. با هر انتگرال مرتبه مشتق یکی کم میشود.
شکل 2 – قرار دادن دو بلوک انتگرالگیر (Integrator) در مدل سیمولینک
همانطور که در شکل 2 مشاهده میشود، روی بلوک انتگرالگیر عبارت \frac{1}{s} نوشته شدهاست که تبدیل لاپلاس انتگرال است. لازم به ذکر است تبدیل لاپلاس تنها برای متغییر زمان تعریف میشود. بنابراین در این روش، مشتقهای معادله دیفرانسیل حتما باید نسبت به زمان باشند.
حال با اضافه کردن بلوکهای لازم از کتابخانه سیمولینک، قسمت راست معادله (2) را میسازیم. همانطور که در شکل 3 مشاهده میشود، از بلوکهای Gain ، Sum و Constant برای ساخت قسمت راست معادله (2) استفاده شدهاست. نیروی خارجی F\left( t \right) با بلوک Constant در این مدل وارد شدهاست. با توجه به نوع نیروی خارجی، میتوان از بلوکهای دیگر نظیر Sine Wave ، Chirp Signal و ... که در شاخه Source کتابخانه سیمولینک قرار دارند استفاده نمود.
شکل 3 – تشکیل سمت راست معادله (2) در محیط سیمولینک
در شکل 3، سیگنالی که با رنگ آبی مشخص شده، سیگنال \ddot{x} است که با انتگرال از آن، سیگنالهای x و \dot{x} ساخته شدهاست. سیگنالی که با رنگ سبز مشخص شده نیز همان \ddot{x} است که طبق معادله (2) ساخته شدهاست. با وصل کردن سیگنالهای آبی و سبز که هر دو \ddot{x} هستند، معادله دیفرانسیل کامل شده و میتوان آن را حل کرده و یا حرکت سیستم را شبیهسازی کرد. شکل 4 مدل نهایی ساخته شده در محیط سیمولینک را نمایش میدهد. در این مدل یک بلوک Scope نیز اضافه شده است تا سیگنال x را رسم نماید. سیگنال x همان پاسخ معادله دیفرانسیل یا مکان جسم در سیستم ارتعاشاتی شکل 1 است.
شکل 4 – مدل نهایی تشکیل شده در محیط سیمولینک
اعمال شرایط اولیه در سیمولینک
با توجه به اینکه معادله دیفرانسیل حاکم بر سیستم شکل 1 یک معادله دیفرانسیل مرتبه دو زمانی است، برای حل آن نیاز به دو شرط اولیه (Initial Condition) است. شرایط اولیه در بلوکهای انتگرالگیر (Integrator) اعمال میشوند. با دبل کلیک روی بلوک انتگرالگیر، تنظیمات آن مطابق شکل 5 نمایش داده میشود.
شکل 5 – تنظیمات بلوک انتگرالگیر (Integrator)
در قسمت Initial condition که با رنگ قرمز مشخص شدهاست، میتوان شرایط اولیه را وارد کرد. با توجه به شکل 4، شرط اولیه مکان در انتگرالگیر قرمز و شرط اولیه سرعت در انتگرالگیر آبی اعمال میشوند. انتگرالگیر قرمز سیگنال x (مکان) و انتگرالگیر آبی سیگنال \dot{x} (سرعت) را تولید میکنند.
حل معادله دیفرانسیل و شبیهسازی حرکت سیستم در محیط سیمولینک
پس از تشکیل معادله دیفرانسیل و یا به عبارت دیگر مدلسازی سیستم در محیط سیمولینک، نوبت به حل آن میرسد. سیمولینک معادلات را به صورت عددی حل میکند که میتوان تنظیمات مربوط به آن را تغییر داد. مطابق شکل 6، در نوار بالای محیط سیمولینک، یک زمینه برای وارد کردن مدت زمان شبیهسازی وجود دارد که با کادر قرمز مشخص شدهاست و به صورت پیشفرض 10 ثانیه است. میتوان آن را به مقدار دلخواه تغییر داد. سیمولینک معادله دیفرانسیل را در این بازه زمانی حل میکند. در این نوار، یک گزینه نیز برای شروع حل و شبیهسازی وجود دارد که با رنگ آبی مشخص شدهاست.
شکل 6 – مدل سیمولینک برای حل معادله دیفرانسیل و شبیهسازی پاسخ سیستم
با اجرای این مدل برای k=\text{1}\frac{N}{m} ، c=\text{1}\frac{Ns}{m} و F\left( t \right) =1 N و شرایط اولیه x_0=5m و \dot{x}_0=0\frac{m}{s} پاسخ x به صورت شکل 7 استخراج میشود که با دبل کلیک روی بلوک Scope قابل مشاهده است. پاسخ x مکان جسم یا همان پاسخ معادله دیفرانسیل مرتبط با آن است.
شکل 7 – پاسخ معادله دیفرانسیل (مکان جسم) در بلوک Scope
همانطور که در شکل 7 مشاهده میشود، پاسخ از 5 شروع شده است که شرط اولیه مکان بودهاست. با توجه به وجود دمپر در سیستم، شاهد ارتعاشات میرا شونده هستیم که در حالت پایدار (Steady State) مقدار آن به 1 میرسد.
بدین ترتیب به سادگی میتوان معادلات دیفرانسیل را در محیط سیمولینک با استفاده از بلوکهای از پیش تعریف شده حل و پاسخ آن را مشاهده کرد. همچنین میتوان پاسخ آن را برای پردازشهای بعدی به محیط Workspace انتقال داد. در سیمولینک به سادگی میتوان ساختار معادلات و یا مقادیر پارامترها را تغییر داده و نتایج را استخراج کرد.
بسیار عالی و مفید