صفر تا صد حل معادله دیفرانسیل مرتبه اول در سیمولینک متلب

صفر تا صد حل معادله دیفرانسیل مرتبه اول در سیمولینک متلب

معادله به معنای برقرار بودن تساوی در یک رابطه است .معادله دیفرانسیل نیز رابطه ی بین یک تابع و مشتقاتش را نشان می دهد . انواع مختلفی از معادلات را داریم که ساده ترین معادله یک مجهولی است . معادله ی یک مجهولی نیز خود به مرتبه های مختلف ( معادله یک مجهولی درجه اول ، معادله یک مجهولی درجه دوم و … ) تقسیم بندی میشود . در این پست هدف ما آموزش حل معادله دیفرانسیل مرتبه اول در سیمولینک متلب است ، این آموزش با ذکر چند مثال تخصصی و کامل برای یادگیری بیشتر به صورت فیلم آموزشی آماده خواهد شد  .

 

گام اول از حل معادله دیفرانسیل مرتبه اول در سیمولینک متلب :

حل معادله دیفرانسیل در نرم افزار متلب را در ابتدا یاد می گیریم ، سپس به حل معادله دیفرانسیل مرتبه اول در سیمولینک متلب بپردازیم .

به عنوان اولین مثال معادله دیفرانسیل مرتبه اول زیر را در نرم افزار متلب حل میکنیم :

حل معادله مرتبه اول در متلب

 

معادله دیفرانسیلی که داریم از نوع مرتبه اول است .

برای شروع حل معادله دیفرانسیل مرتبه اول در متلب ، y را با دستور syms  نمایش می دهیم . تا تابع سیمبولیک y بر حسب x را داشته باشیم .

پس در نرم افزار متلب می نویسیم :

1
2
clc
syms y(x)

چون معادله ای که داریم دیفرانسیلی از نوع مرتبه اول است پس با استفاده از کد زیر معادله را نمایش می دهیم :

1
2
clc
o = diff(y,x) == x*y

در نهایت برای حل معادله دیفرانسیلی که داریم از دستور dsolve به این صورت استفاده میکنیم :

1
2
clc
ys(x) = dsolve(o)

که با اجرای کد بالا در نرم افزار متلب ، جواب معادله دیفرانسیل مرتبه اول به صورت زیر به دست می آید :

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

  • دستور dsolve در نرم افزار متلب برای حل معادلات دیفرانسیلی مورد استفاده قرار می گیرد .

حل معادله دیفرانسیلی مرتبه اول با شرایط اولیه در نرم افزار متلب :

اگر برای معادله دیفرانسیل داده شده ، مقدار اولیه y(1)=1 را داشته باشیم باید به اینصورت معادله دیفرانسیل را در نرم افزار متلب حل کنیم :

1
2
3
4
clc
syms y(x)
o = diff(y,x)==x*y
ys(x)=dsolve(o,'y(1)=1')

در نرم افزار متلب وقتی بخواهیم از عبارتی مشتق بگیریم بایستی که اول به صورت سیمبولیک معرفی نماییم و سپس با استفاده از دستور diff مشتقگیری را انجام دهیم .

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

در این جا نیز چون dy/dx را داریم ، یعنی مشتق y را بر حسب x می خواهیم ، در ابتدا متغیر y را وارد میکنیم و سپس متغیری که میخواهیم نسبت به آن مشتق گیری را انجام دهیم یعنی x را مینویسیم.

پس از اجرای کد بالا در نرم افزار متلب ، نتیجه به این صورت حاصل خواهد شد :

حل معادله مرتبه اول در سیمولینک متلب

رسم نمودار جواب معادله دیفرانسیل مرتبه اول با شرایط اولیه در نرم افزار متلب :

برای رسم نمودار جواب معادله ی دیفرانسیل مرتبه اول با شرایط اولیه در نرم افزار متلب با دو مسئله مواجه می شویم :

اول اینکه : y در واقع یک متغیر سیمبولیک است

دوم اینکه : نمیتوانیم اعمال ضرب و جمع و تقسیم برداری ( نظیر به نظیر ) را در y پیاده سازی کنیم .

برای حل این دو مسئله از دو دستور پرکاربرد در نرم افزار متلب بایستی استفاده کنیم :

  1. دستور vectorize
  2. دستور eval

دستور اول در واقع انجام اعمال برداری را در y برای ما ممکن می سازد . یعنی ما تابع سیمبولیک y را به صورت یک تابع برداری تعریف می کنیم .

دستور دوم نیز برای تبدیل متغیر های سیمبولیک به رشته های حرفی مورد استفاده قرار می گیرد .

با استفاده از رشته های حرفی می توانیم عملگرهای آرایه ای را در محاسباتمان داشته باشیم .

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

1
2
3
4
5
6
7
clc
eq = 'Dy = y*x';
i = 'y(1)=1';
y = dsolve(eq,i,'x')
x = linspace(,1,20);
z = eval(vectorize(y));
plot(x,z)

که پس از اجرای کد بالا در نرم افزار متلب ، نمودار زیر را خواهیم داشت :

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

 

