You are on page 1of 107

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/267787776

Appunti del Corso di Modellazione e Simulazione Dinamica dei sistemi


multibody

Article

CITATIONS READS

0 1,139

2 authors:

Monica Malvezzi A. Rindi


Università degli Studi di Siena University of Florence
113 PUBLICATIONS   1,721 CITATIONS    116 PUBLICATIONS   692 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

INBOTS CSA View project

SOMA - Soft Manipulation View project

All content following this page was uploaded by Monica Malvezzi on 28 January 2015.

The user has requested enhancement of the downloaded file.


Appunti del Corso di Modellazione e Simulazione
Dinamica dei sistemi multibody

Monica Malvezzi, Andrea Rindi


Dipartimento di Energetica “Sergio Stecco,” Sezione di Meccanica Applicata
Università di Firenze
via S. Marta 3, 50139 Firenze, Italy
malvezzi@mapp1.de.unifi.it
1

Premessa
Questi appunti riassumono le lezioni del corso di Modellazione e Simulazione dei Sistemi Mec-
canici previsto nei curricola dei Corsi di Laurea Specialistica (3CFU) in Ingegneria Meccanica
ed Energetica dell’Università degli Studi di Firenze. Quanto presentato nei capitoli seguenti
non esaurisce sicuramente le problematiche relative all’analisi dei sistemi multibody, costitu-
isce soltanto una base per la preparazione dell’esame, che può essere integrata con gli appunti
presi durante le lezioni e tramite la consultazione dei testi elencati in bibliografia. Si richiama
l’attenzione soprattutto sul libro [1], che rappresenta un compendio molto esaustivo dello stato
dell’arte nello studio dei sistemi multibody. Gli autori ringraziano tutti coloro che con i loro
suggerimenti hanno contribuito alla stesura degli appunti.
Firenze, 31 gennaio 2008
Monica Malvezzi, Andrea Rindi
Indice

Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1 Introduzione 7
1.1 Problemi di analisi e di sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Dal modello fisico al modello matematico . . . . . . . . . . . . . . . . . . . . 7
1.3 I sistemi multibody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Tipi di problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Problema cinematico . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Problema dinamico . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.3 Altri tipi di problema: sintesi e design . . . . . . . . . . . . . . . . . . 13

2 Rappresentazione degli elementi di un sistema multibody 15


2.1 Coordinate dipendenti e indipendenti . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Coordinate assolute e relative . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.1 Alcuni esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Sistemi piani: coordinate generalizzate . . . . . . . . . . . . . . . . . . . . . 19

3 Cinematica del corpo rigido nello spazio 22


3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Matrice di rotazione - coseni direttori . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Espressione di R per rotazioni attorno agli assi coordinati . . . . . . . 23
3.2.2 Cambio di coordinate tra due terne con la stessa origine . . . . . . . . 25
3.2.3 Proprietà della matrice di rotazione . . . . . . . . . . . . . . . . . . . 26
3.2.4 Angoli di Eulero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.5 Rappresentazione asse/angolo . . . . . . . . . . . . . . . . . . . . . . 32
3.2.6 Parametri di Eulero . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Velocità di un corpo rigido nello spazio . . . . . . . . . . . . . . . . . . . . . 34
3.3.1 Derivata rispetto al tempo della matrice di rotazione . . . . . . . . . . 34
3.3.2 Velocità angolare e angoli di Eulero . . . . . . . . . . . . . . . . . . . 35
3.3.3 Velocità angolare e parametri di Eulero . . . . . . . . . . . . . . . . . 36
3.3.4 Coordinate generalizzate e velocità generalizzate . . . . . . . . . . . . 37

4 Cinematica dei sistemi piani 38


4.1 Sistema delle equazioni di vincolo . . . . . . . . . . . . . . . . . . . . . . . . 38
4.1.1 Vincoli sul sistema meccanico . . . . . . . . . . . . . . . . . . . . . . 38
4.1.2 Gradi di libertà nei sistemi piani . . . . . . . . . . . . . . . . . . . . . 38
4.1.3 Equazioni di vincolo . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.4 Configurazione del meccanismo . . . . . . . . . . . . . . . . . . . . . 40
4.1.5 Velocità del meccanismo . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.6 Accelerazioni del meccanismo . . . . . . . . . . . . . . . . . . . . . . 42

2
INDICE 3

4.2 Coppie cinematiche elementari . . . . . . . . . . . . . . . . . . . . . . . . . . 42


4.2.1 Coppia rotoidale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.2 Coppia prismatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3 Vincoli elementari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.1 Vincoli di moto assoluto . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.2 Vincoli di moto relativo . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4 Coppie superiori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.5 Coppia ad ingranaggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.6 Esempio: robot planare a due gradi di libertà . . . . . . . . . . . . . . . . . . 52
4.7 Esempio: Manovellismo di spinta centrato . . . . . . . . . . . . . . . . . . . 53
4.8 Esempio: quadrilatero articolato . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.8.1 Equazioni di vincolo . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.8.2 Jacobiano delle equazioni di vincolo . . . . . . . . . . . . . . . . . . . 61
4.8.3 Configurazione iniziale . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5 I vincoli: sistemi tridimensionali 66


5.1 Gradi di libertà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2 Sistemi di riferimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.3 Vincoli di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.3.1 Vincolo di ortogonalità - primo caso . . . . . . . . . . . . . . . . . . . 70
5.3.2 Vincolo di ortogonalità - secondo caso . . . . . . . . . . . . . . . . . 71
5.3.3 Vincolo sferico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.3.4 Vincolo di distanza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.3.5 Vincolo di parallelismo - primo caso . . . . . . . . . . . . . . . . . . . 74
5.3.6 Vincolo di parallelismo - secondo caso . . . . . . . . . . . . . . . . . . 74
5.4 Equazioni di vincolo per alcune coppie cinematiche . . . . . . . . . . . . . . . 75
5.4.1 Coppia rotoidale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.4.2 Coppia prismatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4.3 Coppia cilindrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.4.4 Coppia sferica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6 Richiami di dinamica analitica 79


6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2 Il principio dei lavori virtuali . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2.1 Spostamenti virtuali . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2.2 Il principio dei lavori virtuali: enunciato . . . . . . . . . . . . . . . . . 80
6.3 Equivalenza tra “PLV” e formulazione newtoniana per l’equilibrio di un corpo
rigido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.4 Principio di D’Alembert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.5 Principio di D’Alembert-Lagrange . . . . . . . . . . . . . . . . . . . . . . . . 82
6.6 Esempio: Applicazione del Principio di D’Alembert . . . . . . . . . . . . . . . 82
6.7 Principio di Hamilton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.8 Equazioni di Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.9 Equazioni di Lagrange per sistemi non conservativi . . . . . . . . . . . . . . . 87

7 Analisi dinamica di un sistema multibody 88


7.1 Minimizzazione di una funzione soggetta a vincoli . . . . . . . . . . . . . . . 88
7.2 Equazioni di Lagrange per un sistema multibody piano . . . . . . . . . . . . . 88
7.2.1 Calcolo dell’energia cinetica . . . . . . . . . . . . . . . . . . . . . . . 89
INDICE 4

7.2.2 Calcolo dell’energia potenziale della forza peso . . . . . . . . . . . . . 90


7.2.3 Equazioni di moto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.2.4 Matrice di massa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.3 Calcolo delle forze generalizzate . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.3.1 Forza applicata nel baricentro e coppia ortogonale al piano . . . . . . . 90
7.3.2 Forza applicata in un punto generico del corpo i . . . . . . . . . . . . 92
7.3.3 Elementi elastici e viscosi . . . . . . . . . . . . . . . . . . . . . . . . 93
7.4 Sistema di equazioni differenziali . . . . . . . . . . . . . . . . . . . . . . . . 94
7.4.1 Moltiplicatori di Lagrange e reazioni vincolari . . . . . . . . . . . . . . 95
7.4.2 Esempio: Formulazione delle equazioni di moto per un pendolo semplice 95

8 Soluzione delle equazioni della dinamica 98


8.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.2 Formulazione stabilizzata di Baumgarte . . . . . . . . . . . . . . . . . . . . . 99
8.3 Ortogonalizzazione dei vincoli . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.3.1 Vincoli scleronomi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.3.2 Vincoli scleronomi e reonomi . . . . . . . . . . . . . . . . . . . . . . 102
8.4 La formulazione di Udwadia Kalaba . . . . . . . . . . . . . . . . . . . . . . . 103
8.4.1 Il principio di Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Elenco delle figure

1.1 Quadrilatero articolato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


1.2 Configurazione iniziale del sistema, quadrilatero articolato: con il valore assegnato
per θ1 è ammissibile una sola configurazione del meccanismo. . . . . . . . . . . . 10
1.3 Configurazione iniziale del sistema, quadrilatero articolato: con il valore assegnato
per θ1 non è ammissibile nessuna configurazione del meccanismo. . . . . . . . . . 10
1.4 Configurazione iniziale del sistema, quadrilatero articolato: con il valore assegnato
per θ1 sono possibili due configurazioni. . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Spostamento finito del meccanismo: quadrilatero articolato. . . . . . . . . . . . . 11

2.1 quadrilatero articolato: con il valore assegnato per l’angolo θ1 sono possibili due
configurazioni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Schema cinematico di un robot planare a tre gradi di libertà, rappresentazione della
configurazione per mezzo di coordinate relative. . . . . . . . . . . . . . . . . . . 18
2.3 Schema cinematico di quadrilatero articolato, rappresentazione della configurazione
per mezzo di coordinate relative. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Schema cinematico di quadrilatero articolato con giunto prismatico, rappresentazione
della configurazione per mezzo di coordinate relative. . . . . . . . . . . . . . . . 19
2.5 Coordinate generalizzate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6 Trasformazione di coordinate tra terna mobile e terna fissa . . . . . . . . . . . . . 20

3.1 Rotazione attorno a z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


3.2 Rotazione attorno a x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Rotazione attorno a y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4 Cambio di coordinate tra terne ad origine comune. . . . . . . . . . . . . . . . . . 25
3.5 dimostrazione della proprietà di ortogonalit della matrice di rotazione. . . . . . . . 27
3.6 Angoli di Eulero. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.7 Angoli di Eulero: linea dei nodi. . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.8 Rotazioni di Eulero: rotazioni φ e θ. . . . . . . . . . . . . . . . . . . . . . . . 30

4.1 Quadrilatero articolato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39


4.2 Manovellismo di spinta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 Approssimazione della soluzione di un’equazione non lineare per mezzo del
metodo di Newton Raphson. . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.4 Giunto rotoidale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.5 Giunto prismatico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.6 Vincolo sull’ascissa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.7 Vincolo sulla posizione angolare . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.8 Vincolo sulla distanza tra due punti . . . . . . . . . . . . . . . . . . . . . . . . 48
4.9 Coppie superiori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.10 Coppia di ingranaggi e portatreno . . . . . . . . . . . . . . . . . . . . . . . . . 50

5
ELENCO DELLE FIGURE 6

4.11 Manipolatore planare a due gradi di libertà. . . . . . . . . . . . . . . . . . . . . 52


4.12 Manovellismo di spinta centrato: schema cinematico . . . . . . . . . . . . . . 54
4.13 Manovellismo di spinta centrato: configurazione iniziale (punto morto superiore) 57
4.14 Manovellismo di spinta centrato: ascissa del pistone durante la simulazione. . . 58
4.15 Manovellismo di spinta centrato: errore nella stima dell’ascissa del pistone. . . 58
4.16 Manovellismo di spinta centrato: velocità del pistone durante la simulazione. . 59
4.17 Manovellismo di spinta centrato: accelerazione del pistone durante la simulazione. 59
4.18 Quadrilatero articolato, configurazione iniziale. . . . . . . . . . . . . . . . . . 62
4.19 Quadrilatero articolato, errore durante il calcolo della configurazione iniziale. . 62
4.20 Quadrilatero articolato, configurazione iniziale. . . . . . . . . . . . . . . . . . 62
4.21 Quadrilatero articolato, errore durante il calcolo della configurazione iniziale. . 63
4.22 Quadrilatero articolato, simulazione cinematica. . . . . . . . . . . . . . . . . . 63
4.23 Quadrilatero articolato, traiettoria del baricentro della biella. . . . . . . . . . . 63
4.24 Quadrilatero articolato, velocità del baricentro della biella. . . . . . . . . . . . 64
4.25 Quadrilatero articolato, velocità angolare della biella. . . . . . . . . . . . . . . 64
4.26 Quadrilatero articolato, accelerazione del baricentro della biella. . . . . . . . . 64
4.27 Quadrilatero articolato, accelerazione angolare della biella. . . . . . . . . . . . 65

5.1 Coppia rotoidale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67


5.2 Coppia prismatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.3 Coppia cilindrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4 Coppia sferica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5 Riferimento di giunto per il generico corpo rigido i. . . . . . . . . . . . . . . . 68
5.6 Riferimenti di giunto per i corpi i e j: nomenclatura. . . . . . . . . . . . . . . 69
5.7 Prima condizione di ortogonalità. . . . . . . . . . . . . . . . . . . . . . . . . 70
5.8 Seconda condizione di ortogonalità. . . . . . . . . . . . . . . . . . . . . . . . 71
5.9 Vincolo sferico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.10 Vincolo sulla distanza tra due punti. . . . . . . . . . . . . . . . . . . . . . . . 73
5.11 Vincolo di parallelismo tra due vettori, primo caso. . . . . . . . . . . . . . . . 74
5.12 Vincolo di parallelismo tra due vettori, secondo caso. . . . . . . . . . . . . . . 75
5.13 Coppia rotoidale: scelta dei sistemi di riferimento. . . . . . . . . . . . . . . . 76
5.14 Coppia prismatica: scelta dei sistemi di riferimento. . . . . . . . . . . . . . . . 76
5.15 Coppia cilindrica: scelta dei sistemi di riferimento. . . . . . . . . . . . . . . . 77
5.16 Coppia sferica: scelta dei sistemi di riferimento. . . . . . . . . . . . . . . . . . 78

7.1 Forza applicata nell’origine del sistema di riferimento soliale al corpo i e coppia
ortogonale al piano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7.2 Forza applicata in un generico punto P solidale al corpo i . . . . . . . . . . . 91
7.3 Attuatore dinamico lineare tra i corpi i e j. . . . . . . . . . . . . . . . . . . . 93
7.4 Pendolo semplice: sistemi di riferimento e coordinate utilizzati. . . . . . . . . 96
Capitolo 1

Introduzione

1.1 Problemi di analisi e di sintesi


I problemi tipici della Meccanica Applicata si possono dividere in due categorie fondamentali:
• problemi di analisi,
• problemi di sintesi.
Nei problemi di analisi sono di solito dati:
• la struttura del meccanismo;
• la legge di moto di uno o più elementi (nei problemi di cinematica) o le forze/coppie
agenti su uno o più corpi (nei problemi di dinamica);
• le condizioni iniziali del meccanismo.
Utilizzando queste informazioni si risolve (di solito in forma numerica) il problema di analisi
cinematica o dinamica. I risultati del problema di analisi sono la configurazione, la velocità e
l’accelerazione di tutti i corpi del sistema e le forze o coppie che agiscono su di essi.
Nei problemi di sintesi si parte dalle specifiche di progetto del meccanismo, in termini di:
• legge di moto di alcuni elementi;
• vincoli dimensionali ed ingombri;
• forze, coppie, potenze erogate.
La soluzione del problema di sintesi consiste nella definizione di un meccanismo in grado di
soddisfare i requisiti delle specifiche.

1.2 Dal modello fisico al modello matematico


Il modello fisico è una rappresentazione del sistema reale il più possibile simile ad esso nelle
sue condizioni di funzionamento, considerando le caratteristiche significative ai fini dell’analisi,
semplice e facilmente analizzabile con strumenti matematici e numerici. L’abilità del pro-
gettista consiste proprio nel realizzare modelli fisici semplici ma sufficientemente accurati, e
nel contempo adatti ad ottenere facilmente il modello matematico per via analitica o con il
supporto di sistemi di simulazione assistita dal calcolatore.
Dato il modello fisico, il modello matematico può essere ottenuto:

7
CAPITOLO 1. INTRODUZIONE 8

• scrivendo le equazioni della cinematica e della dinamica del sistema, generalmente par-
tendo dalle leggi della meccanica classica (se le equazioni sono risolte analiticamente la
soluzione è esatta; se sono risolte numericamente, la soluzione è approssimata);

• utilizzando programmi di simulazione che ricavano automaticamente le equazioni del


sistema e le risolvano per via numerica (soluzione approssimata).

Dato uno stesso modello fisico, i risultati analitici e numerici devono coincidere, a meno
dell’errore introdotto dal programma di simulazione, che è generalmente trascurabile se tale
programma è affidabile e utilizzato correttamente.
Nel passaggio dal sistema reale al modello numerico si introducono quindi due tipi di
approssimazioni:

• le approssimazioni introdotte nel definire il modello fisico;

• gli errori dovuti ad una soluzione numerica del modello matematico;

Alcune delle approssimazioni che si frequentemente vengono introdotte nel modello fisico
sono:

• considerare corpi rigidi;

• assumere che il sistema non modifichi lambiente circostante;

• trascurare o gli attriti, o modellarli in maniera semplificata (attrito viscoso o coulom-


biano);

• sostituire caratteristiche distribuite con altre concentrate (masse, forze, ecc.);

• ammettere una dipendenza lineare fra variabili del sistema nel campo di funzionamento
considerato (linearità del modello);

• assumere che i parametri caratteristici di un sistema siano invarianti modello rispetto al


tempo;

• trascurare le incertezze ed i disturbi.

E’ evidente che da uno stesso sistema fisico possono essere definiti diversi modelli fisici con
diversi gradi di approssimazione.

1.3 I sistemi multibody


Con il termine sistema multibody si intende un sistema meccanico costituito da un insieme di
corpi rigidi collegati tra loro in modo da avere un moto relativo.
Gli elementi di un sistema multibody sono collegati tra loro da coppie cinematiche o giunti.
Un giunto consente il moto relativo tra due elementi in certe direzioni e lo impedisce in altre.
Gli elementi che costituiscono un sistema multibody sono pertanto:

• corpi (in genere rigidi);

• vincoli o coppie cinematiche;

• forze (esterne).
CAPITOLO 1. INTRODUZIONE 9

Nei simulatori multibody si analizza generalmente il moto di sistemi composti da corpi rigidi,
se la flessibilità dei corpi non può essere trascurata, è possibile ricondurre i corpi flessibili a
sistemi di corpi rigidi uniti da vincoli, elasticità e smorzamenti concentrati, oppure inserire nel
modello multibody un modello di corpo flessibile generato tramite una precedente analisi FEM
(Finite Element Method).
Gli elementi necessari per definire un corpo appartenente ad un sistema multibody sono:

• un sistema di riferimento ad esso solidale, detto sistema di riferimento locale, con


origine nel centro di massa del corpo e assi orientati possibilmente come gli assi principali
d’inerzia del corpo;

• la massa del corpo;

• il tensore d’inerzia del corpo espresso rispetto al sistema di riferimento locale;

• eventuali sistemi di riferimento ausiliari, utili per la definizione dei vincoli;

• la definizione della geometria del corpo non è in genere necessaria, a meno che nel-
ladefinizione dei vincoli non si tenga conto degli eventuali contatti tra i vari corpi.

I vincoli sono dispositivi che limitano il moto relativo tra due o più corpi. Nel modello matem-
atico i vincoli sono rappresentati da equazioni che egano tra loro le variabili che descrivono il
moto del meccanismo.

1.4 Tipi di problema


1.4.1 Problema cinematico
Nei problemi di cinematica viene analizzato il moto del sistema indipendentemente dalle forze
che vi sono applicate, quindi da un punto di vista esclusivamente geometrico.
Nello studio del problema cinematico solitamente è nota la configurazione o il moto di uno
o più membri. Gli elementi del meccanismo di cui è noto il moto vengono detti elementi di
input e sono in numero pari ai gradi di libertà del meccanismo.

1.4.1.1 Definizione della configurazione iniziale


Il problema della definizione della configurazione iniziale del meccanismo consiste nel deter-
minare, a partire dalla configurazione degli elementi di input, una configurazione dell’intero
sistema compatibile con i vincoli su di esso imposti.
La soluzione del problema non è immediata a causa della complessità delle equazioni che
rappresentano i vincoli imposti dalle coppie cinematiche. Il problema si riconduce infatti alla
soluzione di un sistema di equazioni algebriche in genere fortemente non lineare e quindi di
difficile soluzione. Si possono avere le seguenti situazioni:

• il problema può ammettere una soluzione;

• il problema può non ammettere soluzione;

• il problema può ammettere più di una soluzione.


CAPITOLO 1. INTRODUZIONE 10

Il problema si manifesta anche per i cinematismi più semplici. Consideriamo ad esempio un


quadrilatero articolato piano, cinematismo caratterizzato come noto quattro elementi (di cui
uno fisso) collegati tra loro da quattro coppie rotoidali e pertanto dotato di un solo grado
di libertà (vedi figura 1.1), si suppone che l’elemento di input sia la manovella OA, la sua
configurazione è identificata dall’angolo θ1 della coppia rotoidale in O.
Nella figura 1.2 è riportato il caso in cui, per il valore assegnato di θ1 , il cinematismo può
assumere una sola configurazione. Questa possibilità si verifica nel caso limite in cui i segmenti
AB e O1 B sono allineati.
Nella figura 1.3 è riportato il caso in cui, per il valore assegnato di θ1 non è ammessa
nessuna configurazione del meccanismo, nella figura 1.4 è riportato infine il caso in cui, per il
valore assegnato di θ1 sono ammesse due possibili configurazioni.

Figura 1.1: Quadrilatero articolato.

Figura 1.2: Configurazione iniziale del sistema, quadrilatero articolato: con il valore assegnato per θ1 è
ammissibile una sola configurazione del meccanismo.

Figura 1.3: Configurazione iniziale del sistema, quadrilatero articolato: con il valore assegnato per θ1
non è ammissibile nessuna configurazione del meccanismo.

All’aumentare della complessità del meccanismo aumenta ovviamente il numero di possibili


soluzioni del problema.
CAPITOLO 1. INTRODUZIONE 11

Figura 1.4: Configurazione iniziale del sistema, quadrilatero articolato: con il valore assegnato per θ1
sono possibili due configurazioni.

1.4.1.2 Spostamento finito del meccanismo


In questo caso si vuole definire la configurazione del sistema in seguito ad uno spostamento
finito degli elementi di input, a partire da una configurazione iniziale nota. Dal punto di
vista matematico, anche in questo caso il problema si riconduce alla soluzione di un sistema
algebrico di equazioni non lineari, ma rispetto al caso precedente la ricerca della soluzione
risulta semplificata dalla conoscenza della configurazione iniziale, che può essere utilizzata
come punto di partenza della procedura iterativa per la soluzione numerica del sistema di
equazioni non lineari.
Nella figura 1.5 si riporta l’esempio di movimento finito per un quadrilatero articolato.

Figura 1.5: Spostamento finito del meccanismo: quadrilatero articolato.

1.4.1.3 Analisi della velocità e dell’accelerazione


Una volta nota la configurazione del sistema, la velocità e l’accelerazione degli elementi di
input, il problema consiste nella definizione delle velocità e delle accelerazioni di tutti gli
elementi del meccanismo. Rispetto ai problemi visti in precedenza, l’analisi della velocità
e dell’accelerazione risulta di più semplice soluzione, in quanto, come vedremo nei capitoli
successivi, si riconduce alla soluzione di un sistema di equazioni lineari.
Come noto per definire la velocità e l’accelerazione di tutti i punti solidali ad un corpo
rigido è necessario conoscere la velocità di uno dei punti, la velocità angolare e l’accelerazione
angolare. Indicando con p e q le coordinate di due generici punti P e Q, con ω la velocità
CAPITOLO 1. INTRODUZIONE 12

angolare e con ω̇ l’accelerazione angolare, risulta:


vQ = vP + ω ∧ (q − p) (1.1)
aQ = aP + ω ∧ (ω ∧ (q − p)) + ω̇ ∧ (q − p) (1.2)

1.4.1.4 Simulazione cinematica


La simulazione cinematica permette di conoscere le caratteristiche del moto (configurazione,
velocità e accelerazione) di tutti gli elementi che costituiscono il sistema multibody una volta
note le leggi di moto degli elementi di input. La simulazione cinematica di fatto comprende
tutti i problemi visti in precedenza.
La simulazione cinematica permette di ottenere utili informazioni sul moto del meccanismo,
può quindi essere utilizzata ad esempio per analizzare le traiettorie di ogni elemento, per
identificare collisioni, interferenze e cosı̀ via.
Dal punto di vista matematico il problema può essere visto come la successione di una
serie di spostamenti finiti.

1.4.2 Problema dinamico


In generale il problema dinamico risulta più difficile da risolvere rispetto a quello cinematico
in quanto coinvolge le forze che agiscono sul meccanismo e le caratteristiche inerziali (massa
e tensore di inerzia) di ognuno degli elementi che lo compongono.

1.4.2.1 Equilibrio del sistema in condizioni statiche


Il problema consiste nel definire la configurazione del sistema tale da garantirne l’equilibrio
sotto l’azione delle forze gravitazionali, delle forze esterne, delle forze esercitate dagli elementi
elastici e viscosi. La soluzione dipende ovviamente dalla massa e dalla posizione del baricentro
di ogni elemento.
Il problema si riconduce alla soluzione di un sistema algebrico di equazioni in generale non
lineare, anche in questo caso quindi si possono avere più soluzioni.

1.4.2.2 Analisi delle vibrazioni del sistema


Il problema è legato all’analisi precedente e consiste nello studio dei movimenti del meccanismo
in un intorno della configurazione di equilibrio. Da questa analisi è possibile definire le pulsazioni
naturali e i modi del sistema.
Il problema viene risolto per mezzo della linearizzazione delle equazioni di moto degli
elementi del sistema in un intorno della configurazione di equilibrio. L’analisi è condotta
quindi risolvendo un sistema di equazioni differenziali lineari a coefficienti costanti.

1.4.2.3 Problema dinamico inverso


Il problema dinamico inverso consiste nel determinare il sistema di forze e coppie in grado di far
assumere al sistema un moto assegnato. Per la risoluzione del problema è necessario conoscere
le velocità e le accelerazioni di tutti gli elementi del sistema, in modo da poter calcolare le
forze di inerzia che dovranno essere equilibrate dalle forze esterne e vincolari.
La soluzione della dinamica inversa consente di conoscere le forze e le coppie a cui è
soggetto un sistema multibody di cui è noto il movimento e può essere utilizzato ad esempio
per calcolare le azioni di controllo da applicare agli attuatori del sistema per ottenere il moto
desiderato.
CAPITOLO 1. INTRODUZIONE 13

1.4.2.4 Problema dinamico diretto (simulazione dinamica)


Nel problema dinamico diretto viene calcolato il moto di un sistema multibody conoscendo le
forze esterne che agiscono su di esso. Lo studio della dinamica diretta è molto importante
perché consente di simulare e prevedere il moto effettivo del sistema sotto l’azione di forze
note.
La simulazione dinamica viene effettuata mediante l’integrazione di un sistema di equazioni
differenziali generalmente non lineare. La soluzione viene determinata pertanto per mezzo di
procedure numeriche. Il problema è di solito complesso e pesante dal punto di vista com-
putazionale e per questo particolare cura deve essere posta nella scelta del tipo di algoritmo
per la risoluzione.

1.4.2.5 Problema dinamico diretto e inverso per sistemi multibody con elementi non
perfettamente rigidi
I sistemi meccanici reali sono costituiti da elementi che possono essere considerati rigidi solo in
prima approssimazione. Per alcuni tipi di analisi e per particolari applicazioni, ad esempio nelle
strutture per applicazioni spaziali, nella robotica, nelle macchine funzionanti ad alta velocità,
è necessario tener conto anche della deformabilità dei corpi che costituiscono il meccanismo.
Un corpo può essere considerato rigido se la distanza tra due qualsiasi punti ad esso
appartenenti rimane costante durante il moto. Se il corpo è deformabile lo studio dinamico si
complica, dato che oltre alle equazioni della dinamica si devono considerare le equazioni che
descrivono la deformazione di ciascun elemento.

1.4.2.6 Percussioni e impatti


Un altro interessante problema dinamico consiste nella determinazione della risposta di un
sistema multibody ad una percussione, ovvero ad una forza caratterizzata da notevole entità
che agisce per un tempo brevissimo. La caratteristica che permette di quantificare le azioni di
questo tipo è l’impulso, ovvero l’integrale della forza nel tempo.
Una caratteristica delle sollecitazioni di tipo impulsivo è che producono una discontinuità
nella distribuzione delle velocità del sistema, la cui entità dipende appunto dall’impulso della
forza applicata.
Dal punto di vista pratico l’analisi della risposta del sistema ad una percussione non è
molto frequente, dato che molto raramente si hanno a disposizione dati affidabili relativi alla
forza da applicare.
Il problema dell’impatto o dell’urto è dal punto di vista pratico più importante. L’impatto
consiste nell’analisi della risposta del sistema in seguito alla collisione tra due o più corpi.
Anche la collisione implica una discontinuità nella distribuzione della velocità, dovuta al fatto
che nel punto in cui avviene l’impatto nascono forze di tipo impulsivo, la cui entità è però
incognita. Per poter risolvere il problema è necessario introdurre ulteriori equazioni, in genere
di natura sperimentale che definiscono le caratteristiche delle superfici a contatto ed il tipo di
impatto.

1.4.3 Altri tipi di problema: sintesi e design


I tipi di problemi descritti finora sono tutti di analisi, nel senso che studiano il moto di
un mecanismo dal punto di vista cinematico e/o dinamico) una volta nota la sua struttura
(proprietà geometriche e inerziali, coppie cinematiche).
CAPITOLO 1. INTRODUZIONE 14

Quando si vuole progettare un nuovo meccanismo, che soddisfa certe specifiche, e si hanno
a disposizione soltanto strumenti di analisi è necessario procedere in modo iterativo, si ipotizza
una certa soluzione, se ne analizza il comportamento cinematico e/o dinamico, se ne verifica
la compatibilità con i requisiti in specifica, in caso di esito negativo della verifica è necessario
modificare la soluzione e ripetere l’analisi. E’ evidente che questo processo risulta in genere
lento e i risultati dipenderanno fortemente dall’esperienza del progettista.
Le procedure di sintesi o design dei sistemi multibody permettono di superare questi prob-
lemi o per lo meno di ridurli. Queste procedure forniscono direttamente, senza l’intervento del
progettista, un sistema meccanico che soddisfa i requisiti della specifica, o che risulta ottimale
tra tutti quelli possibili, secondo criteri specificati a priori.

1.4.3.1 Sintesi cinematica


La sintesi cinematica di un sistema multibody consiste nel determinare le dimensioni ottimali
di tutti gli elementi in modo da ottenere il moto desiderato, ad esempio far seguire ad un
punto appartenente ad uno dei corpi una traiettoria assegnata.
Il problema di sintesi cinematica è fondamentalmente di tipo geometrico ed è stato molto
analizzato anche in passato, fin dalla seconda metà dell’Ottocento. I primi metodi sviluppati
erano principalmente di tipo grafico. Sono note numerose applicazioni di sintesi cinematica
applicate al quadrilatero articolato piano. E’ evidente che tali procedure hanno applicazione
limitata, troppo specifica e sono eccessivamente complesse.
I metodi utilizzati attualmente sono di tipo numerico e hanno la caratteristica di poter
essere applicati a una vasta casistica di meccanismi, sia piani che tridimensionali.

1.4.3.2 Analisi di sensibilità e design ottimale


Il design ottimale di un meccanismo inizia con la definizione di una funzione obiettivo. Lo
scopo dell’ottimizzazione è quello di ottenere il sistema con le massime performance possibili.
L’obiettivo viene ottenuto massimizzando questa funzione.1
In altri termini, la funzione obiettivo può essere vista come una vera e propria funzione
matemaatica in più variabili, di cui si vuole cercare il massimo. Le variabili da cui dipende
la funzione sono dette variabili o parametri di progetto. In alcuni problemi si possono avere
anche dei vincoli nelle variabili di progetto che sono rappresentati per mezzo di equazioni o
disequazioni e che di fatto limitano lo spazio in cui trovare la soluzione ottimale. Vincoli sui
parametri di progetto possono essere ad esempio i range di variazione dei parametri, vincoli di
tipo fisico (ad esempio, non si possono avere elementi con massa o lunghezza negative ) e
cosı̀via.
La funzione obiettivo viene definita a seconda dell’applicazione del meccanismo (ad esem-
pio, realizzazione di una traiettoria, minimizzazione degli sforzi trasmessi al telaio ecc.).
Esistono molte tecniche per la soluzione del problema di ottimizzazione, quasi tutte sono
basate sulla conoscenza delle derivate della funzione obiettivo rispetto ai parametri di progetto.
In generale, è evidente che il valore assunto dalla derivata della funzione obiettivo rispetto
a un certo parametro fornisce una stima di quanto le variazioni del parametro hanno influenza
sulle variazioni della funzione. Lo studio delle derivate parziali della funzione obiettivo rispetto
ai parametri di progetto è nota con il nome di analisi di sensibilità.

1
Talvolta, anziché di funzione obiettivo, si parla di funzione di costo.La definizione del problema dell’ot-
timizzazione in termini di funzione di costo è duale a quella vista per la funzione obiettivo. In questo caso la
soluzione ottimale è quella che minimizza la funzione di costo, utilizzata per quantificare le performance di un
sistema.
Capitolo 2

Rappresentazione degli elementi di un


sistema multibody

2.1 Coordinate dipendenti e indipendenti


In questo capitolo verranno descritti alcuni metodi per la rappresentazione dei corpi che costi-
tuiscono un sistema multibody. Il primo problema che dobbiamo affrontare nello studio della
cinematica e della dinamica dei meccanismi è infatti la modellazione del sistema, ovvero la
scelta di un insieme di parametri che ci permettono di definire in modo univoco in ogni istante
la posizione, la velocità e l’accelerazione di tutti i corpi che costituiscono il meccanismo.
Esistono differenti tipi di coordinate per la rappresentazione dei sistemi multibody, e la loro
scelta non è sempre un problema banale. Le varie possibilità non sono tra loro equivalenti,
alcune sono più convenienti perché sono più semplici da implementare, altre sono più efficienti,
nel senso che richiedono minori risorse di calcolo.
La prima scelta che si deve fare per la definizione di un sistema di coordinate che descrivono
il moto del sistema multibody è tra un insieme di coordinate indipendenti e di coordinate
dipendenti.
Il numero delle coordinate indipendenti del sistema è pari al numero di gradi di libertà e
quindi il minimo necessario per descrivere completamente la configurazione del sistema.
Il numero delle coordinate dipendenti è invece maggiore del numero di gradi di libertà del
sistema e per questo motivo non possono essere indipendenti tra loro. Le relazioni che legano
le coordinate dipendenti sono le equazioni di vincolo.
Generalmente un sistema di coordinate indipendenti non può essere utilizzato per la rapp-
resentazione di un sistema multibody perché non sempre permette di rispettare una delle più
importanti condizioni, quella di rappresentare in modo univoco la posizione di un sistema multi-
body. Le coordinate indipendenti infatti determinano direttamente la posizione degli elementi
di input o dei gradi di libertà guidati del sistema (per mezzo di attuatori), ma non la posizione
degli altri elementi, che deve essere determinata risolvendo il problema della definizione della
configurazione del meccanismo descritto nel capitolo precedente. Si è visto che questo tipo di
problema in generale può ammettere più soluzioni.
Nella Figura 2.1 è riportato a titolo d’esempio un quadrilatero articolato. Il meccanis-
mo come noto ha un solo grado di libertà, scegliendo come coordinats lagrangiana l’angolo
θ1 riportato in figura non è però possibile definire in modo univoco la configurazione del
meccanismo.
Per superare questo problema generalmente è più conveniente adottare un insieme di coor-
dinate dipendenti, che permette di rappresentare in modo univoco la configurazione del sistema
multibody.

15
CAPITOLO 2. RAPPRESENTAZIONE DEGLI ELEMENTI DI UN SISTEMA MULTIBODY16

Figura 2.1: quadrilatero articolato: con il valore assegnato per l’angolo θ1 sono possibili due
configurazioni.

Le coordinate dipendenti sono legate tra loro da una serie di relazioni di tipo algebrico,
in numero pari alla differenza tra il numero di coordinate e il numero di gradi di libertà del
sistema, dette equazioni di vincolo. Solitamente queste equazioni sono non lineari.
Riassumendo, scegliendo un set di coordinate indipendenti:
• il numero di parametri è minimo, quindi anche il numero di equazioni da risolvere è
limitato;
• le equazioni della dinamica hanno una struttura abbastanza complicata;
• la configurazione del meccanismo non è sempre individuata in modo univoco;
• le coordinate non possono essere definite in modo sistematico.
D’altra parte, scegliendo un set di coordinate dipendenti:
• il numero di parametri è maggiore del numero dei gradi di libertà;
• il numero di equazioni da risolvere è maggiore;
• le equazioni sono però solitamente più semplici e meno accoppiate;
• la configurazione è definita in modo univoco;
• le coordinate possono essere definite in modo sistematico.

2.2 Coordinate assolute e relative


Le coordinate relative sono utilizzate soprattutto per l’analisi cinematica e dinamica dei mec-
canismi a catena cinematica aperta (come ad esempio i robot seriali). Le coordinate rela-
tive definiscono la posizione di ciascun elemento in una catena cinematica utilizzando come
parametri o coordinate lo spostamento relativo tra due elementi adiacenti.
Nel caso di sistemi multibody planari se due elementi sono collegati con un giunto rotoidale
(R), la loro posizione relativa è definita per mezzo di un angolo, se sono collegati con un giunto
prismatico (P) la loro posizione relativa è descritta per mezzo di una distanza.
Nel caso di un meccanismo con catena cinematica aperta, scegliendo una rappresentazione
con coordinate relative il numero di coordinate è pari al numero di gradi di libertà e quindi
non è necessario definire equazioni di vincolo.
I vantaggi della scelta di un set di coordinate relative sono:
CAPITOLO 2. RAPPRESENTAZIONE DEGLI ELEMENTI DI UN SISTEMA MULTIBODY17

• il numero di coordinate è ridotto, si ha quindi una buona efficienza computazionale;

• è una rappresentazione particolarmente conveniente per meccanismi con catena cine-


matica aperta;

• i parametri scelti per la rappresentazione del sistema sono gli spostamenti relativi tra due
elementi adiacenti nel giunto che li unisce, questa particolarità è utile quando nel giunto
è presente un attuatore o un motore, dato che è possibile controllare direttamente il
moto del corrispondente grado di libertà.

D’altra parte, questo tipo di rappresentazione presenta i seguenti inconvenienti:

• la formulazione matematica può essere più complessa, dato che la posizione di ciascun
elemento è legata a quella di tutti gli elementi che lo precedono nella catena cinematica.

• nelle equazioni di moto compaiono matrici che, pur avendo dimensioni limitate, sono
piene e talvolta richiedono consistenti risorse di calcolo;

• richiedono una fase di preprocessing (per determinare le equazioni di vincolo) e una di


postprocessing ( per determinare la posizione assoluta degli elementi).

Nel caso di sistemi multibody planari nella formulazione con coordinate relative le equazioni
di vincolo rappresentano le equazioni di chiusura dei loop cinematici.
Un esempio di rappresentazione di meccanismi che fa uso delle coordinate relative è quello
in cui i sistemi di riferimento solidali ai vari elementi del meccanismo sono fissati facendo uso
della convenzione di Denavit Hartenberg [3].

2.2.1 Alcuni esempi


Nel caso di un meccanismo a catena cinematica aperta, come ad esempio il robot planare a
tre gradi di libertà mostrato in figura 2.2, non sono necessarie equazioni di vincolo.
Nel quadrilatero articolato mostrato in figura 2.3, la configurazione è descritta per mezzo
delle tre rotazioni ψ1 , ψ2 , ψ3 . Il meccanismo ha un grado di libertà ed è quindi necessario
scrivere due equazioni di vincolo. E’ possibile definire la seguente equazione vettoriale:
−→ −→ −−→ −−→
OA + AB + BD − OD = 0 , (2.1)

da cui si ricavano le seguenti equazioni scalari:

L1 cos ψ1 + L2 cos(ψ1 + ψ2 ) + L3 cos(ψ1 + ψ2 + ψ3 ) − OD = 0 , (2.2)

L1 sin ψ1 + L2 sin(ψ1 + ψ2 ) + L3 sin(ψ1 + ψ2 + ψ3 ) = 0 . (2.3)


Si osserva che le equazioni di vincolo sono non lineari e contengono funzioni trascendenti,
questa è una caratteristica comune della formulazione della cinematica dei sistemi multibody
con coordinate relative.
In figura 2.4 è riportato lo schema di un quadrilatero articolato con un giunto prismatico.
In questo caso la coordinata ψ3 rappresenta lo spostamento relativo dell’elemento 3 rispetto
al 2 ed è pertanto una distanza. Le equazioni di vincolo derivano da un’equazione vettoriale
che è la stessa dell’esempio precedente (equazione di chiusura del quadrilatero):
−→ −→ −−→ −−→ − →
OA + AB + BD − OD = 0 , (2.4)
CAPITOLO 2. RAPPRESENTAZIONE DEGLI ELEMENTI DI UN SISTEMA MULTIBODY18

Figura 2.2: Schema cinematico di un robot planare a tre gradi di libertà, rappresentazione della
configurazione per mezzo di coordinate relative.

Figura 2.3: Schema cinematico di quadrilatero articolato, rappresentazione della configurazione per
mezzo di coordinate relative.
CAPITOLO 2. RAPPRESENTAZIONE DEGLI ELEMENTI DI UN SISTEMA MULTIBODY19

Figura 2.4: Schema cinematico di quadrilatero articolato con giunto prismatico, rappresentazione della
configurazione per mezzo di coordinate relative.

da cui si ricavano le seguenti equazioni scalari:

L1 cos ψ1 + ψ3 cos(ψ1 + ψ2 ) + L3 cos(ψ1 + ψ2 − π/2) − OD = 0 , (2.5)

L1 sin ψ1 + ψ3 sin(ψ1 + ψ2 ) + L3 sin(ψ1 + ψ2 − π/2) = 0 . (2.6)


Dagli esempi precedenti è evidente che una formulazione che utilizza coordinate relative
è conveniente per meccanismi a catena cinematica aperta o con pochi loop. Se il meccan-
ismo contiene più anelli chiusi, è necessario scegliere correttamente quelli che sono tra loro
indipendenti per scrivere le equazioni vettoriali di chiusura da cui si ricavano le equazioni di
vincolo.

2.3 Sistemi piani: coordinate generalizzate


In questo paragrafo descriveremo una procedura per la definizione di un set di coordinate
assolute e dipendenti per caratterizzare in modo univoco la configurazione dei sistemi multibody
piani.
Il vantaggio di questo tipo di rappresentazione è che permette di definire le coordinate
in modo sistematico e quindi è facilmente automatizzabile ed implementabile nei simulatori
numerici.
Come noto un corpo rigido nello spazio ha tre gradi di libertà, in altri termini sono necessarie
tre informazioni (coordinate) per descrivere in modo univoco la posizione di ogni punto ad
esso solidale.
Al generico corpo rigido i-esimo è associato un sistema di riferimento Oi xi yi zi , ad esso
solidale, avente l’origine Oi coincidente con il centro di massa Gi del corpo stesso, come
mostrato in Fig. 2.5. La posizione e l’orientazione del corpo i è univocamente determinata una
volta che siano note le due coordinate del centro di massa e l’orientazione della terna Oi xi yi zi
rispetto alla terna base OXY Z. Possiamo quindi definire come “coordinate generalizzate”
del corpo i, le seguenti tre quantità:

q3i−2 , q3i−1 : coordinate del centro di massa Gi rispetto al sistema di riferi-


mento di base;
CAPITOLO 2. RAPPRESENTAZIONE DEGLI ELEMENTI DI UN SISTEMA MULTIBODY20

yi K

*
Y 6 xi
q3i
q3i−1 ...............................................................
...
Oi ≡ ... Gi
...
corpo ... i
...
...
...
...
...
...
...
...
...
.. -
O q 3i−2 X

Figura 2.5: Coordinate generalizzate

q3i : angolo formato tra gli assi X e xi misurato a partire da X e


positivo in senso antiorario (Z positiva).

Se xP e y P sono le coordinate, rispetto al sistema di riferimento locale Oi xi yi zi , di un generico


punto P appartenente al corpo i, come mostrato in Fig. 2.6, la trasformazione:

X P = q3i−2 + xP cos q3i − y P sin q3i (2.7)


Y P = q3i−1 + xP sin q3i + y P cos q3i , (2.8)

permette di esprimere le coordinate di P nel sistema di riferimento di base.

xP cos q3i − y P sin q3i


