CT_2B_Lab/labcontroltheory2b/lab_controltheory2b.m

64 lines
1.5 KiB
Matlab
Executable File

clc;
close all;
clear all;
Q0=3.7958e-5;
C10=11.08e-5;
C20=8.43e-5;
C30=8.28e-5;
H10=(Q0/C10)^2;
H20=(Q0/C20)^2;
H30=(Q0/C30)^2;
s=0.25*0.035;
A=[-C10*(1/(2*s*sqrt(H10))), 0, 0; C10*(1/(2*s*sqrt(H10))), -C20*(1/(2*s*sqrt(H20))), 0; 0, C20*(1/(2*s*sqrt(H20))), -C30*(1/(2*s*sqrt(H30)))];
B=[-sqrt(H10)*(1/s), 0, 0; sqrt(H10)*(1/s), -sqrt(H20)*(1/s), 0; 0, sqrt(H20)*(1/s), -sqrt(H30)*(1/s)];
C=[1,0,0;0,1,0;0,0,1];
D=zeros(3, 3);
A
B
C
D
I=[1 0 0; 0 1 0; 0 0 1];
model=ss(A, B, C, D)
[NUM1, den1]=ss2tf(A,B,C,D,1);
[NUM2, den2]=ss2tf(A,B,C,D,2);
[NUM3, den3]=ss2tf(A,B,C,D,3);
TFM(1,1)=tf(NUM1(1,:),den1);
TFM(2,1)=tf(NUM1(2,:),den1);
TFM(3,1)=tf(NUM1(3,:),den1);
TFM(1,2)=tf(NUM2(1,:),den2);
TFM(2,2)=tf(NUM2(2,:),den2);
TFM(3,2)=tf(NUM2(3,:),den2);
TFM(1,3)=tf(NUM3(1,:),den3);
TFM(2,3)=tf(NUM3(2,:),den3);
TFM(3,3)=tf(NUM3(3,:),den3);
TFM;
if rank([B, B*A, B*A^2])==3
disp('is completely state controllable');
end
if rank([C*B, C*A*B, C*(A^2)*B, D])==3
disp('is completely output controllable');
end
if rank([C', A'*C', ((A')^2)*C'])==3
disp('is completely observable');
end
% u is composed of C1 C2 C3
% u = -k x(t)
% K = k11 k12 k13; k21 k22 k23..
% X is H1-H10 ; H2-H20..
P=eig(A);
% p=[P(1,1); P(2,1); P(3,1)];
% unstable pole should be stabilized
% real part of the pole should be negative time domain or in discrete pole should be in the unit circle
p=[-14.5;-9.0;-23];
K = place(A,B,p);
eig(A-B*K)
% q=[];
% L = place(A',C',q).';