67
Controllo dei Manipolatori Industriali Basilio Bona Dipartimento di Automatica e Informatica Politecnico di Torino

Controllo Manipolatori Industriali 2004 - PoliTO...Controllo lineare di manipolatori rigidi 1.1 Introduzione Scopo degli algoritmi e delle architetture di controllo dei manipolatori

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • Controllo dei Manipolatori Industriali

    Basilio Bona

    Dipartimento di Automatica e Informatica

    Politecnico di Torino

  • 2

  • Capitolo 1

    Controllo lineare di manipolatoririgidi

    1.1 Introduzione

    Scopo degli algoritmi e delle architetture di controllo dei manipolatori è quello di fornire il segnaledi comando agli attuatori dei giunti per ottenere che la punta operativa del manipolatore eseguail compito assegnato nello spazio cartesiano. Schematicamente si possono definire due tipi dicompiti:

    • Compiti senza interazione con l’ambiente circostante: si tratta cioè di muovere la puntaoperativa da un punto ad un altro dello spazio cartesiano o lungo traiettorie assegnate,rispettando vincoli di posizione, velocità ed accelerazione;

    • Compiti che richiedono interazione con l’ambiente: si tratta solitamente di muovere nel-lo spazio cartesiano la punta operativa lungo traiettorie assegnate e contemporaneamenteesercitare una forza e/o una coppia su oggetti o superfici definiti nello stesso spazio.

    Tali compiti vengono definiti ad un livello gerarchico superiore (pianificazione del compito odella traiettoria), ma la presenza di disturbi, errori di modello, perturbazioni additive e/o para-metriche, rende necessario un controllo in catena chiusa del moto del robot ed eventualmente dellaforza esercitata sull’ambiente.

    Tuttavia gli obbiettivi assegnati al robot possono rendere molto diversa la realizzazione di uncontrollo: ad esempio, sarà maggiormente complesso eseguire un controllo continuo di traiettoria,in presenza di vincoli sul percorso e con specifiche di precisione lungo la traiettoria stessa, piuttostoche realizzare un controllo di movimento punto-punto; cos̀ı pure, un controllo di traiettoria senzainterazione con l’ambiente ha una complessità minore di un controllo contemporaneo di posizionee forza, ecc.

    La struttura meccanica può rendere diversa l’architettura di controllo: uno schema di controllovalido per un manipolatore cartesiano non sarà generalmente adottabile per un manipolatoreantropomorfo e viceversa; analogamente un robot la cui struttura meccanica è progettata percompensare automaticamente la componente gravitazionale agente sui bracci, avrà uno schema dicontrollo diverso da quello di un robot non equilibrato.

    Inoltre il desiderio di migliorare le specifiche di precisione, velocità di risposta, ripetibilità,unite alla convinzione che nel futuro ci si debba spingere verso robot con strutture meccanichemeno rigide, ma dove gli errori di posizionamento dovuti all’elasticità dei giunti e dei bracci siacorretta via software, rende necessario adottare strategie ed architetture di controllo sempre piùcomplesse.

    Giocano una parte fondamentale sull’analisi della struttura di controllo i progressi nel campodegli attuatori e dei sensori; ad esempio, l’adozione di motori in corrente continua (classici o bru-shless) collegati al giunto attraverso scatole di trasmissione (motoriduttori), permette di ridurre

    3

  • 4 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

    fortemente gli effetti della dinamica nonlineare del manipolatore, ma introduce fenomeni difficil-mente modellabili, come le zone morte, l’attrito coulombiano e di primo distacco (oltrechè quelloviscoso) e l’elasticità. D’altro canto l’uso di motori ad azione diretta (direct-drive), elimina questieffetti indesiderati, ma riporta in primo piano le dinamiche nonlineari.

    Nel campo dei sensori, oltre ad utilizzare comunemente sensori interni per la misura dellaposizione e della velocità di ciascun giunto, si assiste ad un notevole sforzo di ricerca direttoall’affinamento di sensori “cartesiani”, in grado cioè di rilevare grandezze di posizione ed assettodirettamente nello spazio di lavoro (come sensori di distanza, sensori di forza, telecamere, ecc.), ealla loro più stretta integrazione con le architetture di controllo dei manipolatori.

    Nel seguito verranno descritte le tecniche di controllo seguenti:

    1. Controllo a giunti indipendenti.

    2. Controllo di coppia calcolata e a dinamica inversa.

    3. Controllo di forza e controllo ibrido (forza–posizione).

    4. Controllo adattativo.

    Nei successivi paragrafi verrà descritta in dettaglio la tecnica di controllo a giunti indipendenti esuccessivamente schemi di controllo più sofisticati.

    1.2 Controllo a giunti indipendenti

    L’architettura di controllo che si è venuta imponendo a partire dalle prime realizzazioni e chetrova tuttora una vasta applicazione industriale, tratta ogni singolo giunto come un sottosiste-ma disaccoppiato indipendente, controllato mediante una retroazione locale, considerando comedisturbi gli effetti di accoppiamento non lineari presenti nella dinamica propria del robot. Il con-trollo è sostanzialmente di tipo mono-variabile, con reti di compensazione classiche (PD o PID).La popolarità di questo schema è dovuta alla robustezza ed alla relativa semplicità e modularitàdell’architettura, ben adatta ad essere realizzata su semplici schede dedicate. Come esempio vieneriportato lo schema adottato sul robot PUMA.

    1.2.1 Schema di controllo del PUMA

    Lo schema (vedi Figura 1.1) consta di un controllore centrale basato su un minicomputer (DECLSI-11/02) e sei microprocessori di giunto Rockwell 6503, ciascuno con il proprio encoder sull’al-bero motore, un convertitore D/A, un amplificatore di corrente.

    I compiti del controllore centrale sono

    • gestire l’interazione con l’utente e la schedulazione dei compiti in seguito ai comandi dell’u-tente (linguaggio di controllo VAL). Comprende l’interprete dei comandi VAL e l’interfacciadi controllo;

    • coordinare i compiti dei microprocessori di giunto.

    • gestire le fasi di accensione e spegnimento, la calibrazione e le situazioni di errore ed emer-genza.

    Nelle EPROM del controllore centrale sono codificate le seguenti funzioni

    1. trasformazione di coordinate (cinematica diretta e inversa);

    2. pianificazione di traiettoria interpolata ai giunti; vengono inviati ai giunti le coordinateincrementali ogni 28 ms;

    3. riconoscimento dei messaggi dai microprocessori locali che informano se il movimento incre-mentale è terminato;

  • 1.2. CONTROLLO A GIUNTI INDIPENDENTI 5

    Terminale Floppy Box Accessori

    DLV-11J

    EPROMVAL

    RAM

    CPU

    DRV-11 INTERFACCIA

    � p AmplificatoreD/A Motore 1

    ENCODER

    � p AmplificatoreD/A Motore 6

    ENCODER

    COMPUTER CONTROLLO BRACCIO

    Riferimentiangolari

    T=28 ms T=0.875 ms

    T=0.875 ms

    �1

    �6

    Figura 1.1: Schema del controllore a giunti indipendenti del manipolatore PUMA.

    4. interpolazione anticipata (di due istruzioni VAL) per eseguire le traiettorie continue e glieventuali raccordi tra traiettorie elementari (fly).

    I controllori locali sono montati su una piastra con la propria EPROM ed il convertitoreD/A; la comunicazione con il LSI-11/02 avviene attraverso una scheda d’interfaccia che fungeanche da demultiplexer per i microprocessori locali; questa è a sua volta connessa con una schedad’interfaccia parallela a 16 bit (DRV-11), collegata sul bus di comunicazione. Il microprocessorericava i segnali di errore al giunto e li invia al controllore dell’attuatore, che ha un proprio anellodi retroazione in corrente.

    Vi sono due anelli di retroazione per ciascun giunto:

    • il più esterno fornisce l’errore di posizione che viene aggiornato ogni 0.875 ms dal micro6503;

    • il più interno consiste in un compensatore analogico sulla velocità del motore.

    Entrambi sono a parametri costanti e sintonizzati per non essere sottosmorzati in ogni condizionedi carico e di velocità (secondo quanto si dirà in seguito).

    Il microprocessore locale svolge anche le seguenti funzioni:

    1. ogni 28 ms riceve i riferimenti di traiettoria dal LSI-11/02 e calcola l’interpolazione tra ilvalore attuale e il valore desiderato della coordinata giunto;

    2. ogni 0.875 ms legge i registri che memorizzano i valori incrementali forniti dagli encodersull’albero motore;

    3. aggiorna i segnali di errore angolare da dare in ingresso al controllore;

    4. converte il segnale errore in segnale di corrente utilizzando il convertitore D/A e lo invia alservocomando analogico del motore.

    Lo schema di controllo risulta essere un PD; la compensazione dell’effetto gravitazionale sui brac-ci viene ottenuta con il controllo di velocità, portando tuttavia ad un errore di posizione. Losvantaggio maggiore di questo schema sta nel valore costante dei parametri di progetto, che nonvariano al variare del carico sui giunti e sulla necessità di compensare il carico costante dovutoalla gravità.

  • 6 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

    1.2.2 Modello matematico del controllore ai giunti

    Per poter modellare la dinamica di un giunto è necessario modellare la dinamica del suo attuatore,a cui va poi aggiunta la dinamica propria del manipolatore, cos̀ı come è stata sviluppata in uncapitolo precedente. In pratica la dinamica dovuta all’accoppiamento tra i bracci e la dinamicanon lineare (coppie centrifughe e di Coriolis) vengono considerate in questo schema come disturbiadditivi compensati dal controllore di giunto.

    L’attuatore più utilizzato negli schemi di controllo per robot relativamente leggeri è il motorea corrente continua, comandato in armatura.

    Lo schema meccanico del motore in cc è illustrato in Figura 1.2, mentre lo schema elettromec-canico è illustrato in Figura 1.3.

    Il circuito di eccitazione, di solito alimentato indipendentemente dal circuito di armatura,genera il campo magnetico, le cui linee di flusso si concatenano con gli avvolgimenti di armatura,mentre il circuito di armatura è alimentato a tensione o corrente variabile; l’interazione tra ilflusso di eccitazione e la corrente di armatura genera la potenza meccanica, come prodotto dicoppia per velocità angolare. La variazione della tensione o della corrente di armatura permettedi comandare, nel modo che vedremo in seguito, queste due grandezze.

    La relazione tra flusso magnetico generato φ e corrente di eccitazione presenta una caratteristicanon lineare, con saturazione; la caratteristica viene linearizzata nell’intorno del punto di lavoro.Se il motore è comandato in armatura, il flusso φ è costante, essendo costante ve o ie.

    Talora vengono usati motori con magneti permanenti al posto del circuito di eccitazione, maquasi mai su robot di una certa potenza, in quanto il flusso φ risulterebbe troppo basso. Undiscorso a parte meriterebbero i motori brushless, dove il circuito magnetico, che nei motori cc èposto sullo statore, viene localizzato sul rotore; si usano in tale caso magneti permanenti realizzaticon materiali a base di terre rare, che possiedono un ottimo rapporto tra il campo magneticoprodotto e il peso. Tuttavia è necessario dotare il circuito di statore, che ora ha il compito di creareil campo elettro-magnetico che trascina il rotore, di opportuni circuiti elettronici di commutazione,che svolgono la stessa funzione svolta, nel classico motore a cc., dal sistema di commutazione aspazzole.

    Nel testo, per ragioni di spazio, ci occuperemo esclusivamente dei motori a corrente continuaclassici.

    1.2.3 Equazioni usate per descrivere il motore cc

    Nella trattazione che segue si sta considerando l’i-esimo giunto del manipolatore, a cui è associatol’i-esimo attuatore; tuttavia, per non appesantire la discussione, si tralascia di indicare il pedicei, tranne quando ciò si rende necessario per una maggior chiarezza espositiva.

    Circuito di eccitazione

    Considerando linearizzata la caratteristica magnetica flusso-corrente, si ha

    φ = Kφie

    dove, essendo ie e Kφ costanti, risulta φ costante.

    Circuito di armatura

    Osservando lo schema in Figura 1.3, scriviamo

    Ladiadt

    = va − Raia − E

    dove, detta ωm la velocità angolare dell’asse motore, si ha

    E = kφωm = Kωωm

  • 1.2. CONTROLLO A GIUNTI INDIPENDENTI 7

    Controllo a Giunti IndipendentiMotore e Braccio iSchema meccanico

    Motore

    Motoriduttore

    InerziaMotore

    InerziaBraccio

    AttritoMotore

    AttritoBracciorapporto

    di riduzioner

    �m

    �r

    � ’r

    N denti

    N’ denti

    Figura 1.2: Schema meccanico del motore in cc che attua il giunto di un manipolatore.

    La corrente ia è legata alla coppia motrice τm, generata nella trasformazione elettro-meccanica,dalla relazione

    τm = k′φia = Kτ ia

    per cui

    ia =τmKτ

    La potenza elettrica entrante vale Eia, la potenza meccanica uscente vale ωmτm; quindi, per gliinevitabili fenomeni di perdite deve risultare Eia ≥ ωmτm, quindi Kω ≥ Kτ e dunque k ≥ k′. Inmolti motori moderni la differenza percentuale tra k e k′ è dell’ordine di 1 · 10−4.

    Equazioni di equilibrio delle coppie a monte del motoriduttore

    La coppia τp persa nel motore per inerzie ed attriti (considerando semplicemente gli attriti viscosi)è composta di due termini:

    τp := Jmθ̈m + βmθ̇m = Jmω̇m + βmωm

    e la coppia τr resa disponibile al giunto a monte del motoriduttore vale dunque

    τr = τm − τp

    Motoriduttore

    Il motoriduttore è schematizzato in Figura 1.4 da due ruote dentate ideali di raggio ρ e ρ′, rispet-tivamente dal lato motore e dal lato braccio, con numero di denti rispettivamente pari a N e N ′.

    Il numero di denti è proporzionale al raggio, per cui si haρ′

    ρ=

    N ′

    N.

  • 8 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

    Figura 1.3: Schema elettromeccanico del motore in cc che attua il giunto di un manipolatore.

    Le grandezze che compaiono dal lato motore (al primario) sono senza apice; le grandezze checompaiono dal lato braccio (al secondario) sono indicate con un apice ′ .

    Si definisce rapporto di trasformazione il numero r = N ′/N (che si aggira su valori dell’ordinedi 50 ÷ 200).

    Poichè durante il moto gli archi sottesi dagli angoli θm e θ′m debbono essere uguali (vedi Figura

    1.4), si ha ρ′θ′m = ρθm e quindi anche ρ′ω′m = ρωm; da queste relazioni segue che ωm = rω

    ′m,

    ovvero ω′m = ωm/r. Risulta che la velocità dal lato giunto è minore della velocità dal lato motorenel rapporto 1/r (da cui il nome di “scatole di riduzione” o “motoriduttori”).

    Esistono altri tipi di motoriduttori, detti harmonic drives, basati su una ruota dentata flessibileche, guidata da un generatore armonico di forma elissoidale, ingaggia i denti di un ruota rigida. Sipuò dire che questo tipo di motoriduttore presenta minor ingombro a parità di rapporto di ridu-zione, permette facilmente di scegliere se invertire o no il senso di rotazione del secondario rispettoal primario, ma introduce anche notevoli attriti e flessibilità, che sono difficilmente modellabili eproducono problemi per l’accuratezza di posizionamento.

    Questo tipo di motoriduttore non verrà considerato in questa trattazione, dove si suppone laperfetta rigidità delle componenti meccaniche.

    Assumendo un rendimento ideale unitario del motoriduttore (potenza entrante = potenzauscente):

    ωmτr = ω′mτ

    ′r

    si ricava la relazione tra le coppie, dove τ ′r è la coppia resa al braccio a valle del motoriduttore;quindi, ricordando che ωm = rω

    ′m, si può ricavare la relazione

    τ ′r = rτr = r(τm − τp)= r [τm − Jm(rω̇′m) − βm(rω′m)]= rτm − r2(Jmω̇′m + βmω′m)

    Equazioni di equilibrio delle coppie a valle del motoriduttore

    La coppia τ ′r “uscente” dal motoriduttore è la componente i-esima del vettore coppia τ che comparenell’equazione differenziale vettoriale che descrive la dinamica del manipolatore. Riscriviamo qui,per comodità, questa equazione

    τ = H(q)q̈ + C(q, q̇)q̇ + B(q)q̇ + g(q) + J ′F e (1.1)

    dove

    • H(q)q̈ sono le coppie inerziali del manipolatore;

  • 1.2. CONTROLLO A GIUNTI INDIPENDENTI 9

    Figura 1.4: Schema del motoriduttore di giunto.

    • C(q, q̇)q̇ sono le coppie di Coriolis e centrifughe;• B(q)q̇ sono le coppie di attrito viscoso;• g(q) sono le coppie gravitazionali;• J ′F e sono le coppie equivalenti ai giunti che equilibrano le forze (generalizzate) esterne

    che nascono dall’interazione della punta operativa con l’ambiente di lavoro (si intendonoapplicate dal manipolatore sull’ambiente).

    L’elemento i-esimo dell’equazione vettoriale precedente, scritto con la simbologia usata in questocapitolo, risulta essere

    τ ′r,i =

    n∑

    j=1

    Hij q̈j +

    n∑

    j=1

    n∑

    k=1

    hijk q̇j q̇k + gi + βb,iq̇i + τ′F,i (1.2)

    dove si sono indicati rispettivamente con βb,i l’i-esima componente della matrice diagonale B econ τ ′F,i l’i-esima componente del prodotto J

    ′F e. Sviluppando l’equazione e ricordando che qiè l’angolo a valle del motoriduttore, ossia θm/r e che Hii è l’inerzia propria del braccio i-esimo,chiamata anche Jb,i, avremo

    τ ′r,i =

    n∑

    j 6=i

    Hij q̈j + Hiiq̈i

    +

    n∑

    j=1

    n∑

    k=1

    hijkq̇j q̇k + gi + βb,iq̇i + τ′F,i

    = Hiiq̈i + βb,iq̇i +n∑

    j 6=i

    Hij q̈j + τ′C,i + τ

    ′g,i + τ

    ′F,i

    = Jb,iθ̈mr

    + βb,iθ̇mr

    + τ ′M,i + τ′C,i + τ

    ′g,i + τ

    ′F,i (1.3)

  • 10 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

    dove:

    τ ′M,i :=

    n∑

    j 6=i

    Hij q̈j

    è la coppia dovuta agli effetti inerziali di accoppiamento,

    τ ′C,i :=

    n∑

    j=1

    n∑

    k=1

    hijk q̇j q̇k

    è la coppia dovuta agli effetti centrifughi e di Coriolis,

    τ ′g,i := gi

    è la coppia dovuta agli effetti gravitazionali e τ ′F,i è la coppia dovuta agli effetti di interazione conl’ambiente, definita precedentemente.

    A questi può essere aggiunto un termine aggiuntivo per tenere conto di eventuali errori dimodello e/o di misura.

    Viene chiamata genericamente coppia di disturbo strutturato la somma

    τ ′d,i = τ′M,i + τ

    ′C,i + τ

    ′g,i + τ

    ′F,i

    Riportando le coppie sul lato motore del motoriduttore e tralasciando di indicare il pedice i,avremo

    τr =1

    rτ ′r =

    1

    r2

    (Jbθ̈m + βbθ̇m

    )+

    1

    rτ ′d (1.4)

    per cui, ricordando che

    τr = τm − τp = τm −(Jmθ̈m + βmθ̇m

    )

    otterremo:

    τm = τr + τp =

    (1

    r2Jb + Jm

    )θ̈m +

    (1

    r2βb + βm

    )θ̇m +

    1

    rτ ′d (1.5)

    Avendo definito

    τd :=1

    rτ ′d

    Jt :=

    (1

    r2Jb + Jm

    )

    βt :=

    (1

    r2βb + βm

    ),

    possiamo finalmente scrivere

    τm − τd = τp = Jtθ̈m + βtθ̇m (1.6)

    Questa relazione ha un significato fisico molto interessante: essa rivela come a contribure allacoppia persa τp, dovuta all’inerzia totale Jt e all’attrito viscoso totale βt, sia prevalentementel’inerzia del motore Jm e l’attrito viscoso βm dello stesso. La parte di inerzia e attrito dovuti al

    braccio sono ridotti in ragione di1

    r2e si può ragionevolmente dire che l’effetto di variazione di

    inerzia dovuto alla configurazione dell’intera struttura robotica risulta assai poco influente sul mo-dello di coppia del motore. Questo è dovuto esclusivamente all’introduzione dei motoriduttori, cherivestono quindi grande importanza per garantire che semplici architetture di controllo assicurinocomunque buone prestazioni, come vedremo meglio nel seguito.

  • 1.2. CONTROLLO A GIUNTI INDIPENDENTI 11

    1.2.4 Schemi a blocchi

    Gli schemi a blocchi ed i controllori presentati in questa Sezione sono ben noti agli studenti deicorsi di Controlli Automatici, che hanno usato il motore in cc come esempio per progettare vari tipidi reti di compensazione. La trattazione sarà perciò volutamente non approfondita, ma riporteràsolo le nozioni che si ritengono importanti per la comprensione dei metodi di controllo utilizzatidai costruttori di robot.

    Per non appesantire la notazione useremo gli stessi simboli per indicare le grandezze variabilinel tempo e le loro trasformate di Laplace; utilizzando le relazioni viste sopra, e soprattutto

    (sJt + βt)ωm(s) = τm(s) − τd(s)

    otteniamo gli schemi a blocchi in Figura 1.5, che rappresenta l’attuatore ed il carico in catenaaperta; l’anello di velocità con guadagno Kω è insito nella dinamica del motore cc.

    +

    +

    1

    a aR sL+1

    t tsJβ +

    Kτ1

    sav ai mτ

    mω mθ

    Figura 1.5: Schema a blocchi in catena aperta del motore cc.

    La scelta di utilizzare la tensione di armatura va come variabile di comando è una pratica comu-ne dei costruttori europei e giapponesi, mentre i costruttori nordamericani tendono ad utilizzarela corrente d’armatura ia. Nel seguito sarà considerato soltanto il primo caso.

    L’induttanza del circuito di armatura è solitamente molto piccola e viene trascurata, per cuidalle equazioni semplificate, ponendo La ≈ 0,

    va − Raia = Kωωm

    ia =τmKτ

    otteniamova − Ra

    τmKτ

    = Kωωm (1.7)

    e dalle equazioni di equilibrio delle coppie

    τm = τd + Jtω̇m + βtωm

    ricaviamo

    va −RaKτ

    τd =

    [RaKτ

    Jts +

    (Kω +

    RaKτ

    βt

    )]ωm

    Il termineK ′ω := (Kω + Raβt/Kτ )

    è poco diverso da Kω perchèRaβtKτ

    ωm ¿ Kωωmin quanto

    Raia︸ ︷︷ ︸perdite arm.

    coppia attrito︷ ︸︸ ︷βtωmKτ ia︸ ︷︷ ︸

    coppia τm

    ¿ Kωωm︸ ︷︷ ︸f.e.m. arm.

  • 12 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

    In questa diseguaglianza notiamo che le perdite di armatura sono moltiplicate per una costantepiccola (rapporto tra le coppie perse in attriti e coppia motrice generata) e che quindi risulterannomolto minori della forza elettromotrice di armatura; da ciò segue che K ′ω ≈ Kω; tuttavia, nelseguito, useremo sempre il simbolo K ′ω.

    Riordinando le espressioni precedenti, otteniamo(

    RaJtKτK ′ω

    s + 1

    )ωm =

    1

    K ′ωva −

    RaKτK ′ω

    τd

    Ponendo

    T :=RaJtKτK ′ω

    ,

    si ottiene lo schema a blocchi illustrato in Figura 1.6 e le fdt ad anello aperto

    + ( )1

    1K sTω′ +1

    s

    av

    mω mθ

    dK

    Figura 1.6: Schema a blocchi in catena aperta semplificato del motore cc, con La = 0.

    ωm(s)

    va(s):= Gω(s) =

    1

    K ′ω(1 + sT )(1.8)

    eωm(s)

    τd(s):= Gd(s) = −KdGω(s) = −

    T

    Jt(1 + sT )(1.9)

    dove

    Kd :=RaKτ

    .

    Il compensatore viene comunemente progettato con un anello di controllo di velocità ed unanello di controllo di posizione.

    1.2.5 Compensatore di velocità

    Il controllo di velocità di solito consiste in un anello interno (spesso venduto con il motore) in cuiil segnale di velocità viene misurato mediante una dinamo tachimetrica, un encoder oppure unresolver; il guadagno della tachimetrica è fissato dal costruttore e vale Kt. In catena diretta sipone un amplificatore di tensione con guadagno KD (si veda Figura 1.7 e Figura 1.8 per le fdt adanello aperto).

    Le fdt risultanti, considerando ωm(t) come uscita, sono:

    ωm(s)

    vr(s):= G′ω(s) =

    αKDK ′ω(1 + sαT )

    eωm(s)

    τd(s):= G′d(s) = −

    αKdK ′ω(1 + sαT )

    = − KdKD

    G′ω(s) = −αT

    Jt(1 + sαT )

  • 1.2. CONTROLLO A GIUNTI INDIPENDENTI 13

    +( )G sω 1

    s

    av

    mω mθ

    dK

    DK

    tK

    +rv e

    Figura 1.7: Schema a blocchi con compensatore di velocità. Caso di guadagno Kt fissato dalcostruttore e KD fissato dal progettista.

    +( )G sω′ 1

    s

    rv

    mω mθ

    d

    D

    K

    K

    Figura 1.8: Schema a blocchi con compensatore di velocità. Funzioni di trasferimento ad anelloaperto.

    dove vr è la tensione nominale di riferimento e

    α =K ′ω

    K ′ω + KDKt< 1. (1.10)

    La struttura della fdt G′ω(s) è la stessa di quella senza l’anello di retroazione, ossia Gω(s), mal’introduzione di quest’ultimo ha l’effetto di:

    • ridurre la costante di tempo, in quanto αT < T ,

    • ridurre l’effetto della coppia τd sull’uscita,

    • ridurre le eventuali non linearità dell’amplificatore KD,

    • facilitare la sintonizzazione del guadagno totale, agendo sul valore di KD, essendo Ktdifficilmente variabile.

    In Figura 1.9 è illustrato lo schema a blocchi nel caso in cui il guadagno Kt della tachimetricavenga considerato unitario.

  • 14 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

    +( )G sω 1

    s

    av

    mω mθ

    dK

    DK

    +rv e

    Figura 1.9: Schema a blocchi con compensatore di velocità: caso con guadagno Kt unitario e KDfissato dal progettista.

    1.2.6 Compensatore di posizione

    Oltre all’anello di velocità si aggiunge anche un anello di posizione sull’angolo θm con guadagnoKP (Figura 1.10).

    +( )G sω 1

    s

    av

    mω mθ

    dK

    DK

    tK

    +ePK

    +rθ

    Figura 1.10: Schema a blocchi con compensatore di posizione.

    Le fdt risultano essere:θm(s)

    θr(s):= G1(s) =

    K

    s2 + s/αT + K(1.11)

    eθm(s)

    τd(s):= G2(s) = −

    1

    Jt(s2 + s/αT + K)(1.12)

    dove

    K =KDKPTK ′ω

    =KDKP Kτ

    RaJt

    è il guadagno ad anello aperto e θr è l’angolo nominale di riferimento.

  • 1.2. CONTROLLO A GIUNTI INDIPENDENTI 15

    La funzione di trasferimento è del second’ordine, con smorzamento

    ζ =1

    2αT√

    K=

    KτK′ω

    2α√

    RaKDKP Kτ· 1√

    Jt

    e frequenza naturale

    ωn =√

    K =

    √KDKP Kτ

    Ra· 1√

    Jt

    Lo smorzamento e la frequenza naturale dipendono in modo inversamente proporzionale dal-la radice del momento d’inerzia Jt che può variare nel tempo, perchè funzione degli angoli qi;

    ricordiamo infatti che Jt =

    (1

    r2Jb + Jm

    )e Jb = Hii(q).

    Si può ovviare a questo problema calcolando il momento d’inerzia massimo Jt,max, quindiaggiustare i guadagni KD e KP in modo che in queste condizioni ζ sia tale da non dare alcunpicco nella risposta al gradino (ζ ≥ 0.707).

    Un altro modo, più complesso dal punto di vista computazionale, consiste nello stimare il mo-mento d’inerzia Jt(q(t)) ad intervalli prefissati e quindi adattare KD e KP per avere le prestazionidesiderate (controllo adattativo).

    1.2.7 Prestazioni a regime

    Definendo l’errore angolare come differenza tra valore di riferimento e valore misurato

    e(t) := qr(t) − q(t) =1

    r(θr(t) − θm(t)) =

    1

    r(θr(t) − G1θr − G2τd)

    avremo chere(s) = [1 − G1(s)] θr − G2(s)τd

    per cui a regime, per t → ∞, supponendo ingresso a gradino θr(s) = 1/s e disturbo a gradinoτd(s) = τd/s, vale la relazione

    e(s) =1

    rJtKτd =

    RarKDKP Kτ

    τd =Ra

    r2KDKP Kτ(τ ′d + τ

    ′e)

    Il termine τ ′e può essere inteso come un disturbo additivo che modellizza tutti quei fenomeni noncompresi negli altri termini (errore di modello trasformato in disturbo additivo, oppure disturbodi segnale); di solito esso viene caratterizzato in modo statistico oppure come appartenente ad uninsieme dato.

    L’errore e(s) sarebbe nullo se limt→∞ τd = 0, mentre sappiamo che, dei termini che compongonoτd, il termine gravitazionale τg è sempre non nullo (gli altri sono nulli in condizioni statiche, cioèper q̇ = q̈ = 0).

    Per contrastare questa coppia di disturbo il controllore deve fornire una tensione di comandoche può generarsi solo se esiste un errore angolare.

    Un modo per eliminare questo errore è stimare l’effetto della gravità precalcolando la coppianecessaria a contrastarlo; questo metodo è complesso in quanto l’effetto della gravità varia alvariare degli angoli di tutti i giunti e non solo di quello considerato.

    Più semplicemente si può aggiungere un compensatore integrale, con guadagno KI , in serieal compensatore PD presente, che diventerebbe cos̀ı un compensatore PID. Un altro modo dieliminare l’effetto gravitazionale consiste nel progettare il manipolatore in modo che sia bilanciatoattraverso contrappesi oppure ricorrendo a bilanciamenti idraulici o pneumatici.

    1.2.8 Rete proporzionale-derivativa

    Quando non si ha a disposizione la misura della velocità angolare, perchè il sensore al giunto èpredisposto per fornire solo la posizione angolare, non è possibile adottare la soluzione che prevede

  • 16 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

    l’anello di velocità. Si può allora introdurre una rete di compensazione proporzionale-derivativa(PD) nel tratto diretto dell’anello di posizione; lo schema di tale rete è riportato in Figura 1.11,dove si è indicato con il simbolo K ′D il guadagno della parte derivativa e con K

    ′P il guadagno della

    parte proporzionale, per distinguerli dagli analoghi guadagni introdotti precedentemente.

    +( )G sω 1

    s

    av

    mω mθ

    dK

    P DK sK′ ′+

    +rv e

    Figura 1.11: Schema a blocchi con compensatore dinamico sulla posizione misurata.

    Dopo un certo numero di operazioni sui blocchi otteniamo

    θm(s)

    θr(s):= G3(s)

    =sK ′D + K

    ′P

    s2TK ′ω + s(K′ω + K

    ′D) + K

    ′P

    =K ′DKτRaJt

    (s + K ′P /K

    ′D

    s2 + s/αT + K ′P Kτ/RaJt

    )(1.13)

    eθm(s)

    τd(s):= G4(s) = −

    1

    Jt

    (1

    s2 + s/αT + K ′P Kτ/RaJt

    )(1.14)

    dove α va calcolato dalla (1.10) avendo posto Kt := 1 e sostituendo K′D al posto di KD.

    Si osserva che le fdt G3(s) e G4(s) non sono molto diverse dalla forma delle precedenti G1(s)e G2(s). La novità più importante sta nella nascita di uno zero in s = −K ′P /K ′D nella G3(s).Si potranno perciò avere picchi rilevanti nella risposta a gradino e, conseguentemente, tempi diassestamento anche piuttosto lunghi.

    Esaminiamo nel dettaglio il denominatore delle fdt G3(s) e G4(s):

    s2 + s1

    αT+

    K ′P KτRaJt

    Risulta perciò

    ω2n =K ′P KτRaJt

    e

    2ζωn =1

    αT=

    Kτ (K′ω + K

    ′D)

    RaJt

    da cui si ricavano

    ζ =Kτ (K

    ′ω + K

    ′D)

    2√

    RaK ′P Kτ· 1√

    Jt(1.15)

    e

    ωn =

    √K ′P Kτ

    Ra· 1√

    Jt(1.16)

  • 1.2. CONTROLLO A GIUNTI INDIPENDENTI 17

    Una rete simile a quella derivativa presentata in Figura 1.11, è schematizzata in Figura 1.12; siosserva una fusione degli schemi di Figura 1.10 e Figura 1.11, in quanto, pur avendo a disposizionela misura di ωm, si preferisce comunque inserire una rete PD nell’anello diretto, per aumentare igradi di libertà del progetto.

    +( )G sω 1

    s

    av

    mω mθ

    dK

    DK

    tK

    +eP DK sK′ ′+

    +rθ

    Figura 1.12: Schema a blocchi con compensatore dinamico sulla posizione misurata e guadagnostatico di velocità.

    Possiamo paragonare gli schemi di Figure 1.10, 1.11 e 1.12, esplicitando nei tre casi il valoredella tensione di armatura va (avendo indicato, per semplicità, e(t) = θr(t) − θm(t)):

    • Retroazione di velocità e posizione (Figura 1.10):

    va(t) = KDKP e(t) − KDKtωm(t)

    • Retroazione di posizione e rete PD (Figura 1.11):

    va(t) = K′P e(t) + KD ė(t)

    • Retroazione di velocità e posizione e rete PD (Figura 1.12):

    va(t) = KDK′P e(t) + KDK

    ′D ė(t) − KDKtωm(t)

    = KDK′P e(t) + KDK

    ′Dωr(t) − (KDK ′D + KDKt) ωm(t)

    = KDK′P e(t) + KDK

    ′Dωr(t) − KDK ′D (1 + Kt/K ′D) ωm(t).

    Il primo caso è riconducibile al secondo quando ωr = 0; lo schema è indicato quando si esegue unposizionamento punto-punto con velocità finale nulla.

    Il terzo caso è una generalizzazione del secondo e permette al progettista una maggior libertàdi progetto.

    1.2.9 Considerazioni pratiche

    In un’applicazione reale ci si allontana dal modello teorico a causa delle dinamiche “parassite”, cioèdi quelle parti del processo che, pur essendo per loro natura descrivibili con equazioni differenziali,vengono approssimate con semplici blocchi proporzionali. Caso tipico è il circuito di armatura,dove l’induttanza La, essendo molto piccola, viene considerata nulla ed il polo elettrico in s =−Ra/La viene mandato a −∞. Invece, in pratica, il valore assunto dall’induttanza può assumerevalori compresi da 0.1mH a 5mH.

    Altri casi di non corrispondenza tra modello e sistema reale hanno la loro origine nella presenzadi funzioni non lineari che vengono approssimate con blocchi lineari.

    Nel seguito considereremo principalmente i seguenti casi di dinamiche parassite o non lineari:

  • 18 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

    • presenza sull’anello diretto di attuatori saturanti;

    • presenza nella struttura meccanica di elasticità (soprattutto negli organi di trasmissione delmoto);

    • presenza di attriti non lineari nei giunti;

    • presenza nell’anello di compensazione di amplificatori di potenza con banda passante finita.

    Attuatori saturanti

    La presenza di saturazioni nell’anello di retroazione viene modellata inserendo nell’anello direttoun blocco non lineare che realizza la seguente funzione tra ingresso u(t) e uscita y(t)

    y(t) =

    smax se u(t) > umaxku(t) se umin ≤ u(t) ≤ umaxsmin se u(t) < umin

    Flessibilità del giunto

    La presenza dei motoriduttori e di altri organi di trasmissione introduce un’elasticità strutturalecon le conseguenti risonanze, sempre deleterie per l’affaticamento degli organi meccanici e dellastruttura.

    Gli effetti di risonanza possono venire attenuati progettando opportunamente la banda passantedel sistema controllato. Sappiamo che questa non deve essere troppo bassa, cosa che renderebbe larisposta del sistema piuttosto lenta, ma neppure troppo alta per non eccitare appunto le dinamicheelastiche trascurate.

    Per non eccitare le frequenze di risonanza strutturali è opportuno che la banda passante, cheper semplicità uguagliamo alla pulsazione naturale ωn, non sia maggiore di 0.5ωr, dove ωr è lapulsazione di risonanza strutturale del manipolatore.

    Quest’ultima dipende dal materiale impiegato e si ricava assumendo un semplice modellodinamico di sistema elastico, non smorzato e non forzato da coppie esterne:

    Jtθ̈m(t) + ktθm(t) = 0

    dove kt è la costante di elasticità (rigidità) del giunto; quindi la pulsazione naturale del sistemavale

    ωr =

    √ktJt

    La variazione del momento di inerzia del manipolatore influisce quindi anche sulla pulsazionedi risonanza strutturale e conseguentemente sulla specifica relativa alla banda di frequenza delsistema controllato.

    Se, con un momento d’inerzia noto J0, viene misurata la pulsazione di risonanza strutturaleω0, quella che si avrebbe per Jt si può ricavare dalla relazione seguente:

    ωr = ω0

    √J0Jt

    Se, come richiesto, si pone ωn < 0.5ωr, avremo

    √K ′P KτRaJt

    < 0.5

    √ktJt

    da cui si ricava un limite superiore al valore di K ′P ; ad esempio, nel caso di G3(s) data dalla (1.13),da (1.16) avremo

    √K ′P < 0.5

    √ktRaKτ

    → K ′P <ktRa4Kτ

  • 1.2. CONTROLLO A GIUNTI INDIPENDENTI 19

    oppure √K ′P < 0.5

    √RaKτ

    ω0√

    J0 → K ′P <RaJ0ω

    20

    4Kτ(1.17)

    Un’indicazione sul limite di K ′D può essere ottenuta da (1.15), ponendo ζ = 0.7 e sostituendoal posto di K ′P il suo valore massimo ottenuto da (1.17), si può calcolare il limite inferiore di K

    ′D.

    Attriti non lineari nei giunti

    Tra gli effetti di attrito più “fastidiosi” da compensare, si possono considerare gli attriti coulom-biano e di primo distacco, che rendono la relazione tra velocità del giunto e la forza resistente nonlineare e discontinua nell’origine (velocità nulla); ne segue che la relazione tra forza esercitata sulgiunto e forza risultante presenta una banda morta.

    La compensazione di tali effetti non lineari esula dalla presente trattazione, ma è comunqueimportante evidenziare che questi effetti, se non compensati, rendono impreciso il controllo di posi-zione di un manipolatore, specialmente a velocità molto basse, dove si può osservare l’instaurazionedi cicli limite.

    Amplificatori di potenza

    Nell’anello di regolazione il guadagno KD è realizzato con un amplificatore di potenza reale,con una banda passante limitata, che deve essere perciò considerata, cos̀ı come devono essereconsiderate anche altre eventuali dinamiche “nascoste” nei guadagni degli anelli di regolazione.

  • 20 CAPITOLO 1. CONTROLLO LINEARE DI MANIPOLATORI RIGIDI

  • Capitolo 2

    Controllo non lineare dimanipolatori rigidi

    Abbiamo visto nei paragrafi precedenti che l’architettura per il controllo a giunti indipendentipresuppone solamente la misura delle coordinate “locali” qi e q̇i. Questa tecnica ha perciò ilvantaggio di essere molto semplice da realizzare e non troppo approssimata se, come spesso accade,si utilizzano motoriduttori con alti valori di r e si limitano le velocità angolari, per ridurre al minimogli effetti di Coriolis e centrifughi, che sono considerati come disturbi.

    Tuttavia questo metodo presenta alcuni svantaggi; si è visto infatti nel Paragrafo 1.2.3 che lacoppia di disturbo è composta da quattro termini

    rτd(t) = τ′M (t) + τ

    ′C(t) + τ

    ′g(t) + τ

    ′F (t)

    Questo disturbo potrebbe essere compensato se si sfruttasse in qualche modo il fatto che esso ècomposto da termini che dipendono in modo noto dalla struttura geometrica e dinamica del robot.

    Su questo principio generale si basa un metodo — o meglio una classe di metodi — di controlloche prende il nome di metodo della dinamica inversa (inverse dynamics method), o alternativamentedi metodo della coppia calcolata (computed torque method); questi metodi sono cos̀ı chiamatiperchè, partendo dalla conoscenza delle variabili giunto, ricavano il segnale della coppia di ingressodell’equazione differenziale del manipolatore (che è il tipico problema dinamico inverso).

    A seconda delle variabili giunto utilizzate — variabili di riferimento oppure grandezze mi-surate — questi metodi sono rispettivamente di tipo feedforward o feedback. Nel seguito, dopol’impostazione generale del problema, analizzeremo brevemente entrambe le tecniche.

    Il metodo della dinamica inversa appartiene alla classe più generale dei metodi di controllo nonlineare mediante linearizzazione globale ingresso–uscita.

    2.0.10 Equazioni dinamiche in presenza di attuatori

    Per impostare formalmente il problema occorre riprendere l’espressione della coppia data in (1.1) edincludervi i termini di coppia che nascono dalla dinamica degli attuatori. Per comodità riportiamotutte le grandezze al secondario dei motoriduttori, omettendo però, per brevità, il simbolo “′”:

    H(q)q̈(t) + C(q, q̇)q̇(t) + B(q)q̇(t) + g(q) + J ′(q)F e(t) = Rm(τm(t) − τ p(t)) (2.1)

    dove F e è la forza generalizzata applicata dalla punta del manipolatore sull’ambiente esterno, Rmè la matrice diagonale dei rapporti di motoriduzione

    Rm =

    r1. . .

    rn

    21

  • 22 CAPITOLO 2. CONTROLLO NON LINEARE DI MANIPOLATORI RIGIDI

    mentre τm(t) è il vettore delle coppie motrici a monte dei motoriduttori, τp(t) è il vettore dellecoppie perse nel motore per inerzie ed attriti a monte dei motoriduttori.

    Nel seguito eviteremo di indicare la dipendenza delle varie grandezze dal tempo t, salvo quandociò si renderà necessario per ragioni di chiarezza.

    Poichè Rmτ p = Rm(Jmq̈m + Bmq̇m), q̈m = Rmq̈ e q̇m = Rmq̇, risulta

    Rmτ p = R2m(Jmq̈ + Bmq̇)

    dove Jm = diag(Jm,1, . . . , Jm,n) e Bm = diag(βm,1, . . . , βm,n). Dalle relazioni riportate nelParagrafo 1.2.3 si ricava anche

    Rmτm = RmKava − R2mKωq̇

    dove le Ka e Kω sono matrici diagonali di guadagni

    Ka :=

    . . .Kτ,iRa,i

    . . .

    Kω :=

    . . .Kτ,iKω,i

    Ra,i. . .

    e va è il vettore delle tensioni di armatura degli attuatori.

    L’equazione (2.1) pertanto si riduce alla seguente

    H(q)q̈ + [C(q, q̇) + B(q)] q̇ + g(q) + J ′F e = RmKava − R2mKωq̇ − R2m(Jmq̈ + Bmq̇) (2.2)

    ovvero, avendo indicato le coppie di comando con uc, dove si pone uc := RmKava, si ha:

    [H(q) + R2mJm

    ]q̈ +

    [C(q, q̇) + B(q) + R2m (Bm + Kω)

    ]q̇ + g(q) + J ′F e = uc (2.3)

    Possiamo ora semplificare le notazioni nel modo seguente; avendo definito:

    M(q) := H(q) + R2mJm

    h(q, q̇) := [C(q, q̇) + Bt(q)] q̇(t) + g(q)

    e dove

    Bt(q) := B(q) + R2m (Bm + Kω)

    si riscrive (2.3) come

    M(q)q̈(t) + h(q, q̇) + J ′F e = uc (2.4)

    Spesso si fa l’ipotesi che, in mancanza delle forze F e scambiate con l’ambiente esterno, l’even-tuale massa presente sulla punta operativa del manipolatore (dovuta alla presenza di un attrezzoo altro), sia conglobata nel termine gravitazionale g, per cui l’equazione precedente si semplificaulteriormente, diventando

    M(q)q̈(t) + h(q, q̇) = uc (2.5)

  • 23

    2.0.11 Metodo della dinamica inversa

    Il metodo della dinamica inversa consiste essenzialmente nel progettare il vettore di controllo ucnel modo seguente

    uc := M̂(q̈r − vc) + ĥ (2.6)dove vc è un ulteriore vettore di accelerazioni di comando (da progettare), q̈r è l’accelerazio-

    ne di riferimento, mentre M̂ e ĥ rappresentano i valori “stimati” delle corrispondenti M(q) eh(q, q̇). I valori stimati possono essere eventualmente ottenuti o fissati dal progettista medianteuna semplificazione di un modello dinamico più complesso.

    Sostituendo la (2.6) nella (2.5) si ottiene

    M(q)q̈ + h(q̇, q) = M̂(q̈r − vc) + ĥ (2.7)

    ovveroq̈ = M(q)−1M̂(q̈r − vc) − M(q)−1∆h(q, q̇)

    avendo posto ∆h := h − ĥ. Lo schema a blocchi risultante è illustrato in Figura 2.1.

    ROBOTROBOTM̂

    +

    +

    +

    q�

    qcu

    cv

    rq��

    Figura 2.1: Schema a blocchi del controllo di dinamica inversa.

    Sommando e sottraendo al secondo termine il vettore I(q̈r − vc) possiamo scrivere

    q̈ = (q̈r − vc) + E(q)(q̈r − vc) − M(q)−1∆h(q, q̇) (2.8)

    doveE(q) :=

    (M(q)−1M̂ − I

    )(2.9)

    Se indichiamo con

    η(q, q̇, q̈r, vc) := E(q)(q̈r − vc) − M−1(q)∆h(q, q̇) (2.10)

    il termine non lineare (che potremo chiamare “disturbo strutturato”), avremo finalmente l’e-spressione che lega l’accelerazione q̈ al comando ausiliario vc e all’accelerazione di riferimentoq̈r:

    q̈ = (q̈r − vc) + η(q, q̇, q̈r, vc) (2.11)Per l’impostazione generale del problema di controllo è utile porre il sistema in forma di variabili

    di stato.

    2.0.12 Sistema in variabili di stato

    Scegliendo come variabili di stato le posizioni e le velocità angolari del manipolatore

    x(t) :=

    [x1(t)x2(t)

    ]=

    [q(t)q̇(t)

    ]

  • 24 CAPITOLO 2. CONTROLLO NON LINEARE DI MANIPOLATORI RIGIDI

    possiamo scrivere, utilizzando la (2.11), l’equazione matriciale del sistema in presenza di controllodi dinamica inversa:

    ẋ = Ax + B(q̈r − vc) + Bη(q, q̇, q̈r, vc) (2.12)

    dove

    A =

    [0 In0 0

    ]B =

    [0

    In

    ]

    e In è la matrice identità (n × n).Un altro modo per analizzare efficacemente le caratteristiche del controllo non lineare è quello

    di descrivere la dinamica errore del manipolatore; se assumiamo che siano dati i riferimenti diposizione qr(t), di velocità q̇r(t) e di accelerazione q̈r(t), si può definire l’errore e le sue derivatenel modo seguente

    e(t) := qr(t) − q(t)ė(t) := q̇r(t) − q̇(t) (2.13)ë(t) := q̈r(t) − q̈(t)

    Avendo definito lo stato errore ε(t) come

    ε(t) :=

    [ε1(t)ε2(t)

    ]=

    [e(t)ė(t)

    ]

    si ha dalle (2.11) e (2.13) il sistema errore in variabili di stato:

    ε̇ = Aε + Bvc − Bη(q, q̇, q̈r, vc) (2.14)

    Dalla (2.14) appare chiaro che il sistema presenta una nonlinearità determinata dall’iniezionedel disturbo strutturato η, che è definito a partire da alcune funzioni nonlineari di q, q̇ e q̈r.Inoltre η è anche funzione di vc, il che rende assai più complesso il progetto di controllo.

    In generale l’approccio usato per controllare il sistema, cos̀ı come risulta espresso dalle (2.12)o (2.14) è il seguente:

    1. Progettare il comando vc come uscita di un controllore dinamico, descritto da un sistemacon stato ausiliario ξ(t), di dimensioni 2n

    ξ̇(t) = Fξ(t) + Gε(t)

    vc(t) = Hξ(t) + Lε(t) (2.15)

    2. Verificare la stabilità del sistema controllato risultante. Non sempre si riesce a dimostrarel’asintotica stabilità del sistema o dell’errore per qualunque traiettoria di riferimento qr(t),q̇r(t) e q̈r(t); allora ci si “accontenta” di verificare altri tipi di stabilità, ad esempio la stabi-lità ingresso–uscita (uscita limitata per ingresso limitato), oppure la proprietà di uniformeasintotica limitatezza dello stato.

    La struttura del controllo che ne deriva è basata su due anelli:

    anello interno o inner loop, nonlineare, che ha lo scopo di linearizzare globalmente il sistemaingresso–uscita, producendo un sistema lineare, ma instabile;

    anello esterno o outer loop, lineare, di solito di struttura semplice, tale da stabilizzare e disac-coppiare il sistema lineare ottenuto in precedenza.

    Analizziamo ora in dettaglio due casi possibili: quello in cui si ha esatta cancellazione dellenon linearità e quello in cui la cancellazione sia soltanto approssimata.

  • 2.1. LINEARIZZAZIONE ESATTA 25

    2.1 Linearizzazione esatta

    Si ha linearizzazione esatta se sono verificate le due condizioni seguenti

    Condizione 1: M̂ = M(q)

    Condizione 2: h(q, q̇) = ĥ ovvero ∆h(q, q̇) = 0

    Queste due condizioni implicano che sia

    E(q) = O ∀q(t)

    e quindi, dalla (2.10),

    η(q, q̇, q̈r, vc) = 0, ∀q(t), q̇(t), q̈r(t), vc(t), t

    Dalla (2.8) otteniamo alloraq̈ = q̈r − vc (2.16)

    Si può quindi dire che mediante la legge di controllo a dinamica inversa, quando vi sia esattaconoscenza dei termini dinamici del robot, il sistema non lineare di partenza viene ricondotto adun sistema lineare di ordine 2n formato da n doppi integratori.

    Il termine di comando vc(t) può essere progettato in vari modi; i più comuni utilizzano unarete di compensazione PD oppure una rete PID.

    2.1.1 Rete PD

    Si pone come segnale di feedback dell’anello esterno

    vc := −KDė − KP e = −Kε (2.17)

    conK = [KP KD]

    ovvero, ricordando la definizione del controllore (2.15), si progetta un semplice controllore linearestatico, con

    F = G = H = 0L = −K

    Sostituendo (2.17) in (2.16), otteniamo

    q̈r − q̈ + KDė + KP e = 0 (2.18)

    ovveroë(t) + KDė(t) + KP e(t) = 0 (2.19)

    che rappresenta un sistema errore, lineare e del second’ordine, in evoluzione libera a partire dallecondizioni iniziali e(0), ė(0), ë(0) (vedere in Figura 2.2 lo schema a blocchi relativo).

    L’equazione di stato corrispondente è

    ε̇ = Acε (2.20)

    con

    Ac = A − BK =[

    0 In−KP −KD

    ]

    Con un’opportuna scelta delle matrici KP e KD, ad esempio entrambe diagonali, si può avereil completo disaccoppiamento della dinamica errore ed i poli del sistema errore posti in modo daottenere le specifiche desiderate di banda e velocità di risposta.

  • 26 CAPITOLO 2. CONTROLLO NON LINEARE DI MANIPOLATORI RIGIDI� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    ROBOTROBOTM

    h

    +

    +

    +

    +

    q�

    qcu

    cv

    rq��

    DK−

    PK−

    +

    +

    +

    +

    +

    +

    rq

    rq�

    Inner Loop

    Outer Loop

    Figura 2.2: Schema a blocchi del controllo di dinamica inversa e rete di compensazione PD.

    In questo caso lo stato del sistema controllato è asintoticamente stabile e asintoticamenteconvergente alla traiettoria desiderata.

    Questa tecnica di controllo assume in letteratura nomi diversi: oltre a metodo della dinamicainversa o metodo della coppia calcolata, possiamo trovare la denominazione inner-loop/outer-loopfeedback oppure two-stage control, oppure ancora global linearization method, linearizing nonlinearcontrol. Queste varie denominazioni mettono in luce la struttura, già descritta, a doppio anello dicontrollo: quello interno, avente struttura non lineare, che ha lo scopo di linearizzare globalmentee disaccoppiare il sistema; quello esterno, di tipo lineare, che ha lo scopo di stabilizzare ed ottenerele specifiche desiderate per il sistema cos̀ı ottenuto.

    2.1.2 Rete PID

    È noto che in un sistema di tipo zero un qualsiasi disturbo costante non può essere perfettamentecompensato da una rete PD. Nel caso di un robot, la coppia gravitazionale, qualora non fosseperfettamente cancellata nel termine h, avrebbe le caratteristiche di un disturbo additivo costante,per cui spesso si preferisce progettare vc come uscita di una rete di compensazione PID

    vc := −KP e − KDė − KI∫

    edt (2.21)

    Riprendendo il sistema (2.15), si vede che ora il controllore è una rete dinamica di ordine n,descritta da

    ξ̇(t) = Gε(t)

    vc(t) = Hξ(t) + Lε(t)

    conG = [In 0]H = −KIL = [−KP − KD]

    Lo schema a blocchi corrispondente è dato in Figura 2.3.

  • 2.1. LINEARIZZAZIONE ESATTA 27� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    ROBOTROBOTM

    h

    +

    +

    +

    +

    q

    qcu

    cv

    rq

    DK−

    PK−

    +

    +

    +

    +

    +

    +

    rq

    rq

    IK

    s

    +

    Figura 2.3: Schema a blocchi del controllo di dinamica inversa e rete di compensazione PID.

    Sostituendo (2.21) in (2.16), otteniamo

    ë(t) + KDė(t) + KP e(t) + KI

    ∫edt = 0

    Passando alle trasformate di Laplace, si ha

    (Is2 + KDs + KP + KI1

    s)e(s) = 0

    Gli zeri del determinante della matrice

    P (s) = Is3 + KDs2 + KP s + KI

    ovvero i poli del sistema errore, sono facilmente specificabili progettando opportunamente KP ,KD e KI .

    L’equazione di stato corrispondente risulta essere

    ξ̇

    ε̇1ε̇2

    =

    0 In 0

    0 0 In−KI −KP −KD

    ξ

    ε1ε2

    2.1.3 Presenza di un disturbo di coppia non strutturato

    Nell’equazione (2.5) non sono stati considerati altri effetti di coppia tranne che quelli strutturati,cioè esattamente modellati dalle equazioni dinamiche rigide del manipolatore.

    Il progettista dovrà tuttavia prevedere in generale la presenza di un segnale additivo di disturbo,agente sul sistema e dovuto alle cause più diverse, quali errori sui segnali di comando, coppie didisturbo non modellate, vibrazioni, incertezza sui parametri geometrici e dinamici, e altro.

    L’equazione (2.5) dovrebbe perciò essere sostituita dalla seguente

    M(q)q̈ + h(q̇, q) = M̂(q̈r − vc) + ĥ + d (2.22)

  • 28 CAPITOLO 2. CONTROLLO NON LINEARE DI MANIPOLATORI RIGIDI

    dove d è il vettore dei disturbi additivi di coppia.

    In questo caso, indicando con

    w(t) := M−1(q)d(t)

    il disturbo di accelerazione, si deve modificare il sistema in variabili di stato dell’errore nel modoseguente:

    ε̇ = Aε + Bvc − Bw (2.23)

    Scegliendo la rete di compensazione PD, avremo

    (Is2 + KDs + KP )e(s) = −w(s)

    mentre, scegliendo la rete di compensazione PID, avremo

    (Is3 + KDs2 + KP s + KI)e(s) = −Iw(s)s

    In entrambi i casi è necessario che il progettista definisca i guadagni KP , KD e KI tenendoconto della matrice di trasferimento P (s) tra disturbo w(s) e errore e(s), mediante le classichetecniche di progetto della sensitività del sistema ad anello chiuso.

    2.2 Linearizzazione approssimata

    Supponiamo ora che le Condizioni 1 e 2 non siano verificate: il termine η non è più nullo e ilsistema errore si scrive ora come

    ε̇ = Aε + B(vc − η) (2.24)

    e il disturbo strutturato η risulta

    η = E(q)(q̈r − vc) − M−1(q)∆h(q, q̇)

    Pertanto il sistema errore evolve in evoluzione forzata, con un termine forzante non lineare chedipende sia dalle variabili giunto, sia dal comando vc e quindi dagli errori ε.

    Infatti si ottiene facilmente la relazione seguente

    ë = vc + E(q)vc − E(q)q̈r + M−1(q)∆h(q, q̇)

    e si vede subito che rispetto al caso in cui si abbia linearizzazione esatta nascono due termini didisturbo: il primo, −E(q)q̈r + M−1(q)∆h(q, q̇), che dipende dal riferimento di accelerazione edalle variabili giunto, il secondo, E(q)vc, che dipende dall’errore ε.

    Ad esempio, se vc = −Kε segue che

    η = E(q)(q̈r + Kε) − M−1(q)∆h(q, q̇) (2.25)

    Il problema di inseguire la traiettoria di riferimento qr(t) e le sue derivate si trasforma dunquenel problema di stabilizzare il sistema non lineare a fronte dei due diversi disturbi.

    Tuttavia il metodo della dinamica inversa è abbastanza robusto anche nel caso di linearizzazionenon esatta, per cui viene usato sia senza ulteriori modifiche, sia con l’aggiunta di un terminerobustificante, come vedremo meglio in seguito.

    Vediamo ora alcune proprietà di stabilità dei metodi più comunemente usati, cioè la rete PDcon compensazione della gravità e il controllo a giunti indipendenti. Successivamente esamineremoil metodo di controllo “robusto”.

  • 2.2. LINEARIZZAZIONE APPROSSIMATA 29

    2.2.1 Rete PD con compensazione della gravità

    Questo è un caso particolare del metodo della dinamica inversa, ottenuto ponendo:

    • M̂ := I

    • ĥ := g(q) − q̈rovvero, nell’anello interno, compensiamo soltanto gli effetti dovuti alla gravità.

    Scegliendo una rete di compensazione PD per il termine vc, sostituendo nelle espressioniprecedenti, si ha, alla fine, la legge di controllo globale

    uc := KDė + KP e + g(q)

    Sostituendo questa legge nell’equazione dinamica del manipolatore, si ottiene

    M(q)q̈ + C(q, q̇)q̇ + Btq̇ + g(q) = KDė + KP e + g(q)

    ovveroM(q)q̈ + C(q, q̇)q̇ + Btq̇ − KDė − KP e = 0 (2.26)

    Supponendo ora che sia q̇r = 0, si ha

    M(q)q̈ + C(q, q̇)q̇ + (KD + Bt)q̇ − KP e = 0 (2.27)

    Questo schema, illustrato in Figura 2.4, è estremamente semplice da realizzare ed ha buoneproprietà di stabilità asintotica, come vedremo ora.� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    ROBOTROBOT

    ( )g q

    +q�

    qcu

    cv

    DK−

    PK−

    +

    +

    +

    +

    +

    rq

    rq

    Outer Loop

    Figura 2.4: Schema a blocchi della dinamica inversa, con rete PD e compensazione della gravità.

    Stabilità dello schema di controllo

    Consideriamo la seguente funzione di Lyapunov candidata

    V (x) =1

    2q̇′M(q)q̇ +

    1

    2e′KP e

  • 30 CAPITOLO 2. CONTROLLO NON LINEARE DI MANIPOLATORI RIGIDI

    essa è sicuramente positiva, perchè la matrice M è definita positiva per ogni q e KP viene sceltatale dal progettista.

    Derivando la V (x) e ricordando che M(q) = H(q) + R2mJm, con Jm costante, otteniamo

    V̇ (x) = q̇′M(q)q̈ +1

    2q̇′Ḣq̇ − q̇′KP e

    ora, poichè occorre verificare che V̇ (x) sia definita negativa lungo le traiettorie del sistema (2.27),sostituiamo al posto di M(q)q̈ la coppia che deriva da (2.27), ossia

    M(q)q̈ = KP e − (KD + Bt)q̇ − C(q, q̇)q̇

    Ne deriva che

    V̇ (x) = q̇′(KP e − (KD + Bt)q̇ − C(q, q̇)q̇) +1

    2q̇′Ḣq̇ − q̇′KP e

    = q̇′KP e − q̇′KP e − q̇′(KD + Bt)q̇ +1

    2q̇′(Ḣ − 2C(q, q̇))q̇

    = −q̇′(KD + Bt)q̇

    L’ultimo passaggio è reso possibile in quanto sappiamo che Ḣ − 2C è una matrice antisimmetrica(vedere il Capitolo 5), per cui V̇ (x) < 0 per ogni q̇ 6= 0.

    Tuttavia quella ottenuta è una forma quadratica in q̇ soltanto, quindi V̇ è solo semidefinitanegativa. Potrebbe infatti esistere un insieme di q̄ 6= 0 tali che V̇ (q̄, q̇) = 0; in questo casoabbiamo soltanto dimostrato la stabilità del sistema ma non la sua stabilità asintotica.

    Per dimostrare l’asintotica stabilità dobbiamo richiamare il Teorema di LaSalle–Krasowski, cheafferma quanto segue:

    Teorema di LaSalle–Krasowski: Dato il sistema dinamico autonomo

    ẋ = f(x) (2.28)

    con punto di equilibrio x̄,se:

    • esiste una funzione V (x) continua insieme alle sue derivate prime,

    • V (x) è definita positiva in x̄

    • V (x) è tale che V̇ (x) ≤ 0 in x̄

    • l’insieme S := {x : V̇ (x) = 0} non contiene traiettorie perturbate, ossia traiettorie 6= x̄.

    allora: x̄ è asintoticamente stabile.In altri termini, il sistema dinamico (2.28) ha x̄ come punto di equilibrio asintoticamente

    stabile se V̇ (x) non si annulla identicamente lungo una qualsiasi soluzione di (2.28), salvo che perla soluzione nulla, ovvero, se l’unica soluzione di (2.28) che soddisfa a V̇ (x) ≡ 0 è la soluzionenulla oppure x̄.

    Applichiamo il teorema al caso in esame: ipotizziamo la condizione V̇ (x) ≡ 0, essa implica

    −q̇′(KD + Bt)q̇ ≡ 0

    quindi q̇ ≡ 0 e conseguentemente q̈ ≡ 0.Consideriamo ora l’equazione dinamica del sistema controllato (2.27)

    M(q)q̈ + C(q, q̇)q̇ + (KD + Bt)q̇ − KP e = 0

    sostituendo q̈ = q̇ ≡ 0, avremoKP e = 0

    che implica e = 0 e quindi q = qr, ∀t

  • 2.2. LINEARIZZAZIONE APPROSSIMATA 31

    2.2.2 Controllo a giunti indipendenti

    Questo è un caso particolare del metodo della dinamica inversa, ottenuto ponendo:

    • M̂ := I

    • ĥ := −q̈rovvero non si progetta alcun anello interno non lineare.

    A parte queste assunzioni, non si ha una differenza rispetto al caso visto nel paragrafo prece-dente, salvo il fatto che le matrici KD e KP sono diagonali, e quindi, come abbiamo visto all’iniziodel Capitolo, ciascun anello usa le coordinate locali (Figura 2.5).� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    ROBOTROBOTq�

    qc c= −u v

    DK−

    PK−

    +

    +

    +

    +

    +

    +

    rq

    rq�

    Outer Loop

    Figura 2.5: Schema a blocchi del controllo di dinamica inversa a “giunti indipendenti”. Le matriciKP e KD sono diagonali.

    Per il resto gode delle buone proprietà di stabilità viste per il caso precedente, purchè sicompensi in qualche modo la gravità.

    Infatti la presenza del termine g(q), se non compensato, porta a scrivere

    V̇ = −q̇′(KD + Bt)q̇ − q̇′g(q)

    e quindi, invece di avere KP e = 0, avremo KP e = g(q), il che implica che q(t) 6= qr(t).Tuttavia, come accennato, compensando opportunamente il termine gravitazionale, ad esempio

    con l’introduzione di un termine integrale nella rete di compensazione, si ha la cancellazione (oalmeno la riduzione) dell’errore di posizione a regime.

    2.2.3 Controllo di dinamica inversa in feedforward

    Questo approccio, che chiamiamo semplicemente della coppia calcolata, consiste nel cercare di

    migliorare le approssimazioni introdotte in M̂ e ĥ dal metodo di controllo a giunti indipendenti.Si pone allora:

    M̂ := M(qr)

    ĥ := h(qr, q̇r)

  • 32 CAPITOLO 2. CONTROLLO NON LINEARE DI MANIPOLATORI RIGIDI

    cioè si usa il modello “esatto” del robot (supponendo di conoscerlo), ma calcolandone i valori sullabase delle grandezze di riferimento, come in Figura 2.6. In questo modo, essendo le grandezze diriferimento di solito disponibili prima che il movimento abbia realmente luogo, si può calcolare

    fuori linea la matrice M̂ ed il vettore ĥ. � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

    ROBOTROBOT( )rM q

    ( ),r rh q q�

    +

    +

    +

    +

    q�

    qcu

    cv

    rq��

    DK−

    PK−

    +

    +

    +–

    +–

    rq

    rq�

    Inner Loop

    Outer Loop

    Figura 2.6: Schema a blocchi del controllo di coppia calcolata e rete di compensazione PD.

    L’errore di approssimazione sarà presumibilmente minore che nel caso precedente, perchè ilcompensatore PD o PID tenderà comunque a portare q(t) → qr, q̇(t) → q̇r e q̈(t) → q̈r. Daun punto di vista operativo, questa tecnica equivale a cercare di cancellare i termini non linearimediante un segnale di compensazione “in avanti”.

    La cancellazione può anche essere parziale, ovvero si possono utilizzare modelli approssimatidella dinamica del robot. Valga per tutti il seguente esempio, in cui si pone

    M̂ :=

    Ĥ11(qr) + r2m,1Jm,1 0

    . . .

    0 Ĥnn(qr) + r2m,nJm,n

    ĥ := R2m(Bm + Kω)q̇r + g(qr)

    Cioè si considerano in M̂ soltanto i termini “locali” della matrice d’inerzia del manipolatore,trascurandone i termini di “accoppiamento” e in ĥ i termini gravitazionali, oltre, chiaramente, aitermini legati alla dinamica degli attuatori.

    2.3 Controllo robusto

    Il progetto di un controllo “robusto” si basa sul fatto che se si conoscessero le stime dei limitientro cui avvengono le variazioni dei