z }| {
.... ....
Y 6 yi K ... ...
... ... P 
Y P ...............................................................................................
...... 

....... . ... . 
...... .
. .
. . 

y P .
.
... .
.
... .. . *
xi xp sin q31 + y p cos q3i
... ... .. 
.... .... xP q3i 

... ... 

.
q3i−1 ....................................................................................
. .
.
.
O.... i ....
... ...
... ...
... ...
.... ....
... ...
... ... -
O q3i−2 X P X

Figura 2.6: Trasformazione di coordinate tra terna mobile e terna fissa

Le Eq. (2.7),(2.8), possono essere scritte in forma più compatta definendo la matrice di
CAPITOLO 2. RAPPRESENTAZIONE DEGLI ELEMENTI DI UN SISTEMA MULTIBODY21

rotazione Ri :
· ¸
cos q3i − sin q3i
Ri = . (2.9)
sin q3i cos q3i

Con notazione matriciale possiamo quindi scrivere:


· P ¸ · p ¸ · ¸
X x q3i−2
= Ri + . (2.10)
YP yp q3i−1

Si osserva che, essendo il corpo rigido, le coordinate del punto P rispetto al sistema di rifer-
imento Oi xi yi zi solidale al corpo sono costanti. E’ evidente quindi che le coordinate del
generico punto P durante il moto possono essere univocamente determinate una volta noti i
parametri q3i−2 , q3i−1 e q3i .
Se il sistema meccanico è costituito da l corpi rigidi, la configurazione del sistema è nota
se sono note le coordinate generalizzate di tutti i corpi che lo compogono, quindi una volta
noti 3(l − 1) parametri (uno degli l corpi funge da telaio).
Si definisce spazio delle configurazioni l’insieme di tutte le possibili configurazioni del
sistema meccanico:

Q = {q ∈ R3(l−1) |q = [q1 , q2 , q3 , ..., q3i−2 , q3i−1 , q3i , ..., q3l−5 , q3i−4 , q3(l−1) ]T } (2.11)

il vettore q = [q1 , q2 , q3 , ..., q3i−2 , q3i−1 , q3i , ..., q3l−5 , q3i−4 , q3(l−1) ]T rappresenta la generica
configurazione del sistema. Durante il moto le componenti del vettore q variano, in altri
termini, ognuno degli elementi di q è funzione del tempo. L’analisi cinematica del mecca-
nismo è finalizzata allo studio delle coordinate generalizzate e delle loro derivate (velocità,
accelerazioni) nel tempo.
Capitolo 3

Cinematica del corpo rigido nello spazio

3.1 Introduzione
Come noto un corpo rigido nello spazio ha 6 gradi di libertà, quindi occorrono almeno 6
parametri per descriverlo completamente. Analogamente a quanto visto per i sistemi piani,
possiamo fissare per ogni corpo rigido un sistema di riferimento ad esso solidale, con origine
nel suo baricentro e assi principali d’inerzia. Questa scelta semplifica L’espressione dell’energia
cinetica e quindi la definizione delle equazioni della dinamica. La configurazione del corpo
rigido è nota quando è nota la posizione del baricentro rispetto a un sistema di riferimento
fisso (3 informazioni) e l’orientazione degli assi del sistema di riferimento solidale al corpo
rispetto agli assi del sistema di riferimento fisso.
Esistono vari metodi per la rappresentazione dell’orientazione relativa tra due sistemi di
riferimento cartesiano, che si possono classificare due categorie:

• rappresentazioni ridondanti;

• rappresentazioni minime.

Il numero minimo di parametri necessari a descrivere l’orientazione di un corpo rigido nel-


lo spazio è pari a 3. Le rappresentazioni minime dell’orientazione fanno appunto uso di 3
parametri, mentre quelle ridondanti usano 4 o più parametri.

3.2 Matrice di rotazione - coseni direttori


Supponiamo di avere due terne Ox0 y 0 z 0 e Oxyz, aventi origine comune in O, e di volerne
descrivere l’orientazione relativa.
Siano i0 , j0 , k0 i versori degli assi del sistema di riferimento Ox0 y 0 z 0 e i, j, k, i versori degli
assi del sistema di riferimento Oxyz.
Scomponendo il versore i0 lungo le tre direzioni dei versori i, j, k si ottiene la seguente
relazione:
i0 = i0x i + i0y j + i0z k . (3.1)
Analogamente, per i versori j0 e k0 si ottiene:

j0 = jx0 i + jy0 j + jz0 k (3.2)


k0 = kx0 i + ky0 j + kz0 k . (3.3)

22
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 23

Le componenti dei versori i0 , j0 , k0 lungo gli assi del sistema Oxyz identificano completamente
l’orientazione terna Ox0 y 0 z 0 . Tali componenti vengono usate per formare una matrice, detta
matrice di rotazione, come segue:
 0 0 0

£ ¤ ix j x k x
R = i0 j0 k0 =  i0y jy0 ky0  (3.4)
0 0 0
iz jz kz
Proiettando ognuna delle tre equazioni (3.1), (3.2), (3.3) lungo le direzioni dei versori i,
j, k, si ottengono nove relazioni del tipo:
T
i0x = i0 • i = i0 i
T
i0y = i0 • j = i0 j
T
i0z = i0 • k = i0 k
(3.5)
Gli elementi della matrice R si dicono “coseni direttori” in quanto ognuno di essi è pari al
prodotto scalare di un versore della terna Ox0 y 0 z 0 per un versore della terna Oxyz.

3.2.1 Espressione di R per rotazioni attorno agli assi coordinati


Ricaviamo adesso le espressioni della matrice R nel caso in cui la terna mobile sia ruotata,
rispetto alla terna fissa, di un certo angolo attorno ad uno degli assi coordinati (della terna
fissa).

3.2.1.1 Rotazione attorno a z

y' θ y
x'

j'
i'
θ
x
O
k k'

z z'

Figura 3.1: Rotazione attorno a z.

Con riferimento alla figura 3.1, supponiamo che la terna Ox0 y 0 z 0 abbia l’asse z 0 coincidente
con l’asse z e che l’asse x0 sia ruotato di un angolo θ rispetto all’asse x. Dalla coincidenza
degli assi z e z 0 segue che k0 = k = [0 0 1]T . I versori i0 e j0 valgono invece:
 

i0 =  s θ 
0
 
−sθ
j0 =  c θ  .
0
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 24

Assemblando la matrice R otteniamo:


 
£ ¤ cθ −sθ 0
R = Rz (θ) = i0 j0 k0 =  sθ cθ 0  (3.6)
0 0 1

3.2.1.2 Rotazione attorno a x


Dato che x e x0 sono coincidenti, sarà i0 = i. Per gli altri due versori, dalla Fig. 3.2 si osserva:
 
0
k0 =  cθ 

 
0
j0 =  −sθ  .

y' θ

j'

O x x'
i i'

k'
θ
z
z'

Figura 3.2: Rotazione attorno a x.

Assemblando la matrice R otteniamo:


 
£ ¤ 1 0 0
R = Rx (θ) = i 0 j0 k 0 =  0 cθ −sθ  (3.7)
0 sθ cθ

3.2.1.3 Rotazione attorno a y


Dato che y e y 0 sono coincidenti, sarà j0 = j. Per gli altri due versori, dalla Fig. 3.3 si ottiene:
 

i0 =  0 
−sθ
 

k0 =  0  .

Assemblando la matrice R otteniamo:


 
£ ¤ cθ 0 sθ
R = Ry (θ) = i0 j0 k0 = 0 1 0  (3.8)
−sθ 0 cθ
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 25

y y'

j j'

x'
i'
θ x
O

k'
θ
z z'

Figura 3.3: Rotazione attorno a y.

3.2.2 Cambio di coordinate tra due terne con la stessa origine

P
¸

−→
OP
z0 M 6z
y0
1
-
x O y
¼
À x0

Figura 3.4: Cambio di coordinate tra terne ad origine comune.

Supponiamo di conoscere le coordinate [p0x p0y p0z ]T di un punto P dello spazio rispetto ad
un sistema di riferimento Ox0 y 0 z 0 e di voler calcolare le coordinate [px py pz ]T dello stesso
punto rispetto ad un altro sistema di riferimento Oxyz, avente la stessa origine del primo
sistema di riferimento, come mostrato in Fig. 3.4.
−→
Il vettore posizione OP può essere scomposto lungo 3 qualsiasi direzioni a due a due non
parallele. In particolare possiamo scomporlo lungo le direzioni dei tre versori i, j, k, ma anche
lungo le direzioni dei tre versori i0 , j0 , k0 , ottenendo la seguente relazione:
px i + py j + px k = p0x i0 + p0y j0 + p0x k0 . (3.9)
Proiettando ambo i membri dell’equazione 3.9 lungo le tre direzioni i, j, k (tramite l’operazione
di prodotto scalare), otteniamo:
T T T
px = p0x i0 i + p0y j0 i + p0x k0 i
T T T
py = p0x i0 j + p0y j0 j + p0x k0 j (3.10)
T T T
pz = p0x i0 k + p0y j0 k + p0x k0 k
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 26

Non è difficile riconoscere che le Eq. 3.10 possono essere anche scritte in forma matriciale
come segue:    0T  0 
px i i j0 T i k 0 T i px
 py  =  i0 T j j0 T j k0 T j   p0y  , (3.11)
pz i0 T k j0 T k k 0 T k p0z
o anche, in modo più compatto:
p = Rp0 , (3.12)
−→
dove p = [px py pz ]T è il vettore posizione OP espresso nel sistema di riferimento Oxyz e
−→
p0 = [p0x p0y p0z ]T è il vettore posizione OP espresso nel sistema di riferimento Ox0 y 0 z 0 .

3.2.3 Proprietà della matrice di rotazione


3.2.3.1 Ortogonalità di R
Dato che ogni colonna della matrice R è formata dalle componenti di un versore della terna
Ox0 y 0 z 0 , il prodotto scalare tra due diverse colonne è nullo:
T
i0 j0 = 0
T
j0 k 0 = 0 (3.13)
T
k0 i 0 = 0 .

Dalle condizioni (3.13), unite al fatto che il prodotto scalare di un vettore per sè stesso è
pari a 1, discende una delle proprietà più importanti ed utili delle matrici di rotazione, ovvero
la proprietà di ortogonalità:

RT R = I . (3.14)

La (3.14) può essere dimostrata come segue:


 0T   0T 0 0T 0 0T 0   
i £ ¤ i i i j i k 1 0 0
RT R =  j0 T  i0 j0 k0 =  j0 T i0 j0 T j0 j0 T k0  =  0 1 0  = I (3.15)
k0 T k 0 T i 0 k 0 T j0 k 0 T k 0 0 0 1

3.2.3.2 Ortogonalità di R: altra dimostrazione


Consideriamo due sistemi di riferimento con origine coincidente Ox0 y0 z0 e Ox1 y1 z1 . Siano r0
e r1 le rappresentazioni del vettore ~r rispetto alla terna 0 e 1 e s0 e s1 le rappresentazioni del
vettore ~s rispetto alla terna 0 e 1 rispettivamente.
Il modulo del vettore (~r − ~s) è lo stesso indipendentemente dal sistema di riferimento
rispetto a cui si rappresentano i vettori, quindi:

kr0 − s0 k = kr1 − s1 k (3.16)

è possibile scrivere le coordinate di ~r e ~s rispetto al sistema di riferimento 0 in funzione delle


coordinate rispetto al sistema di riferimento 1, tramite la matrice di rotazione.

kr0 − s0 k = k[R10 ](r1 − s1 )k =


q
= ([R10 ](r1 − s1 ))T ([R10 ](r1 − s1 )) =
q
= (r1 − s1 )T [R10 ]T [R10 ](r1 − s1 ) (3.17)
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 27

Figura 3.5: dimostrazione della proprietà di ortogonalit della matrice di rotazione.

Per definizione risulta inoltre:


p
kr1 − s1 k = (r1 − s1 )T (r1 − s1 ) (3.18)

Quindi si verifica immediatamente che:

[R10 ]T [R10 ] = I (3.19)

3.2.3.3 Inversa di R
Si può dimostrare che il determinante di una matrice di rotazione è pari a 1. Quindi la matrice
R ammette sempre un’inversa R−1 . Moltiplicando a destra ambo i membri della (3.14) per
R−1 , si ottiene:

RT RR −1
| {z } = IR
−1
, (3.20)
I

ovvero:

RT = R−1 . (3.21)

L’inversa di una matrice di rotazione può quindi essere semplicemente calcolata tramite
un’operazione di trasposizione.

3.2.3.4 Composizione di rotazioni successive in terna corrente


Supponiamo di avere tre terne con origine comune:

• Ox0 y0 z0 , terna base;

• Ox1 y1 z1 terna ottenuta dalla 0 a seguito di una rotazione R10 (specificata in terna 0);
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 28

• Ox2 y2 z2 terna ottenuta dalla terna 1 a seguito di una rotazione R21 (specificata in terna
1).
Sia R20 la matrice di rotazione (incognita) che esprime l’orientazione della terna Ox2 y2 z2
rispetto alla terna base Ox0 y0 z0 . Siano p0 , p1 , p2 , le coordinate di un punto P dello spazio
rispetto ad ognuna delle tre terne. Per quanto visto nel Par. 3.2.2, valgono le relazioni:
p0 = R10 p1 (3.22)
p1 = R21 p2 (3.23)
p0 = R20 p2 . (3.24)
Sostituendo l’espressione (3.23) di p1 nella (3.22) si ottiene:
p0 = R10 R21 p2 . (3.25)
Dovendo essere valide entrambe le equazioni (3.24) e (3.25) per ogni punto P , sarà allora:
R20 = R10 R21 . (3.26)
La (3.26) è la legge di composizione di rotazioni successive in terna corrente. Generalizzando,
se abbiamo n + 1 terne, numerate da 0 ad n, ognuna legata alla precedente da una matrice
Rii−1 , la matrice di rotazione che esprime l’orientazione dell’ultima terna rispetto alla prima,
assunta come terna base, è data da:
Rn0 = R10 R21 . . . Rn−1
n−2 n−1
Rn . (3.27)

3.2.3.5 Composizione in terna fissa


Supponiamo di avere tre terne ad origine comune:
• Ox0 y0 z0 , terna base;
• Ox1 y1 z1 terna ottenuta dalla terna 0 a seguito di una rotazione 0R10 (specificata in terna
0, indicata nell’apice sinistro);
• Ox2 y2 z2 terna ottenuta dalla terna 1 a seguito di una rotazione 0R21 (anch’essa specificata
in terna 0).
Per ottenere la legge di composizione delle due rotazioni, sfruttiamo la conoscenza della legge di
composizione in terna corrente: la rotazione complessiva può essere vista come una successione
delle seguenti rotazioni, tutte specificate in terna corrente:
• rotazione R1 = 0R10 che porta la terna 0 sulla terna 1;
• rotazione R2 = (0R10 )T che riporta la terna 1 sulla terna 0;
• rotazione R3 = 0R21 che impone alla terna corrente la seconda rotazione;
• rotazione R4 = 0R10 che “recupera” la rotazione R2 = (0R10 )T .
Applicando la regola di composizione in terna corrente otteniamo:
R20 = R1 R2 R3 R4 = R3 R4 = 0R21 0R10 . (3.28)
| {z }
=I

In pratica, la matrice di rotazione complessiva R20 si ottiene, come nel caso della composizione
in terna corrente, con un prodotto matriciale delle due rotazioni successive, ma questa volta
l’ordine di moltiplicazione va invertito, ovvero, generalizzando al caso di n rotazioni successive
0 i−1
Ri , i = 1, . . . , n specificate in terna 0.
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 29

3.2.4 Angoli di Eulero


Supponiamo di dover descrivere l’orientazione relativa di una terna Ox1 y1 z1 (che diremo con-
venzionalmente terna mobile) rispetto ad una terna Oxyz (che diremo convenzionalmente
terna base). Il metodo degli angoli di Eulero permette di scomporre la rotazione finale in
una composizione di tre rotazioni elementari (rispetto ad assi coordinati) specificate in terna
corrente.
Esistono 12 possibili definizioni degli angoli di Eulero, noi esamineremo gli angoli di Eulero
di tipo ZY Z. Il nome ZY Z discende dal fatto che si usano tre rotazioni elementari successive
attorno agli assi Z, Y , Z della terna corrente.

z
z'' z 1

y1
y'
ψ
O φ
y

φ
θ ψ
x
x'
x1
x''

Figura 3.6: Angoli di Eulero.

Descriviamo adesso in dettaglio il metodo.


• Date le terne Oxyz e Ox1 y1 z1 , come mostrato in Fig.3.6 identifichiamo la retta in-
tersezione tra il piano xy e il piano x1 y1 : tale retta si dice “linea dei nodi.” (Fig.
3.7)
• Eseguiamo una prima rotazione della terna Oxyz di un algolo φ attorno all’asse z, fino
a che l’asse y non coincida con la linea dei nodi, come mostrato in Fig.3.8, ottenendo la
nuova terna corrente Ox0 y 0 z 0 che ha l’asse y 0 lungo la linea dei nodi e l’asse z 0 coincidente
con l’asse z. L’angolo φ è l’angolo formato dall’asse y e dalla linea dei nodi, scelto
positivo se concorde con z.
• Eseguiamo una rotazione della terna Ox0 y 0 z 0 di un angolo θ attorno all’asse y 0 , fino a
che l’asse z 0 non coincida con l’asse z1 , come mostrato in Fig.3.8 ottenendo una nuova
terna corrente Ox00 y 00 z 00 che ha l’asse z 00 coincidente con l’asse z1 e gli assi x00 e y 00 nel
piano x1 y1 . L’angolo θ è l’angolo formato dall’asse z e dall’asse z1 , scelto positivo se
concorde con y 0 .
• Eseguiamo infine una rotazione della terna Ox00 y 00 z 00 di un angolo ψ attorno all’asse
z 00 , fino a che l’asse x00 non sia coincidente con l’asse x1 , come mostrato in Fig.3.8.c:
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 30

z z'

y'
O φ
y

x x'

Figura 3.7: Angoli di Eulero: linea dei nodi.

z
z''
θ

y' y''
O φ
y

φ
θ
x
x'
x''

Figura 3.8: Rotazioni di Eulero: rotazioni φ e θ.


CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 31

a questo punto la terna corrente è coincidente con la terna Ox1 y1 z1 . L’angolo ψ è


l’angolo formato dall’asse y1 e dalla linea dei nodi orientata come y 0 , scelto positivo
se concorde con z1 .

3.2.4.1 Dagli angoli di Eulero alla matrice di rotazione


La matrice di rotazione complessiva REU L è data dalla composizione delle tre rotazioni viste
in precedenza, definite in terna corrente. La prima rotazione (spin) è intorno all’asse z di un
angolo φ, la seconda (nutazione) è intorno all’asse y 0 di un angolo θ, la terza (precessione)
è intorno all’asse z 00 di un angolo ψ, la matrice di rotazione risultante è pertanto data da:
   
cφ −sφ 0 cθ 0 sθ cψ −sψ 0
REU L =  sφ cφ 0   0 1 0   sψ cψ 0  =
0 0 1 −sθ 0 cθ 0 0 1
  
cφcθ −sφ cφsθ cψ −sψ 0
=  sφcθ cφ sφsθ   sψ cψ 0  =
−sθ 0 cθ 0 0 1
 
cφcθcψ − sφsψ −cφcθsψ − sφcψ cφsθ
=  sφcθcψ + cφsψ −sφcθsψ + cφcψ sφsθ  . (3.29)
−sθcψ sθsψ cθ

3.2.4.2 Dalla Matrice di rotazione agli angoli di Eulero


E’ data la matrice di rotazione:
 
r1,1 r1,2 r1,3
R =  r2,1 r2,2 r2,3  , (3.30)
r3,1 r3,2 r3,3
si vogliono determinare i corrispondenti angoli di Eulero.
Confrontando la (3.29) con la (3.30) si osserva che:

r1,3 = cφsθ ,
r2,3 = sφsθ ,

supponendo che sθ 6= 0 è possibile calcolare φ in questo modo:

φ = atan2(r2,3 , r1,3 ). (3.31)

Ricordiamo che la funzione atan2(x, y) calcola l’arcotangente del rapporto x/y, ma utilizza il
segno di ciascun argomento per determinare il quadrante di appartenenza dell’angolo risultante.
In questo modo si determina in modo corretto l’angolo in un intervallo di ampiezza pari
all’angolo giro.
Si osserva inoltre che:
2 2
r1,3 + r2,3 = sin2 θ ,
q
2 2
sθ = ± r1,3 + r2,3 ,

se si sceglie il segno positivo per la radice quadrata (ipotizzando cioè 0 < θ < π), ricordando
che:

r3,3 = cθ ,
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 32

l’angolo θ può essere calcolato in questo modo:


q
2 2
θ = atan2( r1,3 + r2,3 , r3,3 ) . (3.32)

Con questa scelta del segno di sin θ l’angolo ψ può essere calcolato dagli elementi r3,1 e r3,2
in questo modo:

ψ = atan2(r3,2 , −r3,1 ) . (3.33)

Se avessimo scelto il segno negativo per la radice quadrata (ovvero −π < θ < 0):
q
2 2
θ = atan2(− r1,3 + r2,3 , r3,3 ) , (3.34)

l’angolo ψ sarebbe stato definito in questo modo:

ψ = atan2(−r3,2 , r3,1 ) . (3.35)

Se sin θ = 0 si osserva che r1,3 = r2,3 = r3,1 = r3,2 = 0. Per le proprietà della matrice
di rotazione risulterà necessariamente r3,3 = ±1. Supponiamo che r3,3 = 1 (in questo caso
particolare gli assi z iniziale e finale coincidono). La matrice di rotazione in questo caso diventa
pari a:
   
cφcψ − sφsψ −cφsψ − sφcψ 0 cos(φ + ψ) − sin(φ + ψ) 0
REU L =  sφcψ + cφsψ −sφsψ + cφcψ 0  =  sin(φ + ψ) cos(φ + ψ) 0  (3.36) .
0 0 1 0 0 1

Si osserva che non è possibile in questo caso calcolare φ e ψ ma solo la loro somma, visto che
le due rotazioni sono effettuate rispetto allo stesso asse.

3.2.5 Rappresentazione asse/angolo


Consideriamo due sistemi di riferimento con origine comune Ox1 y1 z1 (che diremo conven-
zionalmente terna mobile) e Oxyz (che diremo convenzionalmente terna base). E’ possibile
dimostrare che si può passare dalla terna fissa alla terna mobile effettuando una rotazione
di un angolo θ rispetto ad un asse definito dal versore λ le cui componenti, nel sistema di
riferimento fisso, sono [λx , λy , λz ]T .
Calcoliamo le componenti della matrice di rotazione tra la terna fissa e la terna mobile in
funzione delle componenti del vettore λ e l’angolo θ. Indichiamo con α l’angolo della proiezione
del vettore λ sul piano xy e l’asse x, indichiamo con β l’angolo tra il versore λ e l’asse z.
Per portare la terna Oxyz a coincidere con la terna Ox1 y1 z1 possiamo fare le seguenti
rotazioni:

• ruotiamo di un angolo pari a −α intorno all’asse z, in questo modo portiamo il versore


λ sul piano xz;

• ruotiamo di un angolo pari a −β intorno all’asse y, in questo modo portiamo il versore


λ a coincidere con l’asse z;

• ruotiamo intorno all’asse z di un angolo θ;

• ruotiamo intorno all’asse y di un angolo pari a β;


CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 33

• ruotiamo intorno all’asse z di un angolo pari a α, queste due ultime rotazioni servono
per riportare il versore λ nella configurazione iniziale.
Le cinque operazioni appena descritte sono effettuate in terna fissa, per cui la matrice di
rotazione complessiva può essere calcolata in questo modo:
R = Rz (α)Ry (β)Rz (θ)Ry (−β)Rz (−α) =
     
cα −sα 0 cβ 0 s β cθ −sθ 0 cβ 0 −sβ cα sα 0
=  sα cα 0   0 1 0   sθ cθ 0   0 1 0   −sα cα 0 
0 0 1 −sβ 0 cβ 0 0 1 sβ 0 cβ 0 0 1
(3.37)
E’ possibile sostituire a sin(α), cos(α), sin(β) e cos(β) le seguenti espressioni:
λy
sin α = p , (3.38)
λ2x + λ2y
λx
cos α = p , (3.39)
λ2x + λ2y
q
sin β = λ2x + λ2y , (3.40)
cos β = λz . (3.41)
La matrice di rotazione può quindi essere scritta in questo modo:
 
λ2x (1 − cθ ) + cθ λx λy (1 − cθ ) − λz sθ λx λz (1 − cθ ) + λy sθ
R =  λx λy (1 − cθ ) + λz sθ λ2y (1 − cθ ) + cθ λy λz (1 − cθ ) − λx sθ  (3.42)
λx λz (1 − cθ ) − λy sθ λy λz (1 − cθ ) + λx sθ λ2z (1 − cθ ) + cθ
Si osserva che la rotazione di un angolo θ intorno al versore λ coincide con una rotazione di
un angolo −θ intorno all’asse −λ.

3.2.6 Parametri di Eulero


Consideriamo un corpo rigido che ruota intorno ad un punto fisso. Sia Oxyz una terna fissa,
rispetto alla quale vogliamo descrivere il moto del corpo rigido e Ox0 y 0 z 0 una terna solidale al
corpo rigido. Le due terne hanno origine comune in O.
Si è visto nel paragrafo precedente che per portare la terna Oxyz a coincidere con la terna
0 0 0
Ox y z è sufficiente effettuare una rotazione di un angolo θ rispetto a un certo asse λ. Le
componenti del versore λ possono essere espresse nel sistema di riferimento fisso:
λ = λx i + λy j + λz k . (3.43)
I PARAMETRI DI EULERO sono quindi definiti in questo modo:
²1 = λx sin(θ/2) , (3.44)
²2 = λy sin(θ/2) , (3.45)
²3 = λz sin(θ/2) , (3.46)
²4 = cos(θ/2) . (3.47)
E’ evidente che i parametri di Eulero non sono tra loro indipendenti essendo legati dalla
seguente relazione:
²21 + ²22 + ²23 + ²24 = 1 . (3.48)
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 34

3.2.6.1 Matrice di rotazione e parametri di Eulero


E’ possibile verificare che la matrice di rotazione tra la terna può essere espressa in funzione
dei parametri di Eulero:
 2 
(²1 − ²22 − ²23 + ²24 ) 2(²1 ²2 − ²3 ²4 ) 2(²1 ²3 − ²2 ²4 )
[R] =  2(²1 ²2 − ²3 ²4 ) (−²21 + ²22 − ²23 + ²24 ) 2(²2 ²3 − ²1 ²4 )  (3.49)
2 2 2 2
2(²1 ²3 − ²2 ²4 ) 2(²2 ²3 − ²1 ²4 ) (−²1 − ²2 + ²3 + ²4 )

3.3 Velocità di un corpo rigido nello spazio


3.3.1 Derivata rispetto al tempo della matrice di rotazione
Consideriamo un corpo B che ruota intorno ad un punto fisso O, sia Ox1 y1 z1 un sistema di
riferimento ad esso solidale, sia Ox0 y0 z0 il sistema di riferimento di base. Consideriamo quindi
un punto P solidale al corpo B, siano:
 0 
px
p =  p0y  (3.50)
0
pz

le sue coordinate rispetto alla terna fissa. La velocità di P è data da:


dp
ṗ = = ω × p = [ω̃]p . (3.51)
dt
Ricordiamo che la matrice [ω̃] è cosı̀definita:
 
0 −ωz ωy
[ω̃] =  ωz 0 −ωx  (3.52)
−ωy ωx 0
Sia [R] la matrice di rotazione che lega la terna mobile alla fissa, per definizione risulta:
 0   1 
px px
 p0y  = [R]  p1y  ; (3.53)
p0z p1z

Le coordinate di P rispetto alla terna mobile risultano costanti (il punto P è solidale al corpo
B). La velocità di P può essere quindi scritta in questa forma:

ṗ = [ω̃][R]p1 . (3.54)

Derivando membro a membro l’equazione (3.53) si ha:

ṗ = [R]ṗ1 + [Ṙ]p1 , (3.55)

ma essendo il punto P solidale al corpo B risulta ṗ1 = 0, per cui risulta:

ṗ = [Ṙ]p1 . (3.56)

Confrontando la (3.56) con la (3.54) si ottiene:

[Ṙ] = [ω̃][R] . (3.57)


CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 35

3.3.2 Velocità angolare e angoli di Eulero


Consideriamo un corpo rigido che ruota intorno a un punto fisso O con velocità angolare ω ~ . Sia
quindi ω la rappresentazione del vettore ω ~ nel sistema di riferimento fisso Oxyz. Utilizziamo
la regola di addizione delle velocità angolari per esprimere ω in funzione delle derivate degli
angoli di Eulero φ̇, θ̇, ψ̇.
La rotazione del corpo rigido con velocità ω può essere vista come risultante di tre rotazioni:
• una rotazione intorno all’asse z con velocità angolare φ̇;
• una rotazione intorno all’asse y 0 con velocità angolare θ̇
• una rotazione intorno all’asse z1 con velocità angolare ψ̇.
In altri termini:
ω = φ̇k + θ̇j0 + ψ̇k1 ; (3.58)
Le componenti del versore j0 possono essere espresse rispetto alla terna base:
 
− sin φ
j0 =  cos φ  ; (3.59)
0
analogamente per il versore z1 risulta:
 
cos (φ) sin (θ)
 
z1 = 
 sin (φ) sin (θ) 
 ; (3.60)
cos (θ)

Sostituendo le (3.59) e (3.60) nella (3.58) si ottiene quindi:


 
  cos (φ) sin (θ)
− sin φ  
ω = φ̇k + θ̇  cos φ  + ψ̇   sin (φ) sin (θ)
=

0 cos (θ)
  
0 − sin φ cos (φ) sin (θ) φ̇
=  0 cos φ sin (φ) sin (θ)   θ̇  (3.61)
1 0 cos (θ) ψ̇
La precedente espressione può essere invertita, in altri termini è possibile esprimere le derivate
degli angoli di Eulero in funzione delle componenti del vettore velocità angolare rispetto alla
terna fissa. E’ possibile verificare che:
 
  − cos(φ) cos(θ)
− sin(φ) cos(θ)
1  
φ̇ 
sin(θ) sin(θ)
 ω1
 θ̇  =  − sin (φ) cos (φ) 0   
  ω2 (3.62)
ψ̇ cos(φ) sin(φ) ω3
sin(θ) sin(θ)
0
Si osserva che l’espressione (3.62) risulta singolare quando sin θ = 0, ovvero quando θ = 0
oppure θ = π. Tutte le sequenze di rotazione di questo tipo presentano problemi di singolarità
in alcune configurazioni. Per questo motivo la rappresentazione dell’orientazione per mezzo
degli angoli di Eulero (per mezzo di tre rotazioni successive) non viene utilizzata nelle procedure
numeriche su cui si basano i software multibody.
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 36

3.3.3 Velocità angolare e parametri di Eulero


Consideriamo l’espressione della derivata della matrice di rotazione definita in precedenza
(equazione (3.57)):
[Ṙ] = [ω̃][R] ,
post-moltiplichiamo per la trasposta della matrice di rotazione:
[Ṙ][R]T = [ω̃][R][RT ] ,
ricordando che [R][R]T = [I], si ha:
[Ṙ][R]T = [ω̃] . (3.63)
Gli elementi della matrice [ω̃] rappresentano le componenti del vettore ω:
 
0 −ωz ωy
ω̃] =  ωz 0 −ωx  , (3.64)
−ωy ωx 0
Le componenti della velocità angolare possono quindi essere calcolate in questo modo:
3
X
ωx = ω̃3,2 = Ṙ3,i Ri,2 (3.65)
i=1
3
X
ωy = ω̃1,3 = Ṙ1,i Ri,3 (3.66)
i=1
3
X
ωz = ω̃2,1 = Ṙ2,i Ri,1 (3.67)
i=1
Ricordando l’espressione della matrice di rotazione in funzione dei parametri di Eulero è possi-
bile verificare che la relazione che lega le componenti della velocità angolare alle derivate dei
parametri di Eulero è la seguente:
   
ω1 ²̇1
 ω2   
  = 2[E]  ²̇2  , (3.68)
 ω3   ²̇3 
0 ²̇4
dove:  
²4 −²3 ²2 ²1
 ²3 ² −² −² 
[E] = 
 −²2 ²1
4 1 2 
 . (3.69)
²4 −²3
²2 ²2 ²3 ²4
A titolo d’esempio ricaviamo l’espressione della prima componente del vettore velocità
angolare:
ω1 = ω̃3,2 = Ṙ3,1 R1,2 + Ṙ3,2 R2,2 + Ṙ3,3 R3,2 =
· ¸ · ¸
d d ¡ ¢
= (2(²1 ²3 − ²2 ²4 )) (2(²1 ²2 − ²3 ²4 )) + (2(²2 ²3 − ²1 ²4 )) −²21 + ²22 − ²23 + ²24 +
dt dt
· ¸
d ¡ ¢
+ −²21 − ²22 + ²23 + ²24 (2(²2 ²3 − ²1 ²4 )) =
dt
= 4 (²1 ²2 + ²3 ²4 ) (²˙1 ²3 + ²1 ²˙3 − ²˙2 ²4 − ²2 ²̇4 ) +
¡ ¢
+ 2 −²21 + ²22 − ²23 + ²24 (²̇2 ²3 + ²2 ²̇3 + ²̇1 ²4 + ²1 ²̇4 ) +
+ 2(²2 ²3 − ²1 ²4 ) (−2²1 ²̇1 − 2²2 ²̇2 + 2²3 ²̇3 + 2²4 ²̇4 ) ;
CAPITOLO 3. CINEMATICA DEL CORPO RIGIDO NELLO SPAZIO 37

sviluppando i prodotti e ricordando poi che risulta ²21 + ²22 + ²23 + ²24 = 1 si ricava facilmente
che:

ω1 = 2(²4 ²̇1 − ²3 ²̇2 + ²2 ²̇3 − ²1 ²̇4 ) .

E’ possibile verificare inoltre che risulta:

[E]−1 = E T , (3.70)

e che quindi l’espressione (3.68) può essere invertita in questo modo:


   
²̇1 ω1
 ²̇2  1  ω2 
  [E]  
 ²̇3  = 2  ω3  . (3.71)
²̇4 0

Si osserva che non esistono singolarità nelle equazioni cinematiche mostrate in precedenza,
per questo molte procedure numeriche utilizzano i parametri di Eulero come rappresentazione
dell’orientazione.

3.3.4 Coordinate generalizzate e velocità generalizzate


Per l’analisi della cinematica e della dinamica dei sistemi multibody abbiamo visto che è
necessario definire, per ogni corpo rigido, un set di almeno sei coordinate, dette coordinate
generalizzate, in grado di descrivere completamente la posizione e l’orientazione del corpo nello
spazio. Sia quindi qi il vettore delle coordinate generalizzate relative al corpo i, contenente la
posizione del baricentro del corpo rispetto alla terna base e gli angoli di Eulero che descrivono
l’orientazione della terna baricentrica rispetto agli assi della terna base:
 
xi
 yi 
 
 zi 
qi =   , (3.72)
φ 
 i 
 θi 
ψi

Definiremo quindi le velocità generalizzate del corpo i come le derivate temporali delle coor-
dinate generalizzate:  
ẋi
 ẏi 
 
 żi 

q̇i =   . (3.73)
φ̇ 
 i 
 θ̇i 
ψ̇i
Per descrivere la velocità del corpo rigido nello spazio potremmo comunque scegliere una
qualsiasi combinazione lineare delle velocità generalizzate.
Ad esempio, potremmo scegliere le componenti della velocità angolare anziché le derivate
degli angoli di Eulero per descrivere la parte rotazionale della velocità. La relazione (3.61)
permette di esprimere le componenti del vettore velocità angolare rispetto alle derivate degli
angoli di Eulero.
Capitolo 4

Cinematica dei sistemi piani

4.1 Sistema delle equazioni di vincolo


4.1.1 Vincoli sul sistema meccanico
In questo contesto, indicheremo con il termine vincolo una relazione matematica tra le co-
ordinate generalizzate dei corpi, che in un certo senso ”limitano” le possibilità di moto del
sistema.

• I vincoli sulla posizione vengono definiti olonomi;

• i vincoli in cui compare anche la velocità vengono detti anolonomi

I vincoli possono essere ulteriormente classificati in:

Scleronomi: vincoli strutturali dovuti alla presenza delle coppie cinematiche,


dal punto di vista matematico sono caratterizzati dal fatto di non
avere dipendenza esplicita dal tempo. In altri termini, questi
tipi di vincolo saranno rappresentati da una relazione del tipo
ψk (q) = 0.

Reonomi: vincoli dovuti alle leggi di moto assegnate ad alcuni membri


del meccanismo. Questo tipo di vincolo è rappresentato da
una relazione in cui compare esplicitamente il tempo, del tipo
ψk (q, t) = 0.

Le equazioni relative ai vincoli reonomi sono equazioni nelle quali compare esplicitamente
la variabile temporale t e vengono quindi imposte dal progettista, mentre le equazioni relative
ai vincoli scleronomi vengono generate in maniera sistematica, con il metodo che ci accingiamo
a descrivere, una volta che sia specificata la topologia del meccanismo e la geometria dei suoi
membri.

4.1.2 Gradi di libertà nei sistemi piani


Consideriamo un meccanismo piano composto da l corpi rigidi (compreso il telaio) mutuamente
vincolati da j1 coppie elementari1 e j2 coppie superiori.
1
Ricordiamo che le coppie elementari, nel caso piano in oggetto, sono esclusivamente di tipo rotoidale o
prismatico, ognuna è caratterizzata da due equazioni di vincolo

38
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 39

Il numero di gradi di libertà del sistema è costituito dalla differenza tra il numero totale di
coordinate generalizzate del sistema (dimensione dello spazio delle configurazioni) e il numero
di relazioni che possono essere scritte per i vincoli reonomi. In altri termini, il numero di gradi
di libertà F del sistema risulta quindi:

F = 3(l − 1) − 2j1 − j2 . (4.1)

Questa relazione vale nel caso di configurazioni non singolari.


In totale, per i vincoli scleronomi, sarà possibile scrivere un numero di equazioni di vincolo
pari a 2j1 + j2 . Nelle equazioni di vincolo compariranno le 3(l − 1) coordinate generalizzate
del sistema.
Affinché il problema dell’analisi cinematica del meccanismo possa essere risolto, dovranno
essere fornite F = 3(l − 1) − 2j1 − j2 equazioni corrispondenti ai vincoli reonomi presenti
(leggi di moto).

4.1.3 Equazioni di vincolo


L’analisi cinematica del meccanismo (in termini di definizione della configurazione del sistema
durante il moto) si esaurisce quindi con la soluzione numerica delle equazioni ordinarie non
lineari simultanee:

ψk (q, t) = 0 , k = 1, . . . , 3(l − 1) , (4.2)

dove q = [q1 q2 q3 . . . q3i−2 q3i−1 q3i . . . q3(l−1)−2 q3(l−1)−1 q3(l−1) ]T ∈ R3(l−1) è il vettore
delle coordinate generalizzate del meccanismo. Di tutte le equazioni (4.2), le prime 2j1 + j2
rappresentano le equazioni dei vincoli scleronomi, mentre le rimanenti F rappresentano le
equazioni dei vincoli reonomi, ovvero le leggi di moto di alcuni degli elementi del meccanismo.

4.1.3.1 Esempio 1: quadrilatero articolato


Supponiamo di voler eseguire l’analisi cinematica di un quadrilatero articolato col metodo delle
equazioni di vincolo: si devono scrivere 8 equazioni di vincolo (due per ognuna delle coppie
rotoidali e per la coppia prismatica) e 1 equazione di moto per un totale di 9 equazioni.

3
1
θ = θ(t)
.................................................
0
l = 4, j1 = 4, j2 = 0

F = 3(l − 1) − 2j1 − j2 = 3(4 − 1) − 2 × 4 = 1

Figura 4.1: Quadrilatero articolato


CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 40

Figura 4.2: Manovellismo di spinta

4.1.3.2 Esempio 2: Manovellismo di spinta


Supponiamo di voler eseguire l’analisi cinematica di un manovellismo di spinta col metodo
delle equazioni di vincolo: anche in questo caso si devono scrivere 8 equazioni di vincolo (due
per ognuna delle coppie rotoidali) e 1 equazione di moto per un totale di 9 equazioni.

4.1.4 Configurazione del meccanismo


Le (4.2), raccolte in un sistema, si possono scrivere come:

ψ(q, t) = 0 , (4.3)

dove ψ = [ψ1 . . . ψ3(l−1) ]T .


Si osserva che (4.3) rappresenta un sistema di 3(l − 1) equazioni non lineari.
Il sistema di equazioni può essere risolto per via numerica, ad esempio per mezzo del metodo
di Newton Raphson. Supponiamo di voler determinare la configurazione del meccanismo in
un certo istante t0 assegnato, dobbiamo in questo caso risolvere il sistema:

ψ(q) = 0 , (4.4)

(la variabile tempo in questo caso non compare, dato che stiamo analizzando la configurazione
del sistema in un istante fissato). Il metodo di risoluzione di Newton - Raphson è basato
sulla linearizzazione del sistema, in altri termini si approssimano le funzioni non lineari che
costituiscono il sistema, in una certa configurazione di partenza qi , per mezzo dei primi due
termini dell’espansione in serie di Taylor. Con questa ipotesi il sistema da risolvere diventa:

ψ(q) ∼
= ψ(qi ) + [Ψq (qi )] (q − qi ) = 0 , (4.5)

avendo definito la matrice [Ψq (q)] come:

∂ψ(q, t)
[Ψq (q)] = (4.6)
∂q
ovvero la matrice Jacobiana della funzione non lineare ψ(q), valutata nella configurazione
qi . Supponendo di conoscere una configurazione approssimata qi , per mezzo della (4.5) è
possibile determinare una nuova stima della configurazione:
¡ ¢
[Ψq ]qi+1 = − ψ(qi ) − [Ψq ]qi , (4.7)

La (4.7) costituisce un sistema lineare, che, se la matrice ψ(q) è invertibile, può essere risolto:
¡ ¢
qi+1 = −[Ψq ]−1 ψ(qi ) − [Ψq ]qi , (4.8)
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 41

Figura 4.3: Approssimazione della soluzione di un’equazione non lineare per mezzo del metodo
di Newton Raphson.

La configurazione del meccanismo viene determinata iterando il sistema (4.8) fino alla con-
vergenza della soluzione (ovvero fintantoché la differenza tra la nuova configurazione qi+1 e
quella vecchia qi non diventa trascurabile).
Il metodo di Newton Raphson è caratterizzato da convergenza di tipo quadratico in un
intorno della soluzione. Nella figura 4.3 si riporta schematicamente il funzionamento del
metodo per una funzione in una variabile.
Come accennato nel primo capitolo, il problema della definizione della configurazione in-
iziale in generale può ammettere più di una soluzione. La soluzione verso cui convergerà il
metodo numerico dipende dalla stima iniziale.
Si osserva inoltre che il metodo di Newton - Raphson non sempre converge verso la soluzione
dell’equazione non lineare, se la configurazione iniziale non è sufficientemente ’vicina’ alla
soluzione, si possono avere problemi di divergenza dell’algoritmo numerico.
Un ulteriore problema nasce dal fatto che il problema della configurazione iniziale può non
ammettere soluzione, questo problema si verifica se ai parametri di input (vincoli reonomi)
vengono assegnati valori non compatibili con la geometria del sistema, in questo caso il metodo
numerico necessariamente divergerà.
Il metodo di soluzione proposto è basato sulla inversione della matrice Jacobiana. L’-
efficienza dell’algoritmo per la soluzione del problema della configurazione iniziale dipende
essenzialmente dall’efficienza con cui viene risolto il sistema lineare (4.7).

4.1.5 Velocità del meccanismo


Se deriviamo la 4.3 rispetto al tempo otteniamo:

dψ ∂ψ(q, t) ∂ψ(q, t)
= q̇ + =0 . (4.9)
dt ∂q ∂t
Ricordando la definizione della matrice Jacobiana:
∂ψ(q, t)
[Ψq ] = (4.10)
∂q
e definendo il vettore
∂ψ(q, t)
ψt = (4.11)
∂t
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 42

la (4.9) può essere riscritta:

[Ψq ]q̇ = −ψ t . (4.12)

La (4.10) rappresenta un sistema di 3(l − 1) equazioni in 3(l − 1) incognite (le componenti


del vettore q̇), di tipo lineare, la cui soluzione, se la matrice [Ψq ] risulta non singolare (se cioè
il suo determinante è diverso da zero), risulta data da:

q̇ = −[Ψq ]−1 ψ t . (4.13)

Si osserva inoltre che la matrice [Ψq ] dipende da q, ovvero dalla configurazione del meccan-
ismo. Le configurazioni per le quali risulta det[Ψq ] = 0 sono dette configurazioni singolari.

4.1.6 Accelerazioni del meccanismo


Per quanto riguarda le accelerazioni, derivando rispetto al tempo il primo membro della (4.10),
si ottiene:
d ∂ ∂
([Ψq ]q̇) = ([Ψq ]q̇)q̇ + ([Ψq ]q̇) =
dt ∂q ∂t

= ([Ψq ]q̇)q̇ + [Ψq,t ]q̇ + [Ψq ]q̈ . (4.14)
∂q

Mentre la derivata rispetto al tempo del secondo membro della (4.10) fornisce:

d ∂ d
(ψt ) = (ψt )q̇ + (ψt ) = [Ψt,q ]q̇ + ψ tt . (4.15)
dt ∂q dt

Ricordando che [Ψq,t ] = [Ψt,q ] e definendo il vettore γ come:


γ=− ([Ψq ]q̇)q̇ − 2[Ψq,t ]q̇ − ψ tt , (4.16)
∂q
il problema dell’analisi delle accelerazioni del meccanismo si conclude con la soluzione, per un
generico tempo t, del sistema lineare di equazioni:

[Ψq ]q̈ = γ . (4.17)

4.2 Coppie cinematiche elementari


Nei prossimi paragrafi verranno in dettaglio definite le equazioni di vincolo relative alle principali
coppie cinematiche.

4.2.1 Coppia rotoidale


Come è noto la coppia rotoidale permette solo la rotazione relativa tra i due membri che
collega; nel caso piano tale coppia toglie due gradi di libertà al sistema e, quindi è necessario
scrivere due equazioni di vincolo che legano tra di loro le due terne di coordinate generalizzate
dei due membri collegati.
Con riferimento alla figura 4.4, siano i e j i due corpi rigidi vincolati dalla coppia rotoidale
e sia il punto A la traccia nel piano del moto dell’asse di rotazione della coppia. Le coordinate
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 43

yi K

Y 6 xi * ± xj
xA i
YP ...
...
A .
O ... . ..............
q3i−1......................i..... ..... ..... .....
... ........Y ......
.A .. y .
.. .... A
... . j
A xj
yi.. y j
...
q3j−1......................................................................
... ... Oj
... ...
... ...
... ...
... ...
... ...
.. .. -
q3i−2 q3j−2 X
O

Figura 4.4: Giunto rotoidale

assolute del punto A visto come appartenente al corpo i devono coincidere con quelle dello
stesso punto A, ma visto come appartenente al corpo j. In altri termini esprimiamo le co-
ordinate assolute del punto A una volta attraverso il sistema Oi xi yi zi e una volta attraverso
il sistema Oj xj yj zj ed imponiamo che coincidano. Le due equazioni di vincolo si scrivono
dunque:

XiA − XjA = 0 (4.18)


YiA − YjA = 0 . (4.19)

Scrivendo le coordinate del punto A in termini di coordinate generalizzate per mezzo delle
Eq. (2.7) e (2.8), si ottiene:

XiA = q3i−2 + xA A
i cos q3i − yi sin q3i (4.20)
YiA = q3i−1 + xA A
i sin q3i + yi cos q3i (4.21)

e quindi le equazioni di vincolo diventano:

ψk = q3i−2 + xA A A A
i cos q3i − yi sin q3i − [q3j−2 + xj cos q3i − yj sin q3j ] , (4.22)
ψk+1 = q3i−1 + xA A A A
i sin q3i + yi cos q3i − [q3j−1 + xj sin q3i − yj cos q3j ] . (4.23)

Si può osservare che per scrivere le due equazioni di vincolo di cui sopra, è sufficiente conoscere
la posizione della traccia dell’asse di rotazione della coppia nei due sistemi di riferimento solidali
con i corpi i e j. Per tale ragione il metodo delle equazioni di vincolo risulta particolarmente
adatto ad essere utilizzato in un ambiente multibody. Per concludere l’analisi cinematica della
coppia è necessario calcolare gli elementi della matrice [Ψq ] e del vettore γ introdotti dalla
coppia.
Osserviamo inoltre che, per un generico punto A, risulta:
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 44

- q3i−2 q3i−1 q3i q3j−2 q3j−1 q3j


k 1 0 q3i−1 − YiA -1 0 YjA − q3j−1
k+1 0 1 XiA − q3i−2 0 -1 q3j−1 − XjA

Tabella 4.1: Componenti della k e k + 1 -esima riga della matrice Jacobiana relative a una
coppia rotoidale


(X A ) = −xA A
i sin q3i − yi cos q3i = q3i−1 − Yi
A
, (4.24)
∂q3i i

(YiA ) = xA A A
i cos q3i − yi sin q3i = Xi − q3i−2 . (4.25)
∂q3i

Dalla definizione di [Ψq ] (4.1.5) otteniamo i risultati riassunti nella tabella 5.2
Dalla definizione di γ (4.14) otteniamo:
2
γ(k) = −[q̇3i (q3i−2 − XiA ) − q̇3j
2
(q3j−2 − XjA )] (4.26)
2
γ(k + 1) = −[q̇3i (q3i−1 − YiA ) − q̇3j
2
(q3j−2 − YjA )] . (4.27)

Ancora una volta osserviamo che gli elementi della matrice [Ψq ] e del vettore γ relativi alla
coppia in esame sono individuati dalla semplice conoscenza della posizione dell’asse di rotazione
della coppia rotoidale rispetto ai due sistemi di riferimento solidali con i corpi i e j.

4.2.2 Coppia prismatica


Anche la coppia prismatica toglie, nel caso piano, due gradi di libertà al sistema; con il metodo
delle equazioni di vincolo si scrivono dunque due equazioni che legano tra di loro le coordinate
generalizzate dei due corpi tra loro vincolati. In riferimento alla seguente figura si impongono
le due seguenti condizioni:

• I due punti Ai e Bi appartenenti al corpo i ed il punto Cj appartenente al corpo j


devono essere allineati lungo l’asse della coppia.

• Tra i due corpi non è possibile la rotazione relativa cioè le due coordinate q3i e q3j
differiscono di una quantità ∆φij .

In altri termini: ¯ A ¯
¯ Xi YiA 1 ¯
¯ B ¯
ψk = ¯¯ Xi YiB 1 ¯¯ = 0 (4.28)
¯ XjC YjC 1 ¯
ψk+1 = q3i − q3j − ∆φij = 0 . (4.29)
Svolgendo il determinante indicato nell’eq. 4.24, si ottiene:

ψk = XiA (YiB − YjC ) − YiA (XiB − XjC ) + XiB YjC − YiB XjC =
= XiA YiB − XiA YjC − YiA XiB + YiA XjC + XiB YjC − YiB XjC . (4.30)

Dalla quale, sostituendo i valori delle coordinate dei punti nel sistema di riferimento inerziale in
funzione delle coordinate nei sistemi solidali con i corpi i e j per mezzo delle Eq. (2.7 e 2.8) si
ottiene l’equazione di vincolo cercata. L’equazione 4.25 non necessita ulteriori manipolazioni.
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 45

yi K

Y 6 xi * ± xj
YP Cj Bi
Ai
q3i−1...................O
...i.....
...
... yY
j
...
...
q3j−1......................................................................
... ... Oj
... ...
.... ....
... ...
... ...
... ...
. . -
q3i−2 q3j−2 X
O

Figura 4.5: Giunto prismatico

- q3i−2 q3i−1 q3i


k YiB − YiA XiA − XiB (XiA − Xi )(XjC − q3i−2 )+
B

+(YiA − YiB )(YjC − q3i−1 )


k+1 0 0 1
- q3j−2 q3j−1 q3j
k YiA − YiB XiB − XiA (Xi − Xi )(q3j−2 − XjC )+
A B

(YiA − YiB )(YjC − q3j−1 )


k+1 0 0 -1

Tabella 4.2: Componenti della k e k + 1 -esima riga della matrice Jacobiana relative a una
coppia rotoidale
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 46

L’analisi cinematica della coppia si conclude con il calcolo degli elementi della matrice Ψq e
del vettore γ introdotti dalla coppia.
Dalla definizione di Ψq (4.1.5) otteniamo i risultati riassunti nella tabella 5.3 Dalla definizione
di γ (4.14) otteniamo:

γ(k) = 2q̇3i [(YiA − YiB )(q̇3i−1 − q̇3j−1 ) + (XiA − XiB )(q̇3i−2 − q̇3j−2 )] +
2
+ q̇3i [(XiA − XiB )(q3i−1 − q3j−1 ) + (YiB − YiA )(q3i−2 − q3j−2 )] (4.31)
γ(k + 1) = 0 . (4.32)

4.3 Vincoli elementari


Spesso nell’analisi cinematica di un sistema multibody è necessario imporre vincoli che non
sono direttamente riconducibili a coppie cinematiche. Fanno parte di questa categoria di vincoli
quelli, per esempio, che consistono nell’imporre che due punti appartenenti a due corpi diversi
mantengano fissa la loro distanza. I vincoli in oggetto si distinguono in vincoli di moto assoluto
e vincoli di moto relativo.

4.3.1 Vincoli di moto assoluto


