آموزش رسم تصویر فاز سیستم (Phase Portrait) در نرم‌افزار متلب (MATLAB)

آموزش رسم تصویر فاز سیستم (Phase Portrait) در نرم‌افزار متلب (MATLAB)

نویسنده: لرنیکس
آخرین بروزرسانی: ۱۳۹۹/۰۹/۱۴
بازدیدها: ۴,۱۲۴

تصویر فاز (Phase Portrait) مجموعه‌ای از تراژکتوری‌ها (Trajectory) هستند که معمولا برای سیستم‌های دو بعدی و یا سیستم‌هایی که شامل دو متغییر حالت هستند رسم می‌شود. به کمک Phase Portrait می‌توان به سادگی نقاط تعادل سیستم را در ناحیه رسم شده مشاهده کرد و پایداری یا ناپایداری آنها را تشخیص داد. رسم Phase Portrait در علوم مختلف از جمله کنترل اهمیت ویژه‌ای دارد. با رسم مجموعه‌ای از تراژکتوری‌ها با شرایط اولیه مختلف می‌توان به تصویر فاز سیستم دست یافت که در ادامه نحوه رسم Phase Portrait در نرم‌افزار متلب شرح داده خواهد شد.

رسم Phase Portrait در نرم‌افزار متلب (MATLAB)

در این روش برای رسم Phase Portrait به سه تابع نیاز داریم. تابع اول برای معرفی سیستم مورد استفاده قرار می‌گیرید. دو تابع دیگر برای رسم و تعیین مسیر تراژکتوری‌ها تعریف می‌شوند و در نهایت با استفاده از این توابع تصویر فاز سیستم رسم می‌شود.

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

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

مثال اول: معادله فضای حالت سیستم غیرخطی به صورت زیر است (تنها شامل دو متغییر حالت):

System\,\,\text{1\,\,:\,\,}\dot{x}_1=2x_1-x_1x_2\,\,,\,\,\dot{x}_2=2x_{1}^{2}-x_2

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

مثال دوم: معادله فضای حالت سیستم غیرخطی وندرپل (Van der Pol) به صورت زیر است:

Van\,\,der\,\,Pol\,\,\left( \mu =2 \right) \,\,:\,\,\dot{x}_1=x_2\,\,,\,\,\dot{x}_2=-x_1-2\left( x_{1}^{2}-1 \right) x_2

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

 

توابع arrowh و PhasePlane

برای رسم و تعیین مسیر تراژکتوری‌ها و نمایش Field Vector دو تابع با نام‌های arrowh و PhasePlane تعریف می‌شود که تنها کافیست آن‌ها را با نام arrowh و PhasePlane ذخیره نمایید. تابع arrowh به صورت کد زیر تعریف می‌شود:

تابع PhasePlane نیز به صورت کد زیر تعریف می‌شود:

 

رسم تصویر فاز سیستم (Phase Portrait)

پس از ذخیره سه تابع معرفی شده، نوبت به رسم تصویر فاز سیستم (Phase Portrait) می‌رسد. هر یک از مثال‌های بالا توسط کد متفاوتی رسم می‌شود تا نحوه عملکرد توابع با ورودی‌های مختلف به خوبی نمایش داده شود. تابع PhasePlane سه ورودی ضروری دارد که عبارت است از سیستم، بازه زمانی و شرایط اولیه. سیستم قبلا به صورت تابع تعریف شده‌است که نام تابع پس از علامت @ قرار می‌گیرد. تراژکتوری‌ها در یک بازه زمانی رسم می‌شوند که این بازه زمانی با نام tspan مشخص شده‌است. بازه زمانی با توجه به نوع سیستم می‌تواند مقادیر مختلفی داشته باشد. شرایط اولیه نیز با متغییر icond وارد تابع PhasePlane می‌شود که در مسائل مختلف می‌تواند مقادیر مختلفی را به خود اختصاص دهد.

با استفاده از کد زیر می‌توان تصویر فاز سیستم مثال اول (System 1) را رسم کرد:

تصویر فاز سیستم (Phase Portrait) برای مثال اول (System 1) به صورت شکل زیر رسم می‌شود:

تصویر فاز سیستم 1

همچنین با استفاده از کد زیر می‌توان تصویر فاز سیستم مثال دوم (Van der Pol) را رسم کرد:

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

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

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

امتیاز :

دیدگاه بگذارید

avatar