Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
9 views25 pages

L15 Mu Robust Control Design Example

The document outlines a control design process for a profile measuring system, detailing nominal and perturbed models, as well as μ control strategies for two loops. It includes MATLAB code examples for implementing the control design and analysis. The document concludes with a discussion on the overall framework and performance of the control system.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views25 pages

L15 Mu Robust Control Design Example

The document outlines a control design process for a profile measuring system, detailing nominal and perturbed models, as well as μ control strategies for two loops. It includes MATLAB code examples for implementing the control design and analysis. The document concludes with a discussion on the overall framework and performance of the control system.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Hassan Bevrani

Professor, University of Kurdistan

Fall 2023

H. Bevrani University of Kurdistan 1

Contents

1. A System Example: Profile Measuring System


2. Nominal and Perturbed Models
3. μ Control for 1st Loop
4. Control Design Process with MATLAB codes
5. μ Control for 2nd Loop
6. Closed Loop System
7. Conclusion

H. Bevrani University of Kurdistan 2


Reference

M. Takahashi, M. Kamoshita and M. Fujita,


“Application of µ -Analysis and Synthesis to Follow-up Control
of a Profile Measuring System, ”
in Proc. of the 37th IEEE Conference on Decision and Control,
pp. 4742-4747, 1998.
H. Bevrani University of Kurdistan 3

Profile Measuring System

Real Physical System

H. Bevrani University of Kurdistan 4


Ideal Physical Model

f1 : the force of coarse actuator f 2 : the force of fine actuator


m1 : the mass of coarse actuator m2 : the mass of fine actuator
k1 : the spring constant of coarse actuator k 2 : the spring constant of fine actuator
C1 : the damping coefficient of C2 : the damping coefficient of
coarse actuator fine actuator

Configuration of coarse actuator and fine actuator


H. Bevrani University of Kurdistan 5

Ideal Mathematical Model

d 2 x1 dx1 d 2 x2 dx
m1 2
+ C1 + k x
1 1 = f1 , m2 2
+ C2 2 + k2 x2 = f 2 (1)
dt dt dt dt

f1 = K f 1u1 , f 2 = K f 2u 2 ( 2)
xs
x f = x1 + x2 - xs (3)
u1 x1 + -
Gcnom xf
+
+
u2 x2
G fnom

Block diagram of Profile measuring system

H. Bevrani University of Kurdistan 6


Nominal Model
x1 Gco _ nom
Gcnom = = 2 ( 4)
u1 s + (2z cnomwcnom + K v ) s + wcnom 2

x2 G fi _ nom1 G fi _ nom2
G fnom = = 2 + (5)
u2 s + 2z fnom1w fnom1s + w fnom12 s 2 + 2z fnom 2w fnom 2 s + w fnom 2 2

Gco _ nom = 0.5318, z cnom = 0.141, wcnom = 5.1321, K v = 8.9


G fi _ nom1 = 888264 , z fnom1 = 1, w fnom1 = 942,

G fi _ nom 2 = 895371, z fnom 2 = 0.04, w fnom 2 = 5655,

H. Bevrani University of Kurdistan 7

Nominal Model
0.532
Gcnom ( s) = 2nd order LTI system
( s + 5.83)(s + 4.52)

Poles: - 5.83, - 4.52

H. Bevrani University of Kurdistan 8


MATLAB Program
% Parameters
Gco_nom=0.5318;
zeta_cnom=0.141;
omega_cnom=5.1321;
Kv=8.9;
% Gcnom %
Gcnom_tf=tf([Gco_nom],[1 2*zeta_cnom… figure('Position',pos1)
*omega_cnom+Kv omega_cnom^2]); subplot(2,1,1)
Gcnom = nd2sys([Gco_nom],[1 …2*zeta_cnom… vplot('liv,d',Gcnom_g)
*omega_cnom+Kv omega_cnom^2]); subplot(2,1,2)
zpk(Gcnom_tf) vplot('liv,p',Gcnom_p)
% %
Gcnom_p=frsp(Gcnom,omega1); Gcnom_pole=spoles(Gcnom)
Gcnom_g=20*log10(abs(vunpck(Gcnom_p))); Gcnom_zero=szeros(Gcnom)
Gcnom_g=vpck(Gcnom_g,omega1); %
figure('Position',pos2)
vplot('ri', Gcnom_pole,'yx')

