利用Matlab判断系统是否可控可观测

自动控制系统中,经常会遇到需要判断系统是否可控可观测的情况,Matlab在这方面处理很方便快捷。

1. 利用Matlab判断系统可控性

对于一个线性时不变动态方程来讲,系统是否可控可以使用判据 [ B , A B , A 2 B , . . . , A n − 1 B ] [B ,AB ,A^2B,...,A^{n-1}B] [B,AB,A2B,...,An1B]进行判断,也就是判断这个可控性矩阵是否满秩。
比如对于如下系统:
在这里插入图片描述

A = [0 1 0 0;0 5 0 0;0 0 -7 0;0 0 0 -8];
B = [1 1 3 4]';      	% 右上角逗号表示装置,也就是将行向量变为列向量
C = [0 5 0 8];
ctrb_Mat = ctrb(A,B);   % 计算系统的可控性矩阵

if rank(ctrb_Mat)==4    % 判断是否满秩,这里的系统是4阶的,于是判断是否等于4
    disp(ctrb_Mat);		% 打印可控性矩阵
    disp('原系统可控');
else
    disp('原系统不可控');
end

2. 利用Matlab判断系统可观测性

对于一个线性时不变动态方程来讲,系统是否可观测可以使用判据
[ C , C A , C A 2 , . . . , C A n − 1 ] [C ,CA ,CA^2,...,CA^{n-1}] [C,CA,CA2,...,CAn1]进行判断,也就是判断这个可观测性矩阵是否满秩。
同样对于上述系统:

A = [0 1 0 0;0 5 0 0;0 0 -7 0;0 0 0 -8];
B = [1 1 3 4]';   % 右上角逗号表示装置,也就是将行向量变为列向量
C = [0 5 0 8];
obsv_Mat = obsv(A,C);   % 计算系统的可观测性矩阵
if rank(obsv_Mat)==4    % 判断是否满秩,这里的系统是4阶的,于是判断是否等于4
    disp(obsv_Mat);
    disp('原系统可观测');
else
    disp('原系统不可观测');
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值