这是我参考别人写的状态反馈,我想知道输出反馈要怎么做呀。
clear all;
close all;
clc;
A=[0 1 ;-2 0];
B=[1;3];
syms xi1 ;
a=length(A);
I=A+eye(a,a)*((xi1)/2);
Q=B*B';
z=lyap2(I,Q);
P1=-inv(z);
xi=[0.2 0.85 1.175 1.5];
xi1=xi(1);
P=subs(P1);
P3=double(P);
X(:,1)=[-0.01 1.8]';
T=0:0.001:20;
row=0.8;
n=2;
c=1;
u(1)=-B'*P3*X(:,1);
satu(1)=(u(1));
for j=1:1:20000
f(j)=n*xi1*row*X(:,j)'*P3*X(:,j);
d=n*xi1*row*X(:,j)'*P3*X(:,j)-1;
if d<0 && c<=3
c=c+1;
xi1=xi(c);
P=subs(P1);
P3=double(P);
end
DX(:,j)=A*X(:,j)+B*(u(j));
X(:,j+1)=X(:,j)+0.001*DX(:,j);
u(j+1)=-B'*P3*X(:,j+1);
satu(j+1)=(u(j+1));
end
figure(1)
plot(T,X(1,:))
figure(2)
plot(T,X(2,:))
figure(3)
plot(T,satu)
fuction y=SAT(x)n
if x>0.5
y=0.5;
else if x<-0.8
y=-0.8;
else y=x;
end
end