H. Bevrani University of Kurdistan 9

1.78 ´10 6 ( s + 5.86 ´10 2 ± j 4.00 ´103 )


G fnom ( s) = 4th-order LTI system
(s + 942) 2 (s + 2.26 ´10 2 ± j5.65 ´103 )
Poles: - 942, - 2.26 ´10 2 ± j5.65 ´103

H. Bevrani University of Kurdistan 10


µ Control strategy for first loop
dist1
z1 w1
D add _ c
dist 2 W perf _ c 2 r

Wadd _ cl Wadd _ cr W perf _ c1r

r =0 u1 + + y1 e1
K c (s) Gcnom W perf _ c1l
+ + +
-
e2
W perf _ cc2r
1r

Feedback Structure

H. Bevrani University of Kurdistan 11

Overall Framework
é D add _ c 0 0 ù
ê D perf _ c1 ú
ê 0 0
ú
êë 0 0 D perf _ c 2 ûú

z1 Wadd _ cl Wadd _ cr w1
e1 W perf _ c1l W perf _ c1r dist1

e2 W perf _ c 2l W perf _ c 2 r dist 2

+ + +
Gcnom
+ + +

u1 y1
K c (s)
Generalized Plant of coarse actuator
H. Bevrani University of Kurdistan 12
Perturbed Model
D add _ c
Gco w1
Gcper = 2 z1
s + ( 2z cwc + K v ) s + wc
2
Wadd _ cl Wadd _ cr

Uncertain 1 w c = w cnom ´ (1 ± 0.1) Gcnom


+
+
Uncertain 2 Gco = Gco _ nom ´ (1 ± 0.2) Gcper
Uncertain 3 (Fine motion)
Gco = w co _ nom ' = 0.697
z c = z cnom ' = 0.073
w c = w cnom ' = 35.331
Gcper = Gcnom + Wadd _ c D add _ c

| Wadd _ c |£ | Gcper - Gcnom |

H. Bevrani University of Kurdistan 13

MATLAB Program

omega2=logspace(-1,4,50);
% Gcper
Gco = [Gco_nom*0.8 Gco_nom*1.2 0.697];
zeta_c = 0.073;
omega_c = [omega_cnom*0.9 omega_cnom*1.1 35.331];

% uncertain 1 w c = w cnom ´ (1 - 0.1)


Gper11 = nd2sys([Gco_nom],[1 2*zeta_cnom*omega_c(1)+Kv omega_c(1)^2]);
Delta11 = msub(Gper11,Gcnom);
Delta11_p=frsp(Delta11,omega2);
Delta11_g=20*log10(abs(vunpck(Delta11_p)));
Delta11=vpck(Delta11_g,omega2);

% uncertain 1 w c = w cnom ´ (1 + 0.1)


Gper12 = nd2sys([Gco_nom],[1 2*zeta_cnom*omega_c(2)+Kv omega_c(2)^2]);
Delta12 = msub(Gper12,Gcnom);
Delta12_p=frsp(Delta12,omega2);
Delta12_g=20*log10(abs(vunpck(Delta12_p)));
Delta12=vpck(Delta12_g,omega2);

H. Bevrani University of Kurdistan 14


