📄 getu.asv
字号:
% function u=GetU(x,r)
% 通过反馈线性化得到控制U
% f(x)=[0.072*(1-x(1))*exp(x(2)/(1+x(2)/20))-x(1)
% 0.576*(1-x(1))*exp(x(2)/(1+x(2)/20))-1.3*x(2)];
% h(x)=x(1);
% g(x)=[0,0.3]';
% Lgh(x)=0;
% Lfh(x)=0.072*(1-x(1))*exp(x(2)/(1+x(2)/20))-x(1)=f(1);
% LgLfh(x)=dLfh(x)*g(x)=[-0.072*exp(x(2)/(1+x(2)/20))-1, 0.072*(1-x(1))*exp(x(2)/(1+x(2)/20))*(1/(x(2)/20 + 1) - x(2)/(20*(x(2)/20 + 1)^2))]*[0 0.3]'
% =0.3*0.072*(1-x(1))*exp(x(2)/(1+x(2)/20))*(1/(x(2)/20 + 1) - x(2)/(20*(x(2)/20 + 1)^2));
% LgLfh(x)<>0
% Relative degree is 2.
% Cordinate change is chosen as
% z(1)=h(x)=x(1);
% z(2)=Lfh(x);
% The new coordinates system:
% dz=[z(2);
% b(z)+a(z)u];
% y=z(1);
% b(z)=L2fh(x)=LfLfh(x)=dLfh(x)*f(x);
% a(z)=LgLfh(x)=0.3*0.072*(1-x(1))*exp(x(2)/(1+x(2)/20))*(1/(x(2)/20 + 1) - x(2)/(20*(x(2)/20 + 1)^2));
% u=-(b(z)-v)/a(z);
% v=-alpha(1)*z(1)-alpha(2)*z(2);
function u=GetU(x,r)
f=[0.072*(1-x(1))*exp(x(2)/(1+x(2)/20))-x(1);
g=[0 0.3]';
alpha=[-5 -10];
z=[x(1);
f(1)];
err=z-[r,0]';
v=alpha*err;
dLfh=[-0.072*exp(x(2)/(1+x(2)/20))-1, 0.072*(1-x(1))*exp(x(2)/(1+x(2)/20))*(1/(x(2)/20 + 1) - x(2)/(20*(x(2)/20 + 1)^2))];
u=-(dLfh*f-v)/(dLfh*g);
u
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -