matlab : R2018a 64bit
OS : Windows 10 x64
typesetting : Markdown
blog : my.oschina.net/zhichengjiu
code
clear
clc
% x'=A*x+B*u
% A矩阵
A=[1 3 0;0 0 1;0 2 1]
% B矩阵
B=[0;1;0]
% 知道A的行数列数,也就知道了n。
sizeOfA=size(A);
temp=B;
%i必须要从1开始。
for i=1:1:sizeOfA(1)-1
Q=zeros(sizeOfA(1),i+1);
%横向连接B矩阵与power(A,i)*B矩阵
Q=cat(2,temp,A^i*B);
temp=Q;
end
fprintf('Qc矩阵是');
Q
fprintf('Qc矩阵的秩是%d,',rank(Q))
fprintf('n是%d\n',sizeOfA(1))
if(rank(Q)==sizeOfA(1))
fprintf('所以能控\n');
else
fprintf('所以不能控\n');
end
result
A =
1 3 0
0 0 1
0 2 1
B =
0
1
0
Qc矩阵是
Q =
0 3 3
1 0 2
0 2 2
Qc矩阵的秩是2,n是3
所以不能控
>>
resource
[文档] ww2.mathworks.cn/help/matlab
[文档] ww2.mathworks.cn/help/simulink
[平台] www.oschina.net
[平台] gitee.com
感谢帮助 志成就 的人们。
matlab优秀,值得学习。基础知识 + 专业知识 + matlab = ?
Simulink,用于仿真和基于模型的设计,值得学习。
该博文仅可用于测试与参考。