MATLAB Program
% uncertain 2 Gco = Gco _ nom ´ (1 - 0.2)
Gper21 = nd2sys([Gco(1)],[1 2*zeta_cnom*omega_cnom+Kv omega_cnom^2]);
Delta21 = msub(Gper21,Gcnom);
Delta21_p=frsp(Delta21,omega2);
Delta21_g=20*log10(abs(vunpck(Delta21_p)));
Delta21=vpck(Delta21_g,omega2);
% uncertain 2 Gco = Gco _ nom ´ (1 + 0.2)
Gper22 = nd2sys([Gco(2)],[1 2*zeta_cnom*omega_cnom+Kv omega_cnom^2]);
Delta22 = msub(Gper22,Gcnom);
Delta22_p=frsp(Delta22,omega2);
Delta22_g=20*log10(abs(vunpck(Delta22_p)));
Delta22=vpck(Delta22_g,omega2);
% uncertain 3
Gper3 = nd2sys([Gco(3)],[1 2*zeta_c*omega_c(3)+Kv omega_c(3)^2]);
Delta3 = msub(Gper3,Gcnom);
Delta3_p=frsp(Delta3,omega2);
Delta3_g=20*log10(abs(vunpck(Delta3_p)));
Delta3=vpck(Delta3_g,omega2);
% Plot
vplot('liv,d',Delta11,Delta12,Delta21,Delta22,Delta3);

H. Bevrani University of Kurdistan 15

Weighting Function
-6 s +8 s 2 + 600 s + 90000
Wadd _ cl = 2.634 ´ 10 ´ ´ 2 ´ 10 -3
Wadd _ c ( s ) s + 3.9 s + 8.211s + 26.339
Wadd _ cr = 103
Wadd _ c = Wadd _ cl ´ Wadd _ cr
s +8 s 2 + 600 s + 90000
Wadd _ c = 2.634 ´ 10 -6 ´ ´ 2
s + 3.9 s + 8.211s + 26.339

H. Bevrani University of Kurdistan 16


Weighting Function
MATLAB Program

Wadd_cl_1 = nd2sys([1 6e2 9e4],…


[1 8.211 26.339],1e-3);
Wadd_cl_2 = nd2sys([1 8], [1 3.9],2.634e-6);
Wadd_cl = mmult(Wadd_cl_1,Wadd_cl_2);
% right
Wadd_cr = 1e3;
% Wadd
Wadd_c = mmult(Wadd_cl,Wadd_cr);
Waddc_p=frsp(Wadd_c,omega1);
Waddc_g=20*log10(abs(vunpck(Waddc_p)));
Waddc_g=vpck(Waddc_g,omega1);

figure('Position',pos1)
vplot('liv,d',Waddc_g,Delta11,Delta12,…
Delta21,Delta22,Delta3);
H. Bevrani University of Kurdistan 17

Weighting Function
W perf _ c1
1211 ´ 2
W perf _ c1l = ´ 10 -3 W perf _ c1 = W perf _ c1l ´ W perf _ c1r
s + 0 .2 s + 0 .1
2 2

1211´ 2
W perf _ c1r = 103 W perf _ c1 =
s + 0.2 s + 0.12
2

MATLAB Program
Wperf_c1l = nd2sys([1211*2*1e-3],[1 0.2 0.1^2]);
Wperf_c1r = 1e3;

Wperf_c1 = mmult(Wperf_c1l,Wperf_c1r);
Wperf_c1_p=frsp(Wperf_c1,omega1);
Wperf_c1_g=20*log10(abs(vunpck(Wperf_c1_p)));
Wperf_c1_g=vpck(Wperf_c1_g,omega1);

figure('Position',pos1)
vplot('liv,d',Wperf_c1_g)

H. Bevrani University of Kurdistan 18


Weighting Function
W perf _ c 2
22
W perf _ c 2l = ´ 10 -3 W perf _ c 2 = W perf _ c 2 l ´ W perf _ c 2 r
s + 0.01
1 22
W perf _ c 2 r = 103 ´ W perf _ c 2 =
Gco _ nom s + 0.01
MATLAB Program
Wperf_c2l = nd2sys([Gco_nom*22e-3],[1 0.01]);
Wperf_c2r = 1e3/(Gco_nom);

Wperf_c2 = mmult(Wperf_c2l,Wperf_c2r);
Wperf_c2_p=frsp(Wperf_c2,omega1);
Wperf_c2_g=20*log10(abs(vunpck(Wperf_c2_p)));
Wperf_c2_g=vpck(Wperf_c2_g,omega1);

