Post on 14-Feb-2019
transcript
Guida al toolbox di controllo in Matlab/Simulink
Carlo Alberto Avizzano
I sistemi LTI
• Gia’ visti nelle precedenti lezioni sono di quattro tipologie di rappresentazione:
– ABCD
– ZPK
– TF
– FRD
L’esempio di un motore a corrente continua PM con inerzia di carico
• Equazioni costituenti:Equazione elettrica
Equazione meccanica
Modello ABCD
• Equazioni costituenti:Equazione elettrica
Equazione meccanica
Modello ABCD
• Equazioni di uscita:
Inserendo valori caratteristici (MKS)
• R = 2.0
• L=0.5
• Kem=Ki= 0.015
• Kv=0.2
• J=0.02
• A = [-R/L –Kem/L; Ki/J –Kv/J]
• B = [1/L ; 0]
• C [ 0 1]
• D = [0]
• DCmotor=ss(A,B,C,D);
Realizzazione tramite schema matlab
Anello Elettrico
1
I
V
w
I
ElectricLoop
I w
CurrentLoop
1
V
Anello Meccanico
• Linearizziamo tramite LinMOD
1
I
R
V=iR
Kw
Gain1
1/L
Gain
1
s
Current
2
w
1
V
1
w
Kv
Viscosity
1
s
Omega
1/Jt
Mass
Ki
EmGain
1
I
Derivazione delle equazioni e confronto
• A=
• -4.0000 -0.0300
• -0.7500 -10.0000
• B =
• 2
• 0
• C = [ 0 1 ]
• D = 0
• A=
• -10.0000 0.7500
• -0.0300 -4.0000
• B=
• 0
• 2
• C = [ 1 0 ]
• D = 0
Comportamento di Linmod
• Linmod usa una perturbazione deglo stato e dell’ingresso per trovare il comportamento del sistema. Generando un numero sufficiente di campioni si puo’determinare il vettore (A,B,C,D). Y= [X U](ABCD).
• L’ordine degli stati e non e’ predefinito• Un comando rileva l’associazione attribuita agli stati:
Simulink.BlockDiagram.getInitialState(‘model') ;• Per sistemi non lineari punti di linearizzazione diversi
dall’origine possono essere definiti passandoli come parametro.
• Detti punti saranno i riferimenti intorno ai quali generare le perturbazioni
Caratteristiche dei sistemi
Inversione e trasposizione
Composizione
Prime operazioni di analisi
• Damp ci informa per sistemi stabili sulle frequenze di smorzamento naturali
• Dcgain ci riporta il guadagno del sistema in zero (nel nostro caso la velocita motore x volt).
• Pole/eig ritorna la lista dei poli e degli autovalori
• Dsort/Esort (applicati ai poli) ordina la lista per modulo oppure per la sua parte reale
Individuazione caratteristiche notevoli
• Pzmap individua i poli e gli zeri del sistema rappresentandoli sul piano complesso:
• zpk(mm)
• Zero/pole/gain:
• 1.5
• -------------------
• (s+9.996) (s+4.004)
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
10.650.880.9450.9720.9860.993
0.998
0.999
0.650.880.9450.9720.9860.993
0.998
0.999
246810
Pole-Zero Map
Real Axis
Imagin
ary
Axis
Individuazione delle caratteristiche notevoli
• normnorm(sys,inf) norm(sys,inf,tol) [ninf,fpeak] = norm(sys,inf)
• H2: Guadagno su un rumore gaussiano
• Hinf: guadagno nella condizione peggiore
Manipolazione rappresentazione
• Forma Canonica (CANON): cerca di rendere diagonale la matrice A (autovalori in diagonale)
• Forma Compagna, evidenzia i coefficienti del polinomio caratteristico (utile per spostarli con feedback)
• Le forme compagne si ottengono tramite trasformazione con i le matrici di controllabilita’o osservabilita’. (gram, ctrb)
• Ss2ss(mm,T):– ss2ss(mm,inv(ctrb(mm)))– Ss2ss(mm,obsv(mm))
• L’analisi di dette forme ci aiutano a comprendere quali stati siano controllabili e come
Analisi delle risposte
• Step(mm)
• Impulse(mm)
• Initial(mm,X0)
• Lsim(mm,U,T[,X0])
• Bode…
0 0.5 1 1.5 2 2.5 3-1.5
-1
-0.5
0
0.5
1
Response to Initial Conditions
Time (sec)
Am
plit
ude
Un’unica interfaccia
• LTIVIEW semplifica l’analisi delle risposte per un modello dato.
• Mostra il risultato ottenuto con N modelli tramite l’uso dei colori
• Permette di selezionare il tipo di risposta che ci interessa tra un set molto ampio
Analisi della risposta
• I comandi funzionano anche per sistemi mimo in questo caso producono viste multimple (NxM)
• LTIVIEW e’ un ottimo strumento per confrontare anche piu’sistemi controllati
Tools per il controllo
Premessa
• Controllare un sistema non e’ un problema matematico ben definito fino a quando non vi siano date le caratteristiche del vostro controllo e gli elementi necessari per formalizzare la sua definizione.
• E’ per questo motivo che non esiste un solo strumento di realizzazione di un controllo, ma generalmente se ne usano diversi (equivalenti) ma meglio adatti caso per caso.
Premessa 2
• Tra questi:– Piazzamento dei poli (Banda 1, SS)– Specifiche su diagramma di bode (Banda 2, TF)– Regolazione dei margini (TF)– Regolazione dei margini (NY)– Stabilita’ (rlocus, SS)– Stabilita’ (Nyquist, TF)– Compensatori (anticipo, ritardo, cancellazioni)– Tempi di risposta– Errori su riferimenti– PID (Controllori commerciali)– LQG/LTR
Premessa 3
• Anche se molti modelli sono equivalenti da un punto di vista analitico, si differenziano poi per opportunita’ e da un punto di vista pratico.
• Ogni modello infatti e’ vincolato ad un ambiente ed una metodologia tramite il quale viene ottenuto, e risulta opportuno venga trattato quindi con lo strumento piu’ adeguato alla situazione
Alcuni esempi
• Si esegua un controllo di velocita’ in grado di mostrare una banda sul motore di almeno 100rad/sec
• Una prima idea potrebbe essere quella di utilizzare il piazzamento dei poli tramite feedback lineare dello stato sull’ingresso
Comandi
• k=place(mm.a, mm.b, [-100 -130])
• mm.a-mm.b*k
• ans = 1.0e+004 *
• -0.0010 0.0001
• -1.4400 -0.0220
• >> eig(mm.a-mm.b*k)
• -100.0000
• -130.0000
• Il piazzamento e’ riuscito, ma il sistema e’ fisicamente irrealizzabile, infatti se guardiamo il nostro feedback:
• k =[7200 108]
• Richiede che per errori di velocita’ e corrente modesti siano generati comandi di Kilovolt
Altre soluzioni
• Una seconda idea potrebbe essere quella di modificare la risposta ad anello aperto aggiungendo una distorsione in ingresso che ne esalti il comportamento alle alte frequenze.
• Anche questa soluzione non va bene se non quando il margine di banda da ottenere e’ molto piccolo, altrimenti si amplificano segnali (e rumori) che poi saranno filtrati nel motore.
Altra soluzione
• Cosa succederebbe se progetto un guadagno proporzionale?
• Rlocus e’ lo strumento giusto per vedere il comportamento dei poli.
• Superato un certo valore non vi e’ piu’ utilita’ a aumentare il guadagno (poli complessi coniugati)
-12 -10 -8 -6 -4 -2 0 2-3
-2
-1
0
1
2
3
Root Locus
Real Axis
Imagin
ary
Axis
E se…
• Introducessi uno zero?
• Proviamo con
• rlocus(mm*tf([1 4],[1 0.005], 30))
• Il sistema presenta una cancellazione polo zero
• Quindi il secondo polo migra verso il polo aggiunto nel sistema
• ltiview(30*cs/(1+30*cs))
-250 -200 -150 -100 -50 0 50-60
-40
-20
0
20
40
60
Root Locus
Real Axis
Imagin
ary
Axis
Vediamo il sisotool
• Ovviamente e’ un toolche bisogna imparare a usare solo dopo aver gia’preso pratica con i controlli.
• Accelera le fasi di design, verifica delle ipotesi e test dei risultati.
• Permette di lavorare con diversi schemi preimpostati di controllori (la cui struttura dovrebbe esser nota).
Cosa e’ possibile fare
1. Cambiare la struttura di controllo (ogni struttura’ e’ comporta di due elementi)
2. 6 strutture tipiche sono gia’ definite
3. Associare ogni elemento dell’architettura a un controllore esterno ovvero costruirlo nel sisotool
4. Lavorare in modalita’ ZPK su tutti gli elementi di controllo
• Il compensatore si edita nell’ compensator editor.
• Si puo’ esprimere la dinamica sia per la componente di controllo (C)
• Che per la componente di Feedforward (F) che agisce in anello aperto
• Le risposte vengono date su una finestra definita di Design plot
Sisotools -> Design plot
• Il Design plot mette a disposizione tre metodi di visualizzazione interattivi:– Nichols– Bode– Rlocus
• Ognuno dei metodi permette di inserire o rimuovere poli e zeri dei controllori
• Poli e zeri possono essere manovrati sia per la risposta in anello aperto che per quella a ciclo chiuso
• Poli e zeri impostati nel controllore sono anche manipolabili graficamente in tempo reale per valutare l’effetto del design nei diagrammi.
• Un pallino pieno nei diagrammi di bodeidentifica i margini (di guadagno per quello di ampiezza), di fase per quello di fase. I valoreirelativi sono riportati in nota al grafico
Sisotool => Analysis plots
• I plot di analisi non consentono il design ma interagiscono con il sistema di design in tempo reale.
• Un comando Show architecture consente di vedere le variabili da mostrare
• Importante vedere il grafico di risposta (ingresso uscita)
• Ed il grafico di comando (per valutare le saturazioni)
• In una seconda fase si imparera’ ad apprezzare anche l’effetto dei disturbi (sensitivita’)
Archiviazione
• Quando soddisfatti di una particolare soluzione trovata e’ possibile generare un report con i grafici di performance e memorizzare i risultati tramite un unicoocomando (store design)
• Perche’ non ci preoccupiamo qui del valore di feedback sull’ingresso?
Sisotool=> Tuning automatico
• Esempio di PID
• Con un PID posso trasformare il mio sistema in un integratore (doppia cancellazione polo zero)
Attenti a come usate il tuning automatico
Non e’ assolutamente detto che sia piu’ bravo di voi, lui ottimizza solo le strutture che gli passate secondo i criteri predefiniti, ma per sapere come tirare il meglio fuori dai vostri sistemi vi servira’il corso di controlli.In figura si vede come un controllore ottimizzato della stessa struttura del nostro sistema dia performance peggiori solo perche’ si assume di poter mettere un polo in zero (sbagliato concettualmente)
Gli strumenti simulink
I blocchi di Matlab utili per il controllo
• SS, TF, ZPKSimulink base:
• LTI modelControl System
Toolbox
• PID, SS, TF,ZPK (With initial condition)
• Blocchi autotuning (Signal Constraint: dagli esempi di simulink response optimization)
Simulink Extras
I blocchi di model verification
• Gradienti,
• lower bound
• Upper boung
• Range dinamico
• …
Sono disponibili blocchi per verificare
le proprieta’ di risposta del sistema
Detti blocchi sono di utilita’ quando sia
necessario controllare che la risposta rispetti
dei criteri esterni
Esempi (Simulink Response Optimization): PID
Control of an Inverted Pendulum
Double -click on the Signal Constraint blocks (in green )
to tune the gains Ki , Kp , Kf, and Klqr of
the cart position control system .
The "Desired Cart Position " block specifies the desired
step response in position , while the "Angle Constraints "
block limits the pendulum swing .
Sum
Step Fcn
-K-
Proportional gain
Kp
Pendulum
U
Cart
Angle
Mux
Mux
Mux
LQR gain
K*u
Integrator
1
s
Integral
gain
Ki
Initial
-C-
Feedforward gain
Kf .s
s+2
Desired Cart Position
Cart Velocity Estimate
FD w/ filter
Animation
Angular Velocity Estimate
FD w/ filter
Angle Constraints
cart position
cart position
pendulum
angle
EsempiLQG LTR Shaping
Double -click on the "Output Constraint " block to
optimize the output response .
The tuned variables are the LQR gain matrix K and the feedforward gain FF .
The optimization also accounts for uncertainty in the plant model .
Open the dialogs under the Optimization menu for more details .
Integral action
LQG Controller for Reference Tracking
Sensor
Noise
Scope
Reference Step
Plant /Actuator
in_1
out_1
out_2 Output Constraint
Mux
LQR Gain
(matrix )
K* uMux
Kalman state
estimator
x' = Ax+Bu
y = Cx+Du
1
s
Feedforward gain
FF
Strumenti di controllo in simulink
• Interfaccia di linearizzazione grafica su modello
– Scelta delle condizioni di linearizzazione
– Salvataggio e richiamo dei modelli
– Editing interattivo dei punti di linearizzazione
• Interfaccia di tuning interattiva su i tunableparameters
– Selezione degli elementi di IO
– Selezione dei blocchi da ottimizzare
• Model discretizer