VINCOLO DI DISTANZA DA UN PUNTO FISSO
Si impone che il punto M appartenente al generico corpo i mantenga inalterata la sua distanza
dAM da un generico punto A solidale al sistema di riferimento inerziale.
Le coordinate M nel sistema inerziale sono espresse da (2.10):
· M ¸ · ¸ · M ¸
Xi q3i−2 xi
M = + Ri , (4.33)
Yi q3i−1 yiM

per cui, posto:


· ¸ · ¸
dx XiM − X A
d= = , (4.34)
dy YiM − Y A

l’equazione di vincolo pu essere scritta:

ψk = dT d − d2AM = 0 . (4.35)
VINCOLI SULLE COORDINATE CARTESIANE
Talvolta, in un modello multibody di un meccanismo, risulta utile introdurre equazioni vincolari
direttamente agenti sulle coordinate di un punto M di un corpo i. Per esempio si può imporre
che l’ascissa (o l’ordinata) del punto M sia pari ad un valore prefissato dx (o dy ).
Le equazioni di vincolo si scrivono immediatamente come:

ψkax = XiM − dx = q3i−2 + xM cos q3i − y M sin q3i − dx = 0 , (4.36)


ψkay = YiM − dy = q3i−2 + xM sin q3i + y M cos q3i − dy = 0 . (4.37)
Per quanto riguarda la matrice Ψq , i due vincoli rispettivamente introducono gli elementi:
£ ax ¤ £ ¤
Ψqi = 1 0 −xM M
i sin q3i − yi cos q3i (4.38)
£ ay ¤ £ ¤
Ψqi = 0 1 xM M
i cos q3i − yi sin q3i . (4.39)
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 47

yi M

Y 6

1
M xi
yiM
xM
i
Oi

-
O XiM X

Figura 4.6: Vincolo sull’ascissa

Si può pensare che le distanze dx e dy non siano fisse, ma variabili nel tempo, cioè che sia
dx =dx (t) e dy = dy (t). In tal caso gli elementi dei vettori γ e ψt introdotti da questi due
vincoli risultano:

γ ax = 2
q̇3i (xM M ¨ ,
i cos q3i − yi sin q3i ) + dx (4.40)
γ ax = 2
q̇3i (xM M ¨ ,
i sin q3i + yi cos q3i ) + dy (4.41)
ψt ax = d˙x , (4.42)
ψt ay = d˙y . (4.43)

VINCOLO SULLA POSIZIONE ANGOLARE


Se vogliamo imporre la posizione angolare φi di un corpo i rispetto al sistema di riferimento
assoluto, le equazioni da scrivere risultano:

ψkaφ = q3i − φi = 0 (4.44)


h i £ ¤
Ψaφ
qi = 0 0 1 (4.45)
γ aφ = 0 (4.46)

Se, come nel caso precedente, supponiamo che φi =φi (t), gli elementi di γ e ψt introdotti dal
vincolo sono :

ψt aφ = φ̇i , (4.47)
γ = φ̈i . (4.48)

4.3.2 Vincoli di moto relativo


VINCOLO DI DISTANZA TRA DUE PUNTI APPARTENENTI A CORPI DIVERSI
I due punti Mi e Mj appartenenti rispettivamente al corpo i e al corpo j devono mantenere
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 48

yi M

Y 6

1
xi
φi
................................
Oi

-
O XiM X

Figura 4.7: Vincolo sulla posizione angolare

inalterata la loro distanza dij diversa da zero.


Esprimendo le coordinate Mi e Mj nel sistema OXY Z (vedi eq. 2.10), se definiamo il

6
Y

yi O dij
yj
µ

Mi : Mj
xi Oj
:
µ Oi
rj
ri
xj R
-
O X

Figura 4.8: Vincolo sulla distanza tra due punti

vettore distanza tra i due punti come:


· ¸
XiM − XjM
d= , (4.49)
YiM − YjM
l’equazione di vincolo può essere scritta:

ψk = dT d − d2ij = 0 . (4.50)
VINCOLI SULLE COORDINATE CARTESIANE RELATIVE
In maniera del tutto simile a quanto fatto per le coordinate assolute di un punto si possono
ricavare le equazioni di vincolo sulle coordinate relative di due punti appartenenti a corpi diversi.
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 49

4.4 Coppie superiori


Anche le coppie superiori (camme, ingranaggi...) possono essere trattate con il metodo delle
equazioni di vincolo. Con riferimento alla figura precedente si introducono due ulteriori sistemi

Y 6

ti
yik ± 6 yjk
]
n M
¾i 1Uy i
θj >
xk i
xi ± ri rj Pj
Pi qθi
xki. ?
tj yj
o
>
xj
Oi y z
i
Oj

-
O X

Figura 4.9: Coppie superiori

di riferimento solidali con i due corpi formanti la coppia superiore (Pi xik yik zik e Pj xjk yjk zjk );
tali sistemi di riferimento, rispetto ai quali si suppone di conoscere le equazioni parametriche
dei due profili Ci e Ci , hanno origine, rispettivamente, nei punti Pi e Pj e sono orientati come
i due corrispondenti sistemi con origine nei baricentri (Oi xi yi zi e Oj xj yj zj ). Le coordinate di
un generico punto M appartenente al profilo Ci sono dunque espresse dalle seguenti equazioni
parametriche nel riferimento Pi xik yik zik :

xM
ik = ri (θi ) cos θi (4.51)
M
yik = ri (θi ) sin θi , (4.52)

quindi, poiché i due sistemi Pi xik yik zik e Oi xi yi zi hanno la stessa orientazione si ha:

xM
i = xPi i + ri (θi ) cos θi (4.53)
xM
i = yiPi + ri (θi ) sin θi , (4.54)

da cui nel riferimento assoluto:


· M ¸ · ¸ · M ¸
Xi q3i−2 xi
M = + Ri . (4.55)
Yi q3i−1 yiM
Dobbiamo a questo punto esprimere i vettori normale e tangente al profilo Ci nel punto M .
Posto:

ri0 = (ri ) (4.56)
∂θi
la tangente in M alla curva Ci è parallela al vettore:
· ∂ M ¸ · 0 ¸
(i) ∂θi
(xik ) ri cos θi − ri0 sin θi
ti = ∂ = , (4.57)
∂θi
M
(yik ) ri0 sin θi + ri0 cos θi
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 50

le cui coordinate sono espresse nel sistema Oi xi yi zi . Se definiamo l’operatore matriciale R̂:
· ¸
0 −1
R̂ = , (4.58)
1 0

la normale in M alla curva Ci è parallela al vettore:

ni (i) = R̂ti (i) (4.59)

le cui coordinate sono, ancora una volta, espresse nel sistema Oi xi yi zi .


Per mezzo della matrice Ri si possono esprimere le componenti del vettore tangente e
normale al profilo Ci in M nel sistema fisso OXY Z.

ti = Ri ti (i) (4.60)

ni = Ri ni (i) (4.61)
Le condizione di contatto dei due profili Ci e Cj risultano dunque le seguenti:

1. le coordinate del punto M visto una volta appartenente al profilo Ci e una volta
appartenente al profilo Cj devono essere uguali, ovvero:
· M ¸
Xi − XjM = 0
(4.62)
YiM − YjM = 0

2. il vettore ni e tj devono essere ortogonali, cioè

ni T tj = 0 (4.63)

Si riscrivono dunque 3 equazioni di vincolo, benchè il vincolo di tipo superiore tolga un


solo grado di libertà al sistema . Questo è dovuto al fatto che al vettore q delle coordinate
generalizzate del sistema si devono aggiungere le due variabili θi e θj che descrivono la posizione
del punto di contatto. In altri termini l’analisi di posizione permette di individuare θi e θj e
qundi l’effettivo punto di contatto che abbiamo assunto noto all’inizio di questa trattazione.
Esplicitando le espressioni precedenti rispetto alle coordinate generalizzate si ottiene:

· ¸ · ¸ · ¸ · ¸ · ¸
ψk q3i−2 xMi q3j−2 xMj
= + Ri − − Rj (4.64)
ψk+1 q3i−1 yiM q3j−1 yjM

ψk+2 = (R̂Ri ti (i) )T Rj tj (j) =


= ti (i) R̂T RiT Rj tj (j) = 0 (4.65)

Dalle quali, con successive derivazioni si possono ottenere la matrice Jacobiana [Ψq ] e il vettore
γ.
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 51

rj *
j

k
ri *

Figura 4.10: Coppia di ingranaggi e portatreno

4.5 Coppia ad ingranaggi


Senza far ricorso alla procedura generale del paragrafo precedente, sviluppiamo quindi una
trattazione semplificata di questa coppia superiore. In questa trattazione non si utilizzano i
profili dei denti per scrivere le equazioni di vincolo derivanti dal contatto di due di essi, ma si
fa uso delle polari del moto della ruota i e della ruota j. Le due polari i e j sono mantenute a
contatto dal corpo k, il portatreno. La condizione di vincolo si può esprimere imponendo che
le velocità relative al portatreno nel punto di contatto siano uguali:

ωik ri = ωjk rj (4.66)

dove con ωik e ωjk abbiamo indicato le velocità angolari delle due ruote relative al portatreno
e con ri ed rj i due raggi.
Dalla definizione di coordinate generalizzate,

ωik = q̇3i − q̇3k (4.67)


ωjk = q̇3j − q̇3k (4.68)

da cui, sostituendo nella 4.62, si ottiene:


q̇3i − q̇3k rj
= . (4.69)
q̇3j − q̇3k ri

La (4.65) è la ben nota formula di Willis.


r z
Posto τ = rji = ± zji , con zi e zj numero dei denti (il segno + si riferisce alle ruote interne,
il segno − si riferisce alle ruote esterne), si può scrivere:

q̇3i − q̇3k = τ q̇3j − q̇3k (4.70)

da cui:

q̇3i − τ q̇3j + (τ − 1)τ q̇3kj = 0 (4.71)


CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 52

Integrando rispetto al tempo l’equazione (4.67) si ottiene l’equazione di vincolo cercata:


0 0 0
Ψk = (q3i − q3i ) − τ (q3j − q3j ) + (τ − 1)(q3k − q3k )=
0 ri 0 rj − ri 0
= (q3i − q3i ) − (q3j − q3j )+ (q3k − q3k )
rj ri
da cui si ottiene:
0 0 0
Ψk = ri (q3i − q3i ) − rj (q3j − q3j ) + (rj − ri )(q3k − q3k ) = 0, (4.72)
0 0 0
avendo indicato con q3i , q3j , q3k le posizioni iniziali rispettivamente dei tre membri i, j, k.
Le componenti della riga della matrice jacobiana relative al vincolo costituito dalle ruote
dentate sono le seguenti:

(ψ) = 0 ,
∂q3i−2

(ψ) = 0 ,
∂q3i−1

(ψ) = ri ,
∂q3i

(ψ) = 0 ,
∂q3j−2

(ψ) = 0 ,
∂q3j−1

(ψ) = −rj ,
∂q3j

(ψ) = 0 ,
∂q3k−2

(ψ) = 0 ,
∂q3k−1

(ψ) = rj − ri .
∂q3k
Il vettore γ è sempre nullo.
NOTA: si è ricavata la sola equazione di vincolo della coppia superiore e non quella
dell’intero meccanismo (altre 4 equazioni).

4.6 Esempio: robot planare a due gradi di libertà


Sono imposte le due leggi di moto q3 = h(t), q6 = g(t). Le equazioni di vincolo strutturale
derivano dalle due coppie rotoidali; per una coppia rotoidale si può scrivere:
ψk = q3i−2 + xA A A A
i cos q3i − yi sin q3i − [q3j−2 + xj cosq3i − yj sin q3j ] (4.73)
ψk+1 = q3i−1 + xA
i sin q3i + yiA cos q3i − [q3j−1 + xA
j sin q3i − yjA cos q3j ] . (4.74)
dove xA
i , yiA e xA
j eyjA sono le coordinate della traccia dell’asse della coppia nei sistemi
Oi xi yi zi e Oj xj yj zj . Nel nostro caso risulta, per la coppia rotoidale in A:
xA A
i = x1 = −L ,
yiA = y1A = 0 ,
xA A
j = Xj = 0 ,
yjA = YjA = 0 ,
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 53

Y x2
y1 O1 = (q1 , q2 )
A X y2 O2 = (q4 , q5 )
q6
O2
O1

2L q3 B 2L
x1

Figura 4.11: Manipolatore planare a due gradi di libertà.

per cui le prime due equazioni di vincolo sono le seguenti:

q1 − L cos q3 = 0 ,
q2 − L sin q3 = 0 .

Per la coppia rotoidale in B si ha:

xB B
i = x1 = L ,
yiB = y1B = 0 ,
xB B
j = x2 = −L ,
yjB = y2B = 0 ,

per cui le corrispondenti due equazioni si scrivono:

q1 + L cos q3 − (q4 − L cos q6 ) = 0 ,


q2 + L sin q3 − (q4 − L sin q6 ) = 0 .

Ricapitolando, le equazioni di vincolo strutturale possono essere scritte in questo modo:


 
q1 − L cos q3
 q2 − L sin q3 
ψs =  
 q1 + L cos q3 − (q4 − L cos q6 )  = 0 . (4.75)
q2 + L sin q3 − (q4 − L sin q6 )

Le equazioni di vincolo reonomo sono:


· ¸
d q3 − h(t)
ψ = =0 . (4.76)
q6 − g(t)

Da cui derivando si ottiene la matrice Jacobiana:


 
1 0 L sin q3 0 0 0
 0 1 −L cos q3 0 0 0 
 
 1 0 −L sin q3 −1 0 −L sin q6 
[Ψq ] =  0

 , (4.77)
 1 L cos q3 0 −1 L cos q6 
 0 0 1 0 0 0 
0 0 0 0 0 1
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 54

Figura 4.12: Manovellismo di spinta centrato: schema cinematico

ed il vettore ψt :
 
0
 0 
 
 0 
ψt = 


 . (4.78)
 0 
 ḣ(t) 
ġ(t)

Ed infine, derivando ancora una volta si ottiene il vettore γ:


 
−q̇32 L cos q3
 q̇32 L sin q3 
 2 
 q̇3 L cos q3 + q̇6 L cos q6 
2

γ= 2  . (4.79)
q̇ L sin q + q̇ 2
L sin q 
 3 3 6 6 
 −ḧ(t) 
−g̈(t)

4.7 Esempio: Manovellismo di spinta centrato


In questo esempio si analizza, per mezzo della metodologia descritta, la cinematica di un
manovellismo di spinta centrato, schematizzato nella figura 4.12.
Il meccanismo è costituito da quattro membri (compreso il telaio), collegati tra loro per
mezzo di tre coppie rotoidali (nei punti O, A e B) e da una coppia prismatica. Il meccanismo
ha complessivamente 1 grado di libertà, dovranno pertanto essere scritte 8 equazioni di vincolo
scleronomo, corrispondenti alle quattro coppie cinematiche, e un’equazione di vincolo reonomo.
I sistemi di riferimento solidali ad ogni membro e il sistema di riferimento di base sono
scelti come mostrato in figura. In particolare, per i membri 1 e 2 il sistema è scelto con origine
nel punto medio del segmento che congiunge gli assi delle coppie rotoidali e l’asse x è scelto
lungo la direzione individuata dal segmento stesso. Il sistema di riferimento dell’elemento 3
ha origine nel punto B, proiezione dell’asse della coppia rotoidale che lo collega a 2, e l’asse x
orientato secondo la direzione di traslazione consentita dalla coppia prismatica. Il sistema di
riferimento del membro 4 è il sistema di riferimento di base e ha origine nel punto O.
Per gli elementi 2 e 3 si assumono lunghezze pari rispettivamente a 2 e 3.5.
Nella tabella 4.3 si riassumono i dati realtivi alle coppie rotoidali, i dati necessari per
scrivere le equazioni di vincolo sono le coordinate degli assi delle coppie rotoidali nei sistemi
di riferimento relativi ai membri che collegano.
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 55

Membro i Membro j xi yi xj yj
1 4 -1 0 0 0
1 2 1 0 -1.75 0
2 3 1.75 0 0 0
Tabella 4.3: Manovellismo di spinta, riepilogo dei dati relativi alle coppie rotoidali

Le equazioni di vincolo possono essere calcolate applicando le equazioni (4.69) e (4.70). Si


riporta il listato di una function MATLAB che, a partire dalle coordinate dell’asse della coppia
nei sistemi di riferimento solidali ai membri xi , yi , xj , yj , genera le equazioni di vincolo:

function vincolo =
rotoidale2d(xP_i,yP_i,xP_j,yP_j,xi,yi,thetai,xj,yj,thetaj)
% riporto i punti nelle coordinate di base
posP_0i = local2base(xP_i,yP_i,xi, yi, thetai);

posP_0j = local2base(xP_j,yP_j,xj, yj, thetaj);

vincolo = posP_0i - posP_0j;

La procedura utilizza due ulteriori function: la prima, local2base, permette di riportare le


coordinate di un punto, dal sistema di riferimento locale a quello di base:

function pos = local2base(xP_i,yP_i,xi, yi, thetai)

posP_i = [xP_i yP_i]’; posi_0 = [xi yi]’; Ri = rot2d(thetai);

pos=posi_0 + Ri*posP_i;

La seconda, rot2d, ha come input un angolo theta e fornisce come output la matrice di
rotazione corrispondente a quell’angolo:

function R = rot2d(theta)

R = [cos(theta) -sin(theta);
sin(theta) cos(theta)];

Utilizzando le function definite precedentemente si possono facilmente dedurre le equazioni


di vincolo per le tre coppie rotoidali:

• per la coppia rotoidale in O:

ψ1 = q1 − cos q3 = 0 ,
ψ2 = q2 − sin q3 = 0 ; (4.80)
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 56

• per la coppia rotoidale in A:

ψ3 = q1 + cos q3 − q4 + 1.75 cos q6 = 0 ,


ψ4 = q2 + sin q3 − q5 + 1.75 sin q6 = 0 ; (4.81)

• per la coppia rotoidale in B:

ψ5 = q4 + 1.75 cos q6 − q7 = 0 ,
ψ6 = q5 + 1.75 sin q6 − q8 = 0 ; (4.82)

Nella tabella 4.4 si riassumono i dati relativi alla coppia prismatica che collega l’elemento
3 al telaio 4, i dati necessari per scrivere le equazioni di vincolo sono le coordinate di tre punti,
tra loro allineati, due appartenenti all’elemento i e uno all’elemento j, e l’angolo ∆φ tra le
direzioni di xi e j.

Membro i Membro j xPi yiP xQ


i yiQ xR
j yjR ∆φ
3 4 0 0 1 0 1 0 0
Tabella 4.4: Manovellismo di spinta, riepilogo dei dati relativi alla coppia prismatica

I punti P , Q ed R possono essere scelti arbitrariamente, purché allineati, in questo caso si


