clear clc % 22/06-2017 Lm=5.5182e-3; Lls=1.2721e-3; Ls=Lls+Lm; Llr=1.1194e-3; Lr=Llr+Lm; Rs=1.552e-3; Rr=1.446e-3; fs=50; ws=2*pi*fs; lamda=8.1; Ro=63; rho=1.25; % power % P=cpmax*ro*pi*Ro^2*v^3/2; cpmax=0.48; lamdopt=8.1; kopt=cpmax*rho*pi*Ro^5/lamdopt^3/2; p= 3 ws= 314.2 % for 50 Hz sgm= 1-Lm^2/Lr/Ls; ro= 1.25 Ro= 63 i= 97 np=i; %JHSS= 990 % HSS inertia Jt=38759227; Jg=534.2; tbe1=0.1; JHSS=Jt/(i*i)+Jg; % PI control s1=5 ; s2=10; Ki=s1*s2*sgm*Lr; Kp=(s1+s2)*sgm*Lr-Rr; Ti=Kp/Ki; % TS fuzzy model L=[Ls 0 Lm 0; 0 Ls 0 Lm; Lm 0 Lr 0; 0 Lm 0 Lr]; R=[Rs 0 0 0; 0 Rs 0 0 ; 0 0 Rr 0; 0 0 0 Rr]; B=inv(L); C=eye(4); D=[0 1 0 0]'; D=B(:,2); %D=[ 0 0 1 0]'; % F=[0 0 1 0; % 0 0 0 1]'; F=B(:,3:4); vmin=6; vmax=25; wrmin=lamda*vmin/Ro*np; wrmax=lamda*vmax/Ro*np; % wrmin=670*pi/30; % %wrmin=1170*pi/30*0.5; % wrmax=1170*pi/30*1.5; % wrmax=100*pi-3*wrnom*0.5; % wrmin=100*pi-3*wrnom*1.5; % wrnom=1170*pi/30; % wrmax=100*pi-3*wrnom*0.5; % wrmin=100*pi-3*wrnom*1.5; % wr=wrmin; wg=wr; % W=[-ws 0 0 0; % 0 ws 0 0; % 0 0 -(ws-wg) 0; % 0 0 0 ws-wg]; W=[0 -ws 0 0; ws 0 0 0; 0 0 0 -(ws-wg) ; 0 0 ws-wg 0 ]; A1=-(inv(L)*R+inv(L)*W*L); wr=wrmax; wg=wr; % W=[-ws 0 0 0; % 0 ws 0 0; % 0 0 -(ws-wg) 0; % 0 0 0 ws-wg]; W=[0 -ws 0 0; ws 0 0 0; 0 0 0 -(ws-wg) ; 0 0 ws-wg 0 ]; A2=-(inv(L)*R+inv(L)*W*L); D1=D; D2=D1; % A = [... % -Rs/(Ls*sgm) ws+p*ombar*(Lm^2)/(sgm*Ls*Lr) Lm*Rr/(sgm*Ls*Lr) p*ombar*Lm/(sgm*Ls) p*Lm/(sgm*Ls)*(ist(2)*Lm/Lr+ist(4));... % -(ws+p*ombar*(Lm^2)/(sgm*Ls*Lr)) -Rs/(Ls*sgm) -p*ombar*Lm/(sgm*Ls) Lm*Rr/(sgm*Ls*Lr) -p*Lm/(sgm*Ls)*(ist(1)*Lm/Lr+ist(3));... % Lm*Rs/(sgm*Ls*Lr) -p*ombar*Lm/(sgm*Lr) -Rr/(Lr*sgm) ws-p*ombar/sgm -p/sgm*(ist(2)*Lm/Lr+ist(4));... % p*ombar*Lm/(sgm*Lr) Lm*Rs/(sgm*Ls*Lr) -ws+p*ombar/sgm -Rr/(Lr*sgm) p/sgm*(ist(1)*Lm/Lr+ist(3));... % -1.5*p*Lm/JHSS*ist(4) 1.5*p*Lm/JHSS*ist(3) 1.5*p*Lm/JHSS*ist(2) -1.5*p*Lm/JHSS*ist(1) Tbar/ombar*gam/(i*JHSS)... % ]; % wr=wrmin; % wg=wr; % Apt1 = [... % -Rs/(Ls*sgm) ws+wg*(Lm^2)/(sgm*Ls*Lr) Lm*Rr/(sgm*Ls*Lr) wg*Lm/(sgm*Ls) ;... % -(ws+wg*(Lm^2)/(sgm*Ls*Lr)) -Rs/(Ls*sgm) -wg*Lm/(sgm*Ls) Lm*Rr/(sgm*Ls*Lr) ;... % Lm*Rs/(sgm*Ls*Lr) -wg*Lm/(sgm*Lr) -Rr/(Lr*sgm) ws-wg/sgm ;... % wg*Lm/(sgm*Lr) Lm*Rs/(sgm*Ls*Lr) -ws+wg/sgm -Rr/(Lr*sgm) ... % ]; % A1=Apt1; % wr=wrmax; % wg=wr; % Apt2 = [... % -Rs/(Ls*sgm) ws+wg*(Lm^2)/(sgm*Ls*Lr) Lm*Rr/(sgm*Ls*Lr) wg*Lm/(sgm*Ls) ;... % -(ws+wg*(Lm^2)/(sgm*Ls*Lr)) -Rs/(Ls*sgm) -wg*Lm/(sgm*Ls) Lm*Rr/(sgm*Ls*Lr) ;... % Lm*Rs/(sgm*Ls*Lr) -wg*Lm/(sgm*Lr) -Rr/(Lr*sgm) ws-wg/sgm ;... % wg*Lm/(sgm*Lr) Lm*Rs/(sgm*Ls*Lr) -ws+wg/sgm -Rr/(Lr*sgm) ... % ]; % A2=Apt2; rank(D1) rank(C*D1) rank(F) rank(C*F) rank([D1 F]) rank([C*D1 C*F]) %% novle Sliding mode observer Ch=[ 0 1 0 0; 0 0 1 0; 0 0 0 1]; rank(D1) rank(Ch*D1) rank(F) rank(Ch*F) rank([D1 F]) rank([Ch*D1 Ch*F]) %step 2 L_inv_cdcf1=inv([Ch*D1 Ch*F]'*[Ch*D1 Ch*F])*[Ch*D1 Ch*F]'; P1=eye(4)-[D1 F]*L_inv_cdcf1*Ch; t_m_df1=[D1 F]; %select Si= [Ni Di Fi] % [Ni0 Di Fi]= inv N0=[100 100 100 100 ]'; rank([N0 D1 F]); N1=P1*N0; S1=[N1 D1 F]; A1_=inv(S1)*A1*S1; B1_=inv(S1)*B; D1_=inv(S1)*D1; F1_=inv(S1)*F; C1h_=Ch*S1; C1_h=C1h_; iS1=inv(S1); % A2 %step 2 L_inv_cdcf2=inv([Ch*D2 Ch*F]'*[Ch*D2 Ch*F])*[Ch*D2 Ch*F]'; P2=eye(4)-[D2 F]*L_inv_cdcf2*Ch; t_m_df2=[D2 F]; %select Si= [Ni Di Fi] % [Ni0 Di Fi]= inv N0=[100 100 100 100 ]'; rank([N0 D2 F]); N2=P2*N0; S2=[N2 D2 F]; A2_=inv(S2)*A2*S2; B2_=inv(S2)*B; D2_=inv(S2)*D2; F2_=inv(S2)*F; C2h_=Ch*S2; C2_h=C2h_; iS2=inv(S2); Sl1=S1; Sl2=S2; % step % p>+q %% ___________---D1 A1 temp1_m=[Ch*D1 Ch*F]'; R_inv_cdcf1=temp1_m'*inv(temp1_m*temp1_m') Sr=[Ch*D1 Ch*F]; % M1=eye(4)-R_inv_cdcf1*[Ch*D1 Ch*F]' % % [C*D1 C*F] % % select Q0 % Q0_1=[0 0 0 10]'; % Q0_1=[10 10 10 10]'; % Q1=M1*Q0_1; % U1=[C*D1 C*F Q1] Uh1inv=inv(Sr) Uh1_1=Uh1inv(1:3,:) Uh1inv*[Ch*D1 Ch*F]==eye(3) % D2=D1; [Ch*D2 Ch*F] % select Q0 % Q0_2=[0 0 0 10]'; % Q0_2=[10 10 10 10]'; % Q2=M1*Q0_2; Uh2=[Ch*D2 Ch*F] Uh2inv=inv(Uh2) Uh2_1=Uh2inv(1:3,:) Uh2inv*[Ch*D2 Ch*F ]==eye(3) At_11=A1_(1,1); At_12=A1_(1,2:4); At_21=A1_(2:4,1); At_22=A1_(2:4,2:4); At_=[At_11 At_12; At_21 At_22]; Bt_=B1_; Cth_1=C1_h; if eig(At_11) <0 disp('---At_11----------------suitable') end if eig(At_22) <0 disp('---At_22----------------suitable') end %% Check LMI1-- A_{qi}'P1+P1 * A_qi+ gama I<0 % since At_11<0, At_22<0, it satisfied S1ht=S1; iS1ht=inv(S1); S2ht=S2; iS2ht=inv(S2); %% LMI 2 As=-5.* eye(3); % z observer %------------- A1t_11=A1_(1,1); A1t_12=A1_(1,2:4); A1t_21=A1_(2:4,1); A1t_22=A1_(2:4,2:4); A1t_=[A1t_11 A1t_12; A1t_21 A1t_22]; L1ht_12=-A1t_12; L1ht_22=-A1t_22-5.* eye(3); L1hsmt=[ L1ht_12; L1ht_22]; Ag1=A1_; Bg1=B1_; Cg1=C1h_; Caz=[zeros(3,1) eye(3)]; Gaz=[zeros(1,3); eye(3)]; L1az=L1hsmt; %--------- A2t_11=A2_(1,1); A2t_12=A2_(1,2:4); A2t_21=A2_(2:4,1); A2t_22=A2_(2:4,2:4); A2t_=[A2t_11 A2t_12; A2t_21 A2t_22]; L2ht_12=-A2t_12; L2ht_22=-A2t_22-5.* eye(3); L2hsmt=[ L2ht_12; L2ht_22]; % %% Check LMI2-- A_{si}'P2+P2 * A_si+ gama I<0 Asi1=A1t_22+L1ht_22; Asi2=A2t_22+L2ht_22; if eig(Asi1) <0 disp('---As1----------------suitable') end if eig(Asi2) <0 disp('---As2----------------suitable') end Ag2=A2_; Bg2=B2_; Cg2=C2h_; Caz=[zeros(3,1) eye(3)]; Gaz=[zeros(1,3); eye(3)]; L2az=L2hsmt; %---------- %slid mode surface pho=10 ph_max=500; % Lsmt=[Lt_11 Lt_12; % Lt_21 Lt_22]; % Laz=[Lt_11 Lt_12; % Lt_21 Lt_22]; % Atem1=A+St*Laz*Ctem1*inv(St); % eig(Atem1)