figure('Position',pos2)
vplot('liv,d',Wperf_c2_g)

H. Bevrani University of Kurdistan 19

Generalized Plant

MATLAB Program
systemnames = ' Gcnom Wadd_cl Wadd_cr … é D add _ c 0 0 ù
ê D perf _ c1 ú
Wperf_c1l Wperf_c1r Wperf_c2l Wperf_c2r '; ê 0 0
ú
ëê 0 0 D perf _ c 2 ûú
inputvar = '[ w1 ; dist1; dist2; control]';
outputvar = '[ Wadd_cl; Wperf_c1l; Wperf_c2l;…
-Gcnom - Wadd_cr - Wperf_c1r ]';
z1 Wadd _ cl Wadd _ cr w1
input_to_Gcnom = '[ Wperf_c2r + control ]';
input_to_Wadd_cl = '[ control ]'; e1 W perf _ c1l W perf _ c1r dist1
input_to_Wadd_cr = '[ w1 ]'; e2 W perf _ c 2l W perf _ c 2 r dist 2
input_to_Wperf_c1l = '[ Gcnom+Wadd_cr…
+Wperf_c1r ]';
input_to_Wperf_c1r = '[ dist1 ]'; + + +
Gcnom
input_to_Wperf_c2l = '[ Gcnom+Wadd_cr… + + +
+Wperf_c1r ]';
input_to_Wperf_c2r = '[ dist2 ]'; u1 y1
K c (s)
sysoutname = 'General_P';
cleanupsysic = 'yes';
sysic

H. Bevrani University of Kurdistan 20


D-K Iteration

Iteration Summary
-------------------------------------------------
Iteration # 1 2 3
Controller Order 8 24 28
Total D-Scale Order 0 16 20
Gamma Achieved 1.563 1.166 0.993
Peak mu-Value 1.334 1.110 0.982

H. Bevrani University of Kurdistan 21

ControllerK c (s )
8.27 ´10 7 ( s + 0.01)(s + 1.13 ± j 7.23 ´10 -2 )(s + 1.81)(s + 3.12)
K c ( s) =
( s + 0.01)(s + 0.10 ± j1.13 ´10 -4 )(s + 0.217)(s + 1.60)

( s + 3.88 ± j3.17)(s + 6.91 ± j 2.61)(s + 3.19 ´10)(s + 6.68 ´10)


´
( s + 1.62 ± j1.17)(s + 1.15 ± j3.33)(s + 6.13 ´10)

(s + 4.97 ´103 )(s + 1.63 ´10 4 )


´
( s + 4.63 ´10 2 ± j3.07 ´10 2 )(s + 4.99 ´103 )(s + 1.62 ´10 4 )

H. Bevrani University of Kurdistan 22


Continue
MATLAB Program himat_dk1.m

NOMINAL_DK = General_P;

% Number of measurements
NMEAS_DK = 1;

% Number of control inputs


NCONT_DK = 1;

% Block structure for mu calculation


BLK_DK = [1 1;1 1;1 1];

% Frequency response range


OMEGA_DK = logspace(-1,4,60);

AUTOINFO_DK = [1 3 1]

H. Bevrani University of Kurdistan 23

Continue
MATLAB Program
[DK_DEF_NAME='himat_dk1';
dkit

k_dk3_p = frsp(k_dk3,omega1);
k_dk3_g = 20*log10(abs(vunpck(k_dk3_p))); Kc_pole=spoles(Kc)
k_dk3_g = vpck(k_dk3_g,omega1); Kc_zero=szeros(Kc)
%
[sysb,sig]=sysbal(k_dk3) Kc_p=frsp(Kc,omega1);
Kc=strunc(sysb,14) Kc_g=20*log10(abs(vunpck(Kc_p)));
Kc_g=vpck(Kc_g,omega1);
[Kc_a,Kc_b,Kc_c,Kc_d]=unpck(Kc);
[Kc_num,Kc_den]=ss2tf(Kc_a,Kc_b,Kc_c,Kc_d); figure('Position',pos1)
Kc_tf=tf(Kc_num,Kc_den); subplot(2,1,1)
vplot('liv,d',Kc_g)
zpk(Kc_tf) subplot(2,1,2)
vplot('liv,p',Kc_p)

H. Bevrani University of Kurdistan 24


Closed-Loop System
MATLAB Program
DGD_c = mmult(dl_dk3,General_P,…
minv(dr_dk3));
systemnames = ' Kc DGD_c ';
inputvar = '[ w1 ; dist1; dist2 ]';
outputvar = '[ DGD_c(1); DGD_c(2); …
DGD_c(3) ]';
input_to_Kc = '[ -DGD_c(4) ]';
input_to_DGD_c = '[ w1; dist1; dist2; Kc ]';
sysoutname = 'Kc_cloop';
cleanupsysic = 'yes';
Sysic

Kc_close_p=spoles(Kc_cloop)
Kc_close_z=szeros(Kc_cloop)
figure('Position',pos1)
vplot('ri',Kc_close_p,'yx',Kc_close_z,'ro')

H. Bevrani University of Kurdistan 25

Continue

s max [F( jw )] £ 1

MATLAB Program

Kc_cloop_g=frsp(Kc_cloop,omega1);
Kc_cloop_svd_g=vsvd(Kc_cloop_g);

figure('Position',pos2)
vplot('liv,d',Kc_cloop_svd_g)

H. Bevrani University of Kurdistan 26


Continue
MATLAB Program
nom_perf=sel(Kc_cloop_g,2,2);
nom_perf_g=20*log10(abs…
(vunpck(nom_perf)));
nom_perf_g=vpck(nom_perf_g,omega1);

nom_perf2=sel(Kc_cloop_g,3,3);
nom_perf2_g=20*log10(abs…
(vunpck(nom_perf2)));
nom_perf2_g=vpck(nom_perf2_g,omega1);

rob_stab=sel(Kc_cloop_g,1,1);
rob_stab_g=20*log10(abs(vunpck(rob_stab)));
rob_stab_g=vpck(rob_stab_g,omega1);

figure('Position',pos3)
vplot('liv,d',rob_stab_g,nom_perf_g,…
nom_perf2_g)
H. Bevrani University of Kurdistan 27

More Continue
MATLAB Program

Lc=mmult(Gcnom,Kc); GM 14.9 [dB]


Lc_p=frsp(Lc,omega1); PM 46.5 [deg]
Lc_g=20*log10(abs(vunpck(Lc_p)));
Lc_g=vpck(Lc_g,omega1);

[Lc_a,Lc_b,Lc_c,Lc_d]=unpck(Lc);
Lc_ss=ss(Lc_a,Lc_b,Lc_c,Lc_d);
[Lc_Gm,Lc_Pm,Lc_Wcg,Lc_Wcp] =
margin(Lc_ss);

figure('Position',pos1)
subplot(2,1,1)
vplot('liv,d',Lc_g)
subplot(2,1,2)
vplot('liv,p',Lc_p)

H. Bevrani University of Kurdistan 28


Frequency Response

MATLAB Program
figure('Position',pos2)
nyquist(Lc_ss,'y')

H. Bevrani University of Kurdistan 29

µSynthesis (2nd Loop)

z2 dist 3 dist 4
w2
D del _ f

Wdel _ fl Wdel _ fr W perf _ f 1r W perf _ f 2 r

r =0 + + + y2 e3
u2 +
K f (s ) G fnom W perf _ f 1l
+ + + + +
-
e4
W perf _ f 2l
K c (s) Gcnom

Feedback Structure

H. Bevrani University of Kurdistan 30


Generalized Plant of Coarse Actuator
é D del _ f 0 0 ù
ê D perf _ f 1 0 ú
ê 0
ú
êë 0 0 D perf _ f 2 ûú

z1 Wdel _ fl Wdel _ fr w1
e1 W perf _ f 1l W perf _ f 1r dist1

e2 W perf _ f 2l W perf _ f 2 r dist 2

+ + +
G fnom
+ + +

K c (s) Gcnom

u2 y2 -
K f (s )
H. Bevrani University of Kurdistan 31

Weighting Functions
Wdel _ f ( s )
( s + 800)( s + 1200) Wdel _ f = Wdel _ fl ´ Wdel _ fr
Wdel _ fl = 50 ´ ´ 10 - 2
( s + 8000)( s + 12000)
( s + 800)( s + 1200)
Wdel _ fr = 10 2 Wdel _ f = 50 ´
( s + 8000)( s + 12000)

H. Bevrani University of Kurdistan 32


Weighting Functions

MATLAB Program

Wdel_fl = zp2sys([-800; -1200],[-8000; -12000],50e-2);


Wdel_fr = 1e2;
Wdel_f = mmult(Wdel_fl,Wdel_fr);

Wdel_f_p=frsp(Wdel_f,omega1);
Wdel_f_g=20*log10(abs(vunpck(Wdel_f_p)));
Wdel_f_g=vpck(Wdel_f_g,omega1);

figure('Position',pos1)
vplot('liv,d',Wdel_f_g);

H. Bevrani University of Kurdistan 33

Weighting Functions
W perf _ f 1
1211´ 2
W perf _ f 1l = ´ 10 - 2 W perf _ f 1 = W perf _ f 1l ´ W perf _ f 1r
s + 0 .2 s + 0 .1
2 2

1211´ 2
W perf _ f 1r = 10 2 W perf _ f 1 =
s + 0.2 s + 0.12
2

MATLAB Program
Wperf_f1l = nd2sys([1211*2],[1 0.2 0.1^2],1e-2);
Wperf_f1r = 1e2
Wperf_f1 = mmult(Wperf_f1l,Wperf_f1r);
Wperf_f1_p=frsp(Wperf_f1,omega1);
Wperf_f1_g=20*log10(abs(vunpck(Wperf_f1_p)));
Wperf_f1_g=vpck(Wperf_f1_g,omega1);

figure('Position',pos2)
vplot('liv,d',Wperf_f1_g)
H. Bevrani University of Kurdistan 34
Weighting Functions

W perf _ f 2
360 ´ 400
W perf _ f 2l = ´ 10 - 2 W perf _ f 2 = W perf _ f 2 l ´ W perf _ f 2 r
( s + 120)( s + 400)
360 ´ 400
W perf _ f 2 r = 10 2 W perf _ f 2 =
( s + 120)( s + 400)

MATLAB Program
Wperf_f2l = zp2sys([],[-120; -400],360*400e-2);
Wperf_f2r = 1e2;
Wperf_f2 = mmult(Wperf_f2l,Wperf_f2r);
Wperf_f2_p=frsp(Wperf_f2,omega1);
Wperf_f2_g=20*log10(abs(vunpck(Wperf_f2_p)));
Wperf_f2_g=vpck(Wperf_f2_g,omega1);

figure('Position',pos2)
vplot('liv,d',Wperf_f1_g)
H. Bevrani University of Kurdistan 35

