28.01.2015 Views

controller structure & nonsmooth programming - Pierre Apkarian - Free

controller structure & nonsmooth programming - Pierre Apkarian - Free

controller structure & nonsmooth programming - Pierre Apkarian - Free

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!