Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Advanced Sliding Mode Observer

>> syms W Lg Li Cf x1 x2 x3 x4 x5 x6 u_d u_q v_gd v_gq M1 M2L11 L12 L21 L22 L31 L32
L41 L42 G11 G12 G21 G22 G31 G32 G41 G42 g11 g12 g21 g22 ey1 ey2

>> A=[0 1/Lg 0 W 0 0; -(1/Cf) 0 -(1/Cf) 0 W 0; 0 -(1/Li) 0 0 0 W; -W 0 0 0 1/Lg 0; 0 -W 0 -(1/Cf)


0 1/Cf; 0 0 -W 0 -(1/Li) 0]
A=
[ 0, 1/Lg, 0, W, 0, 0]
[-1/Cf, 0, -1/Cf, 0, W, 0]
[ 0, -1/Li, 0, 0, 0, W]
[ -W, 0, 0, 0, 1/Lg, 0]
[ 0, -W, 0, -1/Cf, 0, 1/Cf]
[ 0, 0, -W, 0, -1/Li, 0]
>> B=[0 0; 0 0; 1/Li 0; 0 0; 0 0; 0 1/Li]
B=
[ 0, 0]
[ 0, 0]
[1/Li, 0]
[ 0, 0]
[ 0, 0]
[ 0, 1/Li]
>> C=[1 0 0 0 0 0; 0 0 0 1 0 0]
C=
1 0 0 0 0 0
0 0 0 1 0 0
>> D=[-(1/Lg) 0; 0 0; 0 0; 0 -(1/Lg); 0 0; 0 0]
D=
[-1/Lg, 0]
[ 0, 0]
[ 0, 0]
[ 0, -1/Lg]
[ 0, 0]
[ 0, 0]
>> Nc=null(C)
Nc =
0 0 0 0
0 -1 0 0
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
>> Nt=transpose(Nc)
Nt =
0 0 1 0 0 0
0 -1 0 0 0 0
0 0 0 0 1 0
0 0 0 0 0 1
>> T=[Nt; C]
T=
0 0 1 0 0 0
0 -1 0 0 0 0
0 0 0 0 1 0
0 0 0 0 0 1
1 0 0 0 0 0
0 0 0 1 0 0
>> A_b= T*A*inv(T)
A_b =
[ 0, 1/Li, 0, W, 0, 0]
[1/Cf, 0, -W, 0, 1/Cf, 0]
[ 0, W, 0, 1/Cf, 0, -1/Cf]
[ -W, 0, -1/Li, 0, 0, 0]
[ 0, -1/Lg, 0, 0, 0, W]
[ 0, 0, 1/Lg, 0, -W, 0]
>> B_b= T*B
B_b =
[1/Li, 0]
[ 0, 0]
[ 0, 0]
[ 0, 1/Li]
[ 0, 0]
[ 0, 0]
>> D_b=T*D
D_b =
[ 0, 0]
[ 0, 0]
[ 0, 0]
[ 0, 0]
[-1/Lg, 0]
[ 0, -1/Lg]
>> X=[x1;x2;x3;x4;x5;x6]
X=
x1
x2
x3
x4
x5
x6
>> X_b= T*X
X_b =
x3
-x2
x5
x6
x1
x4
>> u_dq=[u_d; u_q]
u_dq =
u_d
u_q
>> v_dq=[v_gd; v_gq]
v_dq =
v_gd
v_gq
>> X_bdot=A_b*X_b + B_b*u_dq +D_b*v_dq
X_bdot =
W*x6 + u_d/Li - x2/Li
x1/Cf - W*x5 + x3/Cf
x6/Cf - x4/Cf - W*x2
u_q/Li - W*x3 - x5/Li
W*x4 - v_gd/Lg + x2/Lg
x5/Lg - v_gq/Lg - W*x1
>> syms M2 L11

>> L=[L11 L12; L21 L22; L31 L32; L41 42]


L=
[L11, L12]
[L21, L22]
[L31, L32]
[L41, 42]
>> syms e1 e2

>> V=[M1*sign(e1); M2*sign(e2)]


V=
M1*sign(e1)
M2*sign(e2)
>> Y = [e1; e2]
Y=
e1
e2
>> G1=[G11 G12; G21 G22; G31 G32; G41 G42]
G1 =
[G11, G12]
[G21, G22]
[G31, G32]
[G41, G42]
>> G2=[g11 g12; g21 g22]
G2 =
[g11, g12]
[g21, g22]

>> L*V
ans =
L11*M1*sign(e1) + L12*M2*sign(e2)
L21*M1*sign(e1) + L22*M2*sign(e2)
L31*M1*sign(e1) + L32*M2*sign(e2)
42*M2*sign(e2) + L41*M1*sign(e1)
>> G1*Y
ans =
G11*e1 + G12*e2
G21*e1 + G22*e2
G31*e1 + G32*e2
G41*e1 + G42*e2
>> G2*Y
ans =
e1*g11 + e2*g12
e1*g21 + e2*g22
>> A11=[0 -(1/Li) 0 W; i/Cf 0 -W 0; 0 -W 0 1/Cf; -W 0 -(1/Li) 0]
A11 =
[ 0, -1/Li, 0, W]
[1i/Cf, 0, -W, 0]
[ 0, -W, 0, 1/Cf]
[ -W, 0, -1/Li, 0]

>> Z=[x3; x2; x5; x6]


Z=
x3
x2
x5
x6
>> A12=[0 0; 1/Cf 0; 0 -(1/Cf); 0 0]
A12 =
[ 0, 0]
[1/Cf, 0]
[ 0, -1/Cf]
[ 0, 0]

>> Ym=[x1; x4]


Ym =
x1
x4
>> A21=[0 1/Lg 0 0; 0 0 1/Lg 0]
A21 =
[0, 1/Lg, 0, 0]
[0, 0, 1/Lg, 0]
>> A22=[0 W; -W 0]
A22 =
[ 0, W]
[-W, 0]

>> b1=[1/Li 0; 0 0; 0 0; 0 1/Li]


b1 =
[1/Li, 0]
[ 0, 0]
[ 0, 0]
[ 0, 1/Li]

>> D2=[-(1/Lg) 0; 0 -(1/Lg)]


D2 =
[-1/Lg, 0]
[ 0, -1/Lg]

>> Z_b=A11*Z + A12*Ym + b1*u_dq + L*V - G1*Y


Z_b =
W*x6 - G12*e2 - G11*e1 + u_d/Li - x2/Li + L11*M1*sign(e1) + L12*M2*sign(e2)
x1/Cf - G22*e2 - W*x5 - G21*e1 + (x3*1i)/Cf + L21*M1*sign(e1) + L22*M2*sign(e2)
x6/Cf - G32*e2 - W*x2 - x4/Cf - G31*e1 + L31*M1*sign(e1) + L32*M2*sign(e2)
u_q/Li - G42*e2 - W*x3 - G41*e1 - x5/Li + 42*M2*sign(e2) + L41*M1*sign(e1)

>> b2=[0 0; 0 0]
b2 =
0 0
0 0
>>Ym_b = A21*Z + A22*Ym + b2*u_dq + D2*v_dq - V - G2*Y
ans =
W*x4 - e2*g12 - e1*g11 - v_gd/Lg + x2/Lg - M1*sign(e1)
x5/Lg - e2*g22 - W*x1 - v_gq/Lg - e1*g21 - M2*sign(e2)

You might also like