controller design

本文介绍了一种基于状态反馈的控制器设计方法,通过使用T2place函数实现系统的极点配置。首先,确定系统的矩阵A和B,以及期望的特征多项式P。接着,计算系统的可控性矩阵并验证系统是否完全可控。然后,利用SVD分解和逆矩阵计算得到变换矩阵T,最终设计出控制器增益矩阵K。此外,还展示了如何设计观测器。
function K=T2place(A,B,P);
%A,B are system matrix
%P is the desired characteristic polynomial
%(P=s^n+a_{n-1}s^{n-1}+\ldots+a_0)
%dimension of P is n+1
n=length(B);
Lc=ctrb(A,B);
m=rank(Lc);
if (m<n), disp('Uncontrollable'); return; end
[V1,D1,U1]=svd(Lc);
InLc=U1*inv(D1)*V1';
gamma=InLc(n,:);
Tinv=ctrb(A',gamma')';
[V2,D2,U2]=svd(Tinv);
T=U2*inv(D2)*V2';
Astf=Tinv*A*T;
for kk=1:n;
    Pi(kk)=P(n+2-kk);
end
Khat=Pi+Astf(n,:);
K=Khat*Tinv;
%调用
A=[1 1 0;0 0 1;10 3 -1];
B=[2;3;1];
p_temp=conv([1 1-j],[1 1+j]);
p=conv(p_temp,[1 2]);%期望的特征多项式
K=T2place(A,B,p);
%观测器设计
A=[1 1 0;0 0 1;10 3 -1];
C=[2 3 1];
p_temp2=conv([1 6],[1 6]);
po=conv( p_temp2,[1 6]);
Kob=T2place(A',C',po)';

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值