ش | ی | د | س | چ | پ | ج |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
تغییر تابع تبدیل به فرم فضای حالت با دستور 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)
سلام من num و den که بهم داده یک سطرو ستون نیست چون دو ورودی دارم . چطور ا ز tf تستفاده کنم خطا نده
سلام دوست عزیز
به مثال زیر توجه کنید و طبق همین مثال پیش برید:
b = [0 2 3; 1 2 1];
a = [1 0.4 1];
[A,B,C,D] = tf2ss(b,a)
توجه کنید در این مثال صورت کسر یه بردار ستونی هست
با سلام. من یک کد متلب نوشتم.بخشی از آن به شکل زیر هست.
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
معکوس پذیر نباشه و المان های تعریف نشده یا بی نهایت را شامل بشه.
موردی که بهش اشاره کردم رو چک کنید.
سلام اگر فضای حالت رو داشته باشیم چه جوری تابع تبدیل را به دست آوریم ؟
سلام دوست عزیز
با دستور زیر ss2tf
[b,a] = ss2tf(A,B,C,D)
سلام، اگر در معادلات حالت یک ترم اضافه داشته باشیم به صورت زیر چطور باید اونو با دستور LSIM حل کنیم؟
xdot=Ax+Bu+gama
گاما یک ترم اضافه هست که در مسئله بوجود امده است.
سلام دوست عزیز
ترم اضافه gama ثابت است؟
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)
سلام ممنون میشم ایراد اینو بگید
سیستم شما باید بیش از یک ورودی داشته باشد
سلام اگر امکان داره نحوه بدست اوردن پاسخ زمانی در فضای حالت رو بگید چجوری باید انجام بدم . مرسی
سلام
بعد بدست آوردن تابع تبدیل در فضای حالت کافی است که از تابع تبدیل تبدیل لاپلاس معکوس بگیرید
با سلام اگر سیستم فضای حالت ما MIMO بود پیجوری باید تابع تبدیل رو بدست بیاریم؟
سلام
فرض کنید سیستم چند ورودی و چند خروجی باشد، آنگاه ورودی و خروجی به صورت بردار هستند و معادلات زیر برقرار هستند
x'=Ax+Bu
y=Cx+Du
در نتیجه تابع تبدیل به فرم زیر قابل محاسبه است
H(s)=y(s)/u(s)=C*inv(sI-A)*B+D
در رابطه بالا منظور از inv معکوس است.
سلام وقت بخیر
ببخشید من با استفاده از دستور 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 بردار ورودی است. آنها نقطه عملیاتی را که در آن مدل خطی استخراج می شود، تعیین می کنند.
من یک معادله فضای حالت را به فرم تابع تبدیل نوشتم و در قسمت num به من یک ماتریس 3*2 داده مفهومش چیه؟
سلام
بهتر است مساله را بیشتر توضیح دهید. متغیر num برای تابع تبدیل باید بردار باشد چون ضرایب چند جمله ای را در خود دارد. اگه ممکنه مساله رو برایم ارسال کنید
درباره ورودی میشه توضیح بفرمایید.اضافه کردن ورودی را می خوام.
سلام
دقیقا منظور شما از ورودی چیست؟ اگر منظور شما از ورودی همان تابع تبدیل است، پاسخ آن است که ضرایب صورت را در متغیر num و ضرایب مخرج را در متغیر den به فرم برداری بنویسید. به مثال بیان شده در همین پست دقت کنید.
اگر منظور شما این است که با داشتن صفر و قطب چگونه تابع تبدیل را به فضای حالت تبدیل کنیم به نکته زیر توجه فرمایید.
اگر ریشه های یک چند جمله ای را داشته باشیم از دستور poly ضرایب آن بدست می آید. مثلا فرض کنید سیستمی دارای سه قطب p1 و p2 و p3 باشد. در اینصورت داریم
den=poly([p1 p2 p3])
اگر همان سیستم دارای دو صفر z1 و z2 هم باشد پس
num=poly([z1 z2])
حال با دستور زیر تابع تبدیل به فرم فضای حالت تبدیل می شود. توجه شود که قطبها و صفرها می توانند حقیقی یا مختلط باشند. ادامه روال هم که مشخص است.
A B C D چی هستن ؟
با سلام
پارامترهای فضای حالت هستند (توضیح این پارامترهای خارج از آموزش نرم افزار Matlab است). در مثال فوق پس از اجرا خواهید دید که A ماتریس 2*2، B بردار 2*1، C بردار 1*2 و D ماتریس 1*1 هستند. می توانید به کتاب زیر مراجعه کنید:
نام کتاب : Modern Control Engineering
مولف : Katsuhiko Ogata