به عنوان مثال دوم ، معادله دیفرانسیل زیر را در نظر بگیرید :

حل معادله مرتبه اول در متلب

مقدار اولیه y(0)=1 را برای این معادله ی دیفرانسیل داریم . این معادله ی دیفرانسیلی داده شده را در نرم افزار متلب حل کنیم .

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

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

 

1
2
3
4
clc
syms y(x)
o = diff(y) == -4*y + exp(-x);
yS(x) = dsolve(ode,'y(0)=1')

پس از اجرای کد بالا در نرم افزار متلب ، جواب معادله دیفرانسیل به این صورت حاصل می شود :

حل معادله در متلب

گام دوم از حل معادله دیفرانسیل مرتبه اول در سیمولینک متلب :

پس از اینکه با نحوه ی محاسبات و رسیدن به جواب معادله مرتبه اول در نرم افزار متلب با شرایط اولیه و بدون شرایط اولیه و نحوه‌ی رسم جواب معادله دیفرانسیل آشناشدیم ، به بررسی حل معادله دیفرانسیل مرتبه اول در سیمولینک متلب می پردازیم .

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

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

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

مقدار اولیه (شرایط مرزی) x(0)=0 را برای این معادله ی دیفرانسیل در نظر میگیریم .

اگر از dx/dt انتگرال بگیریم ، به این فرمول می رسیم :

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

در واقع مشتق x را عبارت داخل پرانتز موجود در انتگرال در نظر میگیریم .

که اگر به صورت یک سیستم در نظر بگیریم ، مشتق x به عنوان ورودی به سیستم است که از آن انتگرال گرفته می شود و برابر با خروجی x می گردد .

طبق آموزش هایی که قبلا داشتیم ، وارد بخش سیمولینک می شویم :

  1. یا به صورت زیر به طور مستقیم وارد ابزار سیمولینک می شویم  :

آموزش سیمولینک متلب در کنترل خطی

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

یک مدل جدید به صورت زیر ایجاد می کنیم تا بلوک دیاگرام های مورد نظر خودمان را ، در این مدل اضافه نماییم :

حل دستگاه سه معادله و سه مجهول در سیمولینک نرم افزار متلب

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

حال از بخش Library browser موارد زیر را به مدل ایجاد شده اضافه میکنیم :

  1. بلوک دیاگرام sine wave را به مدل اضافه میکنیم
  2. بلوک دیاگرام  sum را به مدل اضافه میکنیم
  3. بلوک دیاگرام Integrator را به مدل اضافه می کنیم
  4. بلوک دیاگرام gain رابه مدل اضافه می نماییم
  5. بلوک دیاگرام scope را به مدل اضافه می کنیم
حتما بخوانید:  2 بخش مهم از سیمولینک که برای شروع کار با سیمولینک لازم است بدانیم

با دوبار کلیک بر روی بلوک دیاگرام  sine wave باید تغییراتی به اینصورت ایجاد کنیم :

بلوک دیاگرام sine wave در سیمولینک

چون اندازه دامنه ای که داریم 2 می باشد پس در قسمت amplitude مقدار دو را وارد میکنیم و همچنین فرکانس سیگنال سینوسی که داریم بایستی مقدار سه را داشته باشد .

 

با دوبار کلیک بر روی بلوک دیاگرام sum ، علامت منفی را نیز به آن اضافه میکنیم .

مقدار بلوک دیاگرام gain را 4 قرار می دهیم .

برای چرخش بلوک دیاگرام ها در سیمولینک نرم افزار متلب بایستی از Ctrl+R استفاده کنیم .

در بیشتر موارد ، مقدار اولیه برای بلوک دیاگرام انتگرال صفر در نظر گرفته می شود و در حالت پیش فرض شرایط اولیه یعنی بخش initial condition source به صورت internal می باشد ، اما اگر بخواهیم به صورت خارجی ، مقدار اولیه را داشته باشیم باید این تغییرات را اعمال کنیم :

بلوک دیاگرام انتگرال در سیمولینک

 

حل معادله دیفرانسیل مرتبه اول در سیمولینک متلب :

در نهایت بلوک دیاگرام های اضافه شده را به صورت زیر به یکدیگر متصل می نماییم:

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

تا اینجا با نحوه ی ساخت و طراحی مدل سیمولینک برای حل معادله دیفرانسیل مرتبه اول آشنا شدیم ، در ادامه فیلم آموزشی کامل صفر تا صد حل معادله دیفرانسیل در سیمولینک را خواهیم داشت که در این فیلم خروجی این مدل که ایجاد کردیم را نمایش می دهیم و سپس مثال ها و مسائل دیگری از جمله :

  1. حل معادله دیفرانسیل نمایی در سیمولینک نرم افزار متلب
  2. اجرا و استفاده از قانون نیوتن در کد نویسی و سیمولینک نرم افزار متلب
  3. شبیه سازی سقوط آزاد در سیمولینک نرم افزار متلب
  4. مسیر یابی در سیمولینک نرم افزار متلب
  5. معادلات منطقی در سیمولینک نرم افزار متلب
  6. شبیه سازی رشد جمعیت در سیمولینک نرم افزار متلب

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.