已知状态空间方程如何转为传递函数 要用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的编程方法

第1个回答  2011-05-14
这是我编的一个小程序,你可以参考参考。
%%%% 传递函数 %%%%
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);
希望对你有帮助。
本回答被提问者采纳
第2个回答  2012-03-12
[num,den]=ss2tf[a,b,c,d]
相似回答