controller structure & nonsmooth programming - Pierre Apkarian - Free
controller structure & nonsmooth programming - Pierre Apkarian - Free
controller structure & nonsmooth programming - Pierre Apkarian - Free
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>controller</strong> <strong>structure</strong><br />
&<br />
<strong>nonsmooth</strong> <strong>programming</strong><br />
Institut für Systemtheorie und Regelungstechnik, January<br />
2012, Stuttgart<br />
Invitation Carsten Scherer<br />
<strong>Pierre</strong> <strong>Apkarian</strong><br />
ONERA & UPS/Institut de Mathématiques, Toulouse, France
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
outline<br />
1 challenges with control <strong>structure</strong>s, multi-loop architectures<br />
2 <strong>nonsmooth</strong> optimization<br />
3 MATLAB tuning tools<br />
4 conclusion<br />
<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
2 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> <strong>structure</strong><br />
• PID simple white-box <strong>structure</strong><br />
K p<br />
Ki<br />
s<br />
Kds<br />
1+Ts<br />
• 3 tunable <strong>structure</strong>d blocks<br />
• K i , K p , K d and T design variables with assigned roles<br />
• easily retuned, scheduled & implemented<br />
<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
3 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
Riccati, LMI, full-order <strong>controller</strong>s<br />
z<br />
y<br />
P(s)<br />
w<br />
u<br />
K(s)<br />
• full-order <strong>controller</strong> has no <strong>structure</strong> [DGKF 1989]<br />
• centralized monolithic black box<br />
• no physical insight into what the <strong>controller</strong> does<br />
• often high order and unduly complex (freq. weight size inflation)<br />
• often require post-processing (reduction, equil., scaling, etc)<br />
<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
4 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
why enforcing <strong>controller</strong> <strong>structure</strong> <br />
easier to understand role of components<br />
scheduling and implementation are simpler<br />
facilitates re-tuning (component-wise if necessary)<br />
mandatory in some applications (decentralized, etc)<br />
stems from theoretical characterizations (µ, anti wind-up, dyn.<br />
inversion)<br />
good control architectures pave the way to good designs<br />
<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
5 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> <strong>structure</strong><br />
• more complicated aircraft longitudinal law<br />
reference<br />
model<br />
R(s)<br />
z 1<br />
−<br />
feed<br />
forward<br />
F f (s)<br />
z 2<br />
r<br />
−<br />
K p + Ki<br />
s<br />
−<br />
roll−off<br />
filter<br />
F (s)<br />
aircraft<br />
G(s)<br />
N z<br />
q<br />
K q(s)<br />
w<br />
• tunable blocks often designed independently (suboptimal)<br />
<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
6 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> <strong>structure</strong><br />
• helicopter multi-loop MIMO architecture<br />
bank of PIDs<br />
bank of roll−off filters<br />
PID<br />
roll−off<br />
filter<br />
set−points<br />
_<br />
PID<br />
_<br />
roll−off<br />
filter<br />
Helicopter<br />
H<br />
θ<br />
φ<br />
r<br />
PID<br />
roll−off<br />
filter<br />
static gain<br />
• 7 blocks (42 tunable parameters)<br />
• tuning is complicate because of loop interactions<br />
<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
7 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> <strong>structure</strong><br />
• decentralized control has diagonal <strong>structure</strong><br />
• mandatory in some applications<br />
z<br />
w<br />
.<br />
P(s)<br />
.<br />
yq<br />
Kq(s)<br />
uq<br />
yq−1<br />
Kq−1(s)<br />
uq−1<br />
.<br />
y1<br />
K1(s)<br />
u1<br />
• one-loop-at-a-time synthesis is time consuming and tedious<br />
<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
8 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> <strong>structure</strong><br />
• multiple model synthesis has replicated decentralized <strong>controller</strong><br />
z 1<br />
P 1 11(s) 0 P 1 12(s) 0<br />
w 1<br />
z 2 0 P11(s) 2 0 P12(s)<br />
2 w 2<br />
y 1 u 1<br />
P21(s) 1 0 P22(s) 1 0<br />
y 2<br />
0 P 2 21(s) 0 P 2 22(s)<br />
u 2<br />
K(s) 0<br />
0<br />
K(s)<br />
• N copies if N systems<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
9 / 28
˜Dω<br />
˜Dω<br />
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> <strong>structure</strong><br />
• robust complex µ synthesis reformulated as <strong>structure</strong>d <strong>controller</strong><br />
design<br />
Dω<br />
P(s)<br />
Dω<br />
−1<br />
P(s)<br />
−<br />
P c(s)<br />
y<br />
u<br />
y<br />
u<br />
y<br />
u<br />
C(s)<br />
C(s)<br />
C(s)<br />
˜D(s)<br />
˜D(s)<br />
• abstract <strong>controller</strong> has repeated diagonal <strong>structure</strong> (2 copies of D-scale)<br />
• one shot without D-K-iteration and SISO fitting<br />
• can be extended to multiplier-based and IQC syntheses<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
10 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> <strong>structure</strong><br />
• anti wind-up involves two-block <strong>structure</strong>d <strong>controller</strong><br />
J(s)<br />
−<br />
y<br />
K(s)<br />
u<br />
sat<br />
ũ<br />
• design for 2 operating modes<br />
• numerous variants<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
11 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
joint model and <strong>controller</strong> design<br />
• both p (feedback) and Π (model) are tunable<br />
model parameters<br />
Π<br />
z<br />
#<br />
P<br />
w<br />
z<br />
P<br />
w<br />
y<br />
u<br />
y<br />
C(s,p)<br />
u<br />
C(s,p)<br />
0<br />
0<br />
Π<br />
<strong>controller</strong><br />
p & Π tunable<br />
• again is highly <strong>structure</strong>d<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
12 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
challenges with <strong>structure</strong>d synthesis<br />
sequential design of components is time consuming<br />
biconvex schemes (D-K like) fail to converge<br />
global solutions are not systematically accessible (NP-hard<br />
non-convex)<br />
Riccati and LMI approaches do not help<br />
BMI formulations remain costly and unreliable<br />
• estimate local solutions using specialized <strong>nonsmooth</strong><br />
<strong>programming</strong><br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
13 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
viewpoint<br />
this work privileges local paradigm<br />
• local solutions to realistic problems<br />
versus<br />
• global solutions to conservative relaxations<br />
• on the bad side: practical problems are nonconvex and/or <strong>nonsmooth</strong><br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
14 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
dimensionality: an illustrative example<br />
transport aircraft at flutter condition<br />
stabilization with static output feedback u = Ky :<br />
[ ] [ ] [ ]<br />
ẋ A B x<br />
=<br />
, A : 55 × 55, K : 2 × 2<br />
y C 0 u<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
15 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
dimensionality: an illustrative example<br />
transport aircraft at flutter condition<br />
stabilization with static output feedback u = Ky :<br />
[ ] [ ] [ ]<br />
ẋ A B x<br />
=<br />
, A : 55 × 55, K : 2 × 2<br />
y C 0 u<br />
BMI: (A + BKC) T P + P(A + BKC) ≺ 0 et P = P T ≻ 0<br />
⇒ 1544 variables most of them (1540) for Lyapunov matrix P<br />
min α(A + BKC) where α max Re λ i is spectral abscissa<br />
K<br />
⇒ 4 variables : tunable <strong>controller</strong> parameters<br />
tunable space is small if accepting <strong>nonsmooth</strong> formulations<br />
i<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
15 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
dimensionality: an illustrative example<br />
transport aircraft at flutter condition<br />
stabilization with static output feedback u = Ky :<br />
[ ] [ ] [ ]<br />
ẋ A B x<br />
=<br />
, A : 55 × 55, K : 2 × 2<br />
y C 0 u<br />
BMI: (A + BKC) T P + P(A + BKC) ≺ 0 et P = P T ≻ 0<br />
⇒ 1544 variables most of them (1540) for Lyapunov matrix P<br />
min α(A + BKC) where α max Re λ i is spectral abscissa<br />
K<br />
⇒ 4 variables : tunable <strong>controller</strong> parameters<br />
tunable space is small if accepting <strong>nonsmooth</strong> formulations<br />
⇒ recast <strong>controller</strong> design as <strong>nonsmooth</strong> program<br />
i<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
15 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> design as <strong>nonsmooth</strong> (minimax)<br />
optimization<br />
stabilization<br />
min<br />
K<br />
max<br />
i<br />
Re λ i (A + BKC)<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
16 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> design as <strong>nonsmooth</strong> (minimax)<br />
optimization<br />
stabilization<br />
min<br />
K<br />
max<br />
i<br />
Re λ i (A + BKC)<br />
H ∞ synthesis (triply <strong>nonsmooth</strong>)<br />
min<br />
K<br />
max max<br />
ω∈[0,+∞] i<br />
σ i<br />
(<br />
Tw→z (K, jω) ) 16 / 28<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> design as <strong>nonsmooth</strong> (minimax)<br />
optimization<br />
stabilization<br />
min<br />
K<br />
max<br />
i<br />
H ∞ synthesis (triply <strong>nonsmooth</strong>)<br />
min<br />
K<br />
time-domain design<br />
max max<br />
ω∈[0,+∞] i<br />
Re λ i (A + BKC)<br />
σ i<br />
(<br />
Tw→z (K, jω) )<br />
min<br />
K<br />
max max<br />
t∈[0,+∞]<br />
{ (z(K,<br />
t) − zmax (t) ) +<br />
,<br />
(<br />
zmin (t) − z(K, t) ) + } 16 / 28<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> design as <strong>nonsmooth</strong> program<br />
• optimization problems are <strong>nonsmooth</strong> and/or nonconvex<br />
• but gentle special composite <strong>structure</strong> with cast<br />
minimize<br />
x<br />
max λ 1 ◦ T (x, ω)<br />
ω∈Ω<br />
Ω index set freq. or times<br />
where max Ω∈Ω λ 1 is convex but <strong>nonsmooth</strong><br />
T (x, Ω) differentiable but nonconvex wrt. x, ∀ω<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
17 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> design as <strong>nonsmooth</strong> program<br />
• optimization problems are <strong>nonsmooth</strong> and/or nonconvex<br />
• but gentle special composite <strong>structure</strong> with cast<br />
minimize<br />
x<br />
max λ 1 ◦ T (x, ω)<br />
ω∈Ω<br />
Ω index set freq. or times<br />
where max Ω∈Ω λ 1 is convex but <strong>nonsmooth</strong><br />
T (x, Ω) differentiable but nonconvex wrt. x, ∀ω<br />
• Clarke subdifferential<br />
Clarke calculus is closed (chain rules, etc)<br />
Clarke regularity ⇒ specialized and efficient techniques<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
17 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>controller</strong> design as <strong>nonsmooth</strong> program<br />
• optimization problems are <strong>nonsmooth</strong> and/or nonconvex<br />
• but gentle special composite <strong>structure</strong> with cast<br />
minimize<br />
x<br />
max λ 1 ◦ T (x, ω)<br />
ω∈Ω<br />
Ω index set freq. or times<br />
where max Ω∈Ω λ 1 is convex but <strong>nonsmooth</strong><br />
T (x, Ω) differentiable but nonconvex wrt. x, ∀ω<br />
• Clarke subdifferential<br />
Clarke calculus is closed (chain rules, etc)<br />
Clarke regularity ⇒ specialized and efficient techniques<br />
• directly formulated in <strong>controller</strong> tunable space (no dummies !)<br />
• efficient: can handle large models<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
17 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>nonsmooth</strong> notions<br />
• directional derivative df (x; d) = max < z, d ><br />
z∈∂f (x)<br />
• Clarke’s gradient qualifies directions. df (x; d) < 0 for descent<br />
• x ∗ local minimum then 0 ∈ ∂f (x ∗ )<br />
• ∂f (x) is convex hull of active branches in f (x) :=<br />
max f (x, ω)<br />
ω∈(0,∞)<br />
smooth functions<br />
∇f (x, ω2)<br />
<strong>nonsmooth</strong> functions<br />
∇f (x) ∇f (x, ω1)<br />
∂f (x)<br />
0 ∈ ∂f (x)<br />
descent cone<br />
half space<br />
descent cone<br />
∇f (x, ω3)<br />
∇f (x, ω1)<br />
∇f (x, ω2)<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
18 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
building the tangent model (extension set)<br />
σ1[Tw→z (K, jω)]<br />
multiple active frequencies<br />
‖Tw→z (K, ·)‖∞<br />
bracketting freq.<br />
candidate<br />
nearly active<br />
0<br />
log ω (rad.s −1 )<br />
• active frequencies often conflicting<br />
• smooth algorithms fail because of waterbed effect<br />
• capture all active frequencies and secondary pics (anticipate)<br />
• computations based on Hamiltonian method<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
19 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
<strong>nonsmooth</strong> technique pseudo-code<br />
scheme<br />
1 compute an extension set of the Clarke subdifferential of the H ∞ objective<br />
2 estimate local curvature to speed up convergence<br />
3 form tangent program and compute descent direction<br />
4 perform line search<br />
5 loop over 1-4 until convergence<br />
• stopping test and remote (global) convergence<br />
P. <strong>Apkarian</strong>, D. Noll, 2006.<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
20 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
HINFSTRUCT from Matlab RCT 2010b and<br />
higher<br />
• <strong>nonsmooth</strong> codes are slow as a rule (1st-order gradient type)<br />
• HINFSTRUCT is specialized to H ∞ computations<br />
• turns out fast and reliable on most problems<br />
• can tune arbitrary control architectures<br />
• ideally suited to small tunable space for up to large size plants<br />
• implementation is touchy (people, years and routines)<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
21 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
software for <strong>structure</strong>d H ∞ synthesis<br />
z1<br />
z w 1<br />
w2<br />
2<br />
.<br />
P(s) .<br />
y<br />
u<br />
C 1(s,p)<br />
0<br />
. . .<br />
0<br />
C (s,p)<br />
C (s,p)<br />
N<br />
multidisk constraints<br />
T w 1 z(s,p) 1<br />
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
illustration:<br />
% PID <strong>controller</strong> (PRE-DEFINED BLOCK)<br />
C = ltiblock.pid(’C’,’pid’);<br />
% Low-pass filter (CUSTOM BLOCK)<br />
a = realp(’a’,1);<br />
F = tf(a,[1 a]);<br />
% Parametric model of sensitivity S<br />
S = feedback(1,G*C*F);<br />
( wS S<br />
∥ w T T<br />
)∥ ∥∥∥∥∞<br />
< 1<br />
% Mixed-sensitivity tuning of C and a<br />
H0 = [wS * S ; wT * (1-S)]; % H0 initial object<br />
H = hinfstruct(H0); % H tuned object<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
23 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
create tunable objects using MATLAB<br />
interface<br />
% create an observer-based <strong>controller</strong><br />
K = realp(’K’,zeros(nu,nx)); % state feedback<br />
L = realp(’L’,eye(nx,ny));<br />
% observer gain<br />
% observer-based <strong>controller</strong> in SS format<br />
OBC = ss(A-B*K-L*(C-D*K),L,-K,0) ;<br />
% generate synthesis interconnection<br />
T = lft( P , OBC ) ; % tunable object: K & L as tunable<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
24 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
longitudinal passenger jet<br />
• requirements: setpoint tracking, roll-off, gain-phase margins<br />
• 5 tunable blocks<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
25 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
workflow 1<br />
• specify tunable blocks in Simulink model<br />
ST = slTunable(’passenger_jet’,{’Ki’,’Kp’,’Kq’,’Kf’,’RollOff’});<br />
• initialize roll-off filter<br />
wn = realp(’wn’, 3); zeta = realp(’zeta’,0.8);<br />
Fro = tf(wn^2,[1 2*zeta*wn wn^2]);<br />
ST.setBlockParam(’RollOff’,Fro)<br />
• define spec. channels<br />
T1=ST.getIOTransfer(’Nzc’,’e’); % tracking<br />
T2=ST.getIOTransfer(’n’,’delta_m’); % roll-off<br />
T3=ST.getIOTransfer(’w’,’delta_m’); % margins<br />
• add weighting filters for each spec.<br />
H0 = blkdiag( W1*T1, W2*T2, W3*T3)<br />
Magnitude (dB)<br />
80<br />
60<br />
40<br />
20<br />
0<br />
−20<br />
−40<br />
−60<br />
W1 (tracking)<br />
W2 (roll−off)<br />
W3 (margins)<br />
Bode Diagram<br />
no cross terms here!<br />
−80<br />
−100<br />
−120<br />
10 −3 10 −2 10 −1 10 0 10 1 10 2 10 3 10 4 10 5<br />
Frequency (rad/s)<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
26 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
workflow 2<br />
• tune parameters with HINFSTRUCT<br />
H = hinfstruct(H0); % H is tuned version of H0<br />
• push tuned values into <strong>structure</strong> for simulation<br />
ST.setBlockValue(H) ;<br />
Step Response<br />
Step Response<br />
1.4<br />
1.2<br />
From: Nzc To: Nz<br />
Actual response<br />
Gref response<br />
0.01<br />
0.005<br />
From: Nzc To: delta m<br />
Total<br />
Feedforward<br />
Feedback<br />
80<br />
60<br />
Bode Diagram<br />
From: delta m<br />
To: delta m<br />
Open−Loop Response<br />
1/W2<br />
N z<br />
1<br />
0.8<br />
0.6<br />
δ m<br />
0<br />
−0.005<br />
−0.01<br />
−0.015<br />
−0.02<br />
Magnitude (dB)<br />
40<br />
20<br />
0<br />
−20<br />
−40<br />
180<br />
90<br />
0.4<br />
0.2<br />
−0.025<br />
−0.03<br />
−0.035<br />
Phase (deg)<br />
0<br />
−90<br />
−180<br />
0<br />
0 1 2 3 4 5 6<br />
Time (sec)<br />
−0.04<br />
0 1 2 3 4 5 6<br />
Time (sec)<br />
−270<br />
10 −3 10 −2 10 −1 10 0 10 1<br />
Frequency (rad/s)<br />
• single run < 4 sec. on desktop PC<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
<br />
27 / 28
challenges <strong>nonsmooth</strong> opt. MATLAB tools The End<br />
conclusion<br />
• HINFSTRUCT and LOOPTUNE can tune with simple workflow<br />
any multi-loop control architecture made of finely <strong>structure</strong>d<br />
components<br />
any closed-loop object possibly model parameters<br />
multiple models (nominal and faulty)<br />
• LOOPTUNE reduces guesswork (tweaks weights for you)<br />
• fast and efficient solvers endowed with local certificate<br />
• good benchmarking techniques to test your owns<br />
<strong>controller</strong> <strong>structure</strong> & <strong>nonsmooth</strong> <strong>programming</strong> - http://pierre.apkarian.free.fr<br />
28 / 28