📄 sf_mach_asy1.m
字号:
function [sys,x0,str,ts]=sf_mach_asy1(t,x,u,flag,rs,rr,ls,lr,lm,J,P,fc,um)
%rs=4.85;rr=3.805;ls=0.274;lr=0.274;lm=0.258;P=2;J=0.031;fc=0.00114;
rs=5.06;rr=3.10;ls=0.386;lr=0.386;lm=0.374;P=1;J=8.2e-3;fc=0.006;um=0.9;
%rs=4;rr=1.143;ls=0.3676;lr=0.3676;lm=0.3489;P=2;J=0.03;fc=0.00098;
d=1-(lm^2/(ls*lr));
tr=lr/rr;
ad=(1-d)/d;
a=rs/(d*ls)+ad*rr/lr;
b=rr/lr;
c=ad/lm;
k=(P*lm/lr);
switch flag
case 0
[sys,x0,str,ts]=Initialisation;
case 1
sys=Calcul_Derivee_etat(x,u,rs,rr,ls,lr,lm,P,J,fc,d,ad,a,b,c,k);
case 3
sys=Calcul_Sortie(t,x,u,rs,rr,ls,lr,lm,P,J,fc,d,ad,a,b,c,k);
case {2,4,9}
sys=[];
otherwise
error(['unhandled flag=',num2str(flag)]);
end
function [sys,x0,str,ts]= Initialisation;
sizes=simsizes;
sizes.NumContStates=8;
sizes.NumDiscStates=0;
sizes.NumOutputs=11;
sizes.NumInputs=5;
sizes.DirFeedthrough=0;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[0 0 0 0. 0 0 0 0]';
str=[];
ts=[0 0];
function sys=Calcul_etat(x,u,rs,rr,ls,lr,lm,P,J,fc,d,ad,a,b,c,k)
sys(1) = -a*x(1)+u(4)*x(2)+c*b*x(3)+c*x(5)*x(4)+u(1)/d/ls;
sys(2) = -u(4)*x(1)-a*x(2)-c*x(5)*x(3)+c*b*x(4)+u(2)/d/ls;
sys(3) = lm*b*x(1)-b*x(3)+u(5)*x(4);
sys(4) = lm*b*x(2)-u(5)*x(3)-b*x(4);
sys(5) = (P/J)*(k*(x(2)*x(3)-x(1)*x(4))-u(3))-(fc/J)*x(5);
sys(6) = u(4);
sys(7) = u(1)-rs*x(1);
sys(8) = u(2)-rs*x(2);
function sys=Calcul_Sortie(t,x,u,rs,rr,ls,lr,lm,P,J,fc,d,ad,a,b,c,k)
%cr = u(3);
sys(1) = x(1);
sys(2) = x(2);
sys(3) = x(3);
sys(4) = x(4);
sys(5) = x(5);
sys(6) = x(6);
sys(7) = x(7);
sys(8) = k*(x(2)*x(3)-x(1)*x(4));
sys(9) = sqrt(2/3)*(cos(x(6))*x(1)+sin(x(6))*x(2));
sys(10) = x(6);
sys(11) = sqrt(x(7)*x(7)+x(8)*x(8));
function sys=Calcul_Derivee_etat(x,u,rs,rr,ls,lr,lm,P,J,fc,d,ad,a,b,c,k)
sys(1) = -a*x(1)+u(4)*x(2)+c*b*x(3)+c*x(5)*x(4)+u(1)/d/ls;
sys(2) = -u(4)*x(1)-a*x(2)-c*x(5)*x(3)+c*b*x(4)+u(2)/d/ls;
sys(3) = lm*b*x(1)-b*x(3)+u(5)*x(4);
sys(4) = lm*b*x(2)-u(5)*x(3)-b*x(4);
sys(5) = (P/J)*(k*(x(2)*x(3)-x(1)*x(4))-u(3))-(fc/J)*x(5);
sys(6) = u(4);
sys(7) = u(1)-rs*x(1);
sys(8) = u(2)-rs*x(2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -