Dipartimento di Ingegneria
Ingegneria dei sistemi di controllo - Sensori 1
Sistema di controllo anti- oscillazioni per carriponte
Ermidoro Michele
Introduzione
Descrizione generale
Cosa è un carroponte?
X
Z Y
up -dow n
Descrizione problema
Durante la movimentazione di carichi possono introdursi delle
oscillazioni pericolose per gli operai
Come risolvere questo problema?
Per poter evitare le oscillazione dobbiamo prima riuscire ad identificarle:
Si è scelto di utilizzare una piattaforma inerziale per stimare le oscillazioni del carico
La piattaforma inerziale è stata montata sul capofisso
Dove arriveremo
• Modellizzazione matematica del sistema
• Stima inclinazione
• Stima dell'angolo di oscillazione
• Validazione risultati intermedi
• Problema di controllo
Indice
Modellizzazione del sistema
Equazioni di Eulero-Lagrange
Le equazioni di Lagrange sono le equazioni del moto di un sistema conservativo, in quanto si ottengono direttamente a partire dal principio variazionale di Hamilton: minimizzando l'azione, esse descrivono il moto di un oggetto che obbedisce al secondo principio della dinamica e mettono in relazione la posizione e la velocità di ogni elemento che compone un sistema meccanico, in modo che è possibile caratterizzarne completamente la dinamica.
Utilizzo:
• Lagrangiana:
• Equazioni del moto:
• In assenza di forze esterne:
• In presenza di forze esterne:
U T
L = −
= 0
−
q L q
L dt
d
q F L q
L dt
d =
−
Energia cinetica
Energia potenziale
q – variabili di sistema F – forza esterna
Modello fisico (1/4)
M
m
l ϑ x
“Try simple first” 1-D model
𝑻 =
𝟏𝟐𝑴 + 𝒎 ሶ𝒙
𝟐+
𝟏𝟐𝒎𝒍
𝟐ሶ𝝑
𝟐+ 𝒎𝒍 ሶ𝝑 ሶ𝒙 𝐜𝐨𝐬 𝝑
Energia Cinetica:
𝑻 = 𝟏
𝟐∙ 𝒎 ∙ 𝒗𝟐 Formula generica:
Masse in gioco: • m : massa carico
• M : massa carrello
Approssimazioni: • Carico considerato puntiforme
• Cavo rigido
• Massa del cavo trascurabile
• Il carrello si muove senza attrito
Modello fisico (2/4)
𝑼 = −𝒎𝒈𝒍 𝐜𝐨𝐬 𝝑
Energia Potenziale:
"altezza di masse da terra"
Formula generica:
Masse in gioco: • m : massa carico
• M : massa carrello
Approssimazioni: • Carico considerato puntiforme
• Cavo rigido
• Massa del cavo trascurabile
• Il carrello si muove senza attrito Facilitazione: Lo zero dell'asse zeta è al livello del
binario di scorrimento del carrello
“Try simple first” 1-D model
M
m
l ϑ x
Modello fisico (3/4)
Attrito viscoso rotazionale
Equazioni di Eulero-Lagrange:
𝑑 𝑑𝑡
𝜕𝐿
𝜕 ሶ 𝜗 − 𝜕𝐿
𝜕𝜗 = −𝑏 ሶ 𝜗 𝑑
𝑑𝑡
𝜕𝐿
𝜕 ሶ𝑥 − 𝜕𝐿
𝜕𝑥 = 𝐹
Forza esternaapplicata
𝑳 =
𝟏𝟐𝑴 + 𝒎 ሶ𝒙
𝟐+
𝟏𝟐𝒎𝒍
𝟐ሶ𝝑
𝟐+ 𝒎𝒍 ሶ𝝑 ሶ𝒙 𝐜𝐨𝐬 𝝑 + 𝒎𝒈𝒍 𝐜𝐨𝐬 𝝑
𝜕𝐿
𝜕𝜗 = − 𝑚𝑙 ሶ𝜗 ሶ𝑥 + 𝑚𝑔𝑙 sin 𝜗 𝜕𝐿
𝜕 ሶ𝜗 = 𝑚𝑙2𝜗 + 𝑚𝑙 ሶ𝑥 cos 𝜗ሶ 𝑑 𝑑𝑡
𝜕𝐿
𝜕 ሶ𝜗 = 𝑚𝑙2𝜗 + 𝑚𝑙 ሷ𝑥 cos 𝜗 − ሶ𝑥 ሶሷ 𝜗 sin 𝜗
𝜕𝐿
𝜕 ሶ𝑥 = 𝑀 + 𝑚 ሶ𝑥 + 𝑚𝑙 ሶ𝜗 cos 𝜗 𝑑 𝑑𝑡
𝜕𝐿
𝜕 ሶ𝑥 = 𝑀 + 𝑚 ሷ𝑥 + 𝑚𝑙 𝜗 cos 𝜗 − ሶሷ 𝜗2sin 𝜗
𝜕𝐿
𝜕𝑥 = 0
M
m
l ϑ x
Modello fisico (4/4)
𝑑 𝑑𝑡
𝜕𝐿
𝜕 ሶ𝑥 − 𝜕𝐿
𝜕𝑥 = 𝐹
𝑳 =
𝟏𝟐𝑴 + 𝒎 ሶ𝒙
𝟐+
𝟏𝟐𝒎𝒍
𝟐ሶ𝝑
𝟐+ 𝒎𝒍 ሶ𝝑 ሶ𝒙 𝐜𝐨𝐬 𝝑 + 𝒎𝒈𝒍 𝐜𝐨𝐬 𝝑
𝒎𝒍𝟐 ሷ𝝑 + 𝒎𝒍 ሷ𝒙 𝒄𝒐𝒔 𝝑 + 𝒎𝒈𝒍 𝒔𝒊𝒏 𝝑 = −𝒃 ሶ𝝑
𝑴 + 𝒎 ሷ𝒙 + 𝒎𝒍 ሷ𝝑 𝒄𝒐𝒔 𝝑 − ሶ𝝑𝟐𝒔𝒊𝒏 𝝑 = 𝑭 𝑑
𝑑𝑡
𝜕𝐿
𝜕 ሶ𝜗 − 𝜕𝐿
𝜕𝜗 = −𝑏 ሶ𝜗
System
𝐹 𝑡 𝑥 𝑡
𝜗 𝑡
𝑙 è costante ⇒ nonlineare, IV ordine 𝑙 è un parametro tempo-variante ⇒
nonlineare,tempo-variante, IV ordine
Modello utilizzato
ሷ𝝑 𝒕 = − ሷ𝒙 𝒕
𝒍 𝒄𝒐𝒔 𝝑 𝒕 + 𝒈
𝒍 𝐬𝐢𝐧 𝝑 𝒕 + 𝒃
𝒎𝒍𝟐 ሶ𝝑 𝒕
• L'obbiettivo è minimizzare/eliminare le oscillazioni del carico;
• L'input del sistema è dato dall'operatore che utilizza il carroponte;
Si considera come variabile di stato solamente l'oscillazione del carico
Consideriamo: ቊ𝒙𝟏 𝒕 = 𝝑 𝒕
𝒙𝟐 𝒕 = ሶ𝝑 𝒕 ൞
ሶ𝒙𝟏 𝒕 = 𝒙𝟐 𝒕
ሶ𝒙𝟐 𝒕 = − 𝒖 𝒕
𝒍 𝒄𝒐𝒔 𝒙𝟏 𝒕 +𝒈
𝒍 𝐬𝐢𝐧 𝒙𝟏 𝒕 + 𝒃
𝒎𝒍𝟐𝒙𝟐 𝒕
Linearizzando otteniamo:
𝑮 𝒔 = Θ
ሷ𝑿 = −
𝟏 𝒈 𝒍
𝒈 𝒔𝟐 + 𝒃
𝒎𝒍𝒈𝒔 + 𝟏
Osservazioni
• In caso di attrito nullo son presenti due poli puramente immaginari;
• Le oscillazioni dipendono solamente dall'altezza del carico da terra;
• La massa del carico non influisce il periodo delle oscillazioni;
• La massa del carrello non influenza l'ampiezza e la frequenza delle oscillazioni;
• Il sistema si è considerato disaccoppiato sui due assi;
Si considera il caso con assenza di attrito (b=0, WORST CASE)
𝐺 𝑠 = −1
𝑙 𝑠2 + 𝑏
𝑚𝑙2 𝑠 + 𝑔 𝑙 𝜔𝑛 = 𝑔
𝑙 𝜉 = 𝑏
2𝑚 𝑔𝑙3
Osservazioni
• In caso di attrito nullo son presenti due poli puramente immaginari;
• Le oscillazioni dipendono solamente dall'altezza del carico da terra;
• La massa del carico non influisce il periodo delle oscillazioni;
• La massa del carrello non influenza l'ampiezza e la frequenza delle oscillazioni;
• Il sistema si è considerato disaccoppiato sui due assi;
Si considera il caso con assenza di attrito (b=0, WORST CASE)
Considerando 𝒉𝒎𝒊𝒏 = 𝟏𝒎 ed 𝒉𝒎𝒂𝒙 = 𝟕𝒎:
• 𝒇𝒎𝒊𝒏 = 𝟎. 𝟏𝟖𝟖𝟒 𝑯𝒛
• 𝒇𝒎𝒂𝒙 = 𝟎. 𝟒𝟗𝟖𝟓 𝑯𝒛 𝐺 𝑠 = −1
𝑙 𝑠2 + 𝑔
𝑙
𝜔𝑛 = 𝑔
𝑙 𝜉 = 0
Stima angolo oscillazioni
Cosa è una piattaforma inerziale?
Una piattaforma inerziale è un'unione di diverse tipologie di sensore, nel nostro caso:
• Accelerometro triassiale MEMS;
• Giroscopio triassiale MEMS.
Accelerometro
Misura le accelerazioni sui tre assi. In condizioni di assenza di accelerazioni esterne
viene misurata solamente la componente gravitazionale
Giroscopio
Misura la velocità angolare di rotazione attorno ai principali assi. In condizioni statiche misura
solamente rumore elettronico
Come stimare l'angolo?
Accelerometro
Ci si basa su come si distribuisce il "vettore gravità"
Giroscopio
Si integra la velocità angolare misurata
x
Z g
x
Z g
𝝑
𝝑 = tan−𝟏 𝑨𝒙 𝑨𝒛
x
Z
x
Z 𝝎𝒚
𝝑
𝒅𝝑 = 𝝎𝒚 ∙ ∆𝒕
Perché non usare un singolo sensore?
Accelerazioni esterne lineari
𝝑 = tan−𝟏 𝑨𝒙 + 𝑨𝑬 𝑨𝒛
Drift dovuto ad integrazione 𝝑 = 𝝎𝒚 + 𝜺 ∙ ∆𝒕
Stima angolo
Accelerometro
Il vettore gravità è costante, frequenza pressochè nulla.
Giroscopio
L'offset è a bassa frequenza, l'errore in alta.
L'idea è di integrare il giroscopio e di aggiornare la stima con l'angolo
calcolato con l'accelerometro.
Filtro di Kalman
Sistema
ACCK
-
+ +
+
t
൝ 𝝑
𝒙|𝒕= 𝝑
𝒙|𝒕−𝟏+ Δ
𝒕𝝎
𝒙+ 𝑲
𝒕𝝑
𝑨𝒄𝒄𝑿|𝒕− 𝒚
𝒙|𝒕𝒚
𝒙|𝒕= 𝝑
𝒙|𝒕𝝑
𝑨𝒄𝒄𝑿|𝒕= tan
−𝟏𝑨
𝒚𝑨
𝒙Stima angolo
Accelerometro
Il vettore gravità è costante, frequenza pressochè nulla.
Giroscopio
L'offset è a bassa frequenza, l'errore in alta.
Filtro Complementare 𝝑
𝑨𝒄𝒄= tan
−𝟏𝑨
𝒚𝑨
𝒙𝝑
𝒈𝒚𝒓𝒐= 𝜽
𝒐𝒍𝒅+ 𝝎
𝒚∙ ∆𝒕 𝜽 = 𝝑
𝑨𝒄𝒄∙ 𝒌 + 𝝑
𝒈𝒚𝒓𝒐∙ 𝟏 − 𝒌 𝒌 ÷ 𝟎, 𝟏
LP
HP
𝝑𝑨𝒄𝒄
𝝑𝒈𝒚𝒓𝒐
𝜽
La scelta di k influenza la banda passante dei filtri.
Filtro di Kalman di regime del 1° ordine
Filtraggio stima angolo di oscillazioni
Filtraggio angolo stimato (1/2)
Problema 1:
Capofisso non perpendicolare Offset variabile di angolo
𝒍𝒎𝒊𝒏 𝒍𝒎𝒂𝒙
𝝑𝒍𝒎𝒊𝒏 > 𝝑𝒍𝒎𝒂𝒙 𝝑 ≠ 𝟎
Stima angolo
High-Pass Filter
2° order, fc 0.015 Hz
Stima oscillazione
0 10 20 30 40 50 60 70 80 90 100
-8 -7 -6 -5 -4 -3 -2 -1 0
𝝑 salita gancio 𝝑 discesa gancio
Filtraggio angolo stimato (2/2)
Problema 2:
Approssimazione a cavo rigido errata Oscillazioni alta frequenza
Low-Filter
2° order, fc 3 Hz
Stima oscillazione
50 55 60 65 70 75 80 85 90
-3.5 -3 -2.5 -2 -1.5 -1 -0.5 0
73 74 75 76 77 78 79 80
-2.5 -2 -1.5 -1 -0.5
Le oscillazioni sono a circa 3 Hz e sono più visibili quando il gancio è scarico
Stima oscillazione
reale
Validazione
Test Anello Aperto (1/2)
Theory Measured
𝑇4.5
𝑇3 1.22 1.23
𝜔𝑛𝜉 4.5
𝜔𝑛𝜉 3 2.25 2.14
Sappiamo che:
periodo 𝑇~ 𝑙
Puls. Nat. 𝜔𝑛~ ൗ1 𝑙 Smorzamento 𝜉~ ൗ1 𝑙3
Movimentazioni a velocità massima
0 10 20 30 40 50 60
-6 -4 -2 0 2 4
6 X: 17.4
Y: 3.067
Ampiezza [°]
Angolo stimato (Theta Y)
X: 52.25 Y: 1.729
X: 14.3 Y: -3.792
X: 54.65 Y: -1.401
r = 3 r = 4.5
time [s]
Angle [°]
𝒍 = 𝟑 𝒎 𝒍 = 𝟒. 𝟓 𝒎
𝑇 = 2𝜋
𝜔𝑛 1 − ξ2
Il modello calcolato approssima in modo soddisfacente il
sistema?
Test Anello Aperto (2/2)
10 20 30 40 50 60 70 80 90
-0.4 -0.2 0 0.2
Ampiezza [°]
Theta X
theta X
10 20 30 40 50 60 70 80 90
-10 0 10
Temp [s]
Ampiezza [°]
Theta Y
theta Y
time [s]
Angle [°]Angle [°]
Movimentazione a velocità
massima su asse Y (open-loop) X e Y non sono perfettamente
disaccoppiati (ampiezza 1 a 40)
Il sistema è veramente disaccoppiato?
Validazione
Basically, no acceleration is measured (the hook points to the ground) [1]
The pulley oscillations are visible in the gyro measure [2]
10 20 30 40 50 60 70 80 90 100
-2 0 2
Acc [m/s2 ]
Az Az gancio
10 20 30 40 50 60 70 80 90 100
-10 0 10
Vel [deg/s]
Gy Gy gancio
10 20 30 40 50 60 70 80 90 100
-4 -2 0 2 4
t [s]
Angle [°]
capo fisso gancio
[1]
[2]
The pulley is free to slide over the ropes, with the hook which tends always to keep a vertical
orientation. So, the accelerometer on the pulley will measure lower acceleration than the one of the fixed end.
E' giusto posizionare la piattaforma inerziale sul capofisso?
Risultati filtraggio
Stima oscillazione
reale
Stima angolo
BP-Filter 4th order, BP 0.03-1 Hz
0 10 20 30 40 50 60 70 80 90 100
-4 -3 -2 -1 0 1 2
Offset
Variazione bassa freq(sollevamento)
Eliminate oscillazioni del cavo
La stima delle oscillazioni è utilizzabile in un sistema di controllo?
Problema di controllo
𝑠𝐺 𝑠 𝜗 𝑡
𝑣𝑟𝑒𝑓 𝑡 𝑣 𝑡
𝑀 𝑠 𝐺𝑒𝑛
𝐶
𝜗𝑟𝑒𝑓 𝑡 =0
+
– +
+
Single axis control
• 𝑴 𝒔 : funzione di trasferimento dei motori, considerati ideali
• 𝒔𝑮 𝒔 : funzione di trasferimento calcolata precedentemente; l'unica differenza è l'ingresso in velocità.
• 𝝑 𝒕 : angolo di oscillazione stimato in modo corretto
• Gen: funzione che riceve in ingresso I segnali della pulsantiera (operatore) e genera una forma d'onda di riferimento
• 𝝑𝒓𝒆𝒇 𝒕 =0: vogliamo minimizzare le oscillazioni
Problema di controllo
𝑠𝐺 𝑠 𝜗 𝑡
𝑣𝑟𝑒𝑓 𝑡 𝑣 𝑡
𝑀 𝑠 𝐺𝑒𝑛
𝐶
𝜗𝑟𝑒𝑓 𝑡 =0
+
– +
+
Single axis control
• 𝑴 𝒔 : funzione di trasferimento dei motori, considerati ideali
• 𝒔𝑮 𝒔 : funzione di trasferimento calcolata precedentemente; l'unica differenza è l'ingresso in velocità.
• 𝝑 𝒕 : angolo di oscillazione stimato in modo corretto
• Gen: funzione che riceve in ingresso I segnali della pulsantiera (operatore) e genera una forma d'onda di riferimento
• 𝝑𝒓𝒆𝒇 𝒕 =0: vogliamo minimizzare le oscillazioni
Quale è il miglior controllore C
per svolgere questo compito?
Progettazione controllore
Problema di controllo
𝑠𝐺 𝑠 𝜗 𝑡
𝑣𝑟𝑒𝑓 𝑡 𝑣 𝑡
𝑀 𝑠 𝐺𝑒𝑛
𝜗𝑟𝑒𝑓 𝑡 =0 𝐶 +
– +
+
Single axis control
Quale è il miglior controllore C per svolgere questo compito?
“Try simple first” PID controller
Scelta controllore
Single axis control
PID
𝐼 𝑠 = 𝑀 𝑠 = 1 H 𝑠 = 𝑠𝐺 𝑠
𝑃𝐼𝐷 𝑠 = 𝐾𝑑𝑠2 + 𝐾𝑝 + 𝐾𝑖 𝑠
𝐿 𝑠 = 𝑃𝐼𝐷(𝑠) ∙ 𝐻 𝑠
𝐻 𝑠 = −
1 𝑔 𝑠 𝑙
𝑔 𝑠2 + 1
Cancellazione di zeri nell'origine con poli nell'origine sono da evitare
𝑯 𝒔
Scelta controllore
Single axis control
PD
𝐼 𝑠 = 𝑀 𝑠 = 1 H 𝑠 = 𝑠𝐺 𝑠
𝐿 𝑠 = 𝑃𝐼𝐷(𝑠) ∙ 𝐻 𝑠
𝐻 𝑠 = −
1 𝑔 𝑠 𝑙
𝑔 𝑠2 + 1 𝑃𝐷 𝑠 = 𝐾𝑑𝑠 + 𝐾𝑝
𝐿 𝑠 = − 1
𝑔 𝐾𝑑𝑠2 + 𝐾𝑝𝑠 𝑙
𝑔 𝑠2 + 1
Soluzione percorribile 𝑯 𝒔
Soluzione percorribile (e più semplice)
Scelta controllore
Single axis control
PID
𝐼 𝑠 = 𝑀 𝑠 = 1 H 𝑠 = 𝑠𝐺 𝑠
𝐿 𝑠 = 𝑃𝐼𝐷(𝑠) ∙ 𝐻 𝑠
𝐻 𝑠 = −
1 𝑔 𝑠 𝑙
𝑔 𝑠2 + 1 𝑃 𝑠 = 𝐾𝑝
𝐿 𝑠 = − 1 𝑔 𝐾𝑝𝑠 𝑙
𝑔 𝑠2 + 1
𝑯 𝒔
Analisi in anello chiuso (1/2)
Single axis control
P
𝐼 𝑠 = 𝑀 𝑠 = 1 H 𝑠 = 𝑠𝐺 𝑠
𝐿 𝑠 = 𝐾𝑝 ∙ 𝐻 𝑠
𝐿 𝑠 = 𝐾𝑝 ∙ −1 𝑙 𝑠 𝑠2 + 𝑔
𝑙 Funzione trasferimento d'anello
Funzione trasferimento anello chiuso 𝐹 𝑠 = −1
𝑙 𝐾𝑝𝑠 𝑠2 − 1
𝑙 𝐾𝑝𝑠 + 𝑔 𝑙
𝑯 𝒔
Analisi in anello chiuso (2/2)
Single axis control
P
Solo per 𝐾𝑝 < 0 Asintoticamente stabile?
Parametri anello chiuso:
𝐻 𝑠 = −1
𝑙 𝐾𝑝𝑠 𝑠2 − 1
𝑙 𝐾𝑝𝑠 +𝑔 𝑙
𝜔𝑛 = 𝑔 𝑙 ξ = − 𝐾𝑝
2 𝑔𝑙
• 𝐾𝑝 negativo per via del
guadagno negativo del sistema
• Pulsazione naturale invariata
• Smorzamento direttamente proporzionale a 𝐾𝑝
𝑯 𝒔
Analisi prestazionale –Simulazione (1/2)
Single axis control
0 10 20 30 40 50 60
-6 -4 -2 0 2 4 6
Ampiezza Oscillazioni
Ampiezza [°]
0 10 20 30 40 50 60
0 0.5 1 1.5 2 2.5 3
Velocità [m/s]
Profilo velocità
Kp = 0 Kp = -1 Kp = -14 Kp = -50 Kp = -100
time [s]
time [s]
speed[m/s]Angle [°]
𝐾 𝑝 ↑ → ξ ↑
𝑚𝑎
𝐾 𝑝 ↑→ 𝑢 ↑ → 𝑣 ↓
Analisi prestazionale –Simulazione (1/2)
Single axis control
0 10 20 30 40 50 60
-6 -4 -2 0 2 4 6
Ampiezza Oscillazioni
Ampiezza [°]
0 10 20 30 40 50 60
0 0.5 1 1.5 2 2.5 3
Velocità [m/s]
Profilo velocità
Kp = 0 Kp = -1 Kp = -14 Kp = -50 Kp = -100
time [s]
time [s]
speed[m/s]Angle [°]
𝐾 𝑝 ↑ → ξ ↑
𝑚𝑎
𝐾 𝑝 ↑→ 𝑢 ↑ → 𝑣 ↓
Necessario trade-off tra riduzione
oscillazioni e prestazioni del sistema
Analisi prestazionale –Simulazione (2/2)
Single axis control
No control
Medium control
High control
Scelta di 𝐾
𝑝(1/2) - luogo delle radici
Il luogo delle radici è uno strumento grafico per l’analisi e la sintesi di sistemi retro-azionati. E'
definito come il luogo geometrico dei punti del piano complesso descritto dalle radici dell’equazione caratteristica al variare del parametro ρ da –∞ a +∞ con ρ≠0.
𝑳 𝒔 = 𝝆 𝑵 𝒔
𝑫 𝒔
𝑳 𝒔 = −𝑲𝒑1 𝑙 𝑠 𝑠2 +𝑔
𝑙
𝝆
=−𝑲
𝒑-3 -2.5 -2 -1.5 -1 -0.5 0 0.5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0.14 0.3
0.44 0.58
0.84 0.72
0.92
0.98
0.14 0.3
0.44 0.58
0.84 0.72 0.92 0.98
0.5 1
1.5 2
2.5 3
Root Locus
Real Axis (seconds-1) Imaginary Axis (seconds-1 )
×
×
𝒍 = 𝟒• All'aumentare di Kp i due poli si allontanano, approssimando il sistema a singolo polo (il più lento);
• La griglia identifica i vari valori di smorzamento del sistema al variare di 𝝆;
• Si nota come un Kp negativo stabilizzi il sistema
NB: 𝝃 = − 𝑲𝒑
𝟐 𝒈𝒍 → 𝑲𝒑 = −𝟐 𝒈𝒍 → 𝝃 =1
-4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 -2.5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
2.5 0.82 0.7 0.58 0.44 0.28 0.14
0.91
0.975
0.14 0.28
0.44 0.58
0.7 0.82
0.91 0.975
0.5 1
1.5 2
2.5 3
3.5 4
Root Locus
Real Axis (seconds-1) Imaginary Axis (seconds-1 )
𝝃 ≥ 𝟎. 𝟕
Scelta di 𝐾
𝑝(2/2)
𝒍 = 𝟐 𝝆 ≅ 𝟖. 𝟗 𝝆 ≅ 𝟏𝟔. 𝟔
𝒍 = 𝟕
×
×
×
×
𝒍 = 𝟐
𝒍 = 𝟕 𝝆 ≅ 𝟏𝟏. 𝟔
𝝆 ≅ 𝟔.0
𝟐 ≤ 𝒍 ≤ 𝟕
Vincolo progettuale:
Garantire 𝝃 ≥ 𝟎. 𝟕 ad ogni "altezza".
𝝆 = 𝟏𝟏. 𝟔 𝑲
𝒑= −𝟏𝟏. 𝟔
• 𝒍 = 𝟕 : prestazioni peggiori in termini di smorzamento angolo (𝜉 ≥ 0.7 )
• 𝒍 = 𝟐 : prestazioni peggiori in termini di raggiungimento velocità massima («Slow» pole in -1.1)
• Gain scheduling : 𝐾𝑝 = 𝐾𝑝 𝑙 ?
Prestazioni controllore
Come valutare quanto è "buono"?
Confronto con CONTROLLO OTTIMO
“Try simple first” PID controller
P controller, PRO & CONS:
• Semplice
• Facilmente implementabile
• "indipendente" dal modello
• Le prestazioni che garantisce sono buone
Dubbi:
• Forse è "troppo" Semplice?
• Come possiamo garantire che queste prestazioni siano effettivamente buone?
Il controllo ottimo è, nell'ambito dei controlli automatici, l'insieme di algoritmi di controllo che stabilizzano un sistema dinamico, minimizzando una cifra di merito che dipende dallo stato del
sistema e dal vettore degli ingressi.
Controllo ottimo
ሶ𝒙 𝑡 = 𝑓 𝒙 𝑡 , 𝑢 𝑡 with 𝒙 𝑡0 =𝒙0 𝐽 = 𝑔 𝒙 𝑡𝑓 + 𝑡
0
𝑡𝑓
𝑙 𝒙 𝑡 , 𝑢 𝑡 𝑑𝑡
a dynamical system
a cost function (of state and control) between 𝑡0 and 𝑡𝑓
find a control action 𝒖∗ 𝒕 over 𝑡0, 𝑡𝑓 that minimizes the cost function 𝐽 having the state equation as a constraint.
Problem
The solution can be obtained by solving a constrained optimization problem using Lagrange multipliers 𝝀 𝑡 also called “co-states”.
ℋ 𝒙, 𝑢, 𝝀 =𝑙 𝒙, 𝑢 + 𝝀𝑻𝑓 𝒙, 𝑢
𝜕ℋ
𝜕𝑢 = 0 ⇒ 𝑢∗ = ℎ 𝒙, 𝝀 and ℋ∗ = ℋ 𝒙, 𝑢∗, 𝝀
൞ ሶ𝒙 = 𝜕ℋ∗
𝜕𝝀 𝑇
ሶ𝝀 = −𝜕ℋ∗
𝜕𝒙
𝑇 ⇒ 𝒙∗, 𝝀∗ ⇒ 𝑢∗ = ℎ 𝒙∗, 𝝀∗
Solution – NC for optimal control
The Hamiltonian
Minimize it and evaluate the minimum
Compute the solutions of the equations and put them into the minimum
Data
Controllo ottimo a tempo minimo
ሶ𝒙 𝑡 = 𝐴𝒙 𝑡 + 𝐵𝑢 𝑡 with 𝒙 0 =𝒙0 and 𝑢𝑚𝑖𝑛 ≤ 𝑢 𝑡 ≤ 𝑢𝑚𝑎𝑥 𝐽 = 0𝑇𝑑𝑡 = 𝑇 with 𝒙 𝑇 = 0
a LTI dynamical system a “special” cost function
Find the optimal control action 𝒖∗ 𝒕 over 0, 𝑇
Problem
ℋ 𝒙, 𝑢, 𝝀 =1 + 𝝀𝑻 𝐴𝒙 + 𝐵𝑢 = 1 + 𝝀𝑻𝐴𝒙 + 𝝀𝑻𝐵𝑢
𝜕ℋ
𝜕𝑢 = 0 ⇒ 𝝀𝑇𝐵 = 0
𝑢∗ = ൝𝑢𝑚𝑖𝑛 𝑖𝑓𝝀𝑇𝐵 > 0 𝑢𝑚𝑎𝑥 𝑖𝑓𝝀𝑇𝐵 < 0 ሶ𝝀 = −𝐴𝝀
Solution – the bang bang control
The Hamiltonian is very simple
Minimize it
Define the switching times
Remark: open loop control (as is, but it is possible to define a closed loop law)
Applicazione controllo tempo minimo (1/3)
ሶ𝒙 𝑡 = 𝐴𝒙 𝑡 + 𝐵𝑢 𝑡 𝒙 0 = 10,0
𝒙 𝑇 = 0,0
−10 ≤ 𝑢 𝑡 ≤ 10
𝐽 = 0𝑇𝑑𝑡 = 𝑇 with 𝒙 𝑇 = 0
ሶ𝑥1 𝑡 ሶ𝑥2 𝑡 =
0 1
−𝑔
𝑙 − 𝑏
𝑚𝑙2
𝑥1 𝑡 𝑥2 𝑡 +
0
−1 𝑙
𝑢 𝑡
m = 1000 Kg - l= 5 m - b = 9000
-10 -5 0 5 10
-10 -8 -6 -4 -2 0 2 4 6 8 10
Switch: 1 Switch: 2
X1
X 2
Initial State
Target
0 1 2 3 4 5
-10 -8 -6 -4 -2 0 2 4 6 8 10
u
u
minu
maxtime [s]
𝑻𝒕𝒐𝒕 = 𝟒. 𝟖 𝒔
Azione di controllo che garantisce raggiungimento condizioni finali in tempo minimo
NB: "open-loop","non-adaptive "control
Applicazione controllo tempo minimo (2/2)
ሶ𝒙 𝑡 = 𝐴𝒙 𝑡 + 𝐵𝑢 𝑡 𝒙 0 = 10,0
𝒙 𝑇 = 0,0
−10 ≤ 𝑢 𝑡 ≤ 10
𝐽 = 0𝑇𝑑𝑡 = 𝑇 with 𝒙 𝑇 = 0
ሶ𝑥1 𝑡 ሶ𝑥2 𝑡 =
0 1
−𝑔
𝑙 − 𝑏
𝑚𝑙2
𝑥1 𝑡 𝑥2 𝑡 +
0
−1 𝑙
𝑢 𝑡
m = 1000 Kg - l= 5 m - b = 12000
• Il controllo a tempo ottimo ha prestazioni nettamente migliori rispetto al sistema senza controllo;
• Controllo ottimo, in condizioni di perfetta conoscenza del modello, garantisce prestazioni migliori rispetto al P;
Problemi:
• Conosciamo in modo perfetto il modello?
• La lunghezza è fissa?
0 1 2 3 4 5 6 7 8 9 10
-10 0 10
t [s]
[°]
0 1 2 3 4 5 6 7 8 9 10
-10 0 10
t [s]
d/dt [°]
0 1 2 3 4 5 6 7 8 9 10
-10 0 10
t [s]
u(t)
Time Optimal– P control – No Control
Controllo con incertezze
ሶ𝒙 𝑡 = 𝐴𝒙 𝑡 + 𝐵𝑢 𝑡 𝒙 0 = 10,0
𝒙 𝑇 = 0,0
−10 ≤ 𝑢 𝑡 ≤ 10
𝐽 = 0𝑇𝑑𝑡 = 𝑇 with 𝒙 𝑇 = 0
ሶ𝑥1 𝑡 ሶ𝑥2 𝑡 =
0 1
−𝑔
𝑙 − 𝑏 𝑚𝑙2
𝑥1 𝑡 𝑥2 𝑡 +
0
−1 𝑙
𝑢 𝑡
m = 1000 - 5%Kg - l= 5 - 2%m - b = 9000 + 15%
Al termine dell'azione di controllo il time optimal non smorza più le
oscillazioni
Il controllore P si adatta al meglio alle possibili
imprecisioni/variazioni del sistema
Modello sistema
Sistema reale
u time-optimal
0 1 2 3 4 5 6 7 8 9 10
-5 0 5 10
t [s]
[°]
0 1 2 3 4 5 6 7 8 9 10
-10 -5 0 5
t [s]
d/dt [°]
0 1 2 3 4 5 6 7 8 9 10
-10 0 10
t [s]
u(t)
Time Optimal–P control – No Control
Scelta controllo
Perfetta conoscenza del modello:
Settling Time [s] Max Overshoot [%]
No-Control >15 57.9
Time-Optimal Control 4.47 39.1
P Control 6.31 36.2
Settling Time [s] Max Overshoot [%]
Time-Optimal Control 9.38 32
P Control 5.66 29.5
Incertezze sul modello:
• Il controllore ottimo è il miglior risultato ottenibile teoricamente
• Le prestazioni del controllore P non distano in modo significativo dal TO in condizioni nominali
• Il controllore P è molto più robusto ed adattabile ad una soluzione reale.
Implementazione
Implementazione
CAN Bus
IMU
PLC PLC → Inverter
Analog: SpeedRef Digital: Direzione
Inverter → PLC Analog: MotorSpeed
Inverters
Dig.
Input
Pulsantiera Wireless
Risoluzione problemi
Ritardo
Conseguenze:
• Il ritardo si "mangia" margine di fase, rischiando di rendere instabile il sistema;
• Le prestazioni degradano in quanto l'azione di controllo è ritardata.
35 40 45 50 55 60 65
0 5 10 15 20 25 30 35 40 45 50
Speed Ref Real Speed
51.5 52 52.5
-0.5 0 0.5 1 1.5 2 2.5 3
𝝉 = 𝟐𝟑𝟎𝒎𝒔
𝒆
−𝝉𝒔𝑮 𝒔
𝒖 𝝑
Scheduling guadagni
• 𝐾𝑝𝑚𝑖𝑛 𝑒𝐾𝑝𝑚𝑎𝑥 calcolati tramite test sul campo:
• ℎ𝑚𝑖𝑛 𝑒ℎ𝑚𝑎𝑥 dipendenti dalla geometria del carroponte;
• 𝐿𝑒𝑠𝑡 è la stima di altezza;
Come stimare l'altezza?
Il ritardo introdotto dall'accoppiata inverter/motore riduce la robustezza del sistema
Cambiare i 𝐾𝑝 in base all'altezza del carico
2 3 4 5 6 7 8 9 10 11 12
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7
length
𝑲𝒑
𝑲𝒑𝒎𝒊𝒏 𝑲𝒑𝒎𝒂𝒙
𝑲𝒑 𝒍 = 𝐾𝑝𝑚𝑖𝑛 + 𝐾𝑝𝑚𝑎𝑥 − 𝐾𝑝𝑚𝑖𝑛 ∙ 𝐿𝑒𝑠𝑡 − ℎ𝑚𝑖𝑛 ℎ𝑚𝑎𝑥 − ℎ𝑚𝑖𝑛
Stima altezza (1/2)
• In 300 s di prova l'errore è di solo 10 cm;
• Con il tempo la misura è destinata a driftare;
• La misura viene aggiornata grazie ai fine corsa → necessaria "calibrazione" periodica;
• La lettura della velocità richiede particolari inverter e l'utilizzo di un ingresso analogico ulteriore.
Per la stima dell'altezza sono stati implementati due metodi completamente diversi:
1. Integrazione velocità motore di sollevamento;
2. Stima frequenza oscillazioni.
𝑳
𝒆𝒔𝒕𝒕 = 𝑳
𝒆𝒔𝒕𝒕 − 𝟏 + 𝒗
𝒛𝒕 ∙ ∆𝒕
Per la stima dell'altezza sono stati implementati due metodi completamente diversi:
1. Integrazione velocità motore di sollevamento;
2. Stima frequenza oscillazioni.
0 50 100 150 200 250 300
1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
𝑳𝒆𝒔𝒕 reale finale
𝑳𝒆𝒔𝒕 reale iniziale
length
0 50 100 150 200 250 -8
-6 -4 -2 0 2 4 6 8
Per la stima dell'altezza sono stati implementati due metodi completamente diversi:
1. Integrazione velocità motore di sollevamento;
2. Stima frequenza oscillazioni (Frequency tracker).
Stima altezza (2/2)
ቊ ሶ𝒙
𝟏𝒕 = 𝝎 cos 𝜔𝑡 ሶ𝒙
𝟐𝒕 = −𝝎 sin 𝜔𝑡
𝝎 𝒌 + 𝟏 = 𝝎 𝒌 𝒙
𝟏𝒌 + 𝟏 = 𝑲
∗𝒌 +
𝝎 𝒌 𝒅𝒕𝒙
𝟐𝒌 𝒙
𝟐𝒌 + 𝟏 = 𝝎 𝒌 𝒅𝒕𝒙
𝟏𝒌 +
𝑲
∗𝒙
𝟏𝒌 𝒚 𝒌 = 𝒙
𝟏𝒌
𝑲∗: coefficiente per stabilizzare il sistema
0 50 100 150 200 250 0
0.5 1 1.5
Frequency [Hz]
0 50 100 150 200 250
0 1 2 3 4 5 6
Length [m]
Time [s]
Per la stima dell'altezza sono stati implementati due metodi completamente diversi:
1. Integrazione velocità motore di sollevamento;
2. Stima frequenza oscillazioni (Frequency tracker).
Stima altezza (2/2)
ቊ ሶ𝒙
𝟏𝒕 = 𝝎 cos 𝜔𝑡 ሶ𝒙
𝟐𝒕 = −𝝎 sin 𝜔𝑡
𝝎 𝒌 + 𝟏 = 𝝎 𝒌 𝒙
𝟏𝒌 + 𝟏 = 𝑲
∗𝒌 +
𝝎 𝒌 𝒅𝒕𝒙
𝟐𝒌 𝒙
𝟐𝒌 + 𝟏 = 𝝎 𝒌 𝒅𝒕𝒙
𝟏𝒌 +
𝑲
∗𝒙
𝟏𝒌 𝒚 𝒌 = 𝒙
𝟏𝒌
𝑲∗: coefficiente per stabilizzare il sistema
Con questo metodo si è "creata" anche l'opzione Follow me
Sollevamento non verticale
Per eliminare la maggior parte delle oscillazioni basterebbe sollevare il carico direttamente in verticale.
• Filtro passa alto elimina offset;
• Offset non costante.
gain
𝝑 + 𝝑 𝒆𝒍
+
Con questo metodo si è "creata" anche l'opzione Follow me
Sollevamento non verticale
Per eliminare la maggior parte delle oscillazioni basterebbe sollevare il carico direttamente in verticale.
• Filtro passa alto elimina offset;
• Offset non costante.
gain
𝝑 + 𝝑 𝒆𝒍
+
Risultati
0 50 100 150 200 250 300 -50
0 50
0 50 100 150 200 250 300
-4 -2 0 2 4
Controllo asse X (carrello)
Oscillazione massima di circa 3°.
CONTROLLO OFF
m = 3000 Kg l=3m
Time [s]
Time [s]
Angolo [°]Input [RPM]
Controllo asse Y (carrello)
0 50 100 150 200 250 300
-50 0 50
0 50 100 150 200 250 300
-10 -5 0 5 10
CONTROLLO OFF
m = 3000 Kg l=3m
Oscillazione massima di circa 8°.
Time [s]
Time [s]
Angolo [°]Input [RPM]
Controllo asse X (carrello)
0 10 20 30 40 50 60 70 80 90 100
-50 0 50
0 10 20 30 40 50 60 70 80 90 100
-2 -1 0 1 2
Oscillazione massima di circa 2°.
CONTROLLO ON
Time [s]
Time [s]
Angolo [°]Input [RPM]
0 10 20 30 40 50 60 70 80 90 100 -50
0 50
0 10 20 30 40 50 60 70 80 90 100
-5 0 5 10
Controllo asse Y (carrello)
Angolo massimo circa 5°. In questo caso si tentava di indurre l'oscillazione, ma il sistema riusciva a bloccare l'innesto.
CONTROLLO ON
Time [s]
Time [s]
Angolo [°]Input [RPM]
0 10 20 30 40 50 60 70 80 90 100 -50
0 50
0 10 20 30 40 50 60 70 80 90 100
-5 0 5 10
0 50 100 150 200 250 300
-50 0 50
0 50 100 150 200 250 300
-10 -5 0 5 10
Confronto Controllo ON-OFF
CONTROLLO ON CONTROLLO OFF
ASSE X ASSE Y
0 10 20 30 40 50 60 70 80 90 100 -50
0 50
0 10 20 30 40 50 60 70 80 90 100
-2 -1 0 1 2
0 50 100 150 200 250 300
-50 0 50
0 50 100 150 200 250 300
-4 -2 0 2 4
Confronto Controllo ON-OFF
CONTROLLO ON CONTROLLO OFF
ASSE X
0 10 20 30 40 50 60 70 80 90 100 -50
0 50
0 10 20 30 40 50 60 70 80 90 100
-2 -1 0 1 2
0 50 100 150 200 250 300
-50 0 50
0 50 100 150 200 250 300
-4 -2 0 2 4
Confronto Controllo ON-OFF
CONTROLLO ON CONTROLLO OFF
ASSE X ASSE Y