MATLAB Program
systemnames = ' Gcnom Kc Gfnom Wdel_fl …
Wdel_fr Wperf_f1l Wperf_f1r … é D del _ f 0 0 ù
ê ú
Wperf_f2l Wperf_f2r '; ê 0
D perf _ f 1 0
ú
êë 0 0 D perf _ f 2 úû
inputvar = '[ w2 ; dist3; dist4; control]';
outputvar = '[ Wdel_fl; Wperf_f1l; Wperf_f2l; …
-Gfnom - Wperf_f1r - Wperf_f2r - Gcnom ]'; z1 Wdel _ fl Wdel _ fr w1
input_to_Gcnom = '[ Kc ]'; e1 W perf _ f 1l W perf _ f 1r dist1
input_to_Kc = '[ Gfnom + Wperf_f1r + Wperf_f2r ]'; e2 W perf _ f 2 l W perf _ f 2 r dist 2
input_to_Gfnom = '[ Wdel_fr + control ]';
input_to_Wdel_fl = '[ control ]';
+ + +
input_to_Wdel_fr = '[ w2 ]'; G fnom
+ + +
input_to_Wperf_f1l = '[ Gfnom + Wperf_f1r + Wperf_f2r + Gcnom ]';
input_to_Wperf_f1r = '[ dist3 ]'; K c (s) Gcnom
input_to_Wperf_c2l = '[ Gfnom + Wperf_f1r + Wperf_f2r + Gcnom ]'; u2 y2 -
K f (s )
input_to_Wperf_c2r = '[ dist4 ]';
sysoutname = 'General_P2';
cleanupsysic = 'yes';
sysic
H. Bevrani University of Kurdistan 36
D-K Iteration

Iteration Summary
-------------------------------------------------
Iteration # 1 2 3
Controller Order 26 36 40
Total D-Scale Order 0 10 14
Gamma Achieved 1.909 1.094 0.910
Peak mu-Value 1.826 1.068 0.909

H. Bevrani University of Kurdistan 37

Controller K f (s )
1.03 ´10 4 ( s + 3.64 ´10 -1 ± j1.21)(s + 3.53 ´10 -1 ± j1.19)(s + 1.43)
K f ( s) =
( s + 3.65 ´10 -1 ± j1.24)(s + 3.07 ´10 -1 ± j1.17)(s + 1.16)(s + 1.34)
( s + 9.32 ´10 -1 ± j1.96)(s + 1.19 ± j1.97)(s + 2.27)(s + 2.59)(s + 3.35)
´
( s + 1.00 ´10 -1 ± j1.59 ´10 -5 )(s + 2.63)(s + 2.94 ´10 -1 ± j 2.11´10)
( s + 3.50 ´10)(s + 6.30 ´10)(s + 2.73 ´10 ± j5.06 ´10)(s + 1.03 ´10 2 )
´
( s + 1.49 ± j 2.22)(s + 1.14 ´10)(s + 2.22 ´10)(s + 4.36 ´10)(s + 1.26 ´10 2 )
(s + 4.61´10 2 ± j3.06 ´10 2 )(s + 9.45 ´10 2 ± j 2.75 ´10)
´
( s + 2.30 ´10 2 ± j8.75 ´10)(s + 3.78 ´10 2 )(s + 2.07 ´103 ± j9.69 ´10 2 )
( s + 2.26 ´10 2 ± j5.65 ´103 )
´
( s + 6.26 ´10 2 ± j 4.02 ´103 )
( s + 8.00 ´103 )(s + 1.20 ´10 4 )
´
(s + 1.92 ´10 4 ± j1.61´10 4 )

H. Bevrani University of Kurdistan 38


Continue

MATLAB Program himat_dk2.m

NOMINAL_DK = General_P2;

% Number of measurements
NMEAS_DK = 1;

% Number of control inputs


NCONT_DK = 1;

% Block structure for mu calculation


BLK_DK = [1 1;1 1;1 1];

% Frequency response range


OMEGA_DK = logspace(0,4,60);

AUTOINFO_DK = [1 3 1]

H. Bevrani University of Kurdistan 39

Continue
MATLAB Program
DK_DEF_NAME='himat_dk2';
dkit

k_dk3_p = frsp(k_dk3,omega1);
k_dk3_g = 20*log10(abs(vunpck(k_dk3_p)));
k_dk3_g = vpck(k_dk3_g,omega1);
% 低次元化
Kf_p=frsp(Kf,omega1);
[sysb,sig]=sysbal(k_dk3)
Kf_g=20*log10(abs(vunpck(Kf_p)));
Kf=strunc(sysb,36) Kf_g=vpck(Kf_g,omega1);
[Kf_a,Kf_b,Kf_c,Kf_d]=unpck(Kf);
[Kf_num,Kf_den]=ss2tf(Kf_a,Kf_b,Kf_c,Kf_d);
figure('Position',pos1)
Kf_tf=tf(Kf_num,Kf_den);zpk(Kf_tf)
subplot(2,1,1)
vplot('liv,d',Kf_g)
Kf_pole=spoles(Kf)
subplot(2,1,2)
Kf_zero=szeros(Kf)
vplot('liv,p',Kf_p)

