当前位置:编程学习 > Matlab >>

已知状态空间方程如何转为传递函数 要用matlab语言编程的!谢谢!

补充:就是w(s)=c(sI-A)-1b这样的,我知道这c=1 0 0 0],A=[ 0 1.0000 0 0 0.4000 1.0000 20.4000 6.0000 0 0 0 1.0000 -0.4000 -1.0000 -10.4000 -6.0000],b={0;1;0;-1;] 想知道用matlab的编程方法
答案:这是我编的一个小程序,你可以参考参考。
%%%%  传递函数  %%%%
sys=tf([0 50],[1000,1],'inputdelay',100);
%%%  对传递函数进行离散化  %%%%
dsys=c2d(sys,ts,'zoh');  %%%%  dsys为离散化得到的方程   %%%%
[num,den]=tfdata(dsys,'v');  %%%% num 为分子系数,den 为分母系数  %%%%
%%%% 设定初值y,由于滞后,故y的输出在刚开始有输入的滞后时间内为零 %%%%%

for k=1:101
    y(k)=0;
end
%%%% 输入 u 为一组伪随机数 %%%%%%
。。。。。。。。随机序列可以自己用想用。。。。。
接下来弄一个循环:每一个y(k)就可以的得到
 y(k+101)=-den(2)*y11(k+100)+num(2)*u(k);
希望对你有帮助。
其他:[num,den]=ss2tf[a,b,c,d] 

上一个:用matlab画饼图的时候,要标注每一个部分的名称,怎么弄啊
下一个:matlab里面建立一个函数文件test,对这个函数传递的是一个矩阵A,可以直接用n=test(A)不?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,