Tuning Controllers Against Mul1ple Design Requirements using Constrained Nonsmooth Op1miza1on SYSTUNE Pierre Apkarian in coopera-on with D. Noll & P. Gahinet
Outline
1. Introduc1on to structured problems 2. Tuning against mul-ple design requirements: systune 3. Constrained nonsmooth solver 4. Example
2
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Model-Based Design
This talk
3
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Challenges Inaccurate model Performance goals Stability
Disturbances
4
Nonlinearities
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Classical robust control Ricca-, LMI, full order
P(s)
P(s)
K(s) K(s)
K(s)
• • • • • 5
Centralized, monolithic, black or grey box controller No physical insight or li8le Unduly complex Post-processing needed Single objec-ve Pierre Apkarian: h8p://pierre.apkarian.free.fr
Design of Structured Controller Is Hard !
6
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Control Architecture
Tracking Tracking + disturbance rejection
Fast disturbance rejection
7
Choice depends on plant dynamics and requirements Pave the way to good designs
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Controller Structure
• Four blocks (6+15 = 21 tunable parameters) • Tuning is complicate because of loop interac-ons
8
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Structure Stems Also From
• • • • •
9
Mul-ple requirements Mul-ple models Theore-cal ques-ons Joint plant and controller design Mandatory in some applica-ons
K(s)
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Outline
1. Introduc-on to structured problems 2. Tuning against mul1ple design requirements: systune 3. Constrained nonsmooth solver 4. Example
10
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Synthesis Tools • delight. mimo E. Polak, D. Q. Mayne et al., 1982 • hinfsyn : full-order black-box controllers MATLAB Robust Control Toolbox (i was a boy) • hinfstruct, systune, looptune: structured modular controllers MATLAB Robust Control Toolbox 2012b & higher • hifoo: structured controllers See M. Overton webpage • Focus on
11
systune
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals
P(s)
K(s)
12
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
K(s)
13
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
C (s, p) 1
. . . C (s, p)
C (s, p) 2
14
q
Modular structure
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals 15
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
hinfstruct 16
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
looptune 17
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
Use D-scales to refine computa-ons 18
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
Constrain controller dynamics to your taste 19
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
Which model ? Indicate which one or which model set, i.e., [2 5 7], default all 20
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
Which frequency range ? 21
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
Which IOs? Tell systune which IO pair is involved 22
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
Are some loops open ? For mul-loop architecture 23
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
Define your problem as an LQG pb with given variances, weights, etc 24
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
Define desired step response characteris-cs: -me constant, overshoot, ref. model, … 25
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: a Wealth of Tuning Goals P(s)
Tuning Goals
x Define the weights pointwise using frequency response data 26
x x
Pierre Apkarian: h8p://pierre.apkarian.free.fr
x
ω x
Illustra1on TuningGoal.WeightedGain
• R = TuningGoal.WeightedGain(‘w',’z',WL,WR) • R.Name = 'Disturbance rejec-on’
IOs & lep & right weigh-ngs As well as name
27
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Illustra1on TuningGoal.WeightedGain
• R = TuningGoal.WeightedGain(‘w',’z',WL,WR) • R.Name = 'Disturbance rejec-on’ • R.Focus = [0 10]
Frequency range
28
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Illustra1on TuningGoal.WeightedGain
• R = TuningGoal.WeightedGain(‘w',’z',WL,WR) • R.Name = 'Disturbance rejec-on’ • R.Focus = [0 10] • R.Openings = 'OuterLoop’
29
Specify open loops
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Illustra1on TuningGoal.WeightedGain
• R = TuningGoal.WeightedGain(‘w',’z',WL,WR) • R.Name = 'Disturbance rejec-on’ • R.Focus = [0 10] • R.Openings = 'OuterLoop’ • R.Models = 2
Give model to which requirement applies
30
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Illustra1on TuningGoal.WeightedGain
• R = TuningGoal.WeightedGain(‘w',’z',WL,WR) • R.Name = 'Disturbance rejec-on’ • R.Focus = [0 10] • R.Openings = 'OuterLoop’ • R.Models = 2 • R.Stabilize = false
Enable or disable stability
31
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Tune from Simulink using Systune
Requirements IOs Blocks
32
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Outline
1. Introduc-on to structured problems 2. Tuning against mul-ple design requirements: systune 3. Constrained nonsmooth solver 4. Example
33
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune: New Cast with SoT & Hard Constraints
• Hard constraints prevail and have higher priority • Mul-ple models & mul-ple specs. • non-convex & non-smooth program
34
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Nonsmooth Programming with Driving Func1on
• • • • 35
Apkarian, Gahinet & Buhr - Mul--Model, Mul--Objec-ve Tuning of Fixed-Structure Controllers, ECC 2013 Apkarian - Tuning Controllers Against Mul-ple Design Requirements ACC 2013 Apkarian & Noll - Nonsmooth Opt. for Mul-Band …, Automa-ca 2007 Apkarian & Noll - Nonsmooth Opt for Mul-Disk H∞ … EJC 2006 Pierre Apkarian: h8p://pierre.apkarian.free.fr
Nonsmooth Programming with Driving Func1on f: sop g: hard
• • • • 36
P involves max func-ons μ Compu-ng jet subdifferen-al informa-on is fast Locally equivalent to solving KKT op-mality condi-ons Implemented in systune (bisec-ng 3 or 4 -mes is enough)
bisec-on scheme
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Nonsmooth Programming in Systune
• Exterior type algorithm • No barrier, penalty ill condi-onning x
x
x
Larger steps !
x
x
Systune has special mul--spec & mul--model capabili-es Screen worst spec and/or model to reduce overhead Can exploit mul--core architectures Simulink friendly
37
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Systune Screening Clarke
Clarke
Model 4, Spec 6
. . .
Model 2, Spec 3
1
38
Equaliza-on Clarke
Model 8, Spec 2
. . .
Model 4, Spec 1
2
Model 4, Spec 2
. . .
Model 6, Spec 4
N
itera-ons
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Program P μ
Mul1ple ac1ve frequencies
Nearly active frequency
• Has to work with mul-ple branches • Nonsmooth code accomodates waterbed effect • Convex hull of Clarke gradient of all ac-ve branches 39
Pierre Apkarian: h8p://pierre.apkarian.free.fr
What does that mean ? d’
d
Descent cone
-g 2
-g
1
x
Narrow cones for some branches, i.e.,
Half space for Cone shrinks for mul-ple models and specs.
40
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Simple WorkFlow
41
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Flexibility vs. Tractability
Tractability
1
DGKF LMIs µ analysis
If at all reachable ? LOOPTUNE
SYSTUNE HINFSTRUCT
Generic NLP 0
42
0
Flexibility
1
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Really Working Fine ? Not convex !
Yes but, • Operates in low-dimensional space of tunable parameters • Use well-behaved objec-ves • Well-posed synthesis problems have few local minima • Run in seconds on medium size problems
43
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Outline
1. Introduc-on to structured problems 2. Tuning against mul-ple design requirements: systune 3. Constrained nonsmooth solver 4. Example: reliable control
44
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Example: Reliable Control Apkarian & Noll Encyclopedia of Systems & Control, 2014
• Decoupling & good responses in μ, α et β in nominal opera-on • Maintain performance in the presence of wind gust • Limit stability and perf. deteriora-on against actuator outage 45
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Actuator Outage or Breakdowns
1: func-onning 0: breakdown
46
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Formula1on of Control Requirements
• Tracking • Control effort
Gust allevia-on
Tuning Goals
47
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Responses with Nominal Controller Flight−path bank angle rate (deg/s)
Flight−path bank angle rate (deg/s) 1
1
0
0 −1
−1 0
1
2
3
4
5
6
7
8
9
0
10
1
2
3
4
5
6
7
8
9
10
7
8
9
10
7
8
9
10
Angle of attack (deg)
Angle of attack (deg) 1
1
0
0 −1
−1 0
1
2
3
4
5
6
7
8
9
0
10
1
2
3
4
5
6
Sideslip angle (deg)
Sideslip angle (deg) 1
1
0
0 −1
−1 0
1
2
3
4
5
6
7
8
9
0
1
7
8
9
10
7
8
9
10
7
8
9
10
10
2
3
4
5
6
Flight−path bank angle rate (deg/s) 1 0 −1 0
1
2
3
4
5
6
Angle of attack (deg) 1 0 −1 0
1
2
3
4
5
6
Sideslip angle (deg) 1 0 −1 0
48
1
2
3
4
5
6
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Responses with Reliable Controller Flight−path bank angle rate (deg/s) 1
Flight−path bank angle rate (deg/s) 1
0
0
−1 0
−1 0
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
10
7
8
9
10
7
8
9
10
Angle of attack (deg)
10 1
Angle of attack (deg) 1
0
0
−1 0
−1
1
2
3
4
5
6
Sideslip angle (deg)
0
1
2
3
4
5
6
7
8
9
10 1
Sideslip angle (deg) 1
0
0
−1 0
1
2
3
4
5
6
−1 0
1
2
3
4
5
6
7
8
9
Flight−path bank angle rate (deg/s)
10
1 0 −1 0
1
2
3
4
5
6
7
8
9
10
7
8
9
10
7
8
9
10
Angle of attack (deg) 1 0 −1 0
1
2
3
4
5
6
Sideslip angle (deg) 1 0 −1 0
49
1
2
3
4
5
6
Pierre Apkarian: h8p://pierre.apkarian.free.fr
Conclusions Tuning goals
Tuning goals
?
?
?
Ø Covers large por-on of linear design goals Ø Has poten-al for extensions to future challenges ? Ø Good benchmarking technique to develop your own 50
Pierre Apkarian: h8p://pierre.apkarian.free.fr