Peducate.ir

Peducate.ir

با هم بیاموزیم
Peducate.ir

Peducate.ir

با هم بیاموزیم

تغییر تابع تبدیل به فرم فضای حالت با دستور tf2ss در متلب

تغییر تابع تبدیل به فرم فضای حالت با دستور tf2ss در متلب

در نرم افزار متلب (Matlab)، با دستور [A B C D]=tf2ss(num,den)، تابع تبدیل یا Transfer function یک سیستم تغییر ناپذیر با زمان یا LTI به فرم فضای حالت یا State Space نمایش داده می شود.

 

 در حقیقت این دستور پارامترهای فضای حالت را از تابع تبدیل استخراج می کند. در مثال زیر می خواهیم تابع تبدیل زمان پیوسته (1+s)/(2S^2+3S+6) را به فرم فضای حالت نمایش دهیم:

num=[1 1];

den=[2 3 6];

F=tf(num,den);

[A B C D]=tf2ss(num,den)

نظرات 11 + ارسال نظر
سمانه یکشنبه 26 تیر 1401 ساعت 12:10 ق.ظ

سلام من num و den که بهم داده یک سطرو ستون نیست چون دو ورودی دارم . چطور ا ز tf تستفاده کنم خطا نده

سلام دوست عزیز
به مثال زیر توجه کنید و طبق همین مثال پیش برید:
b = [0 2 3; 1 2 1];
a = [1 0.4 1];
[A,B,C,D] = tf2ss(b,a)
توجه کنید در این مثال صورت کسر یه بردار ستونی هست

مسعود بابازاده چهارشنبه 25 اسفند 1400 ساعت 07:37 ب.ظ

با سلام. من یک کد متلب نوشتم.بخشی از آن به شکل زیر هست.
A11=zeros(DOF,DOF);
A12=eye(DOF,DOF);
A21=-inv(M)*K;
A22=-inv(M)*C;

B11=zeros(DOF,1);
B21=-ones(DOF,1);

A=[A11 A12;A21 A22];

B=[B11;B21];

CS=[];

D=0;

sys=ss(A,B,CS,D);

[~,t,x]=lsim(sys,U,sim_time,X0);
چرا وقتی اجرا میگیرم به این پیغام بر میخورم؟ کجای کارم ایراد داره؟
Undefined function 'ss' for input arguments of type 'double'.

Error in SS_EL_MDF (line 136)
sys=ss(A,B,CS,D);

سلام دوست عزیز
کد شما رو اجرا کردم (با اعداد فرضی) و هیچ مشکلی در اجرا نداشتم.
حدس بنده این هست که چون در محاسبه ماتریس های
A21, A22
از دستور معکوس استفاده کردید ممکنه ماتریس
M
معکوس پذیر نباشه و المان های تعریف نشده یا بی نهایت را شامل بشه.
موردی که بهش اشاره کردم رو چک کنید.

هیرو جمعه 13 اسفند 1400 ساعت 11:07 ب.ظ

سلام اگر فضای حالت رو داشته باشیم چه جوری تابع تبدیل را به دست آوریم ؟

سلام دوست عزیز
با دستور زیر ss2tf
[b,a] = ss2tf(A,B,C,D)

امین جمعه 28 آبان 1400 ساعت 09:15 ب.ظ

سلام، اگر در معادلات حالت یک ترم اضافه داشته باشیم به صورت زیر چطور باید اونو با دستور LSIM حل کنیم؟
xdot=Ax+Bu+gama
گاما یک ترم اضافه هست که در مسئله بوجود امده است.

سلام دوست عزیز
ترم اضافه gama ثابت است؟

ali سه‌شنبه 18 دی 1397 ساعت 12:02 ق.ظ

A=[2 1 0;0 2 0;0 1 3];
B=[0 1;1 0;0 1];
C=[1 0 0];
D=[0 ];
[num,den]=ss2tf(A,B,C,D)
سلام ممنون میشم ایراد اینو بگید

سیستم شما باید بیش از یک ورودی داشته باشد

رضا جلیلی سه‌شنبه 8 آبان 1397 ساعت 10:12 ق.ظ

سلام اگر امکان داره نحوه بدست اوردن پاسخ زمانی در فضای حالت رو بگید چجوری باید انجام بدم . مرسی

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

فرشاد پنج‌شنبه 12 مهر 1397 ساعت 05:34 ب.ظ

با سلام اگر سیستم فضای حالت ما MIMO بود پیجوری باید تابع تبدیل رو بدست بیاریم؟

سلام
فرض کنید سیستم چند ورودی و چند خروجی باشد، آنگاه ورودی و خروجی به صورت بردار هستند و معادلات زیر برقرار هستند
x'=Ax+Bu
y=Cx+Du

در نتیجه تابع تبدیل به فرم زیر قابل محاسبه است
H(s)=y(s)/u(s)=C*inv(sI-A)*B+D
در رابطه بالا منظور از inv معکوس است.

reza سه‌شنبه 22 اسفند 1396 ساعت 06:52 ب.ظ

سلام وقت بخیر
ببخشید من با استفاده از دستور linmod میخام تابع تبدیل و ss رو بدست بیاریم از روی سیمولینکی ک طراحی کردم..
A رو بهم میده ولی B , C , D , NUM رو نمیاره..چرا؟؟کجای کارم اشتباس؟؟
[A,B,C,D]=linmod('reza')
[num,den]=ss2tf(A,B,C,D)
آکلادش جابه جا افتاده...
ممنون از پاسخگوییتون
[A,B,C,D]=linmod('reza')
[num,den]=ss2tf(A,B,C,D)
x=tf(num,den)
step(x)

سلام
دستور linmod را بصورت زیر بکار ببرید:
[A,B,C,D]=linmod('reza',x,u)
در رابطه فوق x حالت و u بردار ورودی است. آنها نقطه عملیاتی را که در آن مدل خطی استخراج می شود، تعیین می کنند.

مهران چهارشنبه 6 دی 1396 ساعت 10:38 ب.ظ

من یک معادله فضای حالت را به فرم تابع تبدیل نوشتم و در قسمت num به من یک ماتریس 3*2 داده مفهومش چیه؟

سلام
بهتر است مساله را بیشتر توضیح دهید. متغیر num برای تابع تبدیل باید بردار باشد چون ضرایب چند جمله ای را در خود دارد. اگه ممکنه مساله رو برایم ارسال کنید

u چهارشنبه 15 آذر 1396 ساعت 09:24 ب.ظ

درباره ورودی میشه توضیح بفرمایید.اضافه کردن ورودی را می خوام.

سلام
دقیقا منظور شما از ورودی چیست؟ اگر منظور شما از ورودی همان تابع تبدیل است، پاسخ آن است که ضرایب صورت را در متغیر num و ضرایب مخرج را در متغیر den به فرم برداری بنویسید. به مثال بیان شده در همین پست دقت کنید.
اگر منظور شما این است که با داشتن صفر و قطب چگونه تابع تبدیل را به فضای حالت تبدیل کنیم به نکته زیر توجه فرمایید.
اگر ریشه های یک چند جمله ای را داشته باشیم از دستور poly ضرایب آن بدست می آید. مثلا فرض کنید سیستمی دارای سه قطب p1 و p2 و p3 باشد. در اینصورت داریم
den=poly([p1 p2 p3])
اگر همان سیستم دارای دو صفر z1 و z2 هم باشد پس
num=poly([z1 z2])
حال با دستور زیر تابع تبدیل به فرم فضای حالت تبدیل می شود. توجه شود که قطبها و صفرها می توانند حقیقی یا مختلط باشند. ادامه روال هم که مشخص است.

ALI دوشنبه 1 خرداد 1396 ساعت 11:45 ق.ظ

A B C D چی هستن ؟

با سلام
پارامترهای فضای حالت هستند (توضیح این پارامترهای خارج از آموزش نرم افزار Matlab است). در مثال فوق پس از اجرا خواهید دید که A ماتریس 2*2، B بردار 2*1، C بردار 1*2 و D ماتریس 1*1 هستند. می توانید به کتاب زیر مراجعه کنید:
نام کتاب : Modern Control Engineering
مولف : Katsuhiko Ogata

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