H. Bevrani University of Kurdistan 40


Closed-Loop System
MATLAB Program
DGD_f = mmult(dl_dk3,General_P2,…
minv(dr_dk3));
systemnames = ' Kf DGD_f ';
inputvar = '[ w2 ; dist3; dist4 ]';
outputvar = '[ DGD_f(1); DGD_f(2); …
DGD_f(3) ]';
input_to_Kf = '[ -DGD_f(4) ]';
input_to_DGD_f = '[ w2; dist3; dist4; Kf ]';
sysoutname = 'Kf_cloop';
cleanupsysic = 'yes';
Sysic

Kf_close_p=spoles(Kf_cloop)
Kf_close_z=szeros(Kf_cloop)
figure('Position',pos1)
vplot('ri',Kf_close_p,'yx',Kf_close_z,'ro')
H. Bevrani University of Kurdistan 41

Continue

s max [F( jw )] £ 1

MATLAB Program
Kf_cloop_g=frsp(Kf_cloop,omega1);
Kf_cloop_svd_g=vsvd(Kf_cloop_g);

figure('Position',pos2)
vplot('liv,d',Kf_cloop_svd_g)

H. Bevrani University of Kurdistan 42


Continue
MATLAB Program
nom_perf=sel(Kf_cloop_g,2,2);
nom_perf_g=20*log10(abs…
(vunpck(nom_perf)));
nom_perf_g=vpck(nom_perf_g,omega1);

nom_perf2=sel(Kf_cloop_g,3,3);
nom_perf2_g=20*log10(abs…
(vunpck(nom_perf2)));
nom_perf2_g=vpck(nom_perf2_g,omega1);

rob_stab=sel(Kf_cloop_g,1,1);
rob_stab_g=20*log10(abs(vunpck(rob_stab)));
rob_stab_g=vpck(rob_stab_g,omega1);

figure('Position',pos3)
vplot('liv,d',rob_stab_g,nom_perf_g,…
nom_perf2_g)
H. Bevrani University of Kurdistan 43

Continue
MATLAB Program
Lf=mmult(madd(Gfnom,mmult(Gfnom,Kc GM 23.7 [dB]
,Gcnom)),Kf);
PM 67.6 [deg]
Lf_p=frsp(Lf,omega1);
Lf_g=20*log10(abs(vunpck(Lf_p)));
Lf_g=vpck(Lf_g,omega1);

[Lc_a,Lc_b,Lc_c,Lc_d]=unpck(Lc);
Lc_ss=ss(Lc_a,Lc_b,Lc_c,Lc_d);
[Lc_Gm,Lc_Pm,Lc_Wcg,Lc_Wcp] =
margin(Lc_ss);

figure('Position',pos1)
subplot(2,1,1)
vplot('liv,d',Lc_g)
subplot(2,1,2)
vplot('liv,p',Lc_p)
H. Bevrani University of Kurdistan 44
Frequency Response

MATLAB Program
figure('Position',pos2)
nyquist(Lf_ss,'y')

H. Bevrani University of Kurdistan 45

Simulation Results

H. Bevrani University of Kurdistan 46


Simulation Results

H. Bevrani University of Kurdistan 47

Simulation Results

H. Bevrani University of Kurdistan 48


Project: Report 8

Consider your dynamic system :


Using the determined uncertainty and performance characteristics,
design a ! controller.

Deadline: The day before next Meeting


Please only use this email address: [email protected]

H. Bevrani University of Kurdistan 49

Thank you!

[email protected]

H. Bevrani University of Kurdistan 50

You might also like