您的位置:首页 > 编程语言 > MATLAB

matlab-自控原理 给出线性定常系统的A和C矩阵,用秩判据判断系统的能观性

2016-09-28 08:59 501 查看
       慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。

1、代码

%x'=A*x+B*u
%y=C*x

clear;
clc;
%A矩阵
A=[1 0 0;0 0 1;0 5 0]
%C矩阵
C=[1 1 0]

%知道A的行数列数,也就知道了n。
sizeOfA=size(A);

temp=C;
%i必须要从1开始。
%for循环别写{}了
for i=1:1:sizeOfA(1)-1

Q=zeros(i+1,sizeOfA(1));
%横向连接B矩阵与power(A,i)*B矩阵
Q=cat(1,temp,C*A^i);
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


2、效果

A =

1     0     0
0     0     1
0     5     0

C =

1     1     0

Qc矩阵是
Q =

1     1     0
1     0     1
1     5     0

Qc矩阵的秩是3,n是3
所以能观


3、感想

根据已有的计算过程设计算法,真是消耗时间。

我感觉具体的步骤是这样的:

1、用标准的方法一步一步的解出

2、多做几道题,多看看定义,找到规律

3、用人类的语言,写出规律

4、翻译成软件能懂的语言

注:在第四步的时候,就需要你对软件的各个函数功能有了解。如果没有了解的话,就只能上网搜索了。

感恩曾经帮助过 心少朴 的人。

matlab优秀,值得学习。基础知识 + 专业知识 + matlab = ?
注:此文是自学笔记所生,质量中下等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能变通之时,自然跳出深坑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