sono scelti i punti di coordinate (0, 0) e (1, 0) per l’elemento 3 e (1, 0) per l’elemento 4.
Le equazioni di vincolo si possono determinare utilizzando le relazioni (4.24) e (4.25).Per
generare le equazioni di vincolo anche in questo caso si utilizza una function MATLAB di cui
si riporta il listato:
function vincolo =
prismatica2d(xP_i,yP_i,xQ_i,yQ_i,xR_j,yR_j,deltatheta,xi,yi,thetai,xj,yj,

posP_0 = local2base(xP_i,yP_i,xi, yi, thetai);

posQ_0 = local2base(xQ_i,yQ_i,xi, yi, thetai);

posR_0 = local2base(xR_j,yR_j,xj, yj, thetaj);

matrice = [posP_0’ 1;
posQ_0’ 1;
posR_0’ 1];

vincolo1 = det(matrice); vincolo2 = thetai - thetaj - deltatheta;


vincolo = [vincolo1;vincolo2];
Utilizzando questa function si determinano due ulteriori equazioni di vincolo:

ψ7 = q7 sin q9 − q8 cos q9 = 0 ,
ψ8 = q9 = 0 ; (4.83)

Per quanto riguarda l’equazione di vincolo reonomo, si suppone, a titolo di esempio, che
l’elemento 1 ruoti intorno al punto O con velocità angolare ω costante, risulta quindi:

ψ9 = q3 − ωt = 0 ; (4.84)
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 57

In sintesi, le equazioni di vincolo del meccanismo sono le seguenti:

 

 q1 − cos q3 


 


 q2 − sin q3 


 


 q1 + cos q3 − q4 + 1.75 cos q6 


 

 q2 + sin q3 − q5 + 1.75 sin q6 
Ψ= q4 + 1.75 cos q6 − q7 =0 (4.85)

 


 q5 + 1.75 sin q6 − q8 


 


 q7 sin q9 − q8 cos q9 


 


 q9 

 
ωt − q3
∂Ψ(q,t)
E’ possibile quindi calcolare la matrice Jacobiana Ψq = ∂q
:

 
1 0 sin q3 0 0 0 0 0 0
 0 1 − cos q3 0 0 0 0 0 0 
 
 1 0 − sin q3 −1 0 −1.75 sin q6 0 0 0 
 
 0 1 cos q3 0 −1 1.75 cos q6 0 0 0 
 
Ψq (q) = 
 0 0 0 1 0 −1.75 sin q6 −1 0 0  (4.86)
 ,
 0 0 0 0 1 1.75 cos q6 0 −1 0 
 
 0 0 0 0 0 0 sin q9 − cos q9 q7 cos q9 + q8 sin q9 
 
 0 0 0 0 0 0 0 0 1 
0 0 −1 0 0 0 0 0 0
∂Ψ(q,t)
ed il vettore Ψt = :
∂t  
0
 0 
 
 0 
 
 0 
 
Ψt = 
 0 
 (4.87)
 0 
 
 0 
 
 0 
ω
Il vettore γ, per il calcolo delle accelerazioni, è dato da:
 
− cos q3 q̇32
 − sin q3 q̇32 
 
 cos q3 q̇32 + 1.75 cos q6 q̇62 
 
 sin q3 q̇32 + 1.75 sin q6 q̇62 
 
γ=  1.75 cos q6 q̇26
2 
 (4.88)
 1.75 sin q6 q̇6 
 
 −2q̇9 q̇7 cos q9 − 2q̇9 q̇8 sin q9 + q̇ 2 q7 sin q9 − q̇ 2 q8 cos q9 
 9 9 
 0 
0
I risultati ottenuti sono stati utilizzati per l’analisi cinematica del meccanismo, ovvero per
determinare, durante il moto, posizione, velocità e accelerazione di tutti gli elementi del
meccanismo.
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 58

Figura 4.13: Manovellismo di spinta centrato: configurazione iniziale (punto morto superiore)

• si suppone che la configurazione del meccanismo al tempo t, q(t), sia nota;

• è possibile quindi calcolare la matrice Jacobiana, Ψq , il vettore Ψt ed il vettore γ


corrispondenti a questa configurazione;

• possono di conseguenza calcolare le derivate del vettore configurazione q̇(t) e q̈(t):

q̇(t) = −Ψ−1
q Ψt , (4.89)

q̈(t) = Ψ−1
q γ , (4.90)

• dopo un tempo ∆t sufficientemente piccolo, il vettore configurazione può essere calco-


lato, con buona approssimazione, in questo modo:
1
q(t + ∆t) = q(t) + q̇(t)∆t + q̈(t)∆t2 ; (4.91)
2

In questo esempio, si è partiti da una configurazione iniziale (per t = 0) in cui q3 = 0


(punto morto superiore, vedi figura 4.13), il vettore iniziale delle configurazioni è quindi il
seguente:  
1
 0 
 
 0 
 
 2.75 
 
q(0) = 
 0  ,
 (4.92)
 0 
 
 4.5 
 
 0 
0

4.8 Esempio: quadrilatero articolato


Si analizza quindi la cinematica di un quadrilatero articolato. Le aste hanno lunghezze pari a:

• l1 = 0.2m;

• l2 = 0.35m;

• l3 = 0.25m;

Fissato un sistema di riferimento inerziale O0 x0 y0 , le coppie rotoidali che vincolano l’asta 1 e


l’asta 4 al telaio hanno coordinate pari a, rispettivamente, (0,0) e (4,0).
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 59

5.5

4.5

ascissa del pistone


3.5

2.5

1.5

1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tempo

Figura 4.14: Manovellismo di spinta centrato: ascissa del pistone durante la simulazione.

−4
x 10
8

6
errore nella stima della posizione

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura 4.15: Manovellismo di spinta centrato: errore nella stima dell’ascissa del pistone.

25

20

15

10
velocità del pistone

−5

−10

−15

−20

−25
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tempo

Figura 4.16: Manovellismo di spinta centrato: velocità del pistone durante la simulazione.
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 60

200

100

accelerazione del pistone


−100

−200

−300

−400
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tempo

Figura 4.17: Manovellismo di spinta centrato: accelerazione del pistone durante la simulazione.

4.8.1 Equazioni di vincolo


Le equazioni di vincolo, relative alle quattro coppie rotoidali, risultano pari a:

• per la coppia rotoidale fissa in O0 :

q1 − l1 cos q3 = 0 ;
q2 − l1 sin q3 = 0 ;

• per la coppia rotoidale fissa che collega le aste 1 e 2:

q1 + l1 cos q3 − q4 + l2 cos q6 = 0 ;
q2 + l1 sin q3 − q5 + l2 sin q6 = 0 ;

• per la coppia rotoidale fissa che collega le aste 2 e 3:

q4 + l2 cos q6 − q7 + l3 cos q9 = 0 ;
q5 + l2 sin q6 − q8 + l3 sin q9 = 0 ;

• per la coppia rotoidale fissa che collega l’asta 3 al telaio:

q7 + l3 cos q9 = 0 ;
q8 + l3 sin q9 = 0 ;

Il sistema ha un grado di libertà, è quindi necessario definire un’equazione di vincolo reonomo.


In questo esempio si suppone di imporre il moto alla manovella collegata al telaio nel punto
O0 . La corrispondente equazione di vincolo reonomo sarà quindi:

q3 = θ(t) ;
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 61

Riassemblando tutte le equazioni di vincolo si ottiene:


 

 q1 − 0.1 cos q3 


 


 q 2 − 0.1 sin q3 


 


 q1 + 0.1 cos q3 − q4 + 0.175 cos q6 


 

 q2 + 0.1 sin q3 − q5 + 0.175 sin q6 
ψ= q4 + 0.175 cos q6 − q7 + 0.125 cos q9 =0 (4.93)

 


 q5 + 0.175 sin q6 − q8 + 0.125 sin q9 


 


 q 7 − 0.125 cos q9 


 


 q − 0.125 sin q9 

 8 
q3 − θ(t)

4.8.2 Jacobiano delle equazioni di vincolo


Calcolando le derivate parziali della (4.89) rispetto alle variabili q si ottiene:
 
1 0 0.1 sin q3 0 0 0 0 0 0
 0 1 −0.1 cos q3 0 0 0 0 0 0 
 
 1 0 −0.1 sin q3 −1 0 −0.175 sin q6 0 0 0 
 
 0 1 0.1 cos q3 0 −1 0.175 cos q6 0 0 0 
 
[Ψq ] = 
 0 0 0 1 0 −0.175 sin q6 −1 0 −0.125 sin q9 
 (4.94)
 0 0 0 0 1 0.175 cos q6 0 −1 0.125 cos q9 
 
 0 0 0 0 0 0 1 0 −0.125 sin q9 
 
 0 0 0 0 0 0 0 1 0.125 cos q9 
0 0 1 0 0 0 0 0 0

4.8.3 Configurazione iniziale


Si analizza quindi il problema della configurazione iniziale. Si impone alla manovella l1 una
rotazione pari a −π/4. La configurazione del meccanismo corrispondente a questa rotazione
viene calcolata per mezzo del metodo iterativo di Newton Raphson descritto nei paragrafi
precedenti.
Si parte da una configurazione iniziale q0 iniziale (assegnata attribuendo un valore random
alle 9 componenti del vettore q). Si sostituiscono i valori numerici nelle espressioni (4.89) e
(4.90), la nuova stima della configurazione si ottiene risolvendo il sistema:

[Ψq ]|q=q0 q1 = Ψ|q=q0 − [Ψq ]|q=q0 q0 . (4.95)

La procedura è stata ripetuta finché la differenza tra le configurazioni calcolate in due iterazioni
successive è risultata inferiore ad un valore fissato (pari a 0.0001).
Ricordiamo che il problema della definizione della configurazione iniziale non presenta in
generale una sola soluzione. Nelle figure 4.18 e 4.20 si riportano le due configurazioni ottenute,
entrambe compatibili con le condizioni di vincolo imposte, mentre nelle figure 4.19 e 4.21 si
riporta la somma dei valori assoluti delle differenze tra i componenti del vettore configurazione
in due iterazioni successive. Come si vede in entrambi i casi il metodo iterativo raggiunge la
convergenza (errore totale inferiore a 0.0001) in cinque e sei iterazioni.
La configurazione finale ottenuta (tra le due possibili) dipende dalla configurazione di
partenza q0 .
CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 62

0.15

y3

0.1
O
3
y0
y2 x
2

0.05

[m]
x
3
O
2

y0
x0
0
O0
y1
−0.05

O
1
x1
−0.1

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4


x [m]
0

Figura 4.18: Quadrilatero articolato, configurazione iniziale.

140

120

100

80
|qi − qi−1|

60

40

20

0
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
iterazione

Figura 4.19: Quadrilatero articolato, errore durante il calcolo della configurazione iniziale.

0.1
y0

0.05

x
O0 0
0

y1
x3
−0.05
[m]

O1
y0

−0.1 O
x1 y1 y3 3

−0.15

−0.2
O2
x2
−0.25

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45


x0 [m]

Figura 4.20: Quadrilatero articolato, configurazione iniziale.


CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 63

|qi − qi−1|
4

0
1 1.5 2 2.5 3 3.5 4 4.5 5
iterazione

Figura 4.21: Quadrilatero articolato, errore durante il calcolo della configurazione iniziale.

1.5

0.5

−0.5

−1

−1.5

−2

−2.5

−3

−1 0 1 2 3 4

Figura 4.22: Quadrilatero articolato, simulazione cinematica.

traiettoria del baricentro della biella

1.5

0.5

−0.5
y

−1

−1.5

−2

−2.5

−3

−1 0 1 2 3 4
x

Figura 4.23: Quadrilatero articolato, traiettoria del baricentro della biella.


CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 64

3
componente lungo x
componente lungo y

vel.
−1

−2

−3

−4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tempo

Figura 4.24: Quadrilatero articolato, velocità del baricentro della biella.

0.5

0.45

0.4

0.35
vel.angolare

0.3

0.25

0.2

0.15

0.1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tempo

Figura 4.25: Quadrilatero articolato, velocità angolare della biella.

5
componente lungo x
componente lungo y
4

1
acc.

−1

−2

−3

−4

−5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tempo

Figura 4.26: Quadrilatero articolato, accelerazione del baricentro della biella.


CAPITOLO 4. CINEMATICA DEI SISTEMI PIANI 65

−0.2

−0.4
acc.angolare

−0.6

−0.8

−1

−1.2

−1.4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tempo

Figura 4.27: Quadrilatero articolato, accelerazione angolare della biella.


Capitolo 5

I vincoli: sistemi tridimensionali

5.1 Gradi di libertà


Ponendo λ = 3 se i corpi sono caratterizzati da moto sferico o piano e λ = 6 se i corpi si
muovono di un moto spaziae generico e indicando con:
l: il numero di corpi che costituiscono il meccanismo (compreso il
telaio);

j: il numero di coppie cinematiche;

fi : il numero di gradi di libertà lasciati dall’i-ma coppia cinematica,


il numero di gradi di libertà del meccanismo, che indichiamo con F è dato da:
j
X
F = λ (l − 1) − (λ − fi ) =
i=1
j
X
= λ (l − j − 1) + fi (5.1)
i=1

Nella tabella 5.1 si riportano le principali coppie cinematiche ed i gradi di libertà associati a
ciascuno.

5.2 Sistemi di riferimento


Consideriamo un generico corpo i, a cui è associato il sistema di riferimento oi xi yi zi ad esso
solidale, con origine nel punto oi , che ne permette la localizzazione nello spazio rispetto al
sistema di riferimento ”di base” OXY Z, che supporremo inerziale.

Nome f moti inibiti


rotoidale 1 2 rotazioni e 3 traslazioni
prismatica 1 3 rotazioni e 2 traslazioni
cilindrica 2 2 rotazioni e 2 traslazioni
sferica 3 3 traslazioni
sfera nel cilindro 4 2 traslazioni
Tabella 5.1: Coppie cinematiche usate frequentemente e gradi di libertà associati

66
CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 67

Figura 5.1: Coppia rotoidale

Figura 5.2: Coppia prismatica

Figura 5.3: Coppia cilindrica

Figura 5.4: Coppia sferica


CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 68

Figura 5.5: Riferimento di giunto per il generico corpo rigido i.

Per la caratterizzazione dei vincoli è utile introdurre degli ulteriori sistemi di riferimento.
Per la generica coppia cinematica k che lega il corpo i al corpo j definiremo due nuovi sistemi
di riferimento (che chiameremo sistemi di riferimento di giunto):
Pik xik yik zik , con origine nel punto Pik , solidale al corpo i;
Pjk xjk yjk zjk , con origine nel punto Pjk ,solidale al corpo j.
Per il corpo i, (vedi figura 5.5)l’orientamento del sistema di riferimento di giunto è individuata

− −

per mezzo dei tre coseni direttori dei versori f ik , → −
g ik e h ik associati ai tre assi xik , yik e


zik rispettivamente. Il versore h ik è individuato dal punto Qik , posto a distanza unitaria da


Pik , analogamente il versore f ik è individuato dal punto Rik , posto a distanza unitaria da
Pik , rispetto al sistema di riferimento solidale al corpo i avremo quindi:
(i) (i) (i)
fik = Rik − Pik ,
(i) (i) (i)
hik = Qik − Pik .

→ −

Il versore −

g ik può essere determinato come prodotto vettoriale di h ik e f ik rispettivamente:

→ −
→ −

g ik = h ik × f ik ,
ovvero, in termini di componenti rispetto al sistema di riferimento i:
(i) (i)
gik = [h̃ik ](i) fik ;
(i) (i) (i) (i) →

indicando con hik = [hx , hy , hz ]T i coseni direttori del versore h ik rispetto al sistema di
riferimento i, la matrice [h̃ik ](i) risulta cosı̀definita:
 
(i) (i)
0 −hz hy
 (i) 
[h̃ik ](i) =  hz(i) 0 −hx  .
(i) (i)
−hy hx 0
Per semplificare la trattazione dei vincoli di base, descritta nei paragrafi successivi, è opportuno
adottare una notazione unica per tutte le coppie cinematiche. Con riferimento alla figura 5.6,
si evidenziano i seguenti vettori:
CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 69

Figura 5.6: Riferimenti di giunto per i corpi i e j: nomenclatura.


CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 70

Figura 5.7: Prima condizione di ortogonalità.

~ri ,~rj : i vettori che congiungono le origini dei sistemi di riferimento sol-
idali ai corpi, oi e oj rispettivamente, con l’origine del sistema di
riferimento di base O;

~si ,~sj : i vettori che congiungono le origini dei sistemi di riferimento di


giunto, Pik e Pjk rispettivamente, con le origini dei sistemi di
riferimento solidali ai corpi oi e oj rispettivamente;

d~ij : il vettore che congiunge Pjk con Pik .

5.3 Vincoli di base


Con il termine vincoli di base indicheremo delle relazioni matematiche tra i sistemi di riferimento
di giunto dei vari corpi rigidi che da sole non rappresentano, nella maggior parte dei casi, coppie
cinematiche vere e proprie, ma che costituiscono appunto la base su cui costruire i vincoli che
caratterizzano il meccanismo.

5.3.1 Vincolo di ortogonalità - primo caso


Vogliamo imporre che due vettori non nulli, ~ai (solidale al corpo i) e ~aj (solidale al corpo j)
siano ortogonali tra loro (vedi figura 5.7)
Com’è noto, condizione necessaria e sufficiente affinché due vettori non nulli siano tra loro
ortogonali è che il loro prodotto scalare sia nullo. La condizione di vincolo di ortogonalità tra
~ai e ~aj si può esprimere quindi in questo modo:

~ai · ~aj = 0 . (5.2)


CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 71

Figura 5.8: Seconda condizione di ortogonalità.

In termini di coseni direttori dei vettori rispetto alla terna base risulta:

(a0i )T a0j = 0 . (5.3)

Indicando quindi con aii e con ajj i coseni direttori dei vettori rispetto alle terne solidali ai
sistemi di riferimento solidali ai corpi i e j rispettivamente e con [R0i ] e [R0j ] le matrici di
rotazione delle terne mobili rispetto alla terna base, risulta:

a0i = [R0i ]aii ,


a0j = [R0j ]ajj .

Sostituendo queste ultime nella relazione 5.3 si ottiene:

([R0i ]aii )T [R0j ]ajj = 0 . (5.4)

L’equazione che esprime il vincolo di ortogonalità tra i due vettori è quindi data la seguente:

Ψo1 (aii , ajj ) = (aii )T [R0i ]T [R0j ]ajj = 0 . (5.5)

La condizione di ortogonalità tra i due vettori si traduce in un’unica equazione scalare.

5.3.2 Vincolo di ortogonalità - secondo caso


Vogliamo imporre che il vettore ~ai (solidale al corpo i) sia ortogonale al vettore ~ai , che
congiunge il punto Pi , solidale al corpo i, con il punto Pj , solidale al corpo j (vedi figura 5.8)
Anche in questo caso si deve imporre che il prodotto scalare tra i vettori ~ai e d~ij sia nullo:

~ai · d~ij = 0 . (5.6)


CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 72

In termini di componenti dei vettori rispetto al sistema di riferimento di base risulta:


(a0i )T d0ij = 0 . (5.7)
Come nel caso precedente, il vettore a0i può essere espresso in funzione delle sue coordinate
rispetto al sistema di riferimento locale:
a0i = [R0i ]aii ,
si osserva inoltre, ricordando la figura 5.6, che il vettore d~ij è dato da:
d~ij = ~rj + ~sj − ~ri + ~si . (5.8)
Le componenti del vettore d~ij rispetto al sistema di riferimento di base sono quindi date da:
d0ij = r0j + [R0j ]sjj − r0i − [R0i ]sii . (5.9)
Sostituendo la (5.9) nella (5.7) si ottiene quindi:
¡ ¢
([R0i ]aii )T r0j + [R0j ]sjj − r0i − [R0i ]sii = 0 , (5.10)
quindi, ricordando la proprietà di ortogonalità delle matrici di rotazione ([R0i ]T [R0i ] = [I]), la
condizione di vincolo si può scrivere in questo modo:
¡ ¢
Ψo2 (aii , sii , sjj ) = (aii )T [R0i ]T r0j + [R0j ]sjj − r0i − (aii )T sii = 0 . (5.11)

5.3.3 Vincolo sferico


Vogliamo imporre che i due punti Pi , solidale al corpo i, e Pj , solidale al corpo j, siano
geometricamente sovrapposti, ovvero che le loro coordinate, rispetto al sistema di riferimento
di base, siano le stesse (vedi figura 5.9). Le coordinate dei due punti, rispetto al sistema di
riferimento di base, sono date da:
P0i = r0i + [R0i ]sii ,
P0j = r0j + [R0j ]sjj ,
La condizione di vincolo risulta quindi data da:
Ψs (Pi , Pj ) = r0i + [R0i ]sii − r0j − [R0j ]sjj = 0 . (5.12)
Si osserva che in questo caso la condizione di vincolo è espressa per mezzo di un’equazione
vettoriale, che si traduce in tre equazioni scalari.

5.3.4 Vincolo di distanza


Vogliamo imporre che i due punti Pi , solidale al corpo i, e Pj , solidale al corpo j, si mantengano
a distanza costante C (vedi figura 5.10).
In altri termini, si deve imporre che il modulo del vettore d~ij abbia modulo costante e pari
a C:
|d~ij | = C . (5.13)
In termini di componenti del vettore rispetto al sistema di riferimento di base risulta:
(d0ij )T d0ij = C 2 . (5.14)
Ricordando l’espressione (5.9) risulta infine:
¡ ¢T ¡ 0 ¢
Ψd (Pi , Pj ) = r0j + [R0j ]sjj − r0i − [R0i ]sii rj + [R0j ]sjj − r0i − [R0i ]sii − C 2 = 0 . (5.15)
Il vincolo sulla distanza tra due punti appartenenti a due corpi diversi si traduce quindi in
un’unica equazione scalare.
CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 73

Figura 5.9: Vincolo sferico.

Figura 5.10: Vincolo sulla distanza tra due punti.


CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 74

Figura 5.11: Vincolo di parallelismo tra due vettori, primo caso.

5.3.5 Vincolo di parallelismo - primo caso


Vogliamo imporre che i due versori ~hik , solidale al corpo i, e ~hjk , solidale al corpo j, si
mantengano paralleli (vedi figura 5.11). Affinché il versore ~hjk sia parallelo a ~hik , è necessario
che risulti perpendicolare al piano perpendicolare a ~hik , che è definito per mezzo dei versori f~ik
e ~gik . In altri termini, la condizione di parallelismo si traduce in due condizioni di ortogonalità:
(
Ψo1 (f~ik , ~hjk )
Ψp1 (~hik , ~hjk ) = . (5.16)
Ψo1 (~gik , ~hjk )

La condizione di parallelismo si traduce quindi in due equazioni scalari.

5.3.6 Vincolo di parallelismo - secondo caso


Vogliamo imporre che il versore ~hik , solidale al corpo i si mantenga parallelo al vettore d~ij ,
che congiunge il punto Pi , solidale al corpo i, con il punto j, solidale al corpo j (vedi figura
5.12). Anche in questo caso, affinché il versore d~ij sia parallelo a ~hik , è necessario che risulti
contemporaneamente perpendicolare ai versori f~ik e ~gik . In altri termini, la condizione di
parallelismo si traduce in due condizioni di ortogonalità:
(
Ψo2 (f~ik , d~ij )
Ψp2 (~hik , d~ij ) = . (5.17)
Ψo2 (~gik , d~ij )

Anche questa condizione di parallelismo si traduce quindi in due equazioni scalari.


CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 75

Figura 5.12: Vincolo di parallelismo tra due vettori, secondo caso.

Pi nel centro della coppia Pj nel centro della coppia


~hi lungo l’asse della coppia ~hj lungo l’asse della coppia
f~i arbitrario f~j arbitrario
Tabella 5.2: Coppia rotoidale: sistemi di riferimento di giunto.

5.4 Equazioni di vincolo per alcune coppie cinematiche


5.4.1 Coppia rotoidale
La coppia rotoidale consente solo la rotazione lungo un asse. I sistemi di riferimento di giunto
vengono scelti come rappresentato in figura 5.13e come sintetizzato nella tabella 5.2. Le
condizioni di vincolo che devono essere imposte sono:

• Pi e Pj devono coincidere, questa condizione porta alla formulazione di 3 equazioni


scalari;

• ~hi e ~hj devono essere paralleli, questa condizione porta alla formulazione di 2 equazioni
scalari.

Le equazioni di vincolo per la coppia rotoidale sono quindi:


½ s
rot Ψ (Pi , Pj )
Ψ = . (5.18)
Ψp1 (~hi , ~hj )
CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 76

Figura 5.13: Coppia rotoidale: scelta dei sistemi di riferimento.

Figura 5.14: Coppia prismatica: scelta dei sistemi di riferimento.

5.4.2 Coppia prismatica


La coppia prismatica consente solo la traslazione lungo un asse. I sistemi di riferimento di
giunto vengono scelti come rappresentato in figura 5.14 e come sintetizzato nella tabella 5.3.
Le condizioni di vincolo che devono essere imposte sono:

• ~hi e ~hj devono essere paralleli, questa condizione porta alla formulazione di 2 equazioni
scalari;

• ~hi e d~ij devono essere paralleli, questa condizione porta alla formulazione di 2 equazioni
scalari;

Pi sull’asse della coppia Pj sull’asse della coppia


~hi parallelo all’asse della coppia ~hj parallelo all’asse della coppia
f~i arbitrario f~j perpendicolare a f~i
Tabella 5.3: Coppia prismatica: sistemi di riferimento di giunto.
CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 77

Figura 5.15: Coppia cilindrica: scelta dei sistemi di riferimento.

Pi sull’asse della coppia Pj sull’asse della coppia


~hi parallelo all’asse della coppia ~hj parallelo all’asse della coppia
f~i arbitrario f~j arbitrario
Tabella 5.4: Coppia cilindrica: sistemi di riferimento di giunto.

• f~i e f~j devono essere perpendicolari, questa condizione porta alla formulazione di un’e-
quazione scalare;

Le equazioni di vincolo per la coppia prismatica sono quindi:



 Ψp1 (~hi , ~hj )

pr
Ψ = Ψp2 (~hi , d~ij ) . (5.19)

 Ψo1 (f~ , f~ )
i j

5.4.3 Coppia cilindrica


La coppia cilindrica consente la rotazione lungo un asse e la traslazione in direzione parallela
all’asse stesso. I sistemi di riferimento di giunto vengono scelti come rappresentato in figura
5.15 e come sintetizzato nella tabella 5.4. Le condizioni di vincolo che devono essere imposte
sono:

• ~hi e ~hj devono essere paralleli, questa condizione porta alla formulazione di 2 equazioni
scalari;

• ~hi e d~ij devono essere paralleli, questa condizione porta alla formulazione di 2 equazioni
scalari;

Le equazioni di vincolo per la coppia cilindrica sono quindi:


(
Ψp1 (~hi , ~hj )
Ψcil = . (5.20)
Ψp2 (~hi , d~ij )
CAPITOLO 5. I VINCOLI: SISTEMI TRIDIMENSIONALI 78

Figura 5.16: Coppia sferica: scelta dei sistemi di riferimento.

Pi nel centro della coppia Pj nel centro della coppia


~hi arbitrario ~hj arbitrario
f~i arbitrario f~j arbitrario
Tabella 5.5: Coppia sferica: sistemi di riferimento di giunto.

5.4.4 Coppia sferica


La coppia sferica consente la rotazione relativa tra due corpi intorno ad un punto fissoI sistemi
di riferimento di giunto vengono scelti come rappresentato in figura 5.16 e come sintetizzato
nella tabella 5.5. La condizione di vincolo di base che deve essere imposta è:

• P~i e P~j devono essere coincidenti, questa condizione porta alla formulazione di 3 equazioni
scalari;

Le equazioni di vincolo per la coppia sferica sono quindi:

Ψsf = Ψs (Pi , Pj ) . (5.21)


Capitolo 6

Richiami di dinamica analitica

6.1 Introduzione
In questo capitolo si introduce il problema dello studio della dinamica dei sistemi multibody. In
particolare verranno richiamati sinteticamente i metodi analitici su cui si basano le procedure
per la derivazione delle equazioni di moto dei sistemi multicorpo.
L’applicazione diretta delle equazioni di Newton può risultare difficoltosa, specialmente per
i sistemi costituiti da un numero elevato di corpi. La difficoltà maggiore consiste nel definire
una procedura sistematica che permetta la generazione delle equazioni di moto per qualsiasi
sistema meccanico.
Un approccio più conveniente dal punto di vista computazionale è quello che fa uso del
principio di Hamilton e delle equazioni di Lagrange. Questo approccio di tipo energetico
consente di giungere ad una formulazione delle equazioni della dinamica in termini variazionali,
che si presta ad essere utilizzata con l’ausilio di un calcolatore.

6.2 Il principio dei lavori virtuali


6.2.1 Spostamenti virtuali
Si definisce spostamento virtuale uno spostamento:

• infinitesimo,

• compatibile con i vincoli del sistema.

Più in dettaglio:

si definisce spostamento virtuale δ~ri di un punto Pi ,in una certa posizione Pi0 all’istante
t0 , ciascuno degli infiniti spostamenti elementari tangenti alle taiettorie passanti per Pi0 che
il punto Pi può compiere con i vincoli irrigiditi all’istante ti .

Si definiscono quindi spostamenti virtuali reversibili quelli tali che se è δ~ri è uno sposta-
mento virtuale, lo è anche -δ~ri .
Definiremo quindi lavoro virtuale di una generica forza F~i il lavoro fatto in corrispondenza
di uno spostamento virtuale δ~ri del suo punto di applicazione, ovvero:

δWi = F~i · δ~ri (6.1)

79
CAPITOLO 6. RICHIAMI DI DINAMICA ANALITICA 80

Più in generale, lo spostamento virtuale di un sistema multibody è costituito da una


variazione infinitesima della sua configurazione congruente con le condizioni di vincolo. Se il
sistema è identificato per mezzo di un set di parametri che indichiamo con il vettore q (ad
esempio il vettore delle coordinate omogenee), il generico spostamento virtuale è identificato
dal vettore δq.
Lo spostamento virtuale del punto di applicazione della forza F~i , indicato in precedenza
con δ~ri può essere calcolato in funzione di δq. Indicando con ri le componenti del vettore δ~ri
rispetto al sistema di riferimento inerziale, risulta:
∂ri ∂ri ∂ri
δri = δq1 + δq2 + ... + δqn = [riq ]δq ; (6.2)
∂q1 ∂q2 ∂qn
avendo indicato con [riq ] la matrice Jacobiana cosı̀definita:
 ∂r 
ix
∂q1
... ∂r
∂qn
ix

 ∂r ∂r 
[riq ] =  ∂qiy1 ... ∂qiyn  . (6.3)
∂riz
∂q1
... ∂r
∂qn
iz

Sostituendo nell’equazione (6.1) si ottiene:


δWi = FTi δri = FTi [riq ]δq =
= QT i δq , (6.4)

6.2.2 Il principio dei lavori virtuali: enunciato


Un sistema meccanico è in equilibrio se e solo se è nullo il lavoro virtuale compiuto da tutte
le forze esterne” che agiscono su di esso.

Se, dunque, indichiamo la forza esterna agente sul generico corpo i appartenente al sistema
con F~i , (l’indice i varia da 1 ad n, avendo indicato con n il numero di corpi che costituiscono
il sistema), il Principio dei Lavori Virtuali può essere cosı̀ formulato:
n
X
δW = F~i · δ~ri = 0 (6.5)
i=1

osserviamo che, se tutte le forze agenti sul sistema sono conservative, la funzione lavoro W
può essere sostituita con la funzione potenziale V e, quindi il “PLV” può essere cosı̀ riscritto:
δV = 0 (6.6)

6.3 Equivalenza tra “PLV” e formulazione newtoniana per


l’equilibrio di un corpo rigido
Il moto di un corpo rigido nello spazio è riconducibile a tre componenti di traslazione e a tre
componenti di rotazione.
Per il moto di traslazione gli spostamenti virtuali δ~rj sono identici per tutti i punti del corpo,
quindi il lavoro delle forze esterne F~j associato al moto di traslazione si può esprimere come:
n
X n
X
δWt = F~j · δ~rj = ( F~j ) · δ~rj = 0 (6.7)
j=1 j=1
CAPITOLO 6. RICHIAMI DI DINAMICA ANALITICA 81

Quindi, perchè δWt sia nullo, essendo δ~rj del tutto arbitrario, deve risultare:
n
X
F~ = F~j = 0 (6.8)
j=1

Avendo indicato con F~ la risultante delle forze esterne.


Per i moti di rotazione, se indichiamo con ~u il versore dell’ asse di rotazione e con δθ
l’angolo di rotazione infinitesimo attorno a tale asse,lo spostamento δ~rj del generico punto di
applicazione della forza F~j può essere espresso come:
δ~rj = δθ~u ∧ ~rj (6.9)
Essendo ~rj il vettore che individua la posizione del punto di applicazione della generica forza.
Il lavoro virtuale associato al moto di rotazione risulta quindi:
n
X n
X
δWr = F~j · δ~rj = F~j · δθ~u ∧ ~rj
j=1 j=1
Xn n
X
= δθ~u · ~rj ∧ F~j = δθ~u · ~rj ∧ F~j = 0
j=1 j=1

ed essendo δθû del tutto arbitrario, perchè risulti δWr = 0 deve essere:
n
X
~ =
M ~rj ∧ F~j = 0 (6.10)
j=1

~ momento risultante delle forze esterne.


avendo indicato con M

6.4 Principio di D’Alembert


Per la prima equazione cardinale della dinamica come noto risulta:
m~a = F~ (6.11)
ovvero:
m~a − F~ = 0 .
Se, dunque, definiamo il vettore delle forze d’inerzia:
F~i = −m~a , (6.12)
la 6.11 si può scrivere :
F~ + F~i = 0 , (6.13)
che costituisce l’espressione del Principio di D’Alembert

Apparentemente non si è guadagnato nulla e il principio di D’Alembert sembra una sem-


plice operazione algebrica, ma fondamentale è l’interpretazione dell’equazione cardinale della
dinamica come equazione di equilibrio. Secondo tale interpretazione la somma delle forze es-
terne agenti sul sistema e delle forze d’inerzia produce equilibrio.
Si può quindi pensare di trattare i problemi di dinamica come problemi di statica, una volta
che si siano messe in conto le forze d’inerzia; in particolare si può estendere al problema della
dinamica il PLV.
CAPITOLO 6. RICHIAMI DI DINAMICA ANALITICA 82

6.5 Principio di D’Alembert-Lagrange


Il Principio dei Lavori Virtuali può essere usato in dinamica nella seguente forma:
n
X
δW = (F~k − mk~ak ) · δrk (6.14)
k=1

con δ~rk spostamento virtuale reversibile.

Può apparire contraddittorio il fatto che un sistema in movimento venga trattato come se
fosse in equilibriio, ma l’apparente contraddizione viene eliminata se si pensa che in 6.14 si fa
esplicitamente riferimento a spostamenti virtuali e non effettivi.

6.6 Esempio: Applicazione del Principio di D’Alembert


La massa m è vincolata ad appartenere ad una circonferenza di equazione : x2 + y 2 = l2 .
Se θ è l’angolo formato dal filo con la verticale, le coordinate del baricentro della massa, nel
sistema di riferimento di figura, sono:

x = l sin θ ,
y = l cos θ .

Vogliamo calcolare gli spostamenti virtuali del baricentro della massa.


Possiamo utilizzare la seguenta regola pratica:
si calcolano dapprima gli spostamenti differenziali effettivi drk, facendo comparire sia i dif-
ferenziali dq delle cordinate che quelli dt del tempo; si pone dt = 0 e si cambia il simbolo d in
δ.
Calcoliamo i differenziali:

dx = (l) sin θdt + l cos θdθ ,
∂t

dy = (l) sin θdt − l sin θdθ .
∂t
Applicando la regola precedente gli spostamenti virtuali sono quindi:

δx = l cos θδθ ,
δy = −l sin θδθ .

Il PLV per il sistema si può quindi scivere:

T sin θl cos θδθ − T cos θl sin θδθ − mgl sin θδθ − mẍδx − mÿδy = 0 .

Esplicitando ẍ e ÿ e sostituendo nell’espressione, si ottiene, dopo le dovute semplificazioni, la


seguente equazione di moto:

lθ̈ + 2l˙θ̇ + g sin θ = 0 .


(6.15)
CAPITOLO 6. RICHIAMI DI DINAMICA ANALITICA 83

6.7 Principio di Hamilton


Consideriamo l’espressione del PLV per un sistema dinamico 6.14 ed integriamola tra due
generici istanti t1 e t2 :
Z t2 Z t2 Xn
δW dt = [ (Fk − mk ak )δrk ]dt (6.16)
t1 t1 k=1

Se ipotizziamo che le forze esterne siano conservative, il lavoro svolto da tali forze è pari alla
differenza di potenziale, cioè all’opposto della diffetenza di energia potenziale V :
Z t2 Xn Z t2
[ (Fk )δrk )]dt = − δV dt . (6.17)
t1 k=1 t1

Integriamo ora per parti il secondo temine:


Z t2 Xn Z t2 X n Z t2 X n
d d
− [ (mk ak )δrk ]dt = − [ (mk vk )δrk ]dt + [ mk vk (δrk ]dt(6.18)
t1 k=1 t1 k=1
dt t1 k=1
dt

e il primo termine del secondo membro di quest’ultima espressione si integra immediatamente,


cioè:
Z t2 X n Xn
d
− [ (mk vk )δrk ]dt = − mk vk δrk \t=t
t=t1
2
. (6.19)
t1 k=1
dt k=1

Per quanto riguarda il secondo termine abbiamo:

Z t2 X n Z t2 X n
d
[ mk vk (δrk ]dt = [ mk vk (δvk )]dt =
t1 k=1
dt t 1 k=1
Z t2 X n
1
= mk (δvk )(δvk )dt =
2 t1 k=1
Z t2 X n
= δ mk vk2 dt =
t1 k=1
Z t2
= δT dt , (6.20)
t1

dove abbiamo indicato con T l’ energia potenziale del sistema di masse.


Ricapitolando la 6.16 si può scrivere:
Z t2 Z t2 Z t2 n
X
δW dt = − δV dt + δT dt − mk vk δrk \t=t2
t=t1 . (6.21)
t1 t1 t1 k=1

Se definiamo la funzione Lagrangiana L come differenza tra l’energia cinetica e l’energia


potenziale:

L=T −V , (6.22)
CAPITOLO 6. RICHIAMI DI DINAMICA ANALITICA 84

la 6.21 diventa:
Z t2 Z t2 n
X
δW dt = δ(T − V )dt − mk vk δrk \t=t
t=t1 =
2

t1 t1 k=1
Z t2 n
X
= δ Ldt − mk vk δrk \t=t
t=t1
2
. (6.23)
t1 k=1

Se si suppone di fissare le configurazioni estreme del sistema meccanico,quelle cioè corrispon-


denti agli istanti t1 e t2 , non sono ammessi spostamenti virtuali in queste configurazioni,
ovvero:

δrk (t1 ) = 0 ,
δrk (t2 ) = 0 ,

si ha:
Z t2 Z t2
δW dt = δ Ldt = 0 , (6.24)
t1 t1

ovvero otteniamo l’espressione del principio di Hamilton:


Z t2
δ Ldt = 0 . (6.25)
t1

Secondo tale principio:

” il moto di un sistema meccanico, nell’ipotesi che siano fissate le configurazioni


Rt es-
treme di tale sistema, procede in modo da rendere stazionario l’integrale δ t12 Ldt per
oqni possibile variazione di configurazione.”

Infine, se consideriamo che sul sistema agiscano anche forze non conservative, dobbiamo
mettere in conto il lavoro virtuale Wn da esse compiuto e il principio di Hamilton si generalizza
nel modo seguente:
Z t2 Z t2
δ Ldt + δWn dt = 0 . (6.26)
t1 t1

6.8 Equazioni di Lagrange


Consideriamo ancora il principio di D’Alembert-Lagrange 6.14 per un sistema costituito da N
masse puntiformi:
N
X
δW = (Fek − mk ak )δrk = 0 .
k=1

Se tale sistema ha n gradi di libertà, scelto l’insieme di coordinate generalizzate (q1 , q2 , . . . , qn ),


si può esprimere il vettore rk in funzione delle coordinate generalizzate:

rk = rk (q1 , q2 , . . . , qn , t) . (6.27)
CAPITOLO 6. RICHIAMI DI DINAMICA ANALITICA 85

Le velocità delle masse ed i relativi spostamenti virtuali si possono dunque esprimere in funzione
delle coordinate nel modo seguente:

Xn
drk ∂rk dqj ∂rk
= + , (6.28)
dt j=1
∂qj dt ∂t
n
X ∂rk
δrk = δqj . (6.29)
j=1
∂qj

Il primo termine della 6.14, cioè il lavoro virtuale compiuto dalle forze esterne si scrive:

N
X N
X n
X N X
X n n
X
∂rk ∂rk
Fek δrk = Fek δqj = Fek δqj = Qj δqj (6.30)
k=1 k=1 j=1
∂qj k=1 j=1
∂qj j=1

Dove si è indicata con Qj la forza generalizzata della direzione della j − esima coordinata
lagrangiana, cioè:

n
X ∂rk δW e
Fek = , (6.31)
j=1
∂qj δqj

dove δW e è il lavoro compiuto da tutte le forze esterne per una variazione della sola coordinata
qj .
Resta da considerare il secondo termine della 6.14:

N
X N
X XX N n
d2 {bf rk d2 rk ∂rk
mk ak δrk = mk δrk = mk δqj . (6.32)
k=1 k=1
dt2 k=1 j=1
dt 2 ∂q
j

osservando che valgono le seguenti uguaglianze:


e che possiamo scrivere l’energia cinetica T del sistema di masse come:

N
1X drk drk
T = mk (6.33)
2 k=1 dt dt

fatte le dovute semplificazioni l’equazione 6.32 si trasforma in:

N
X N
X X d ∂T n
d2 rk ∂T
mk ak δrk = mk 2 δrk = [ ( )− ]δqj . (6.34)
k=1 k=1
dt j=1
dt ∂ q̇j ∂q j

Ritornando quindi all’ espressione del principio di D’alembert-Lagrange 6.14, sostituendo le


espressioni trovate si ottiene:
CAPITOLO 6. RICHIAMI DI DINAMICA ANALITICA 86

che poichè deve valere per qualsiasi spostamento virtuale δqj risulta nulla solo se sono nulli
tutti gli addendi:
µ ¶
d ∂T ∂T
− = Qj , (6.35)
dt ∂ q̇j ∂qj

per j = 1, . . . , n.
CAPITOLO 6. RICHIAMI DI DINAMICA ANALITICA 87

6.9 Equazioni di Lagrange per sistemi non conservativi


In generale, di le forze agenti sulla generica massa k − esima, possimo fare la distinzione tra
forze conservative Fck e non coservative Fnc k .
Cioè si può scrivere:

Fek = Fck + Fnc


k . (6.36)

Per quanto riguarda le forze conservative si osserva che la loro espressione può essere ottenuta
direttamente differenziando la funzione energia potenziale V ad esse associata, ovvero:
N
X n
X ∂V
Fck δrk = − δqj . (6.37)
k=1 j=1
∂qj

Il contributo delle forze non conservative viene invece considerato calcolando le forze general-
izzate: n
X ∂rk
nc
Qj = Fnc
k . (6.38)
j=1
∂qj

le equazioni di Lagrange si possono riscrivere come:


µ ¶
d ∂T ∂T ∂V
− =− + Qj (6.39)
dt ∂ q̇j ∂qj ∂qj

Newline per j = 1, . . . , n

e, poichè V non dipende da q̇


∂ ∂L ∂T
(T − V ) = = (6.40)
∂ q̇j ∂ q̇j ∂ q̇j

Le Equazioni di lagrange per sistemi non conservativi risultano:


µ ¶
d ∂L ∂L
− = Qnc j , (6.41)
dt ∂ q̇j ∂qj

per j = 1, . . . , n.
Osserviamo che questa nuova scrittura delle equazioni di Lagrange di fatto non aggiunge nulla
rispetto alle eq. 7.2, ma può risultare utile per una più spedita scrittura delle equazioni di
moto.
Capitolo 7

Analisi dinamica di un sistema multibody

7.1 Minimizzazione di una funzione soggetta a vincoli


Il metodo dei “moltiplicatori di Lagrange” permette di passare da un problema di ottimiz-
zazione vincolata ad un problema di ottimizzazione senza vincoli.
Supponiamo di voler rendere stazionaria una generica funzione continua e derivabile L(q1 , q2 )
soggetta al vincolo Ψ(q1 , q2 ) = 0 .
In via teorica è possibile ricavare una delle due variabili in funzione dell’ altra per mezzo dell’
equazionre di vincolo, sostituire l’espressione cosı̀ trovata nela funzione L e quindi ricondursi
ad un problema di massimo o minimo di una funzione di un’ unica variabile. Questo modo di
procedere, sempre attuabile in teoria, risulta spesso non praticabile a causa della complessità
della funzione Ψ, che rende l’operazione di esplicitazione di una varabile praticamente irreal-
izzabile. Secondo il metodo dei “moltiplicatori di Lagrange” si può pensare di sostituire al
problema originario il problema di rendere stazionaria la funzione L∗ cosı̀ definita:

L∗ = L − λΨ(q1 , q2 ) . (7.1)

e di trattarla come una funzione nelle variabili q1 , q2 , λ, essendo λ una variabile artificialmente
introdotta detta “moltiplicatore di Lagrange”.
Le condizioni di stazionarietà per la funzione L∗ risultano:

∂L∗ ∂L ∂Ψ
= −λ =0 , (7.2)
∂q1 ∂q1 ∂q1
∂L∗ ∂L ∂Ψ
= −λ =0 , (7.3)
∂q2 ∂q2 ∂q2
∂L∗
= Ψ=0 . (7.4)
∂λ

Si può dimostrare che la soluzione del sistema di equazioni precedente coincide necessariamente
con la soluzione del problema di ottimizzazione vincolata.

7.2 Equazioni di Lagrange per un sistema multibody piano


Consideriamo un sistema costituito da corpi rigidi vincolati tra di loro le cui configurazioni
siano descrivibili mediante le n coordinate lagrangiane q1 , q2 , . . . , qn .

88
CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 89

Partendo dal principio dei lavori virtuali e dal principio di D’Alembert, si arriva alla formu-
lazione di Hamilton (par.6.7), secondo la quale le equazioni della dinamica si possono formulare
imponendo la stazionarietà dell’integrale (eq. 6.25):
Z t2
δ Ldt = 0 . (7.5)
t1

Se si confronta la trattazione di Hamilton con quella di Lagrange (par. 6.8), si possono


interpretare le equazioni di Lagrange , come relazioni che rendono stazionario l’integrale 6.25.
Possiamo cioè affermare che:
“condizione necessaria e sufficiente perchè l’ integrale:
Z t2
L(q1 , . . . , qn , q̇1 , d . . . , q̇n , t)dt (7.6)
t1

sia reso stazionario, con le condizioni che siano nulle le variazioni delle variabili agli estre-
mi di integrazione, (cioè δqj (t1 ) = δqj (t2 ) = 0) è che sia verificato il sistema di equazioni
differenziali: µ ¶
d ∂T ∂T
− = Qj , (7.7)
dt ∂ q̇j ∂qj
con j = 1, . . . , n.

Se però, come nel nostro caso, il sistema meccanico è soggetto a vincoli, cioè le variazioni δqj
non sono più tra loro indipendenti, come dobbiamo formulare le equazioni di Lagrange ?
Il problema si risolve osservando che, grazie alla formulazione di Hamilton, il problema di
scrivere le equazioni di moto di un sistema meccanico soggetto a vincoli si riconduce ad un
problema di ottimizzazione di una funzione vincolata.
In altri termini, con il metodo dei moltiplicatori di Lagrange possiamo definire una funzione
lagrangiana estesa L∗ :

L∗ = T − V − (λ1 Ψ1 , . . . , λp Ψp ) , (7.8)
dove λ1 , . . . , λp sono i moltiplicatori di Lagrange da determinare e Ψ1 , . . . , Ψp sono le equazioni
di vincolo.

7.2.1 Calcolo dell’energia cinetica


L’energia cinetica di un sistema multibody può essere scritta come sommatoria delle energie
cinetiche di ciascun elemento:
(l−1)
X
T = Ti (7.9)
i=1

Le energie cinetiche di ciascun elemento possono essere calcolate come:


1 ¡ 2 2
¢ 1 2
Ti = mi q̇3i−2 + q̇2i−1 + Ji q̇3i (7.10)
2 2
essendo mi la massa dell’i-mo corpo e Ji il momento d’inerzia rispetto ad un asse baricentrico
ortogonale al piano del moto.
CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 90

7.2.2 Calcolo dell’energia potenziale della forza peso


Supponendo che il piano del moto sia verticale e che l’asse Y del sistema di riferimento di
base sia verticale ascendente, l’energia potenziale della forza peso è pari a:
l−1
X
V = mi gq3i−1 . (7.11)
i=1

7.2.3 Equazioni di moto


Applicando le equazioni di Lagrange alla funzione L∗ si ottiene il sistema delle equazioni di
moto:
[M ]q̈ + [ψq ]T λ = Fe , (7.12)
dove con [M ] abbiamo indicato la matrice delle masse, con Fe il vettore delle forze generaliz-
zate, λ il vettore dei moltiplicatori di Lagrange e ψqT è la matrice Jacobiana trasposta associata
al sistema di equazioni di vincolo ψk = 0 con k = 1, . . . , p ( vedi eq. 4.2 par.4.1).

7.2.4 Matrice di massa


Nel caso di moto piano di un sistema composto da n corpi di massa mi e momento di inerzia
baricentrico Ji la matrice di massa sarà del tipo:
 
M1 0 ... 0
 0 M2 ... 0 
M = 
 ... ... ... ...  , (7.13)
0 0 ... Mn
con  
mi 0 0
Mi =  0 mi 0  . (7.14)
0 0 Ji

7.3 Calcolo delle forze generalizzate


Le forze generaizzate si calcolano utilizzando la seguente relazione:
X N
δW ∂~rk
Qj = = F~knc · , (7.15)
δqj k=1
∂qj

essendo δW il lavoro virtuale delle forze non conservative e δj la variazione virtuale della
coordinata qj .

7.3.1 Forza applicata nel baricentro e coppia ortogonale al piano


Supponiamo che la forza F~ di componenti [Fx Fy ]T rispetto al sistema di riferimento di base
sia applicata nell’origine del sistema di riferimento solidale all’i-mo corpo. Supponiamo inoltre
che sul corpo sia applicata una coppia C ortogonale al piano del moto.
Il lavoro virtuale è dato da:
· ¸
Fx
δW = [δq3i−2 , δq3i−1 ] + Cδq3i , (7.16)
Fy
CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 91

Figura 7.1: Forza applicata nell’origine del sistema di riferimento soliale al corpo i e coppia
ortogonale al piano

Figura 7.2: Forza applicata in un generico punto P solidale al corpo i

che possiamo riscrivere nella forma:

δW = δqTi Qi , (7.17)

avendo indicato con qi il vettore [q3i−2 , q3i−1 , q3i ]T e con Q il vettore [Fx , Fy , C]T . Il contributo
della forza F~ e della coppia C nel vettore delle forze generalizzate sarà quindi dato da:

• Fx nella posizione 3i − 2,

• Fy nella posizione 3i − 1,

• C nella posizione 3i.


CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 92

7.3.2 Forza applicata in un punto generico del corpo i


Supponiamo che la forza F~ di componenti [Fx Fy ]T rispetto al sistema di riferimento di base
sia applicata in un punto P solidale al corpo i e avente coordinate [xiP , yPi ]T rispetto al sistema
di riferimento oi xi yi solidale all’i-mo corpo.
E’ definita la matrice di rotazione [Ri ] che permette di passare dalle coordinate nel sistema
di riferimento locale oi xi yi al sistema di riferimento di base OXY :
· ¸
cos q3i − sin q3i
[Ri ] = ; (7.18)
sin q3i cos q3i

le coordinate del punto P nel sistema di riferimento di base risultano date da:
· ¸ · ¸ · i ¸
xP q3i−2 xP
rP = = + [Ri ] . (7.19)
yP q3i−1 ypi

Calcoliamo quindi lo spostamento virtuale del punto P :


· ¸ · i ¸
δq3i−2 xP
δrP = + [Bi ] δq3i , (7.20)
δq3i−1 ypi

avendo indicato con [Bi ] la matrice che si ottiene derivando gli elementi della [Ri ] rispetto a
q3i : · ¸
− sin q3i − cos q3i
[Bi ] = . (7.21)
cos q3i − sin q3i
Calcoliamo quindi il lavoro virtuale della forza F~ :
· ¸ · ¸
T Fx ¡ i i T
¢ Fx
δW = δrP = [δq3i−2 , δq3i−1 ] + [xP , yP ][Bi ] δq3i , (7.22)
Fy Fy

che possiamo scrivere anche in questo caso nella forma:

δW = δqTi Qi , (7.23)

avendo indicato con qi il vettore [q3i−2 , q3i−1 , q3i ]T e con Q il vettore:


 
Fx
Qi =  Fy  . (7.24)
i T
sP [Bi ] F

Il contributo della forza F~ nel vettore delle forze generalizzate sarà quindi dato da:

• Fx nella posizione 3i − 2,

• Fy nella posizione 3i − 1,
· ¸
i i T Fx
• [xP , yP ][Bi ] nella posizione 3i.
Fy
CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 93

Figura 7.3: Attuatore dinamico lineare tra i corpi i e j.

7.3.3 Elementi elastici e viscosi


Supponiamo che i corpi i e j siano collegati tra loro per mezzo di un attuatore che esercita
una forza Fa e collegato in parallelo con un elemento caratterizzato da proprietà elastiche e
viscose.
Siano A e B i punti di attacco dell’elemento ai corpi i e j rispettivamente. Indicando con
l la distanza tra A e B e con l0 la stessa distanza quando l’elemento elastico non è sollecitato,
il modulo della forza che agisce sui due corpi è dato da:

F = k(l − l0 ) + cl˙ + Fa . (7.25)

Sono ovviamente note le coordinate dei punti di attacco A e B nei sistemi di riferimento locali:
· i ¸ · j ¸
i xA j xB
sA = , sB = . (7.26)
i
yA yBj

Le coordinate dei due punti possono essere calcolate nel sistema di riferimento di base:
· ¸
q3i−2
rA = + [Ri ]siA ,
q3i−1
· ¸
q3j−2
rB = + [Rj ]sjB , (7.27)
q3j−1

per cui se definiamo:


dAB = rA − rb , (7.28)
la distanza l tra A e B si può calcolare utilizzando la seguente relazione:

l2 = dTAB dAB . (7.29)

Il lavoro virtuale delle forze esercitate dall’attuatore lineare è dato da:

δW = −F δl (7.30)
CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 94

il segno negativo è dovuto al fatto che per gli elementi elastici la forza tende ad opporsi alla
deformazione.
Si calcola quindi la variazione δl della distanza tra A e B, osservando che:

2lδl = 2dTAB δdAB ,


1 T
δl = d δdAB =
l AB µ· ¸ · ¸ ¶
1 T δq3i−2 i δq3j−2 j
= d + [Bi ]δq3i sA − − [Bj ]δq3j sB . (7.31)
l AB δq3i−1 δq3j−1

Il passo successivo consiste nel calcolo del lavoro virtuale, dalla cui espressione si esplicitano i
termini del vettore delle forze generalizzate. In particolare si avrà:
 δW 
δq3i−2
 δW 
Qi =  δq3i−1  , (7.32)
δW
δq3i
 δW

δq3j−2
 δW 
Qj =  δq3j−1  . (7.33)
δW
δq3j
(7.34)

Calcolando il lavoro virtuale e raccogliendo i vari termini si ottiene:


· ¸
F dAB
Qi = T , (7.35)
l dAB [Bi ]siA
· ¸
F dAB
Qj = − j . (7.36)
l dTAB [Bj ]sB

7.4 Sistema di equazioni differenziali


Il sistema costituito dalle equazioni differenziali:

[M ]q̈ + [Ψq ]T λ = Q (7.37)

(avente come incognite i vettori q1 , ..., qn e λ1 , ..., λp ) e dalle p equazioni algebriche di vincolo
Ψ1 , ..., Ψp presenta un numero di incognite pari a quello delle equazioni, ovvero n + p.
Tale sistema può essere risolto in più modi; spesso per i sistemi meccanici si usa differenziare
due volte le equazioni di vincolo:

[Ψq ]q̈ = − ([Ψq ]q̇)q q̇ − 2[Ψqt ]T q̇ − ΨTtt = γ , (7.38)

che costituisce un sistema di equazioni che possono essere risolte simultaneamente con 7.37,
posto: · ¸½ ¾ ½ ¾
M ΨTq q̈ Q
= , (7.39)
Ψq 0 λ γ
che noti al tempo t posizione e velocità di tutti i corpi presenta quali incognite lineari il vettore
q̈ e λ. Una volta risolto fornisce le accelerazioni e le reazioni vincolari, dalle quali si possono
calcolare posizione e velocità al tempo t + ∆t, con cui si risolve nuovamente il sistema 8.4.
CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 95

7.4.1 Moltiplicatori di Lagrange e reazioni vincolari


Abbiamo visto nel paragrafo precedente che, definendo la funzione Lagrangiana estesa L∗ , si
può trattare un sitema meccanico vincolato come se fosse libero. In questo modo, tuttavia,
non si riesce a capire come fisicamente i vincoli agiscano sul sistema.
Definiamo allora una funzione “potenziale estesa”V ∗ :

L∗ = V ∗ − (λ1 Ψ1 , . . . , λp Ψp ) . (7.40)

In questo modo abbiamo aggiunto all’energia potenziale delle forze conservative quella dovuta
ai vincoli sulle coordinate generalizzate; possiamo quindi calcolare le reazioni vincolari dovute
alla variazione della generica coordinata generalizzata qj come:

∂Ψ1 ∂Ψp
Qvinc
j = λ1 + · · · + λp , (7.41)
∂qj ∂qj

dalla quale risulta evidente come i moltiplicatori di Lagrange si possano interpretare come le
componenti generalizzate delle forze di reazione dovute alla presenza dei vincoli cinematici.
Riferendosi a sitemi piani, conviene eplicitare le componenti generalizzate della reazione
vincolare dovuta al vincolo k − esimo in un riferimento solidale a generico corpo i − esimo
detto riferimento del giunto Pk , xik , yik , zik .
Per fissare le idee consideriamo una coppia rotoidale: il riferimento del giunto è un rifer-
imento solidale a uno dei due corpi che la coppia vincola, con l’origine coincidente con l’
asse della coppia e gli assi comunque orientati. Ricordiamo che, in generale, il numero delle
componenti delle forze di reazione introdotte da una coppia è ugaale al grado di vincolo della
coppia stessa. (Per esempio la coppia rotoidale, nel caso piano, introduce due componenti,
cioè due forze , mentre la coppia lungo l’asse della coppia è, in assenza di attrito, nulla).

7.4.2 Esempio: Formulazione delle equazioni di moto per un pendolo


semplice
7.4.2.1 Generazione delle equazioni di vincolo.
Essendo l’asta incernierata al telaio, le equazioni cinematiche di vincolo saranno le seguenti:

Ψ1 ≡ q1 − xG cos q3 = 0 , (7.42)
Ψ2 ≡ q2 − xG sin q3 = 0 . (7.43)

7.4.2.2 Generazione della funzione lagrangiana estesa.

1 1
L = m(q̇12 + q̇22 ) + IG q̇32 − λ1 Ψ1 − λ2 Ψ2 . (7.44)
2 2

7.4.2.3 Calcolo del lavoro virtuale compiuto dalle forze esterne in corrispondenza di vari-
azioni delle coordinate generalizzate infinitesime e compatibili con i vincoli del
sistema.

δW = T δq3 − mgδq2 . (7.45)


CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 96

Figura 7.4: Pendolo semplice: sistemi di riferimento e coordinate utilizzati.


CAPITOLO 7. ANALISI DINAMICA DI UN SISTEMA MULTIBODY 97

7.4.2.4 Applicazione delle equazioni di Lagrange.


Le equazioni che si otterranno sono le seguenti:

mq̈1 + λ1 = 0 , (7.46)
mq̈2 + λ2 + mg = 0 , (7.47)
IG q̈3 + λ3 − λ2 xG cos q3 = T . (7.48)

7.4.2.5 Soluzione del sistema di equazioni algebrico-differenziali.

  
m 0 0 1 0 q¨1
 0 m 0 0 1  q¨2 
  
 0 0 IG xG sin q3 −xG cos q3  q¨3 =
  
 1 0 xG sin q3 0 0  λ1 
0 1 −xG cos q3 0 0 λ2
 
0
 −mg 
 
=
 T 

 −xG q̇32 cos q3 
xG q̇32 sin q3
Capitolo 8

Soluzione delle equazioni della dinamica

8.1 Introduzione
Come si visto nel capitolo precedente, applicando le equazioni di Lagrange ad un sistema
multibody descritto tramite un set di coordinate ridondanti, si ottiene il seguente sistema di
equazioni differenziali:
[M ]q̈ + [ψq ]T λ = Q , (8.1)
che devono essere risolte insieme alle equazioni di vincolo:

ψ(q, t) = 0 , (8.2)

Complessivamente quindi necessario risolvere un sistema di equazioni algebrico-differenziali


(DAE).
Tale sistema può essere risolto in più modi; spesso per i sistemi meccanici si usa differenziare
due volte le equazioni di vincolo:

[Ψq ]q̈ = − ([Ψq ]q̇)q q̇ − 2[Ψqt ]T q̇ − ΨTtt = γ , (8.3)

che costituisce un sistema di equazioni che possono essere risolte simultaneamente con (8.1),
posto: · ¸½ ¾ ½ ¾
M ΨTq q̈ Q
= , (8.4)
Ψq 0 λ γ
che noti al tempo t posizione e velocità di tutti i corpi presenta quali incognite lineari il vettore
q̈ e λ. Una volta risolto fornisce le accelerazioni e le reazioni vincolari, dalle quali si possono
calcolare posizione e velocità al tempo t + ∆t, con cui si risolve nuovamente il sistema 8.4. E’
opportuno sottolineare che le condizioni iniziali su posizione e velocità q(0) = q0 e q̇(0) = v0
devono soddisfare le equazioni di vincolo.
Per la soluzione del sistema (8.4), supponiamo che lo Jacobiano [Ψq ] abbia rango pieno.
1
Definiamo quindi la matrice [L] = [M ] 2 , tale che:
1 1
[M ] = [M ] 2 [M ] 2 = [L][L] . (8.5)

Si definiscono quindi le matrici [H] e [L1 ]:

[H] = ([L]−1 )T [Ψq ]T , (8.6)

[L1 ] = chol([H]T [H]) . (8.7)

98
CAPITOLO 8. SOLUZIONE DELLE EQUAZIONI DELLA DINAMICA 99

Con queste definizioni il sistema (8.4) può essere riscritto in questa forma:
· ¸· T ¸½ ¾ ½ ¾
L 0 L H q̈ Q
= , (8.8)
H T −LT1 0 L1 λ γ

E’ possibile dimostrare quindi che il vettore dei moltiplicatori di Lagrange può essere
calcolato in questo modo:
{λ} = [L]−1 {λ1 } , (8.9)
essendo:
{λ1 } = [L1 ]−1 ([H]T [L]−1 Q − γ) . (8.10)
Quindi è possibile calcolare il vettore delle accelerazioni:

q̈ = ([L]−1 )T ([L]−1 Q − [H]λ) . (8.11)

Questa procedura, pur essendo molto semplice, non consente di garantire che durante la
simulazione le equazioni di vincolo (8.2) siano rispettate. Se il passo di integrazione ∆t non
è sufficientemente piccolo con questo tipo di integrazione si ottengono errori non accettabili.

8.2 Formulazione stabilizzata di Baumgarte


Il metodo di calcolo proposto da Baumgarte permette di limitare le violazioni delle equazioni
di vincolo. Le coordinate generalizzate devono soddisfare le seguenti equazioni non lineari
nell’incognita q:

ψ(q, t) = 0 , (8.12)

e dei seguenti sistemi lineari:

ψ̇(q, t) = [Ψq ]q̇ + ψt = 0 , (8.13)

ψ̈(q, t) = [Ψq ]q̈ − γ = 0 , (8.14)

rispettivamente nelle incognite q̇ e q̈. Con questo metodo si cerca di controllare la dinamica
delle violazioni delle equazioni di vincolo, inserendole nel sistema di equazioni differenziali da
risolvere. Si impone che le violazioni delle equazioni di vincolo siano governate dal seguente
sistema lineare a coefficienti costanti:

ψ̈ + 2αψ̇ + β 2 ψ = 0 , (8.15)

essendo α e β due costanti positive scelte dall’utente. Per assicurare la stabilità del metodo e lo
smorzamento delle violazioni delle equazioni di vincolo conviene scegliere α = β (solitamente
si scelgono pari al reciproc del passo di integrazione). Sostituendo nell’equazione (8.15) l’
espressione (8.14) si ottiene:

[Ψq ]q̈ − γ + 2αψ̇ + β 2 ψ = 0 , (8.16)

Che possono essere inserite nel sistema di equazioni differenziali della dinamica:
· ¸½ ¾ ½ ¾
M ΨTq q̈ Q
= . (8.17)
Ψq 0 λ γ − 2αψ̇ − β 2 ψ
CAPITOLO 8. SOLUZIONE DELLE EQUAZIONI DELLA DINAMICA 100

Partendo dalla configurazione q(ti ) e dalla velocità q̇(ti ) al tempo ti , tramite il sistema (8.17)
si stima l’accelerazione q̈(ti ). La velocità e la configurazione al tempo ti+1 possono quindi
essere stimate tramite integrazione numerica:

q̇(ti+1 ) = q̇(ti ) + q̈(ti )∆t , (8.18)


1
q(ti+1 ) = q(ti ) + q̇(ti )∆t + q̈(ti )∆t2 . (8.19)
2
E’ possibile verificare che i valori dei moltiplicatori di Lagrange calcolati con risolvendo il
sistema (8.17) possono risultare sensibilmente diversi da quelli che si ottengono risolvendo il
sistema (8.8), non sono quindi sufficientemente affidabili per stimare le reazioni vincolari.

8.3 Ortogonalizzazione dei vincoli


L’obiettivo è riscrivere il sistema algebrico-differenziale costituito dalle equazioni (8.1) e (8.2)
in un sistema di equazioni differenziali ordinarie (ODE), una possibilità consiste nell’eliminare
la matrice Jacobiana delle equazioni di vincolo [Ψq ] dalle equazioni (8.1). Questo approccio
fornisce i seguenti vantaggi:
• nelle equazioni risolutive vengono eliminati i moltiplicatori di Lagrange;

• le coordinate generalizzate vengono suddivise in due parti: coordinate indipendenti e


dipendenti;

• per la risoluzione dei sistemi ODE sono disponibili numerosi ed efficienti algoritmi
numerici;

• si possono analizzare sistemi con vincoli sovrabbondanti o con un numero di gradi di


libertà variabile durante il funzionamento.

8.3.1 Vincoli scleronomi


Si definisce un set minimo v di F coordinate indipendenti. Il numero F di gradi di libertà del
meccanismo si calcola come:
F = nq − r , (8.20)
essendo nq il numero di coordinate generalizzate (dimensione del vettore q) e r il rango della
matrice Jacobiana [Ψq ] delle equazioni di vincolo.
E’ possibile quindi aggiungere alle m equazioni di vincolo ψ(q) = 0 altre F equazioni che
legano il vettore delle coordinate generalizzate q al set di coordinate indipendenti v, queste
equazioni saranno del tipo φ(q, v) = 0. Si ottiene quindi un sistema di m + F equazioni non
lineari che può essere riscritto in questo modo:
½ ¾
ψ(q)
Γ(q, v) = =0 . (8.21)
φ(q, v)

Derivando rispetto al tempo la (8.21) si ottiene:

[Γv ]v̇ + [Γq ]q̇ = 0 , (8.22)

essendo:
∂Γ
[Γv ] = ∈ Rm+F ×F , (8.23)
∂v
CAPITOLO 8. SOLUZIONE DELLE EQUAZIONI DELLA DINAMICA 101

∂Γ
[Γq ] = ∈ Rm+F ×nq . (8.24)
∂q
Si osserva che se la matrice Jacobiana [Ψq ] ha rango pieno, r = m, la matrice [Γq ] è quadrata.
Se [Γq ] è non singolare è possibile definire la matrice:

[V (q, v)] = −[Γq ]−1 [Γv ] ∈ Rnq ×F (8.25)

che permette di esprimere le derivate rispetto al tempo delle coordinate generalizzate in


funzione delle derivate delle coordinate indipendenti:

q̇ = [V (q, v)]v̇ . (8.26)

Se non esiste una dipendenza esplicita dal tempo nelle equazioni di vincolo (vincoli sclerono-
mi) le derivate rispetto al tempo delle coordinate generalizzate devono soddisfare il seguente
sistema di equazioni:
[Ψq ]q̇ = 0 . (8.27)
Confrontando la (8.26) con la (8.27) si ottiene la seguente condizione di ortogonalità:

[Ψq ][V ] = 0 . (8.28)

Derivando rispetto al tempo la (8.26) si ottiene:

q̈ = [V ]v̈ + [V̇ ]v̇ . (8.29)

Per eliminare i moltiplicatori di Lagrange dalle equazioni della dinamica si premoltiplica l’e-
quzione (8.1) per [V ]T :

[V ]T [M ]q̈ + [V ]T [ψq ]T λ = [V]T Q , (8.30)

Tenendo conto della condizione di ortogonalità (8.28) l’equazione precedente può essere
semplificata in questo modo:
[V ]T [M ]q̈ = [V ]T Q , (8.31)
Sfruttando quindi l’espressione delle derivate seconde delle coordinate generalizzate in funzione
delle coordinate indipendenti (8.29) si ottiene:

[V ]T [M ]([V ]v̈ + [V̇ ]v̇) = [V ]T Q , (8.32)

si ottiene infine il segunte sistema di equazioni differenziali ordinarie:

[V ]T [M ][V ]v̈ = [V ]T Q − [V ]T [M ][V̇ ]v̇) . (8.33)

Per ottenere un’espressione del termine [V̇ ]v̇ si suddivide il vettore q ∈ Rnq ×1 in due parti
u ∈ Rnq −F ×1 e v ∈ RF ×1 contenenti rispettivamente le coordinate dipendenti e indipendenti:
½ ¾
u
q= . (8.34)
v
Le equazioni di vincolo espresse in termini di accelerazione:

[Ψq ]q̈ = γ , (8.35)

possono essere riscritte come:

[Ψu ]ü + [Ψv ]v̈ = γ , (8.36)


CAPITOLO 8. SOLUZIONE DELLE EQUAZIONI DELLA DINAMICA 102

essendo [Ψu ] ∈ Rm×nq −F e [Ψv ] ∈ Rm×F . Se le equazioni di vincolo sono indipendenti (se lo
Jacobiano Ψq ha rango pieno), si è visto in precedenza che F = nq − m e quindi la matrice
[Ψu ] risulta quadrata e non singolare. E’ possibile quindi scrivere:

ü = −[Ψu ]−1 [Ψv ]v̈ + [Ψu ]−1 γ . (8.37)

E’ possibile quindi scrivere una relazione tra q̈ e ü:


½ ¾ · ¸ · ¸
ü −[Ψu ]−1 [Ψv ] [Ψu ]−1 γ
q̈ = = v̈ + . (8.38)
v̈ [I] 0
Confrontando la (8.38) con la (8.29) si osserva quindi:
· ¸
−[Ψu ]−1 [Ψv ]
[V ] = , (8.39)
[I]
· ¸
[Ψu ]−1 γ
[V̇ ]v̇ = . (8.40)
0

8.3.2 Vincoli scleronomi e reonomi


E’ possibile calcolare la matrice [V ] anche in presenza di vincoli reonomi. In questo caso le
equazioni di vincolo in termini di velocità sono:

[Ψq ]q̇ = −ψt , (8.41)

Le F coordinate indipendenti v possono essere espresse in funzione delle coordinate general-


izzate q:

v̇ = [B]q̇ , (8.42)

essendo B una matrice F × nq . A causa delle singolarità il numero di gradi di libertà del mec-
canismo e quindi il numero di righe della matrice B possono cambiare durante la simulazione.
La matrice B ha F righe indipendenti dalle righe della matrice Jacobiana [Ψq ]. Assemblando
le equazioni (8.41) e (8.42) si ottiene:
· ¸ ½ ¾
[Ψq ] −ψt
q̇ = . (8.43)
[B] v̇
Per quanto visto in precedenza la matrice a primo membro dell’equazione (8.43) è non
singolare, risolvendo il sistema si ottiene:
· ¸−1 ½ ¾
[Ψq ] −ψt
q̇ = = −[S]ψt + [V ]v̇ . (8.44)
[B] v̇
· ¸−1
[Ψq ]
La matrice [S] ha dimensioni nq ×m ed è data dalle prime m colonne della matrice ,
[B]
la matrice [V ] ha dimensioni nq × F . Si osserva inoltre che l’equazione (8.26) è un caso
particolare della (8.44). Si ossera inoltre che:
· ¸· ¸−1 · ¸
[Ψq ] [Ψq ] [Ψq ]
= [[S][V ]] =
[B] [B] [B]
· ¸ · ¸
[Ψq ] [S] [Ψq ] [V ] I 0
= = , (8.45)
[B] [S] [B] [V ] 0 I
CAPITOLO 8. SOLUZIONE DELLE EQUAZIONI DELLA DINAMICA 103

che conferma la proprietà di ortogonalità:

[Ψq ][V ] = 0 , (8.46)

e introduce la nuova condizione:


[B][V ] = I , (8.47)
Derivando rispetto al tempo l’equazione (8.43), assumendo [B] costante si ottiene:
· ¸ ½ ¾
[Ψq ] γ
q̈ = . (8.48)
[B] v̈
da cui è possibile ricavare un’espressione che lega q̈ a v̈:

q̈ = [S]γ + [V ]v̈ . (8.49)

8.4 La formulazione di Udwadia Kalaba


Consideriamo nuovamente le equazioni della dinamica espresse tramite il sistema di equazioni
differenziali: · ¸½ ¾ ½ ¾
M ΨTq q̈ Q
= , (8.50)
Ψq 0 λ γ
se la matrice Jacobiana delle equazioni di vincolo Ψq ha tutte le righe indipendenti la matrice
a primo membro è non singolare e può essere invertita, è possibile calcolare quindi le derivate
seconde delle coordinate generalizzate e i moltiplicatori di Lagrange:
½ ¾ · ¸−1 ½ ¾
q̈ M ΨTq Q
= , (8.51)
λ Ψq 0 γ

Considerando separatamente i singoli blocchi si ottiene:


· ¸−1 · −1 ¸
M ΨTq M − M −1 ΨTq (Ψq M −1 ΨTq )−1 Ψq M −1 M −1 ΨTq (Ψq M −1 ΨTq )−1
=
Ψq 0 (Ψq M −1 ΨTq )−1 Ψq M −1 −(Ψq M −1 ΨTq )−1
(8.52)
Sostituendo nella (8.51) si ottiene la seguente espressione per il vettore delle accelerazioni:
¡ ¢
q̈ = M −1 − M −1 ΨTq (Ψq M −1 ΨTq )−1 Ψq M −1 Q + M −1 ΨTq (Ψq M −1 ΨTq )−1 γ . (8.53)

Sviluppando i prodotti si ottiene:


¡ ¢
q̈ = M −1 Q − M −1 ΨTq (Ψq M −1 ΨTq )−1 Ψq M −1 Q + M −1 ΨTq (Ψq M −1 ΨTq )−1 γ =
¡ ¢¡ ¢
= M −1 Q + M −1 ΨTq (Ψq M −1 ΨTq )−1 γ − Ψq M −1 Q . (8.54)

Si indica con:
q̈f = M −1 Q , (8.55)
l’accelerazione che il meccanismo avrebbe se non ci fossero i vincoli, l’espressione (8.54) si
può riscrivere come:
¡ ¢¡ ¢
q̈ = q̈f + M −1 ΨTq (Ψq M −1 ΨTq )−1 γ − Ψq q̈f . (8.56)

Il vettore dei moltiplicatori di Lagrange è dato da:

λ = (Ψq M −1 ΨTq )−1 Ψq M −1 Q − (Ψq M −1 ΨTq )−1 γ (8.57)


CAPITOLO 8. SOLUZIONE DELLE EQUAZIONI DELLA DINAMICA 104

sviluppando i prodotti e ricordando la definizione (8.55) si ottiene:


¡ ¢
λ = (Ψq M −1 ΨTq )−1 Ψq q̈f − γ . (8.58)

L’inversa della matrice di massa può essere espressa in questo modo:


1 1
[M ]−1 = [M ]− 2 [M ]− 2 , (8.59)

si definisce quindi la matrice [D]:


1
[D] = [Ψq ][M ]− 2 . (8.60)

Con queste definizioni è possibile riscrivere l’espressione (8.56):


³ ´¡ ¢
− 12 − 12 T − 21 − 12 T −1
q̈ = q̈f + [M ] [M ] Ψq (Ψq [M ] [M ] Ψq ) γ − Ψq q̈f =
1 ¡ ¢
= q̈f + [M ]− 2 [D]T ([D][D]T )−1 γ − Ψq q̈f . (8.61)

Tenendo conto della definizione di pseudoinversa destra:

[D]+ = [D]T ([D][D]T )−1 , (8.62)

si ottiene infine:
1 ¡ ¢
q̈ = q̈f + [M ]− 2 [D]+ γ − Ψq q̈f . (8.63)

Questa formulazione è stata proposta originariamente da Udwadia e Kalaba [4] che la derivarono
partendo dal principio di Gauss.

8.4.1 Il principio di Gauss


Il Principio di Gauss per un sistema di n masse discrete asserisce che in ogni istante l’acceler-
azione che compete al sistema soggetto a vincoli è quella che più si avvicina all’accelerazione
del medesimo meccanismo non vincolato. In altri termini l’accelerazione del meccanismo si
trova minimizzando la seguente quantità:
1¡ ¢T ¡ ¢ 1¡ ¢T ¡ ¢
G(q̈) = q̈ − q̈f M q̈ − q̈f = q¨N − q̈f N q¨N − q̈f N , (8.64)
2 2
avendo definito le seguenti accelerazioni normalizzate:
1
q̈N = [M ] 2 q̈
1
q̈f N = [M ] 2 q̈f . (8.65)

La funzione G(q) è detta Gaussiana del sistema.


View publication stats

Bibliografia

[1] E. Pennestrı̀, F. Cheli, Cinematica e Dinamica dei Sistemi Multibody, Casa Editrice
Ambrosiana, Milano, 2006.

[2] E. Pennestrı̀, Dinamica Tecnica e Computazionale - vol.2, Casa Editrice Ambrosiana,


Milano, 2002.

[3] B. Allotta, Appunti del Corso di Complementi di Meccanica Applicata alle Macchine,
Università degli Studi di Firenze, 2004.

[4] F.E. Udwadia and R.E. Kalaba, Analytical dynamics, a new approach, Cambridge University
Press, Cambridge, 1996.

[5] L. Vita, Sviluppo e implementazione di formulazioni per l’analisi dinamica di sistemi multi-
body, Università degli Studi di Roma Tor Vergata, Dottorato di Ricerca in Progettazione
dei Sistemi Meccanici, Tesi di Dottorato, XVII Ciclo, 2005.

[6] A. A. Shabana, Computational Dynamics, second edition, John Wiley & Sons, Inc. New
York USA, 2001.

[7] J. Garcı̀a de Jalón, E. Bayo, Kinematics and Dynamics of


Multibody Systems, the Real Time Challenge, Springer Verlag,
http://mat21.etsii.upm.es/mbs/bookPDFs/bookGjB.htm.

105