b = [10 20];
a = [1 11 29.25 0];
[A,B,C,D] = tf2ss(b,a)
sys1 = ss(A,B,C,D)
csys = canon(sys1,'companion')
课本课件p62/884有类似的,属于能观标准Ⅰ型
function ObserveStandardA()
%{
程序功能:
1、线性系统转换为能观标准I型
2、
date:2020.05.06
%}
clc,clear
% A=[1,2,0; 3,-1,1; 0,2,0];
% B=[2;1;1];
% C=[0,0,1];
A=[0,1,0; 0,0,1; -2,9,0];
B=[1;2;12];
C=[1,0,0];
n=length(A);
N=zeros(n,n);
syms s
I=eye(n,n);
for i=1:n
N(i,:)=C*A^(i-1);
end
T=inv(N) ;
if( rank(N)< n ) %能观判别矩阵
return
end
y=det( s*I-A ) ;
a1=sym2poly(y) ; %从高阶->低阶系数排列
a=flip(a1) ; %从低阶->高阶系数排列
A1=zeros(n,n);
for j=2:n
A1(j-1, j)=1;
A1(n , j-1)=-a(j-1) ;
end
A1(n,n)=-a(n)
B1= inv(T)*B
C1=zeros(1,n);
C1(1)=1
%传递函数
end
b = [10 20];
a = [1 11 29.25 0];
[A,B,C,D] = tf2ss(b,a)
sys1 = ss(A,B,C,D)
csys = canon(sys1,'companion')
ObserveStandardA
里卡提方程在课本322/334
降维观测器在课本226/334 例题5-10,例题5-11
% A = [0 1; -1 0];
% B = [0; 1];
% Q = [0 1; 1 0];
% R = 0.5;
% [P,l,g] = care(A, B, Q, R)
A = [0 1 0;0 0 1;0 -29.25 -11];
B = [20;10;0];
Q = [1 0 0;0 1 0;0 0 1];
%R = [1/2 0 0;0 1/2 0;0 0 1/2];
R=1/2;
E=[1 0 0;0 1 0;0 0 1];
S=0;
%[P,l,g] = care(A, B, Q, R)
[X,L,G] = care(A,B,Q,R,S,E)
%https://www.mathworks.com/help/control/ref/care.html?searchHighlight=care&s_tid=srchtitle
%https://www.dazhuanlan.com/2020/03/02/5e5c2e7a3c299/
% P =
% -1.0000 0.0000
% 0.0000 0.0000
%
% l =
% -0.0000 + 1.0000i
% -0.0000 - 1.0000i
%
% g =
% 1.0e-07 *
% 0.0000 0.2584