MATLAB约当标准型,用MATLAB求其约当标准型状态空间表达式

系统的传递函数为

296c510c0a35e9454d70057b1bac89da.png

试用MATLAB求其约当标准型状态空间表达式。

>> num=[2,1];

>> den=[1 7 14 8];

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

>> L=eig(A);

>> K1=L(1)*eye(3)-A;

>> syms p11 p12 p13

>> f=K1*[p11;p12;p13];

>> p11=1;

>> p12=solve(subs(f(2)));

>> p13=solve(subs(f(3)));

>> p1=[p11;p12;p13];

>> K2=L(2)*eye(3)-A;

>> syms p21 p22 p23

>> f=K2*[p21;p22;p23];

>> p21=1;

>> p22=solve(subs(f(2)));

>> p23=solve(subs(f(3)));

>> p2=[p21;p22;p23];

>> K3=L(3)*eye(3)-A;

>> syms p31 p32 p33

>> f=K3*[p31;p32;p33];

>> p31=1;

>> p32=solve(subs(f(2)));

>> p33=solve(subs(f(3)));

>> p3=[p31;p32;p33];

>> T=[p1,p2,p3];

>> A0=inv(T)*A*T

A0 =

[ -4, 0, 0]

[ 0, -2, 0]

[ 0, 0, -1]

>> B0=inv(T)*B

B0 =

8/3

-2

1/3

>> C0=C*T

C0 =

[ -7/16, -3/4, -1]

为什么我的c0不是[1,1,1]呢?可是验算K1*p1..K2*p2..K3*p3都是0啊..所以应该是没算错的..这题没有重根..难道这是不能化为约当标准型的原因吗??

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值