Indice
1
Introduzione
2
Modellizzazione orientata agli oggetti e simulazione
2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Modellizzazione multi-dominio orientata agli oggetti con Modelica .
2.3 Un semplice modello Modelica . . . . . . . . . . . . . . . . . . . .
2.4 L’ambiente di simulazione . . . . . . . . . . . . . . . . . . . . . .
2.5 Dal modello Modelica al codice di simulazione . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
5
8
10
12
Il modello della motocicletta
3.1 Introduzione . . . . . . . . . . . . . . . .
3.2 Corpo della motocicletta . . . . . . . . .
3.3 Superficie stradale . . . . . . . . . . . . .
3.4 Interazione pneumatico-superficie stradale
3.5 Aerodinamica . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
19
22
22
33
.
.
.
.
.
.
.
.
.
.
.
.
37
37
37
39
40
42
42
45
45
56
56
58
61
Il pilota e il controllo della motocicletta
5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Controllo dello sterzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
65
66
3
4
5
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Il Package MotorcycleDynamics
4.1 Introduzione . . . . . . . . . . . . . . . . . . . . .
4.2 La libreria Multibody . . . . . . . . . . . . . . . .
4.3 Il package MotorcycleDynamics . . . . . . .
4.4 Geometrie, inerzie, masse e altri parametri . . . . .
4.5 Il modello Motorcycle . . . . . . . . . . . . . .
4.6 Il package Suspension . . . . . . . . . . . . . .
4.7 Il package Wheel . . . . . . . . . . . . . . . . . .
4.7.1 Il modello Wheel Road Interaction
4.8 Il package Driver . . . . . . . . . . . . . . . . .
4.9 Il package Environments . . . . . . . . . . . .
4.9.1 Il modello Road . . . . . . . . . . . . . .
4.10 Il package Example . . . . . . . . . . . . . . . .
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Indice
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Simulazioni
6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Prove di pilotaggio per il controllo tramite joystick . . . . . . . . . . . . .
6.2.1 Disturbo composto da rampe . . . . . . . . . . . . . . . . . . . . .
6.2.2 Disturbo sinusoidale . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Percorrenza di una rotonda e manovra ad otto . . . . . . . . . . . . . . . .
6.3.1 Percorrenza di una rotonda molto stretta . . . . . . . . . . . . . . .
6.3.2 Manovra ad otto su superficie irregolare . . . . . . . . . . . . . . .
6.4 Condizioni di aderenza al limite in curva . . . . . . . . . . . . . . . . . . .
6.4.1 Rotonda con split-mue . . . . . . . . . . . . . . . . . . . . . . . .
6.4.2 Rotonda affrontata a velocità crescente fino alla perdita di aderenza
6.5 Prove di frenata con e senza ABS in diverse condizioni . . . . . . . . . . .
6.5.1 Prove realizzate in rettilineo . . . . . . . . . . . . . . . . . . . . .
6.5.2 Prove realizzate in curva . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
85
. 85
. 85
. 86
. 87
. 90
. 90
. 91
. 94
. 94
. 98
. 101
. 101
. 106
.
.
.
.
.
115
116
117
117
117
119
5.3
5.4
6
7
5.2.1 Controllo in Curvatura . . . .
5.2.2 Controllo dell’angolo di rollio
5.2.3 Controllo con joystick . . . .
Controllo di Velocità . . . . . . . . .
Impianto frenante dotato di ABS . . .
5.4.1 Il pilota . . . . . . . . . . . .
5.4.2 ABS: Antilock Brake System
5.4.3 I freni . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Conclusioni e sviluppi futuri
7.1 Realizzazione di altri veicoli basati su ruote
7.2 Sospensioni attive . . . . . . . . . . . . . .
7.3 ABS con centralina di calcolo e sensori . .
7.4 Controllo in traiettoria/percorso . . . . . .
7.5 Controllo di trazione . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
70
74
75
76
76
79
79
81
Elenco delle figure
121
Bibliografia
125
ii
Capitolo 1
Introduzione
La crescente competitività tra le società multinazionali ha causato una continua metamorfosi
del processo produttivo; negli ultimi decenni, oltre ai requisiti di qualità, si è rivelato indispensabile, sia nel campo motociclistico che in quello dei motori in genere, minimizzare il time-tomarket e i costi di progettazione. E’ in questo scenario innovativo, caratterizzato da una crescita
significativa della potenza di calcolo degli elaboratori elettronici, che si cala perfettamente la
prototipazione virtuale, diventando parte integrante o realtà progettuale a sé stante.
La modellizzazione del sistema fisico, finalizzata al processo di prototipazione, cerca, tramite
leggi fisiche e rappresentazioni simboliche, di astrarre dalla realtà per costruire un prototipo, una
riproduzione virtuale ma fedele dell’esperimento empirico.
In questo studio gli strumenti di astrazione utilizzati sono sostanzialmente di due determinazioni differenti e complementari tra loro: equazioni e librerie standard. La prima garantisce
una totale capacità di particolarizzazione del problema, mentre la seconda l’interscambiabilità
dei moduli, il tutto implementato in un linguaggio orientato agli oggetti: Modelica.
Questo scritto ha lo scopo di documentare il progetto MotorcycleDynamics, finalizzato
alla modellizzazione di una motocicletta e del relativo pilota. In particolare, nei capitoli successivi, saranno analizzati in dettaglio: l’ambiente acausale di simulazione Dymola (Dynamic
Modeling Laboratory) di Dynasim AB © Sweden (nel quale il progetto è ambientato), il modello fisico-meccanico della motocicletta e la relativa rappresentazione, il sistema di controllo e
qualche risultato di simulazione.
1
2
1. Introduzione
Organizzazione della tesi
Questo scritto è articolato in diversi capitoli cosı̀ organizzati:
• Capitolo 2 (Modellizzazione orientata agli oggetti e simulazione): è un introduzione
al mondo della modellizazione acausale orientata agli oggetti e all’ambiente di sviluppo
Dymola, con annessi degli esempi esplicativi;
• Capitolo 3 (Modello di un motociclo): contiene la descrizione del modello “concettuale”
a vari livelli di astrazione, vengono inoltre presentati tutti i sotto-modelli di cui è composta la motocicletta (sospensioni, pneumatici, impianto frenante,. . .) e la rappresentazione
della superficie stradale;
• Capitolo 4 (Il Package MotorcycleDynamics): viene illustrato come è stato effettivamente implementato il modello, descrivendo nel dettaglio tutti i componenti del
package;
• Capitolo 5 (Il pilota): contiene tutte le informazioni relative alla modellizazione e implementazione del modello rappresentante il pilota, con una descrizione dei fenomeni in
gioco e delle varie strategie di controllo adottate;
• Capitolo 6 (Simulazioni): vengono presentate alcune tra le prove di simulazione maggiormente significative, realizzate allo scopo di validare il modello e per evidenziare
fenomeni reali;
• Capitolo 7 (Evoluzioni future e conclusioni): vengono riportate le conclusioni finali
tratte dai risultati ottenuti e proposti alcuni degli sviluppi futuri che possono essere realizzati in un eventuale proseguimento del progetto in questione.
Capitolo 2
Modellizzazione orientata agli oggetti e
simulazione
In questo capitolo è fornita un presentazione generale dei principi fondamentali delle tecniche
di modellizzazione e simulazione orientata agli oggetti. In seguito è introdotto Modelica, un innovativo linguaggio per la modellizzazione di sistemi fisici. In conclusione, è presentato l’ambiente di simulazione Dymola, utilizzato per simulare i modelli Modelica sviluppati in questo
lavoro, con una breve illustrazione delle tecniche di manipolazione simbolica che costituiscono
la caratteristica distintiva di tale ambiente.
2.1
Introduzione
Sul mercato esistono innumerevoli strumenti per la modellizzazione e simulazione dei sistemi dinamici. La maggior parte dei linguaggi e delle rappresentazioni dei modelli sono propietari e sono stati sviluppati specificatamente per alcuni ambienti di simulazione. Esistono strumenti di carattere generale come ASCL[1], Simulink[75] e SystemBuild[48], basati sull’utilizzo di blocchi ingresso/uscita cosı̀ come proposto in uno dei primi tentativi di standardizzazione, CSSL[72]. Inoltre esistono strumenti per domini specifici, come l’elettronica (e.g.,
SPICE[19], Saber[73]), sistemi multicorpo (e.g., ADAMS[47], DADS[38], SIMPACK[71]) e
processi chimici (e.g., ASPEN Plus[2], SpeedUp[59]). Escludendo poche eccezioni, tali stru3
4
2. Modellizzazione orientata agli oggetti e simulazione
menti sono stati ideati in riferimento ad un unico dominio, e non permettono di modellizzare, in
modo soddisfacente, fenomeni fisici appartenenti a domini differenti da quello originario. Ciò
costituisce un fattore limitante, dato che i sistemi tecnici diventano sempre più eterogenei, integrando componenti provenienti da domini ingegneristici differenti. Il ragionamento è analogo
se si considera la prototipazione dei sistemi di controllo, dato che molte delle più avanzate e
moderne tecniche di progetto sono basate sulla metodologia di progetto integrato dei processi e
del loro sistema di controllo (e.g., l’approccio meccatronico: progetto integrato di meccanica,
elettronica e controllo), questo sottolinea la necessità di un tool multi-dominio. In generale, le
caratteristiche chiave per un tool di modellizzazione e simulazione multi-dominio dovrebbero
essere:
• Modularità: il modello del sistema dovrebbe poter essere costruito componendo i modelli dei suoi componenti, che dovrebbero poter essere scritti indipendentemente dalle
“condizioni al contorno”.
• Chiarezza: il codice di ogni componente del modello dovrebbe essere chiaramente leggibile, racchiudere le equazioni originali ed essere facilmente personalizzabile.
• Efficienza: il codice di simulazione dovrebbe essere veloce ed ottimizzato per la piattaforma di esecuzione.
• Supportabilità: gli strumenti di simulazione dovrebbe essere basati su software sicuro,
testato e ben documentato.
Il numero degli strumenti di simulazione che sembra possedere contemporaneamente tutte
le caratteristiche desiderate è molto ristretto, nonostante negli ultimi decenni siano state sviluppate tecniche innovative per la modellizzazione fisica di carattere generale (non legate ad un
dominio specifico). Tali tecniche sono basate su di un approccio a-causale (i.e., sull’utilizzo di vere e proprie equazioni all’interno dei modelli), combinato con l’utilizzo di tecniche
orientate agli oggetti, in modo da facilitare lo sviluppo di modelli modulari, gerarchicamente
organizzati e riutilizzabili. Esempi di linguaggi e ambienti di simulazione basati su tali tec-
2.2 Modellizzazione multi-dominio orientata agli oggetti con Modelica
5
niche sono MOSES[41], ASCEND[59], gPROMS[6], NMF[61], ObjectMath[25], Omola[43],
SIDOPS+[5], Smile[34], U.L.M.[32], VHDL-AMS[31] e 20-sim[10].
Tra gli strumenti dotati delle caratteristiche sopracitate, Modelica[76] e Dymola[18] sono
emersi rispettivamente come linguaggio standard per la modellistica a-causale e orientata agli
oggetti e come ambiente di simulazione, basato su Modelica, completo ed efficiente. Tutti i
modelli sviluppati in questo lavoro sono basati su Modelica e tutte le simulazioni associate a
tali modelli sono state effettuate utilizzando l’ambiente Dymola.
2.2
Modellizzazione multi-dominio orientata agli oggetti con
Modelica
Modelica è un linguaggio orientato agli oggetti per la modellizzazione di sistemi fisici complessi ed eterogenei[45, 77]. E’ stato proposto alla comunità scientifica nel 1997, al termine di
un progetto di cooperazione internazionale per la definizione di un linguaggio per la modellizzazione di sistemi fisici multi-dominio descritti da equazioni algebriche, differenziali e alle
differenze. La definizione del linguaggio, di proprietà dell’organizzazione non-profit Modelica
Association, è di pubblico dominio (http://www.modelica.org).
La maggior parte dei concetti alla base del linguaggio derivano dalla teoria della modellizzazione dei sistemi fisici basata su porte, di cui è fornita un’ampia descrizione in [78]. All’interno di questa teoria, i sistemi fisici complessi sono visti come un’aggregazione di semplici componenti di base, che interagiscono tra loro attraverso delle “porte”, associate con degli scambi
di “potenza” generalizzata.
Il linguaggio Modelica è stato progettato per la modellizzazione fisica multi-dominio, includendo, per esempio, sistemi meccatronici per applicazioni robotiche, automobilistiche (i.e.,
di controllo della dinamica dei veicoli) e aerospaziali (con sottosistemi meccanici, elettrici,
idraulici e di controllo), applicazioni orientate ai processi di produzione dell’energia e sistemi
multicorpo.
Le caratteristiche principali del linguaggio possono essere riassunte nel seguente elenco:
6
2. Modellizzazione orientata agli oggetti e simulazione
• A-causalità. Le equazioni per ciascun modello sono scritte in forma dichiarativa, indipendentemente dalle condizioni al contorno, e senza decidere a priori quali siano gli
ingressi e le uscite. Il modello è quindi in forma a-causale ed è descritto da sistemi
DAE (Differential-Algebraic Equations), che permettono di rappresentare nel modo più
naturale e fisicamente coerente ogni componente del sistema. Il compito di determinare
la causalità del modello è demandata all’interprete o compilatore Modelica, che agirà
a livello di sistema (i.e., per tutti i componenti aggregati). Utilizzando questo approccio, i modelli risultanti sono più semplici da scrivere, da documentare e maggiormente
riutilizzabili.
• Trasparenza del codice. Le equazioni sono scritte nei modelli Modelica esattamente
come sono scritte su carta, in modo da semplificare notevolmente la comprensione del
contenuto del modello stesso e la sua eventuale modifica.
• Incapsulamento. L’interazione tra componenti può avvenire solamente attraverso interfacce rigorosamente definite, chiamate connettori, la cui progettazione è di estrema
importanza. Un connettore è definito attraverso un insieme di variabili di sforzo ed uno
di variabili di flusso. Effettuare una connessione tra due connettori, e quindi tra i componenti a loro associati, equivale ad eguagliare le variabili di sforzo dei due connettori
e a bilanciare le variabili di flusso (i.e., ad imporre che la loro somma sia nulla). L’utilizzo di tale approccio risulta perfettamente naturale in molti domini, come ad esempio
quello elettrico, dove il connettore è definito da una tensione (sforzo) e una corrente (flusso): la connessione equivale ad eguagliare la tensione dei due connettori e a bilanciare le
correnti (i.e., ad applicare la legge di Kirchoff al nodo identificato dalla connessione stessa). Altri esempi sono costituiti dai connettori termici, che trasportano una temperatura
(sforzo) e un flusso termico (flusso) e dai connettori meccanici per assi rotanti monodimensionali, caratterizzati da un angolo (flusso) e da una coppia (sforzo). Utilizzando tale
approccio, due componenti differenti, ma con connettori compatibili, possono essere connessi indipendentemente dalle equazioni contenute all’interno dei singoli modelli. Questa
caratteristica è essenziale per lo sviluppo di librerie di modelli ri-usabili; inoltre, permette
2.2 Modellizzazione multi-dominio orientata agli oggetti con Modelica
7
di rimpiazzare semplicemente una parte del modello di un sistema con una più dettagliata
o con una semplificata, senza influenzare il resto del modello.
• Ereditarietà. Le librerie di componenti possono essere organizzate in una struttura gerarchica, nella quale modelli i complessi sono ottenuti da modelli basilari aggiungendo variabili specifiche, equazioni o altri modelli. Ad esempio, è possibile scrivere le equazioni
per descrivere il flusso di un gas generico all’interno un condotto; successivamente,
il modello del flusso di un gas particolare, ad esempio quello di una miscela di dieci
gas ideali, può essere ottenuto tramite estensione dal modello generale (i.e., sfruttando
l’ereditarietà), e aggiungendo i modelli per i singoli gas ideali utilizzati.
• Dominio multi-fisica. Il linguaggio Modelica è stato ideato per modellistica fisica multidominio, basata su modelli descritti da equazioni algebriche, differenziali e alle differenze, e non è vincolato ad un particolare contesto applicativo, come quello dell’ingegneria meccanica, elettrica o termodinamica. Tale linguaggio risulta quindi particolarmente
utile nella modellizzazione di sistemi eterogenei, come, ad esempio, i sistemi meccatronici, risultato dell’interazione di componenti meccaniche, elettriche e di controllo, o gli
impianti nucleari, risultato dell’interazione di sottosistemi termoidraulici, nucleari e di
controllo.
• Riutilizzabilità. La modellizzazione a-causale, l’incapsulamento e l’utilizzo dell’ereditarietà costituiscono un forte incentivo allo sviluppo di librerie di modelli riutilizzabili.
Alcune librerie per domini ingegneristici molto ampi (e.g., elettrico, meccanico, termico, etc...) sono state standardizzate e fanno parte della definizione stessa del linguaggio
Modelica. Sono presenti inoltre librerie sviluppate per domini specifici, sia di carattere
commerciale che di carattere open-source.
Il linguaggio Modelica è stato applicato ad un ampio spettro di problemi di modellizzazione,
in differenti domini ingegneristici [25, 52, 50]. Il linguaggio è stato progettato per supportare
sia la sviluppo “ad alto livello” (i.e., componendo modelli di libreria) che di “basso livello”
(i.e., scrivendo ex novo le equazioni per i singoli componenti). In genere, quando si sviluppa un
8
2. Modellizzazione orientata agli oggetti e simulazione
nuova applicazione utilizzando Modelica, alcuni o la maggior parte dei modelli necessari, sono
già disponibili in librerie precedentemente sviluppate, cosı̀ da rendere possibile uno sviluppo
molto rapido.
E’ inoltre possibile definire un modello utilizzando un editor grafico per disegnare un diagramma strutturale (chiamato schematics), contente le icone che rappresentano i modelli dei
componenti e le connessioni tra i connettori dei diversi componenti. I costrutti per inserire annotazioni grafiche in Modelica permettono di implementare rappresentazioni portabili tra tool
differenti.
2.3
Un semplice modello Modelica
In figura 2.1 è rappresentato il diagramma di composizione per un sistema costituito da un semplice motore servoassistito. Il sistema può essere suddiviso in singoli componenti connessi tra
loro: un motore elettrico, una trasmissione, un carico, un sensore per la misura della posizione
angolare del carico, un sistema di controllo, un segnale di riferimento e un blocco sommatore. Il
codice Modelica corrispondente alla rappresentazione schematica è il seguente (le annotazioni
che descrivono le disposizioni grafiche dei componenti e delle linee di connessione non sono
mostrate):
model MotorDrive
Motor motor;
IdealGear gearbox(n=100);
Inertia load(J=10) ;
AngleSensor phiload;
Feedback positionerror ;
PID controller ;
Step Reference;
equation
connect(gearbox.flange_b,load. flange_a);
connect(load.flange_b,phiload. flange_a);
connect(positionerror.inPort2,phiload.outPort);
2.3 Un semplice modello Modelica
9
connect(motor.flange_b,gearbox. flange_a);
connect(positionerror.outPort,controller.inPort)
connect(controller.outPort,motor.inPort);
connect(Reference.outPort,positionerror.inPort1);
end MotorDriveTesi;
Questo modello è ottenuto tramite composizione e connessione di componenti di domini differenti (e.g., meccanico e controllistico). L’istruzione IdealGear gearbox(n = 100);
dichiara un componente gearbox di tipo IdealGear e imposta il valore del rapporto di
trasmissione, (n), a 100. L’istruzione connect genera automaticamente le equazioni di
bilancio per le variabili di flusso e le equazioni di uguaglianza per le variabili di sforzo.
Figura 2.1: Un modello di un semplice motore controllato
Ogni componente può a sua volta essere un modello strutturato, ottenuto per composizione
di altri componenti. Tale strutturazione gerarchica semplifica di fatto lo sviluppo e la gestione di
modelli complessi. Ad esempio, il diagramma di composizione del modello Motor è mostrato
in figura 2.2 ed è costituito da sottomodelli appartenenti a domini fisici differenti (elettrico
e meccanico): il generatore di tensione pilotato Vs, il resistore Ra, l’induttore La, la forza
elettromotrice emf e l’inerzia meccanica Jm.
I modelli dei componenti base sono in genere semplici e facilmente comprensibili, come si
può vedere nel caso del modello della forza elettromotrice:
model EMF "Electromotoric force (electric/mechanic transformer)"
parameter Real k = 1 "Transformation coefficient";
10
2. Modellizzazione orientata agli oggetti e simulazione
Figura 2.2: Il modello Motor
Voltage v "Voltage drop between the two pins";
Current i "Current flowing from positive to negative pin";
AngularVelocity w "Angular velocity of flange_b";
PositivePin p;
NegativePin n;
Flange_b flange_b;
equation
v = p.v - n.v;
0 = p.i + n.i;
i = p.i;
w = der(flange_b.phi);
k*w = v;
flange_b.tau = -k*i;
end EMF;
2.4
L’ambiente di simulazione
Modelica costituisce, di per sé, solo un linguaggio di descrizione dei sistemi: per poter effettivamente simulare un modello Modelica è necessario ricorrere a specifici strumenti software.
Attualmente, esistono diversi strumenti che supportano Modelica: alcuni tra questi, come Dymola[18], che verrà utilizzato come sistema di sviluppo di riferimento per questo lavoro, e
2.4 L’ambiente di simulazione
11
MathModelica[3] sono di carattere commerciale, mentre altri come OpenModelica[56] sono
open-source.
Dymola (Dynamic Modeling Laboratory) è un ambiente di simulazione sviluppato per la
modellizzazione basata su Modelica di sistemi fisici eterogenei, supportando la composizione
gerarchica di modelli e offrendo ampie librerie di componenti predefiniti e riutilizzabili. Tali
librerie coprono svariati domini ingegneristici, come quello dei sistemi elettrici, fluidi e termici,
dei sistemi multicorpo, ecc. Dymola incorpora potenti funzioni automatiche di manipolazione
simbolica delle equazioni del modello, in modo da produrre codice di simulazione altamente
efficiente. Altre caratteristiche comprendono:
• gestione di modelli multi-fisica ampi e complessi;
• accelerazione della modellizzazione tramite la composizione di modelli grafici;
• simulazione più veloce con il pre-processing simbolico;
• possibilità di definizione di componenti per modelli definiti dall’utente;
• possibilità di interfacciamento con altri programmi;
• animazioni 3D;
• supporto per la simulazione real-time;
L’architettura del programma è mostrata in figura 2.3. Dymola ha un potente editor grafico
per la composizione dei modelli ed è basato sull’utilizzo di modelli Modelica memorizzati in
file. I dati e le icone associate ai modelli possono anche essere importate dai file. Dymola
contiene un traduttore complesso, basato algoritmi allo stato dell’arte per la manipolazione
simbolica, per generare codice C efficiente ed ottimizzato per la simulazione. Il codice C può
essere inoltre esportato in Simulink e piattaforme hardware-in-the-loop. E’ inoltre incluso un
generatore di documentazione automatico.
In aggiunta a quanto detto finora, Dymola offre un supporto speciale per i modelli multicorpo, permettendo la connessione di componenti in una modalità praticamente arbitraria. Nel
12
2. Modellizzazione orientata agli oggetti e simulazione
Figura 2.3: L’architettura di Dymola
caso in cui sia necessario modellizzare una catena cinematica chiusa, non è necessario adottare
alcun accorgimento particolare, dato che è tale struttura è automaticamente rielaborata in modo
efficiente attraverso tecniche di manipolazione simbolica. Inoltre, quando si realizza un modello di un multicorpo, tutti i componenti vengono automaticamente visualizzati in un ambiente di
animazione tridimensionale, utilizzando appropriate dimensioni e colori definibili dall’utente,
permettendo un semplice controllo visuale del modello costruito, senza lavoro aggiuntivo per il
modellista.
2.5
Dal modello Modelica al codice di simulazione
Il passaggio dal codice Modelica all’attuale codice di simulazione è complesso e composto
da vari passi, come mostrato in figura 2.4. E’ importante sottolineare che tale processo è
completamente automatico e trasparente all’utente.
Il primo passo consiste nella traduzione nel cosiddetto “codice piatto” (per esempio un
2.5 Dal modello Modelica al codice di simulazione
13
codice composto da sole equazioni, costanti, variabili e chiamate a funzioni): prima viene effettuato un controllo sintattico sul codice originale, successivamente tutte le classi sono espanse
e, alla fine, tutte le equazioni esplicite del modello Modelica e dei suoi sottomodelli sono raggruppate insieme a tutte le equazioni derivate dalle dichiarazioni di connessione. Il risultato di
questo primo passo è un sistema DAE (Differential-Algebraic Equation) della forma seguente:
F(t, ẋ, x, y, u, p) = 0
(2.1)
dove t è la variabile tempo (indipendente), x è un vettore contenente tutte le variabili che compaiono come differenziate, y contiene tutte le variabili di equazioni esclusivamente algebriche,
u è il vettore degli input (noti) e p è il vettore dei parametri.
Un sistema DAE può essere estremamente difficile da risolvere numericamente, specialmente in caso di indice elevato1 , richiedendo quindi una manipolazione simbolica ulteriore per
trasformare il sistema in una forma che permette un’integrazione facile ed efficiente.
In un secondo passo, il codice piatto è analizzato per verificare che il sistema DAE sia strutturalmente non singolare2 , quindi il sistema viene riformulato in modo che la matrice d’incidenza sia triangolare bassa (detta anche BLT (Block Lower Triangular)) utilizzando l’algoritmo
di Tarjan[74]. Il sistema DAE originario è ora partizionato in sottosistemi DAE (i blocchi della
matrice) che possono essere risolti in sequenza.
Il terzo passo, la fase di ottimizzazione, racchiude operazioni molto complicate: prima le
equazioni corrispondenti a semplici assegnamenti (per esempio x = w, x = wT ), generalmente
utilizzate in grande numero nelle dichiarazioni di connessione, sono semplificate ed eliminate,
successivamente vengono scelte le variabili di stato e, se necessario, viene ridotto l’indice del
sistema sfruttando l’algoritmo di Pantelides [54] e il metodo delle derivate fittizie. Successivamente, viene estrapolata una matrice di adiacenza ridotta, dove le righe rappresentano tutte
le equazioni e le colonne solamente le variabili algebriche. In seguito l’operazione di tearing viene effettuata sulla matrice in questione: l’obiettivo è riformulare il sistema di equazioni
1
L’indice differenziale di un sistema DAE è definito come il minimo numero di volte che tutte le parti del
sistema stesso devono essere differenziate rispetto al tempo per estrarre, attraverso la manipolazione simbolica, un
ODE esplicito per tutte le incognite[39]. Un sistema DAE è detto ad indice elevato se il suo indice è almeno 2.
2 Dato un sistema di equazioni F(z) = 0, la matrice di incidenza del sistema è la matrice dove l’elemento
della posizione (i,j) è diverso da zero se e solo se la variabile z j compare nell’equazione f j . Il sistema è detto
strutturalmente singolare se la matrice di incidenza è singolare
14
2. Modellizzazione orientata agli oggetti e simulazione
acausale per trasformarlo in un insieme di assegnamenti (causali, dove le variabili alla sinistra
del segno di assegnamento sono calcolate direttamente iniziando dall’espressione a destra) e
da equazioni implicite dove le variabili che devono essere risolte sono inizializzate, sebbene
non sia possibile trasformare le equazioni in assegnamenti (solitamente a causa di forti non linearità). Dopo le operazioni di tearing, la matrice di adiacenza ridotta del sistema è in forma
BTF (Bounded Triangular Form), con assegnamenti che corrispondono alla parte triangolare
ed equazioni implicite che corrispondono alla parte che è stata ridotta. Alla fine di questa fase
si ottiene un set minimale di equazioni differenziali (che corrisponde agli stati selezionati) e
equazioni algebriche (il generico sistema DAE ha indice 0 o 1).
Il quarto passo genera codice C, che verrà utilizzato per la simulazione attuale, collegando
il sistema di equazioni al solutore numerico. In Dymola si possono scegliere molti solutori numerici, sia a passo variabile (per esempio DASSL[58], ODASSL[27], DOPRI[16], MEXX[40],
LSODAR[65], DEABM[65], eccetera) che a passo fisso (per esempio Eulero implicito ed
esplicito, Runge-Kutta di ordini differenti, eccetera).
Nell’ultima fase, il codice C generato precedentemente viene compilato per produrre un file
eseguibile di simulazione. Sono supportati differenti compilatori C, sia open-source, come gcc,
che proprietari, come Microsoft Visual C++.
In generale, è opportuno chiedersi se la scelta di utilizzare un linguaggio di modellizzazione
di alto livello come Modelica, che facilita molto il compito del modellista, debba essere “pagata” in termini di efficienza del codice di simulazione e quindi in termini di complessità
computazionale. La risposta, almeno per il caso di Modelica e Dymola, è negativa; infatti, le
tecniche di manipolazione simbolica delle equazioni permettono di ottenere automaticamente
codice di simulazione la cui efficienza è spesso comparabile, o addirittura migliore, rispetto a
quella di codice Fortran, C o Matlab sviluppato laboriosamente “a mano”, con notevoli difficoltà
di sviluppo, potenzialmente fonte di errori e difficili da documentare e riusare.
2.5 Dal modello Modelica al codice di simulazione
Figura 2.4: Il processo dal codice Modelica alla simulazione
15
16
2. Modellizzazione orientata agli oggetti e simulazione
Capitolo 3
Il modello della motocicletta
3.1
Introduzione
L’implementazione e la simulazione di sistemi di oggetti multicorpo, in ambiente totalmente
acausale, consente di ottenere risultati relativi al comportamento statico e dinamico di tali
modelli e alle interazioni fisico-meccaniche che si verificano tra i vari componenti. Grazie
a questo tipo di approccio, la realtà è vista come totalmente modularizzata: ogni blocco può
essere considerato distintamente e, in base a leggi fisiche, può scambiare forze con quelli collegati. Questa peculiarità è fondamentale e rappresenta uno dei maggiori vantaggi offerti da
Modelica, in quanto permette di simulare fenomeni complessi senza doverli necessariamente
introdurre in modo esplicito. Per esempio è possibile apprezzare gli effetti centrifughi e giroscopici causati dal rotolamento degli pneumatici senza aver inserito esplicitamente il momento
di autoallineamento.
Questo studio si propone, sfruttando le potenzialità precedentemente citate, di approfondire
i complessi fenomeni che caratterizzano la dinamica dei veicoli a due ruote. Il processo di modellizzazione della realtà fisica ha fatto emergere, in prima approssimazione, tre entità principali
(figura 3.1):
• Corpo: comprende il pilota e tutto il “corpo” della motocicletta (sospensioni, pneumatici,
sterzo,. . . );
17
18
3. Il modello della motocicletta
Figura 3.1: Macro-schema del modello
• Superficie stradale: è la modellizzazione del manto stradale sul quale si muove la motocicletta;
• Interazione pneumatico-strada: interfaccia i due componenti precedenti, simulando le
forze di contatto presenti.
Nel contesto di analisi sopra citato è importante sottolineare che alcuni aspetti sono stati
considerati secondari ed estranei a questo lavoro. In particolare il modello in questione ha
subito le seguenti assunzioni semplificative:
• la trasmissione della potenza del motore alla ruota avviene in modo ideale,
• il pilota è solidale con la motocicletta,
• tutti i componenti, tranne gli pneumatici e gli ammortizzatori, sono stati considerati corpi
rigidi,
3.2 Corpo della motocicletta
19
• il manto stradale è stato considerato indeformabile,
• tutti i giunti rotazionali (sterzo, mozzo anteriore e posteriore e giunto del braccio flottante
posteriore) sono stati considerati privi di attrito,
• gli pneumatici e i freni non sono soggetti a surriscaldamento,
• le pastiglie dei freni si usurano uniformemente e
• le forze di resistenza aerodinamica non hanno componenti in direzione trasversale rispetto
all’asse della motocicletta.
3.2
Corpo della motocicletta
Il processo di astrazione seguito ha identificato come caratteristiche fondamentali del “corpo”
di una motocicletta le geometrie, il peso e l’inerzia dei vari componenti. Macroscopicamente la
struttura può essere suddivisa in diverse entità fondamentali:
Chassis: comprende il telaio, il giunto rotazionale che rappresenta lo sterzo e il manubrio;
Sospensione anteriore: è rappresentata da un doppio sistema molla-smorzatore con caratteristica non lineare personalizzabile, è connessa sia al giunto rotazionale dello sterzo che al
mozzo della ruota anteriore;
Sospensione posteriore: è costituita da una molla ed uno smorzatore posti in parallelo, entrambi con caratteristica non lineare personalizzabile;
Braccio flottante posteriore: è il braccio che connette, tramite un giunto rotazionale, il telaio
al mozzo della ruota posteriore;
Freno anteriore/posteriore: è costituito da un freno a disco con attuazione pneumatica;
Pneumatici: contengono al loro interno il modello di interazione con il terreno (con due differenti modelli d’attrito);
20
3. Il modello della motocicletta
Pilota: rappresenta il pilota e comprende i baricentri e le inerzie della parte superiore e inferiore
di questo e le leggi di controllo della motocicletta.
Sebbene i componenti precedentemente citati accomunino quasi tutti i veicoli a due ruote, è
altresı̀ vero che le differenze geometriche, dimensionali, strutturali, di peso e di assemblamento
contribuiscono a differenziare notevolmente ogni motocicletta. Il comportamento dinamico,
anche se strettamente influenzato dallo stile di guida e dai riflessi del pilota, è caratteristico della
particolare moto. Tra gli aspetti geometrici maggiormente significativi si devono menzionare
l’angolo di caster, il passo e trail.
Figura 3.2: Passo, angolo di caster e trail
In seguito sono riportate delle considerazioni per analizzare differenti aspetti dinamici al
variare del passo, dell’angolo di caster e trail (si varia una grandezza alla volta, mantenendo
costanti le altre due, a rotazione).
Il valore del passo1 varia in base al tipo di veicolo considerato: si parte da 1200 mm per
gli scooter fino ad arrivare a quasi 1600 mm delle motociclette da turismo di grossa stazza. Un
passo elevato causa alcuni problemi, tra cui:
1
Il passo è la distanza tra il punto di contatto del pneumatico anteriore e quello posteriore.
3.2 Corpo della motocicletta
21
• un indesiderato aumento della deformabilità flessionale e torsionale del telaio che provoca
una diminuzione della manovrabilità,
• una diminuzione del raggio minimo di curvatura,
• un aumento della coppia da fornire allo sterzo per poter effettuare una curva,
ma migliora alcuni aspetti:
• ottimizza la distribuzione del carico tra ruota anteriore e posteriore, migliorando l’assetto
in frenata e in accelerazione,
• riduce il movimento di beccheggio in corrispondenza delle irregolarità della strada,
• accresce la stabilità direzionale.
L’angolo di caster2 è molto importante per la manovrabilità della motocicletta e varia da 19°
delle motociclette Speedway a 33° per quelle da turismo.
Da un punto di vista strutturale, un angolo molto piccolo causa un notevole stress sulla forcella durante la fase di frenata e quindi delle pericolose vibrazioni sulla parte anteriore.
Il valore di trail3 dipende dal tipo di motocicletta e dal passo, varia tra valori di 75-90 mm
per le motociclette da competizione fino a 120 mm per quelle da puro turismo.
E’ strettamente legato al valore dell’angolo di caster: in generale, per avere un buon feeling
con la motocicletta, un aumento del trail deve essere abbinato ad un aumento dell’angolo di
caster.
2
L’angolo di caster è l’angolo compreso tra l’asse di funzionamento degli ammortizzatori anteriori e l’asse
verticale assoluto.
3 Trail è la distanza tra la proiezione del mozzo della ruota anteriore sul piano stradale e il punto ottenuto dal
prolungamento dell’ammortizzatore anteriore (lungo il suo asse) sulla strada.
22
3. Il modello della motocicletta
3.3
Superficie stradale
La modellizzazione della superficie stradale è di notevole importanza: è indispensabile per
simulare correttamente l’interazione del pneumatico con la strada, soprattutto in condizioni di
attrito e pendenza variabili.
Lo studio svolto è stato focalizzato sull’aspetto geometrico-vettoriale del manto stradale:
la strada è ipotizzata essere una superficie indeformabile definita da una specifica funzione
matematica z = f (x, y), della quale è possibile calcolare quota e versore normale (n) in ogni
punto (x,y).
La superficie stradale è caratterizzata inoltre, in ogni suo punto, da uno specifico coefficiente
d’attrito, utile per modellizzare condizioni di bagnato, ghiaccio e neve.
3.4
Interazione pneumatico-superficie stradale
I fenomeni fisici che si verificano nel processo di rotolamento e sfregamento tra due superfici
sono di natura molto complessa e non sempre identificabili da leggi ben determinate.
In questo studio la superficie di contatto è identificata da un sistema di riferimento, nel
quale sono definite tutte le forze di interazione. L’identificazione della terna del punto di contatto reale parte da una considerazione di carattere puramente logico-analitico: il sistema di
equazioni (vincoli) deve essere espresso correttamente e deve avere sempre una e una sola
soluzione, perlomeno negli scenari considerati. Per rispettare questa ipotesi è necessario concentrare l’attenzione sull’interpretazione geometrica del punto di contatto e verificare che non
sia ambigua.
Lo schema generale
Lo schema concettuale del modello d’interazione tra il pneumatico e la superficie stradale è
illustrato in figura 3.3. Il modello d’interazione pneumatico-strada calcola le forze generate dal
contatto tra il pneumatico e la strada e quelle derivanti dalla connessione al mozzo della ruota, inserite esplicitamente attraverso un connettore meccanico. Queste forze vengono definite
3.4 Interazione pneumatico-superficie stradale
23
considerando le caratteristiche della superficie stradale e determinate nel relativo modello. La
connessione tra il modello d’interazione pneumatico-strada e quello del manto stradale è quindi
realizzata implicitamente attraverso dichiarazioni di tipo inner/outer, generalmente usate
per descrivere campi di forze. In questo modo la descrizione della strada è disponibile per tutti
i componenti presenti.
Figura 3.3: Schema concettuale d’interazione tra il pneumatico e la superficie stradale
Le caratteristiche d’attrito
Come descritto precedentemente, il modello della strada è essenzialmente definito da una superficie di equazione f (x, y, z) = 0, della quale è possibile calcolare il versore normale tramite
la formula:
n=
∇f
,
|∇ f |
(3.1)
e dalle caratteristiche d’attrito, che possono essere associate ai coefficienti d’attrito longitudinale e laterale:
|Fx |
,
|Fz |
|Fy |
µy =
,
|Fz |
µx =
(3.2)
(3.3)
24
3. Il modello della motocicletta
dove:
Fx è la forza d’attrito longitudinale,
Fy è la forza d’attrito laterale e
Fz è il carico verticale.
Questi coefficienti determinano le caratteristiche della superficie stradale (figura 3.4), sono funzione del pattinamento della ruota e permettono al modello di simulare differenti condizioni
d’aderenza.
Figura 3.4: Comportamento della funzione µx (λ) in differenti condizioni stradali
I sistemi di riferimento del modello
L’interazione pneumatico-strada viene descritta introducendo quattro sistemi di riferimento,
chiamati in seguito frame e mostrati in figura 3.5:
• il frame del mozzo,
3.4 Interazione pneumatico-superficie stradale
25
• il frame della ruota,
• il frame del punto di contatto ideale e
• il frame del punto di contatto reale.
Figura 3.5: I quattro frame: frame del mozzo (in verde), wheel (in giallo), frame del punto di
contatto ideale (in rosso) e del punto di contatto reale (in blu).
Il frame del mozzo è connesso al mozzo della ruota e si muove solidalmente a questa, quindi ruota attorno all’asse yh (asse di rotazione del mozzo). Questo frame è connesso al giunto
rotazionale e collega la ruota al mozzo.
Il frame wheel è connesso, come il precedente, al mozzo della ruota, ha il versore yw coincidente con yh , ma differisce per gli altri due. La direzione e il verso dell’asse xw coincidono
con quelli della velocità di rotazione equivalente della ruota, che si ottengono dall’intersezione
tra due piani: quello tangente alla superficie nel punto di contatto ideale (d’ora in poi chiamato
piano stradale) e il piano su cui giace la ruota (figura 3.6).
Il piano stradale viene individuato dal versore normale alla superficie (n) e dalla quota alla
quale si trova il punto di contatto ideale.
26
3. Il modello della motocicletta
Il piano su cui giace la ruota è il piano ortogonale al versore uscente dal mozzo yw e che
contiene l’origine del mozzo stesso4 . Il versore zw del frame wheel completa la terna:
yw = yh ,
yw × n
xw =
,
|yw × n|
zw = xw × yw .
(3.4)
(3.5)
(3.6)
Figura 3.6: Identificazione della direzione della velocità di rotazione equivalente della ruota
Il frame del punto di contatto ideale ha l’origine appartenente al piano della strada, lungo
la direzione identificata da zw , il versore zi corrispondente con il versore della strada n, xi
coincidente con xw e yi che completa la terna del frame:
4
zi = n ,
(3.7)
xi = xw ,
(3.8)
yi = zi × xi .
(3.9)
L’intersezione tra due piani non paralleli ha sempre come risultato una retta; nel caso in cui il piano della
ruota e quello stradale fossero paralleli si verificherebbero situazioni che esulano dagli scopi di questo studio,
ossia quando l’angolo di rollio, in valore assoluto, supera π2 . Nemmeno la proiezione di un punto su di una retta
è un’operazione che dà adito ad ambiguità, quindi l’ipotesi di univocità istantanea del frame del punto di contatto
ideale è verificata.
3.4 Interazione pneumatico-superficie stradale
27
L’individuazione di ri , origine del frame del punto di contatto ideale, è calcolato come:
ri = rh − ∆z zw
(3.10)
dove:
rh corrisponde all’origine del frame del mozzo,
∆z rappresenta la distanza tra il frame del mozzo e il piano della strada, lungo la direzione di
zw .
La traslazione dal punto di contatto ideale a quello reale
Il frame del punto di contatto ideale e reale hanno il medesimo orientamento e differiscono
esclusivamente per l’origine. L’origine del frame del punto di contatto reale è traslato rispetto
a ri attraverso le cosiddette tracce del pneumatico:

δ
 x

rr = ri + Rr  δy

0



,

(3.11)
dove Rr rappresenta la matrice di rotazione dal frame del punto di contatto reale al frame
assoluto.
In sequenza, gli spostamenti δx , δy e δz , sono stati calcolati come5 :
δx = fw R sgn(vx ),
(3.12)
δy = (∆z − R) sin(ϕ),
(3.13)
δz = (∆z − R) cos(ϕ),
(3.14)
dove:
R è il raggio della ruota,
vx è la velocità di avanzamento del punto di contatto sul terreno e
5
La funzione sgn(x) è stata smussata, utilizzando la funzione sgn(x) ≈ π2 arctan(kx), con k ≈ 1010 .
28
3. Il modello della motocicletta
fw è il coefficiente di attrito volvente, che può essere calcolato come:
fw = A +
B C 2
+ v ,
p p x
(3.15)
dove:
p è la pressione dello pneumatico,
vx la velocità di avanzamento della ruota, cioè:


vx


drr


,e
 vy  = RTr vr = RTr
dt


vz
(3.16)
A, B e C opportuni parametri non negativi.
L’angolo di rollio φ è calcolato come:
φ = − arctan
zTw yr
.
zTw zr
(3.17)
Le forze scambiate con la superficie stradale
Le forze che nascono dall’interazione pneumatico-strada possono essere decomposte in una
forza verticale Fz , una forza longitudinale Fx e una forza laterale Fy .
Forza normale
La forza normale, Fz , può essere calcolata come:
dδz
Fz = − Kel δz + Del
zr
dt
(3.18)
con:
Kel costante elastica e
Del costante di smorzamento,
che descrivono le proprietà elastiche del pneumatico.
Allo stesso modo possono essere definite le forze longitudinali e laterali, impiegando differenti modelli in base alle finalità perseguite. E’ possibile adottare il modello lineare o quello più
complesso che utilizza la formula di Pacejka[20, 67].
3.4 Interazione pneumatico-superficie stradale
29
Forza longitudinale e laterale con il modello d’attrito lineare
La forza longitudinale Fx è sia una forza di trazione Ft , durante la fase di accelerazione, che
una forza frenante F f . Nel modello lineare sono entrambe calcolate esclusivamente in funzione
dello slittamento della ruota λ, come:
Fx = µ0x λxr ,
(3.19)
∂|Fx | =
,
∂λ λ=0
(3.20)
dove:
µ0x
rappresenta il coefficiente lineare della curva descritto in figura 3.3 e

T
0
 
  T
λ = R  1  Rr ωr − vx .
 
0
(3.21)
La forza laterale Fy è calcolata come:
Fy = kα α − kϕ ϕ Fz = Kα α − Kϕ ϕ yr ,
(3.22)
con α che rappresenta l’angolo di sideslip, cioè l’angolo compreso tra il vettore rappresentante
la velocità equivalente di rotazione della ruota (ωR) e quello della velocità del punto di contatto
sulla superficie stradale vx . Questo valore è dato da:
α = − arctan
vy
.
vx
(3.23)
inoltre:
Kα :=
∂|Fy | ∂α α=0,ϕ=0
(3.24)
∂|Fy | ∂ϕ α=0,ϕ=0
(3.25)
rappresenta cornering stiffness, mentre
Kϕ :=
descrive camber stiffness.
30
3. Il modello della motocicletta
Forza longitudinale e laterale con il modello d’attrito di Pacejka
Anche in questa modellizzazione la forza longitudinale Fx è sia una forza di trazione Ft ,
durante la fase di accelerazione, che una forza frenante F f . Nel modello di attrito di Pacejka
sono definite come:
Fx = Dx sin{Cx arctan[Bx λ − Ex (Bx λ − arctan(Bx λ))]},
(3.26)
dove:
Bx = Kxλ /(Cx Dx ), è un coefficiente che definisce l’inclinazione della curva,
Cx è un parametro che regola il valore asintotico,
Dx = ρx Fz , influenza il valore di picco (solo se E < 1) e dipende dal carico verticale,
ρx = pDx1 + PDx2 d fz ,
Ex = (pEx1 + pEx2 d fz + pEx3 d fz2 )(1 − pEx4 sgn(λ)) caratterizza la curvatura in prossimità del
picco,
Kxλ = Fz (pKx1 + pKx2 d fz ) · exp(pKx3 d fz ),
d fz = (Fz − Fz0 )/Fz0 ,
Fz0 è la reazione vincolare nominale.
Il discorso è analogo per la forza laterale, che è calcolata come:
Fy = Dy sin{Cy arctan[By β−Ey (By β−arctan(By β))]}+{Cγ arctan[Bγ λ−Eγ (Bγ λ−arctan(Bγ λ))]},
(3.27)
dove:
β è il sideslip,
By = Kyα /(Cy Dy ),
Cy è un parametro positivo,
3.4 Interazione pneumatico-superficie stradale
31
Dy = ρ y Fz ,
ρy = pDy1 exp(pDy2 d fz )/(1 + pDy3 γ2 ),
γ è l’angolo di camber,
Ey = pEy1 + pEy2 γ2 + pEy4 γsgn(β),
Kyγ = Fz (pKy6 + pKy7 d fz ),
Kyα0 = pKy1 Fz0 sin{pKy2 arctan[Fz /((pKy3 + pKy4 λ2 )Fz0 )]},
Kyα = Kyα0 /(1 + pKy5 γ2 ),
Bγ = Kyγ /(Cγ Dy ),
Cγ è un altro parametro positivo,
Eγ = pEy5 .
Nel complesso le forze di interazione possono essere studiate direttamente nel punto di contatto, evitando quindi di dover considerare anche tutti gli effetti causati dallo spostamento di
questo, come ad esempio il momento di attrito, forniti automaticamente inserendo le equazioni
di bilancio al mozzo della ruota.
Le equazioni di bilancio: coppie e momenti generati
Per esprimere correttamente le equazioni di bilancio delle forze è opportuno considerare, oltre
alle forze d’interazione precedentemente descritte, anche le forze Fh (e coppie τh ) del mozzo:
0 = Fh + Fx + Fz + Fy
(3.28)
0 = τh + (rr − rh ) × (Fx + Fz + Fy ) .
(3.29)
Le coppie generate dall’interazione tra pneumatico e superficie stradale sono, in gran parte, automaticamente ricavate dalle equazioni di bilancio delle forze al mozzo della ruota, descritte
32
3. Il modello della motocicletta
precedentemente. Sebbene molte di queste siano da considerarsi intrinseche alla modellizzazione proposta, è interessante studiare alcuni fenomeni che coinvolgono l’interazione tra gli
pneumatici e la strada, quali momento di autoallineamento e momento di twisting.
La distribuzione del carico, inteso come sforzo di taglio laterale, generato dal sideslip della
ruota, non è simmetrico, quindi la forza laterale risultante è applicata in un punto differente dal
punto di contatto a ruota ferma. Questo offset di applicazione della forza laterale genera un
momento che tende a far diminuire l’angolo di camber.
Un altro fenomeno molto interessante da osservare è il momento di twisting. Si consideri
una ruota che si muove su di un piano a velocità angolare costante Ω e con l’asse di rotazione
inclinato rispetto al piano stradale e si indichi con C0 l’intersezione dell’asse di rotazione col
piano della strada e con C il centro di rotazione della traiettoria descritta dalla ruota (figura 3.7).
Nel caso in cui C e C0 coincidano la ruota si sta muovendo in assenza di pattinamento longitudinale, infatti la velocità tangenziale e quella di avanzamento di due punti A e B, appartenenti
alla superficie di contatto, sono uguali6 :
ω rA = Ω RA ;
(3.30)
ω rB = Ω RB .
(3.31)
dove:
rA è la distanza tra C0 e B;
rB è la distanza tra C0 e B;
RA è la distanza tra C e A;
RB è la distanza tra C e B.
6
La velocità tangenziale di A (o B), calcolata come prodotto della velocità angolare della ruota per il raggio
(distanza tra C0 e A (o B)), è uguale a quella di avanzamento, risultato del prodotto tra la velocità angolare di
percorrenza della curva e il raggio (distanza tra C e A (o B)).
3.5 Aerodinamica
33
Figura 3.7: Generazione del momento di twist
Nel caso in cui C e C0 non coincidano, come accade solitamente per la ruota di una motocicletta, dove il centro di curvatura C è posizionato sempre esternamente rispetto a C0 , i due punti
A e B si muovono con velocità differenti.
Ipotizzando che al centro dell’area di contatto la velocità sia uguale a quella di avanzamento, si potrebbero identificare due zone della superficie di contatto: quella interna che ha
complessivamente velocità inferiore a quella di avanzamento, e quindi slip negativo, e quella
esterna con velocità superiore e quindi slip positivo. Queste differenze di slip causano un momento sulla ruota che viene chiamato di twisting. Il momento di twisting assume circa lo stesso
valore dell’angolo di rollio (espresso in gradi), influisce perciò considerevolmente nelle curve
più impegnative.
3.5
Aerodinamica
Per simulare correttamente le manovre a velocità medio-alte è indispensabile includere nel modello le forze aerodinamiche, dovute all’attrito tra l’aria e il complesso motocicletta-pilota, che
34
3. Il modello della motocicletta
si oppongono al movimento.
Le forze di resistenza aerodinamica sono sostanzialmente tre:
• Drag Force (Forza di tiro): si oppone al moto longitudinale;
• Lift Force (Forza di sollevamento): tende ad alzare la motocicletta (fenomeno simile alla
portanza aerodinamica);
• Lateral Force (Forza Laterale): agisce in direzione laterale, perpendicolarmente all’asse
della motocicletta;
Figura 3.8: Forze di resistenza aerodinamica
Queste forze possono essere applicate in un punto denominato centro delle pressioni che
non coincide con il baricentro della motocicletta ma si trova generalmente davanti ad esso. Le
componenti più significative sono Drag Force e Lift Force e la loro risultante genera un momento di beccheggio.
Drag Force influenza pesantemente le performance in termini di velocità massima e accelerazione dato che cresce proporzionalmente al quadrato della velocità longitudinale. Il suo valore
viene calcolato tramite la formula:
1
Fd = ρ Cx A (vx )2
2
(3.32)
3.5 Aerodinamica
35
ρ rappresenta la densità dell’aria (è pari a 1.167Kg/m3 alla pressione atmosferica di 987mbar
e alla temperatura di 20°C);
Cx rappresenta il coefficiente di penetrazione aerodinamica frontale. Il suo valore è influenzato principalmente dalla forma della motocicletta, in particolare dalla presenza o meno
della carenatura e dai vortici che si possono formare;
A è la sezione frontale della motocicletta. E’ influenzata marcatamente sia dalla statura che
dalla postura del pilota;
vx è la componente longitudinale della velocità.
Un’altra forza non trascurabile è Lift Force (anch’essa proporzionale al quadrato della velocità) che riduce il carico sul pneumatico anteriore e posteriore. Viene calcolata tramite la
formula:
Fl =
1
ρ Cl A (vx )2 ,
2
(3.33)
dove Cl rappresenta il coefficiente di sollevamento.
Questa forza (a causa dell’alleggerimento di carico che provoca) può avere effetti deleteri sull’aderenza degli pneumatici, specialmente su quello anteriore dato che il centro delle
pressioni è collocato anteriormente.
36
3. Il modello della motocicletta
Capitolo 4
Il Package MotorcycleDynamics
4.1
Introduzione
In questo capitolo è illustrata l’implementazione del modello “concettuale” di una motocicletta (presentato nel capitolo precedente). Inizialmente è introdotta la libreria Multibody, con la
quale è stato realizzato il modello, e in seguito è descritto dettagliatamente il package
MotorcycleDynamics, esaminando ogni modulo di cui è composto e gli aspetti implementativi ritenuti più significativi.
4.2
La libreria Multibody
La libreria Multibody del linguaggio Modelica offre svariati modelli di componenti meccanici
tridimensionali (e.g. giunti rotazionali e prismatici, corpi con forme differenti, molle, smorzatori, ecc. . .) adatti a rappresentare sistemi complessi di oggetti multicorpo. E’ anche possibile
creare, in modo semplice, nuovi componenti che possono essere usati in combinazione con
quelli predefiniti.
L’interfaccia standard (connector) è associata ad un frame di riferimento, quindi per connettere due componenti è necessario collegare tra loro i due frame di riferimento. Questa connessione equivale ad una “saldatura” ideale realizzata tra i due corpi. Il connettore (figura 4.1)
considera le forze e le coppie come variabili di flusso, mentre le variabili di sforzo sono ricavate
37
38
4. Il Package MotorcycleDynamics
Figura 4.1: Schema di un connettore meccanico
sia dalla posizione del frame del connettore rispetto al frame assoluto (world) che da un “orientation object”. Quest’ultimo è stato progettato per rappresentare efficientemente la rotazione
relativa tra il frame del connettore e quello assoluto in qualsiasi condizione dinamica.
La rappresentazione interna dell’orientamento (i componenti della matrice di rotazione) è
completamente mascherata all’utente. Inoltre sono disponibili dei metodi per calcolare le matrici di rotazione, le velocità angolari,. . . , in questo modo non è necessario essere a conoscenza
della descrizione reale dell’orientamento.
La velocità, l’accelerazione lineare e l’accelerazione angolare possono essere facilmente
calcolate applicando l’operatore di derivazione der() all’opportuna variabile.
I modelli multicorpo possono essere realizzati in modo semplice tramite adeguate operazioni di “drag & drop” dei componenti disponibili nella libreria e con semplici connessioni.
Il componente world deve essere presente in tutti i modelli per definire il frame di riferimento assoluto e il tipo di campo gravitazionale (nessuna gravità, gravità uniforme o puntiforme).
Un esempio è mostrato in figura 4.2, dove è rappresentato il modello di una catena cinematica, spesso usato come unità di costruzione basilare nei meccanismi, costituito da sei giunti
rotazionali, un giunto prismatico e quattro aste. Questo esempio dimostra che, per creare catene
4.3 Il package MotorcycleDynamics
39
cinematiche, non è richiesta nessuna particolare conoscenza da parte dell’utente, è solamente
necessario collegare, in modo coerente al sistema che si intende modellizzare, i giunti e le aste.
Figura 4.2: Esempio di catena cinematica: lo schema delle connessioni e il contributo grafico
dell’animazione creata
4.3
Il package MotorcycleDynamics
Il package MotorcycleDynamics è un pacchetto di libreria per Dymola, scritto in Modelica
2.2 che fornisce tutti gli strumenti utili per lo studio tramite prototipazione virtuale di qualsiasi
componente a due ruote: biciclo e motociclo.
Per la realizzazione del modello, è stata sfruttata la possibilità di incapsulamento offerta dal
linguaggio Modelica con una duplice finalità: sia per dare una struttura gerarchica al progetto
che per poter agire in modo trasparente e intuitivo su ogni singolo componente.
Il package qui descritto, è stato sviluppato per affiancare la libreria VehicleDynamics presente in Dymola e ne rispecchia, almeno in parte, l’organizzazione strutturale. Macroscopicamente il package è organizzato ad albero, nel livello più alto sono presenti un modello di
motocicletta (standard) e 8 sotto-package:
• Motorcycle: è il modello di una motocicletta assemblata con tutti i componenti di
default (sospensioni, ruote,. . . );
40
4. Il Package MotorcycleDynamics
• Package Chassis: contiene la struttura standard dello chassis e i relativi dati dimensionali. E’ possibile definire nuovi chassis o personalizzare quelli esistenti;
• Package Suspension: racchiude il modello dell’ammortizzatore anteriore, comprensivo di forcella e sterzo, e dell’ammortizzatore posteriore;
• Package Rear Swinging Arm: all’interno è definito il braccio flottante posteriore,
anch’esso di dimensioni e caratteristiche fisiche totalmente parametrizzabili;
• Package Wheel: contiene tutti i componenti, i parametri, le dimensioni, le inerzie e i
modelli d’attrito delle ruote;
• Package Driver: fornisce diversi modelli di pilota che controllano la motocicletta agendo su sterzo e acceleratore;
• Package Environmets: contiene la modellizzazione della superficie stradale;
• Package Aerodynamics: racchiude il modello delle forza di resistenza aerodinamica;
• Package Example: alcuni esempi di utilizzo della libreria.
Di seguito sono state descritte le parti più siginificative dell’implementazione di questo
pacchetto di libreria, con espliciti riferimenti a stralci di codice Modelica.
4.4
Geometrie, inerzie, masse e altri parametri
Per svolgere simulazioni realistiche non è necessario solamente un buon modello fisico ma anche un modello che rispetti le specifiche tecniche del progetto, si pensi solamente a quanto
influisce sul comportamento dinamico una variazione, anche minima, dell’angolo di caster (si
veda il capitolo precedente). Inoltre, un altro fattore molto importante è la possibilità di “personalizzare” i componenti: ogni blocco parametrico accresce la scalabilità del modello che può
adattarsi a motociclette con caratteristiche diverse. All’interno di ogni sottopackage sono presenti dei record1 (allo stesso livello di visibilità del componente che li utilizza) che contengono
1
I record sono organizzazioni strutturate di dati che sono state associate ad ogni componente parametrico
presente nella libreria.
4.4 Geometrie, inerzie, masse e altri parametri
41
Figura 4.3: Le geometrie della moto, del pilota e le posizioni dei baricentri
dati per definire geometrie, inerzie, masse e parametri di ogni singolo componente, tra questi:
• Base Dimension MassPosition Data: contiene i dati relativi al pilota e le dimensioni dei vari componenti della motocicletta, oltre che la posizione dei baricentri
(figura 4.3).
• Base Chassis Data: utilizzato per definire i tensori d’inerzia e la massa dello chassis;
• Base Front Suspension Data: per modificare i tensori d’inerzia, la massa della
forcella anteriore e dello sterzo e le caratteristiche della molla e dello smorzatore della
sospensione anteriore;
• Base Rear Suspension Data: contiene le caratteristiche della molla e dello smorzatore per la sospensione posteriore;
• Base Swinging Arm Data: definisce inerzie e masse del braccio flottante posteriore;
42
4. Il Package MotorcycleDynamics
• Base Wheel Data: contiene le inerzie, le masse e le dimensioni delle ruote e il coefficiente elastico e smorzante del pneumatico (per il calcolo della reazione vincolare).
4.5
Il modello Motorcycle
Il modello Motorcycle collega tutti i componenti della moto: telaio, sospensioni, ruote,. . . Nella
figura 4.4 è rappresentato lo schema generale del modello, dove è possibile osservare tutti i sottosistemi che compongono la motocicletta. Le doppie frecce indicano le connessioni esistenti
tra i vari componenti, ossia i collegamenti tra frame che permettono il bilancio di forze e coppie.
Volutamente il blocco che rappresenta la strada non presenta connessioni, in quanto la motocicletta non deve essere immaginata come “incollata” al manto stradale, ma come un corpo che
“naviga” nell’aria.
Figura 4.4: Schema generale delle connessioni
4.6
Il package Suspension
Questo package contiene il modello base degli ammortizzatori Base Suspension, le sospensioni anteriori Front Suspension (che comprendono la forcella anteriore, il manubrio e il
relativo fondocorsa Steer Stopper) e quelle posteriori Rear Suspension.
4.6 Il package Suspension
43
Sia gli ammortizzatori anteriori che quelli posteriori sfruttano il medesimo modello di ammortizzatore composto da un doppio sistema molla-smorzatore di tipo monodirezionale:
Spring_Force.u[1] = s_unstretched - s;
Shock_Absorber.u[1] = der(-s);
f = - Spring_Force.y[1] - Shock_Absorber.y[1] - PreLoad;
• (s unstretched - s) rappresenta la compressione/estensione della molla (differenza tra la lunghezza a riposo e sotto carico);
• Spring Force.y[1] (molla) dipende dalla compressione/estensione della molla;
• Shock Absorber.y[1] (smorzatore) dipende dalla velocità di compressione/estensione
della molla;
• PreLoad è un valore costante (parametrico) e dipende dalla taratura effettuata sugli ammortizzatori, consente di variare la zona di funzionamento dell’ammortizzatore e quindi
l’assetto della motocicletta.
Come si può vedere dal codice Modelica, la forza risultante è pari alla somma di tre componenti e non considera le torsioni che la molla subisce. La prima e la seconda componente
vengono calcolate in base a due tabelle, che contengono le caratteristiche della molla e dello
smorzatore. Queste ultime consentono di specificare le non linearità presenti (il coefficiente di
elasticità della molla e il coefficiente di smorzamento dello smorzatore) e sono definiti tramite
una funzione lineare a tratti2 .
E’ importante sottolineare che i valori di uscita delle tabelle vengono interpolati. Inoltre,
utilizzando le tabelle, è possibile definire con semplicità anche i fondocorsa (figura 4.5), aumentando opportunamente la pendenza agli estremi della caratteristica.
Anche il funzionamento del fondocorsa dello sterzo Steer Stopper è associato ad una
tabella: questo componente fornisce coppia nulla sullo sterzo quando l’angolo di sterzo si trova
2
Inserendo i valori nella tabella si costruisce una funzione lineare a tratti (spezzata).
Nel
caso della molla la funzione lega la deformazione (variabile indipendente s unstretched - s =
Spring Force.u[1]) alla forza elastica (variabile dipendente Spring Force.y[1]); mentre, per lo
smorzatore, definisce il legame tra la velocità di deformazione (variabile indipendente der(s unstretched
- s) = Shock Absorber.u[1]) e la forza di smorzamento (Shock Absorber.y[1]).
44
4. Il Package MotorcycleDynamics
Figura 4.5: Caratteristiche di default della molla (in alto a destra) e dello smorzatore (in alto
a sinistra) della sospensione anteriore e ingrandimento della zona di funzionamento “normale”
della molla (in basso)
4.7 Il package Wheel
45
all’interno della zona di funzionamento normale e coppia molto elevata nei dintorni del fondocorsa, assicurando quindi che l’angolo di sterzo non aumenti (in valore assoluto) oltre il limite
prefissato.
4.7
Il package Wheel
Questo package contiene tutti i componenti che riguardano ruote e pneumatici:
• la ruota standard (Standard Wheel) che può essere opportunamente estesa e modificata;
• il modello di interazione tra il pneumatico e il manto stradale
(Wheel Road Interaction);
• i dati della ruota (package Data);
• i modelli d’attrito (package Friction Model);
• l’interfaccia di connessione tra il modello d’interazione e modello d’attrito
(Friction Connector).
In seguito verranno descritti i moduli più rilevanti di questo package, riportando stralci di
codice Modelica per ulteriore chiarezza.
4.7.1
Il modello Wheel Road Interaction
Il modello Wheel Road Interaction, come si può facilmente intuire, rappresenta il pneumatico di una motocicletta e racchiude tutte le leggi fisiche inerenti l’interazione ruota-strada.
Per comprendere la logica implementativa di questa entità è necessario evidenziare tre
aspetti fondamentali:
1. l’acausalità delle equazioni che lo compongono,
46
4. Il Package MotorcycleDynamics
Figura 4.6: Una possibile implementazione del modello di una ruota (Standard Wheel). Si
può notare il connettore (in giallo), il sensore (triangolo con il contorno blu), il record dei dati
(in alto a destra) e il corpo della ruota (in blu).
4.7 Il package Wheel
47
2. la presenza di un unico “connettore” (il mozzo della ruota) tramite il quale scambiare le
forze con l’esterno,
3. la causalità della strada, entità esterna che per ogni riferimento (x, y) fornisce il valore di
quota e il versore normale (si veda il paragrafo “Il modello Road”).
L’acausalità delle equazioni garantisce una valenza “multidirezionale” delle stesse; infatti
le formule fisiche non sono verificate esclusivamente nella forma in cui sono state esplicitate.
Questo permette di semplificare notevolmente il processo implementativo; è possibile, ad esempio, considerare la reazione vincolare come N = Kel δz − Del δ˙z , senza dover imporre direzionalità di esplicitazione: è implicito che N sia f (δz , δ˙z ) e che δz = f (N, δ˙z ) e, . . . . Come spiegato
in precedenza, le equazioni sono scritte in maniera indipendente dalle condizioni al contorno,
senza decidere a priori quali siano gli ingressi e quali le uscite: la causalità del sistema viene
determinata automaticamente da compilatori o interpreti Modelica.
La presenza di un unico connettore (quello del mozzo) è giustificata dal fatto che nel punto
di contatto non possono essere applicate forze esterne al pneumatico, quindi il connettore del
punto di contatto non è presente.
In terza istanza è importante sottolineare la natura causale della strada: le sue grandezze non
sono influenzate da fenomeni esterni (ipotesi), è globalmente indeformabile e statica.
L’obiettivo di questo modulo è quindi di:
1. determinare, esprimendo vincoli geometrici, il punto di contatto ideale,
2. definire le forze che sono presenti nel sistema di riferimento del punto di contatto e
3. definire le equazioni di bilancio energetico tra il frame del punto di contatto e il frame del
mozzo.
48
4. Il Package MotorcycleDynamics
1 - Individuazione del punto di contatto e relativo sistema di riferimento
Per poter introdurre l’aspetto implementativo è necessario preporre qualche considerazione geometrica, è infatti fondamentale identificare, da subito, i frame che saranno utilizzati in seguito3 (figura 4.7). Se si focalizza l’attenzione sulla ruota, si possono identificare due sistemi di
Figura 4.7: Le terne della ruota: frame b in verde, wheel in giallo, P in rosso e POC in blu
riferimento, entrambi con origine nel mozzo della ruota:
• frame b: rappresenta la terna del frame solidale alla ruota: ha l’asse y coincidente
con l’asse di rotazione del mozzo e gli assi x e z nel piano della ruota (questo frame
corrisponde al frame del mozzo);
• wheel: ha l’asse y coincidente con quello precedente, l’asse x orientato come la direzione di avanzamento e l’asse z di conseguenza (coincide con il frame della ruota).
Per quanto concerne il punto di contatto è possibile individuare due sistemi di riferimento:
• P: terna del punto di contatto ideale (ruota ferma): l’asse x corrisponde alla direzione di
avanzamento, l’asse z coincide con il versore normale alla superficie stradale e l’asse y di
conseguenza (equivale al frame del punto di contatto ideale);
3
I frame, che si possono notare in figura 4.7, sono stati individuati e vincolati nella fase di modellizzazione
fisica del progetto descritta nel capitolo precedente, sono: frame del mozzo, frame della ruota, frame del punto di
contatto ideale e frame del punto di contatto reale. Nella fase implementativa sono stati associati a variabili con
una differente nomenclatura e, per chiarezza, di seguito sono stati rappresentati.
4.7 Il package Wheel
49
• POC: terna del punto di contatto reale (ruota in movimento), è orientata analogamente alla
precedente ma con origine opportunamente traslata (coincide con il sistema di riferimento
del punto di contatto reale).
Di seguito è riportata una descrizione dettagliata dell’implementazione dei vincoli per l’identificazione della terna e dell’origine di tali frame, con annessi dei riferimenti a stralci di
codice Modelica.
Figura 4.8: Il frame solidale con la ruota frame b (in verde) e wheel (in giallo)
Se si considera il frame del mozzo della ruota (frame b) si può facilmente calcolare l’asse
di rotazione della ruota stessa, y wheel, tramite una rotazione che porta il vettore {0,0,1}
dal sistema di riferimento locale del mozzo al sistema di riferimento assoluto:
y_wheel = resolve1(frame_b.r_0,{0,0,1});
L’asse z del frame del punto di contatto z POC è fornito dal blocco Road in base alle coordinate
(x, y) del punto di contatto stesso (per ulteriori chiarimenti si veda il paragrafo relativo alla
modellizzazione della strada):
z_POC = normalize({-road.get_nx(P[1],P[2]),-road.get_ny(P[1],P[2]),1});
50
4. Il Package MotorcycleDynamics
L’asse x wheel, risultato dell’intersezione tra due piani, può essere calcolato normalizzando il
prodotto vettoriale tra y wheel e il vettore normale al piano stradale (il vettore z POC) (figura
4.9):
x_wheel = normalize(cross(y_wheel, z_POC));
Figura 4.9: Il versore x wheel (in giallo) è il risultato della normalizzazione del prodotto
vettoriale di y wheel (in giallo) e z POC (in blu)
Il versore x del sistema di riferimento del punto di contatto x POC coincide con il versore
x wheel (figura 4.10):
x_POC = x_wheel;
L’asse y del sistema di riferimento del punto di contatto, y POC, è vincolato di conseguenza
(in modo implicito):
y_POC = cross(z_POC, x_POC);
In questo modo sono stati definiti tutti i versori del frame del punto di contatto teorico, che
coincidono con quelli della terna del punto di contatto reale (rappresentata in figura 4.11): i due
4.7 Il package Wheel
51
Figura 4.10: Gli assi x wheel (in giallo) e x POC (in blu) sono paralleli
Figura 4.11: Terna del punto di contatto
52
4. Il Package MotorcycleDynamics
sistemi di riferimento sono solamente traslati tra loro.
Le tre coordinate del punto di contatto ideale P sono fissate dal sistema di equazioni:
P = frame_b.r_0-dist_z*z_wheel;
P[3] = road.get_z(P[1],P[2]);
dove dist z è pari alla differenza tra la lunghezza del raggio della ruota e la quantità di pneumatico deformata, ovvero la distanza lungo l’asse z (del sistema di riferimento del mozzo) tra il
centro del mozzo stesso e il punto di contatto.
Per ulteriori chiarimenti di seguito è riportata una figura riassuntiva nel quale sono rappresentate tutte le terne in questione: in verde la terna del frame b, in giallo la terna wheel, in
rosso e in blu rispettivamente le terne di P e POC.
Figura 4.12: Le terne della ruota: frame b in verde, wheel in giallo, P in rosso e POC in blu
Ora è anche possibile calcolare la rotazione che porta dal sistema di riferimento assoluto a
quello di P, chiamata POC R:
POC_R = from_nxy(x_POC, y_POC);
Infine, per il calcolo del punto di contatto, POC, è necessario traslare P di una quantità pari a
{dx,dy,0}, che espressa nel sistema di riferimento assoluto è pari a:
POC = P + resolve1(POC_R, {dx,dy,0});
4.7 Il package Wheel
2 - Definizione delle forze presenti nel frame del punto di contatto
Le forze di contatto considerate sono [11]:
• longitudinale: TF (forza di trazione)
• laterale: FS (attrito laterale) e
• normale: N (reazione vincolare),
Ognuna delle forze precedenti è rappresentata da un componente del vettore POC f.
I modelli di attrito (figura 4.13) implementati sono due:
• Lineare (Linear Friction Model) e
• Pacejka (Pacejka Friction Model).
Sono perfettamente intercambiabili, grazie al connettore Friction Connector.
Figura 4.13: Caratteristiche dei modelli d’attrito longitudinale: Lineare e di Pacejka
Il modello d’attrito lineare (Linear Friction Model)
La forza di trazione è data da:
53
54
4. Il Package MotorcycleDynamics
TF = k * slip;
dove:
• k: è un coefficiente che determina la pendenza della caratteristica;
• slip: rappresenta lo slittamento, ossia la differenza tra la velocità che la ruota dovrebbe
avere in assenza di scivolamento e la velocità lineare effettiva.
La forza laterale è pari a:
FS = contact*(Kl*lambda-Kt*roll)*N
dove:
• Kl e Kt: sono due costanti caratteristiche;
• contact: è una variabile che assume valori compresi tra 0 e 1 e identifica la condizione
di contatto tra terreno e pneumatico;
• lambda: è l’angolo tra la componente y e la componente x della velocità (sideslip)4 ;
• roll: è l’angolo di rollio della motocicletta.
Il modello d’attrito di Pacejka (Pacejka Friction Model)
Nel secondo modello la forza di trazione e la forza laterale sono descritte dalla magic
formula:
dfz = (Pin.N-Fz0)/Fz0;
Dx = (pdx1+pdx2*dfz)*Pin.N;
Ex = (pex1+pex2*dfz+pex3*dfzˆ2)*(1-pex4*signSlip);
Kxk = Pin.N*(pkx1+pkx2*dfz)*exp(pkx3*dfz);
Bx = Kxk/(Cx*Dx);
//longitudinal force as function of the longitudinal slip
4
In realtà, al fine di migliorare le performance di simulazione, è stato utilizzato il seno del sideslip (per velocità
inferiori a 0,5 m/s). Questo ha permesso di attenuare le brusche variazioni, causate dai continui cambi di segno
della componente laterale della velocità (quando la motocicletta si muove a velocità ridotte).
4.7 Il package Wheel
55
fact = atan(Bx*Pin.slip-Ex*(Bx*Pin.slip-atan(Bx*Pin.slip)));
Fx0 = Dx*sin(Cx*fact);
//final longitudinal force with sideslip effects
Bxalpha = rbx1*cos(atan(rbx2*Pin.slip));
Pin.TF = cos(Cxalpha*atan(Bxalpha*Pin.sideslip))*Fx0*Pin.contact;
signSideslip = (atan(10ˆ6*(Pin.sideslip)))*2/pi;
Dy = Pin.N*pdy1*exp(pdy2*dfz)/(1+pdy3*Pin.rollˆ2);
Ey = pey1+pey2*Pin.rollˆ2+pey4*Pin.roll*signSideslip;
Kyalpha = pky1*Fz0*sin(pky2*atan(Pin.N/((pky3+pky4*Pin.rollˆ2)*Fz0)))/
(1+pky5*Pin.rollˆ2);
By = Kyalpha/(Cy*Dy);
Kygamma = (pky6+pky7*dfz)*Pin.N;
Bgamma = Kygamma/(Cgamma*Dy);
fact1 = Cy*atan(By*Pin.sideslip-Ey*(By*Pin.sideslip-atan(By*
Pin.sideslip)));
fact2 = Bgamma*Pin.roll-Egamma*(Bgamma*Pin.roll-atan(Bgamma*Pin.roll));
Fy0 = Dy*sin(fact1)+Cgamma*atan(fact2);
Byk = rby1*cos(atan(rby2*(Pin.sideslip-rby3)));
Pin.Fs = cos(Cyk*atan(Byk*Pin.slip))*Fy0*Pin.contact;
Reazione vincolare
La reazione vincolare non dipende dal modello di attrito ed è calcolata come somma di
due contributi, uno lineare in funzione della deformazione del pneumatico Kel*dz ed uno
smorzante Del*der(dz).
3 - Descrizione delle equazioni di bilancio tra il frame del mozzo e quello del punto di
contatto
Tutte le forze, rappresentate dal vettore POC f, sono state finora studiate e descritte nel sistema
di riferimento di POC, ma, affinché possano entrare a far parte dei bilanci del modello, è neces-
56
4. Il Package MotorcycleDynamics
sario che siano descritte le equazioni che legano le forze POC f a quelle del mozzo della ruota.
Dato che la matrice di rotazione dal sistema di riferimento assoluto a quello di POC è nota
ed è POC R, per effettuare il bilancio è sufficiente inserire il seguente sistema di equazioni:
r_rel_POC = resolve2(POC_R, POC-frame_b.r_0);
zeros(3) = frame_b.f + resolve2(frame_b.R, resolve1(POC_R, POC_f))
zeros(3) = frame_b.t + resolve2(frame_b.R, resolve1(POC_R, POC_t +
cross(r_rel_POC, POC_f)));
Queste trasformano le forze e le coppie di POC (POC f e POC t) espresse nel sistema di
riferimento di POC riportandole nel sistema di riferimento del mozzo, con i dovuti bilanci di
coppia.
4.8
Il package Driver
Il package Driver definisce tutto ciò che fa parte del controllo di una motocicletta, come: il
pilota base Standard Driver, il controllo di sterzo Steering Control, alcuni percorsi
Path, il controllo di velocità Torque Control e il sistema di frenata assistita ABS; per
ulteriori particolari implementativi si rimanda il lettore al capitolo successivo.
4.9
Il package Environments
Il package Environments racchiude tutto ciò che riguarda l’ambiente che circonda il modello: la strada, le condizioni climatiche (vento, pioggia,...).
Attualmente è stato implementato esclusivamente un modulo che definisce la strada: Road,
descritto in seguito. In futuro sarà possibile estendere questo package aggiungendo il modello
del vento, dato che la struttura è già predisposta per questa modifica.
4.9 Il package Environments
Figura 4.14: Esempio implementativo del modello del pilota Joystick Driver
57
58
4. Il Package MotorcycleDynamics
4.9.1
Il modello Road
Il modello si ispira al blocco Road presente nella libreria VehicleDynamics con l’aggiunta della terza dimensione. E’ stata quindi introdotta una quota variabile in funzione della posizione
(x,y), a differenza di quella disponibile nella libreria di Dymola che presenta un valore di quota
modificabile ma che deve essere costante per tutta la durata della simulazione.
Tutte le informazioni relative alla strada, disponibili tramite il blocco Road, comprendono
i seguenti elementi:
• il vettore (n) normale alla superficie tangente alla strada (nel punto (x, y) di contatto
pneumatico-manto stradale);
• la quota alla quale si trova il suddetto punto (z);
• il coefficiente di attrito (µ).
Il coefficiente µ risulta particolarmente utile nel caso in cui si desideri simulare il comportamento della motocicletta in presenza di superfici stradali diverse (asfalto asciutto, bagnato
e ghiacciato, pavè,. . . ) e in particolare situazioni indesiderate (come la perdita improvvisa di
aderenza dovuta a fenomeni come l’acquaplaning).
E’ necessario notare che il punto di contatto viene calcolato, per evitare discontinuità che
penalizzerebbero le performance di simulazione, come il punto corrispondente alla proiezione
del mozzo sulla retta identificata dall’intersezione tra la piano stradale e il piano su cui giace la
ruota. Questo implica che il punto di contatto si trova sempre sulla superficie stradale, anche
nel caso in cui la ruota non aderisca all’asfalto (per maggiori delucidazioni al riguardo si veda
il relativo capitolo).
Sono disponibili diverse superfici, rappresentanti manti stradali differenti, ognuna delle
quali utilizza una funzione matematica diversa, che è possibile configurare a piacimento tramite
alcuni parametri.
4.9 Il package Environments
59
Le superfici disponibili sono:
• superficie piana,
• superficie in salita e
• paraboloide iperbolico (sella).
Inoltre è possibile visualizzare, nell’animazione generata da Dymola, la rappresentazione
della superficie stradale mostrando un file dxf appositamente creato sfruttando una procedura
Matlab (creata ad hoc) e QuikGrid, un programma gratuito, che permette di convertire una
matrice di punti in un file “.dxf” 3DFace. Nelle figure 4.15 e 4.16 sono mostrate parti di superfici
che sono state create tramite questo procedimento.
Figura 4.15: Strada a sella con vettore normale (in rosso) e quota (in blu)
Note implementative
Il modello Road (causale) è costituito da tre coppie di funzioni, una pubblica ed una privata,
realizzate per vincoli di visibilità imposti dal linguaggio orientato agli oggetti Modelica. La
funzione pubblica chiamata nome funzione invoca quella privata nome funzione pro,
altrimenti inaccessibile dall’esterno. Le funzioni implementate sono tre:
60
4. Il Package MotorcycleDynamics
Figura 4.16: Strada piana con salita
1) get z: ritorna la quota alla quale si trova il potenziale5 punto di contatto. Questa
viene calcolata
risultato
di una funzione matematica z = f (x, y), come, ad esem come
x 2 y 2
pio z =
−
c + d (paraboloide iperbolico). Tale funzione è scelta in base
a
b
alla variabile choice che determina il tipo di strada (piana, con salita/discesa o a sella).
2) get nx: restituisce la componente lungo l’asse x assoluto del versore normale alla
superficie stradale. Tale componente è calcolata derivando rispetto a x la funzione illustrata precedentemente z = f (x, y). Il calcolo della derivata simbolica di una funzione è totalmente automatizzato in ambiente Dymola, infatti è sufficiente aggiungere
annotation(partialderivative(x)) alla fine della dichiarazione della funzione get nx pro.
3) get ny: restituisce la componente lungo l’asse y assoluto del versore normale. Il calcolo
è analogo al precedente, utilizzando come variabile quella associata all’asse y al posto di
x.
Per evitare discontinuità strutturali eccessive dei valori del vettore normale n è stato opportuno dotare la superficie di raccordi (calcolati mediante funzioni trigonometriche, in particolare
5
Quando il pneumatico non è in contatto con la strada questa funzione restituisce la quota della superficie
stradale calcolata nel punto (x, y).
4.10 Il package Example
61
l’arcotangente).
4.10
Il package Example
Questo package contiene i modelli dei veicoli a due ruote completamente parametrizzati, “pronti
per essere simulati” in un determinato ambiente. Ogni modello rappresenta infatti un veicolo
a sé stante, una determinazione particolare della realtà che si intende osservare attraverso la
simulazione. La motocicletta è inserita in un particolare scenario, definito da una superficie
stradale specifica e ben precise azioni sui comandi (note a priori).
Il modello Supermotard
Il modello Supermotard, che è stato utilizzato per diverse prove, è un esempio di come i
componenti del package MotorcycleDynamics possono essere composti e parametrizzati
per ottenere una particolare simulazione.
Come è possibile notare in figura 4.17, dove è riportato un esempio di un supermotard, sono
presenti diversi sottomodelli:
• Record: sono indispensabili e definiscono le caratteristiche di ruote, ammortizzatori e
braccio flottante posteriore, le dimensioni e i baricentri del pilota e della motocicletta;
• Road: anch’esso è obbligatorio e serve per definire la superficie stradale su cui si muove
la motocicletta;
• Joystick Driver: è il modello rappresentante il pilota. In questa prova viene fornita
una coppia allo sterzo, tramite la tabella temporizzata Joystick Table, e
Joystick Driver agisce da stabilizzatore;
• Front Pacejka Friction Model e Rear Pacejka Friction Model: identificano il modello d’attrito adottato per gli pneumatici (alternativamente sarebbe stato
possibile utilizzare il modello di attrito lineare);
62
4. Il Package MotorcycleDynamics
Figura 4.17: Il modello MotorcycleDynamics.Supermotard
4.10 Il package Example
63
• Torque Control: serve per regolare la velocità longitudinale. Il set-point è contenuto in una tabella temporizzata (Velocity) dove sono riportati i valori in funzione del
tempo;
• Front ABS e Rear ABS: modellizzano l’impianto frenante anteriore e posteriore, in
base a quanto stabilito dalle tabelle temporizzate (Front Brake Table e
Rear Brake Table) che contengono la parzializzazione nel tempo della leva del freno
anteriore e posteriore.
64
4. Il Package MotorcycleDynamics
Capitolo 5
Il pilota e il controllo della motocicletta
5.1
Introduzione
Probabilmente un gran numero di persone ha provato, almeno qualche volta, ad utilizzare la
bicicletta, testando empiricamente il comportamento dinamico e cercando, inconsciamente, di
ricavare lo schema mentale di funzionamento, stabilire le leggi per l’equilibrio e per imporre
una determinata traiettoria.
Il pilotaggio di un veicolo a due ruote può sembrare un controllo semplice ed intuitivo, in
realtà deve padroneggiare una serie di fenomeni intrinseci al mondo di cicli e motocicli, come
per esempio: la manovra con controsterzo in entrata/uscita di curva o la coppia applicata allo
sterzo per controbilanciare gli effetti giroscopici (tra cui il momento di autoallineamento in curva).
L’obiettivo del controllo presentato è di simulare, il più fedelmente possibile, il comportamento del pilota che pragmaticamente consiste nell’agire su sterzo, acceleratore e freni in modo
da impedire la caduta del veicolo, cercando di seguire una traiettoria prefissata.
Per riuscire a considerare il comportamento del motociclista è necessario cercare di focalizzare l’attenzione sulle variabili da monitorare:
65
66
5. Il pilota e il controllo della motocicletta
• angolo di rollio: per imporre una determinata curvatura alla traiettoria,
• velocità e accelerazione dell’angolo di rollio: per cercare di stabilizzare la motocicletta
in curva,
e sulle variabili controllate:
• coppia fornita sullo sterzo,
• coppia fornita alle ruote (accelerazione e frenata) e
• angolo di rollio e di beccheggio della parte superiore del pilota (upper-body) per agevolare
il bilanciamento dei carichi in curva (non trattati in questo studio).
A grandi linee le azioni che il pilota può svolgere sono di due tipi:
• controllare lo sterzo: consente di mantenere stabile la motocicletta e seguire una determinata traiettoria;
• controllare la velocità: agendo opportunamente sull’acceleratore e sull’impianto frenante.
Il pilota, dal punto di vista fisico, viene modellizzato da due masse solidali con la motocicletta aventi specifiche inerzie:
• Upper Body: parte superiore del corpo del pilota comprendente il busto, le braccia e il
capo;
• Lower Body: parte inferiore comprendente le gambe.
5.2
Controllo dello sterzo
Per capire le strategie di controllo adottate in questo frangente è importante sottolineare alcuni aspetti del comportamento dinamico della motocicletta. Si parte dal presupposto che, a
prescindere dalla traiettoria desiderata, per far inclinare la motocicletta da un lato, è sempre
necessario sterzare dal lato opposto. Questo ha conseguenze poco intuitive sul comportamento
5.2 Controllo dello sterzo
67
Figura 5.1: Componenti che modellizzano il pilota
che deve assumere il pilota durante le manovre. Per esempio le operazioni da compiere per
effettuare una curva sono in sequenza:
1. Controsterzo: sterzare (quasi bruscamente) verso l’esterno della curva per far inclinare
la motocicletta verso l’interno (per effetto della forza centrifuga che si viene a creare);
2. Sterzo: sterzare (meno bruscamente) verso l’interno della curva allo scopo di creare una
forza centrifuga che freni la caduta della motocicletta verso l’interno della curva fino ad
annullare la velocità di rollio;
3. Mantenimento: sterzare verso l’interno o l’esterno della curva a seconda dell’angolo di
rollio necessario per vincere la forza centrifuga, il momento di autoallineamento e per
poter percorrere la curva con il raggio di curvatura desiderato;
4. Chiusura della curva: sterzare leggermente verso l’interno della curva per riportare la
motocicletta in posizione verticale grazie all’aumento della forza centrifuga causata dalla
momentanea riduzione del raggio di curva.
In realtà questo comportamento è fortemente influenzato dalla velocità con la quale si esegue
la manovra: per velocità basse (minori di una certa velocità detta critica) la fase di controsterzo
68
5. Il pilota e il controllo della motocicletta
Figura 5.2: Le 4 fasi di una curva: controsterzo, sterzo, mantenimento e chiusura
Figura 5.3: Azioni sullo sterzo in curva
5.2 Controllo dello sterzo
69
Figura 5.4: Le 4 fasi di una curva: angolo dello sterzo, coppia fornita allo sterzo e angolo di
rollio
non è più necessaria ed è compensata con opportuni movimenti del pilota; oltre la velocità
critica il controsterzo diventa necessario a causa degli effetti giroscopici.
Il valore della velocità critica può essere facilmente calcolato tramite la formula:
r
pg
,
Vc =
tan (λ)
(5.1)
dove:
p è il passo della motocicletta;
g corrisponde all’accelerazione di gravità;
λ identifica il particolare angolo di caster.
E’ importante notare che, per una motocicletta con un angolo di caster di 27.8° e passo di 1.8
m, il valore della velocità critica è di soli 21 Km/h:
s
1, 8 · 9, 81
Vc =
= 5, 7872 m/s ∼
= 21 Km/h.
tan (27, 8)
(5.2)
Alla luce di questo risultato è possibile suffragare l’ipotesi che vede il pilota come solidale
e in asse con la motocicletta ignorando conseguentemente il suo movimento rispetto ad essa.
70
5. Il pilota e il controllo della motocicletta
Un’altra considerazione importante è che la motocicletta, quando viaggia a velocità superiori a quella critica e in assenza di coppie esterne applicate allo sterzo, diventa un sistema
stabile: il momento di autoallineamento, dovuto agli effetti giroscopici e centrifughi delle ruote
e dello sterzo, assume valori considerevoli in grado di riportare la motocicletta in posizione
verticale. Questo è il motivo per il quale un pilota incontra molte difficoltà nel condurre, senza
l’ausilio delle mani, una motocicletta a bassa velocità, mentre a velocità maggiori il compito
risulta molto più semplice.
5.2.1
Controllo in Curvatura
Una possibile strategia di controllo consiste nel pilotare la motocicletta in base alla curvatura
desiderata. Come illustrato precedentemente, il moto rettilineo, superata la velocità critica, non
presenta particolari problematiche. In curva il comportamento dinamico è nettamente differente, è quindi opportuno identificare la condizione di equilibrio che permette alla motocicletta di
percorrere una determinata curva ad una determinata velocità. Questa condizione di equilibrio
si ottiene in corrispondenza di un certo valore dell’angolo di rollio.
Le principali forze in gioco sono:
Fc = m R ω2 (forza centrifuga),
(5.3)
Fp = m g (forza peso)
(5.4)
con:
m massa della motocicletta
R raggio di curva desiderato (misurato dal baricentro)
g accelerazione di gravità
ω velocità di imbardata (yaw rate)
Come si può notare in figura, la condizione di equilibrio tra la forza peso e la forza centrifuga si ottiene quando la direzione della forza risultante tra le due passa attraverso la retta che
5.2 Controllo dello sterzo
71
Figura 5.5: Angolo di rollio di equilibrio in curva
congiunge i due punti di contatto degli pneumatici.
E’ possibile calcolare il valore dell’angolo di rollio di equilibrio tramite un semplice bilancio
di forze, ottenendo l’espressione:
2
2
m R ω2
R ω2
vx
C vx
φ = arctan
= arctan
= arctan
= arctan
,
mg
g
Rg
g
(5.5)
in cui:
C è la curvatura (1/R)
vx corrisponde alla velocità di avanzamento (vx = R ω)
La formula precedente risulta di grande utilità dato che prescinde dalle caratteristiche tecniche della motocicletta. E’ valida sotto alcune ipotesi semplificative:
• raggio di curva costante;
• velocità costante;
• effetti giroscopici nulli;
72
5. Il pilota e il controllo della motocicletta
• pilota solidale e in asse con la motocicletta;
• pneumatici lenticolari (con spessore nullo) in quanto non viene considerato lo spostamento laterale del punto di contatto.
Tutte queste semplificazioni possono sussistere in quanto si presuppone che il controllo,
nell’inseguire il set-point, corregga le imprecisioni legate al calcolo precedente.
Controllo PPP
Tramite questo sistema di controllo, tratto dalla tesi di [42, Marescotti], è possibile controllare
in curvatura la motocicletta.
Figura 5.6: Schema generale controllo in curvatura
Come si può osservare in figura il sistema di controllo è composto da tre sotto-sistemi
(identificati dai rami di K1, K2 e K3):
Controllo della curvatura desiderata
E’ costituito da un blocco che converte il set-point di
curvatura in un set-point di rollio (tramite la formula illustrata in precedenza). Il set point di
rollio cosı̀ calcolato entra in un sistema di controllo costituito da un regolatore proporzionale
chiuso in retroazione con l’angolo di rollio misurato.
Stabilizzatore di velocità e accelerazione di rollio
Gli altri due sotto-sistemi costituiscono
uno “stabilizzatore” in grado di evitare la caduta della motocicletta. L’azione di controllo del
primo sottosistema tenta di annullare la velocità di rollio (φ̇), mentre l’azione di controllo del
secondo tenta di regolare a zero l’accelerazione (φ̈).
5.2 Controllo dello sterzo
73
Figura 5.7: Regolatore di curvatura
Le due retroazioni che derivano dalle considerazioni precedenti, non interferiscono in maniera
significativa con il primo sotto-sistema (feedback chiuso sull’angolo di rollio) dato che le loro
costanti presentano valori decisamente inferiori. In base al risultato che si desidera ottenere è
Figura 5.8: Stabilizzatore di velocità
Figura 5.9: Stabilizzatore di accelerazione
possibile tarare in modo adeguato le tre costanti (K1, K2 e K3):
• K1 regola la risposta al set-point di curvatura. Aumentando K1 si ottiene una risposta
maggiormente pronta ad una variazione del set-point di curvatura. Oltre un certo valore
il sistema si instabilizza anche per variazioni minime del set-point;
• K2 regola lo smorzamento dell’oscillazione del sistema intorno all’equilibrio. Aumentando questo valore si ottiene un sistema maggiormente stabile (risposte meno brusche)
ma più lento a raggiungere il set-point di curvatura. Oltre un certo valore il controllo in
curvatura non ha alcun effetto sulla motocicletta;
74
5. Il pilota e il controllo della motocicletta
• K3 regola la risposta a spostamenti bruschi del set-point.
5.2.2
Controllo dell’angolo di rollio
Un controllo alternativo al precedente consiste nel pilotare direttamente l’angolo di rollio invece
che la curvatura. Il sistema di controllo risultante differisce da quello in curvatura per l’assenza
del blocco che calcola l’angolo di rollio ideale e per la presenza di un controllore PI al posto
del regolatore proporzionale.
Figura 5.10: Sistema di controllo dell’angolo di rollio
Inoltre è stato necessario moltiplicare per un coefficiente variabile l’errore dell’angolo di
rollio a causa dell’intrinseca non linearità del modello. Questo coefficiente è ovviamente non
lineare ed è funzione della velocità longitudinale della motocicletta e dell’angolo di roll. E’
stato tarato empiricamente a causa della “doppia” non linearità esistente:
• a parità di angolo di rollio il valore che deve assumere il coefficiente non è lineare con la
velocità longitudinale ma cresce esponenzialmente;
• a parità di velocità longitudinale non è lineare al crescere dell’angolo di roll.
Conseguentemente questo coefficiente è il risultato del prodotto di due termini: il primo, funzione della velocità longitudinale, calcolato tramite l’operazione Coeff V=expˆ(Vxˆ2) e il
secondo (Coeff Roll) con l’uso di una tabella non lineare con in ingresso l’angolo di rollio
(figura 5.11).
5.2 Controllo dello sterzo
75
Figura 5.11: Valore assunto dal coefficiente non lineare Coeff Roll al variare dell’angolo di
rollio
5.2.3
Controllo con joystick
Il controllo di tipo joystick è stato pensato per pilotare la motocicletta agendo direttamente con
un’opportuna coppia sullo sterzo, eventualmente utilizzando un dispositivo di input/output in
una simulazione real-time (e.g. joystick con ritorno di forza).
E’ importante sottolineare, fin da subito, che è impensabile che la coppia misurata1 sia l’unica (esterna alla moto) fornita allo sterzo, in tal caso l’utente dovrebbe avere una notevole
sensibilità di pilotaggio e controsterzare in corrispondenza dell’ingresso e dell’uscita da ogni
curva.
Obiettivo di questo controllo è che a fronte di un opportuno scalino di coppia sullo sterzo
la motocicletta si assesti attorno ad un determinato angolo di rollio. L’ampiezza dello scalino
deve controbilanciare il momento di autoallineamento, riportato al manubrio, calcolato nelle
condizioni di assestamento della motocicletta a fine transitorio (angolo di rollio costante). Nel
caso in cui il valore dello scalino sia troppo elevato la motocicletta deve cadere.
1
Presumibilmente stimata attraverso un potenziometro collegato ad un manubrio joystick.
76
5. Il pilota e il controllo della motocicletta
Nel complesso il sistema di controllo può quindi essere descritto come una sorta di stabilizzatore che ha come obiettivo l’annullamento della velocità di roll.
Figura 5.12: Schema riassuntivo del pilota joystick
Per poter utilizzare il controllo ritenuto più performante (il PPP precedentemente citato)
sarebbe necessario conoscere a priori il set point di angolo di rollio da utilizzare in funzione del
tempo, cosa impossibile perchè imprevedibile a priori in una simulazione real-time. Per ovviare
a questo problema si è pensato di calcolare il valore di errore di rollio integrando l’errore di
velocità di roll, come rappresentato in figura 5.13.
Per ulteriori chiarimenti, limitatamente all’aspetto dinamico, si faccia riferimento alla simulazioni di prova del controllo joystick, in cui si applicano due differenti disturbi allo sterzo (tre
rampe nel primo e una sinusoide nel secondo).
5.3
Controllo di Velocità
Il controllo di velocità è affidato ad un regolatore di tipo PI che agisce sulla coppia applicata alla
ruota posteriore. In realtà, per simulare correttamente il pilota, sarebbe necessario modellizzare
il funzionamento della manopola dell’acceleratore (e Il motore), e la dinamica del pilota nell’agire su questa. Questa soluzione è stata ritenuta eccessiva per le finalità di questo studio, se
paragonata alla perdita di prestazioni simulative che si pagherebbero in seguito all’introduzione
di tali dettagli.
5.4
Impianto frenante dotato di ABS
Per dare un valore aggiunto al progetto si è pensato di realizzare un impianto frenante dotato
del sistema ABS (Antilock Brake System) in grado di migliorare le performance in frenata, sia
5.4 Impianto frenante dotato di ABS
Figura 5.13: Dal controllo PPP al controllo joystick
Figura 5.14: Controllo di velocità
77
78
5. Il pilota e il controllo della motocicletta
in termini di spazio d’arresto che di stabilità, a fronte di manovre ritenute pericolose.
Come si può notare in figura 5.15 lo schema generale dell’impianto frenante è composto da
vari elementi:
• il pilota (comprensivo della leva del freno);
• il controllo ABS;
• il freno vero e proprio (disco e pastiglia).
Figura 5.15: Schema generale dell’impianto frenante
In seguito sono trattati in dettaglio i vari componenti.
5.4 Impianto frenante dotato di ABS
5.4.1
79
Il pilota
Per rappresentare correttamente la dinamica della frenata è indispensabile tenere in considerazione anche la dinamica del pilota nell’agire sulla leva. Questa viene modellizzata da un filtro
passa basso con una banda passante di 8 Hz (modificabile a piacere).
Figura 5.16: Dinamica del pilota
Come possiamo vedere in figura 5.16, in ingresso è presente l’intenzione del pilota (come
vorrebbe agire sulla leva del freno) e in uscita l’effettiva attuazione sull’impianto frenante.
5.4.2
ABS: Antilock Brake System
Per realizzare un sistema ABS occorre stabilire in che condizioni si ottiene la massima aderenza
al fondo stradale, preservando la stabilità e direzionalità della motocicletta. Questa dipende
principalmente da diversi fattori:
• tipo e condizioni della superficie stradale;
• geometrie, materiale e condizioni dei pneumatici;
• velocità longitudinale e laterale della motocicletta;
• angolo di rollio.
In una frenata con angolo di rollio nullo la grandezza che meglio rappresenta le condizioni
di aderenza è lo slip (figura 5.4.2), che rappresenta il pattinamento del pneumatico rispetto
alla superficie stradale. Ipotizzando di adottare il modello dell’attrito di Pacejka è possibile
individuare un valore di slip ottimale che garantisca la massima adesione al terreno. L’obiettivo dell’ABS è di confinare il valore dello slip all’interno di una zona di funzionamento
(slip ottimale − δ ÷ slip ottimale + δ) centrata sul valore ottimale e il più ristretta possibile.
80
5. Il pilota e il controllo della motocicletta
Figura 5.17: Andamento della forza longitudinale al variare dello slip
Al fine di perseguire questo obiettivo si è pensato di realizzare un sistema di controllo di
tipo on/off, che annulla l’azione frenante non appena il valore assunto dallo slip supera il valore
ottimale. L’algoritmo equivalente è:
if (slip > slip_ottimale)
then frenata = 0
else frenata = frenata_normale
Per evitare che la simulazione diventi marcatamente stiffness, a causa delle continue brusche
variazioni della variabile controllata (imposte dall’antibloccaggio), si è pensato realizzare l’ABS
moltiplicando l’ingresso dell’attuazione per un coefficiente non lineare. Questo coefficiente
(rappresentato in figura 5.18) è ovviamente in funzione dello slip ed è stato realizzato modificando opportunamente una funzione matematica ( l’arcotangente):
arctan ((slip + 1) (1 − slipottimale)) · 10c
out = 0, 5 +
· in ,
π
(5.6)
dove:
c è un coefficiente che indica il grado di approssimazione del sistema on/off (un valore
minore impone un andamento maggiormente smussato)
5.4 Impianto frenante dotato di ABS
81
Figura 5.18: Coefficiente non lineare ABS
Quando l’angolo di rollio non è nullo, differentemente dal caso precedente, il limite di tenuta diminuisce in modo importante; infatti in curva è necessario sollecitare al minimo l’impianto
frenante per evitare la caduta della motocicletta. Per ovviare a questo problema sarebbe opportuno modificare il coefficiente in funzione del sideslip o almeno dell’angolo di rollio, purtroppo
questo è valido solo teoricamente dato che non sono grandezze misurabili.
Per garantire la stabilità anche in curva, di conseguenza, è necessario ridurre il valore ottimale di slip. Per ulteriori chiarimenti si faccia riferimento al capitolo riguardante le simulazioni
(sono state effettuate diverse prove per analizzare ed evidenziare il fenomeno).
5.4.3
I freni
Particolare attenzione è stata dedicata all’implementazione dell’impianto frenante, infatti si è
scelto di parametrizzare un modello di freno predefinito della libreria Modelica 2.2:
Modelica.Rotational.Brake (figura 5.19).
I freni sono composti da due corpi rigidi: una flangia (corrispondente ad una o più pastiglie
del freno) e il disco; la coppia generata è causata dall’attrito radente di sfregamento tra le due
superfici. Per aumentare/diminuire la coppia d’attrito si modula la forza generata dai pistoncini
82
5. Il pilota e il controllo della motocicletta
Figura 5.19: Il modello dei freni: Modelica.Rotational.Brake
del freno.
In questo modello vengono considerate diverse caratteristiche, tra le quali:
• cgeo: è un coefficiente che è funzione delle caratteristiche geometriche. Si calcola come:
cgeo = N(r0+ri)/2, dove N sono il numero delle pastiglie, r0 il raggio esterno del
disco e ri il raggio interno del disco;
• mue(w): è un coefficiente che definisce la caratteristica dell’attrito in base alla velocità
angolare, è possibile inserire una dipendenza non lineare;
• peak: definisce il valore di picco della coppia frenante a ruota bloccata;
• fn: percentuale della massima forza imprimibile sulle pastiglie.
Nel complesso sono presenti tre stati di funzionamento:
• freno non azionato: la coppia frenante è nulla;
• freno azionato con ruota bloccata (ω = 0): in questo caso la coppia frenante vale
frictional torque = peak * cgeo * mue(w) * fn.
5.4 Impianto frenante dotato di ABS
83
• freno azionato con ruota in movimento (ω 6= 0): la coppia frenante è calcolata tramite la
formula frictional torque = cgeo * mue(w) * fn;
In seguito, in figura 5.20, è riportato un grafico della funzione risultante: in ascissa è
presente la velocità angolare della ruota e in ordinata la coppia frenante.
Figura 5.20: Andamento della coppia frenate (d’attrito) al variare della velocità angolare.
Infine, per completare correttamente il modello, è stato necessario modellizzare la dinamica del circuito pneumatico che aziona l’impianto frenante. A questo scopo è stato inserito
un filtro passa-basso con banda passante di 10 ÷ 20 Hz (in base alle caratteristiche specifiche
dell’impianto).
Figura 5.21: Dinamica del circuito pneumatico dei freni
84
5. Il pilota e il controllo della motocicletta
Capitolo 6
Simulazioni
6.1
Introduzione
Il modello realizzato, per un corretto procedimento di validazione, è stato sottoposto a differenti
prove di simulazione.
Per brevità di seguito sono riportate solamente alcune tra le più significative:
• prove di funzionamento del pilota joystick,
• percorrenza di una rotonda e una manovra ad otto,
• condizioni di aderenza al limite in curva e
• prove di frenata d’emergenza con e senza l’ausilio dell’ABS (con differenti tarature).
6.2
Prove di pilotaggio per il controllo tramite joystick
Il controllo joystick, descritto nel capitolo precedente, presuppone che la motocicletta sia pilotata con un disturbo di coppia che agisce direttamente sullo sterzo.
Per tarare adeguatamente i parametri del sistema di controllo sono state necessarie innumerevoli prove, effettuate con l’intento di verificare, per un range opportuno di valori (di angolo
di rollio e velocità), il corretto funzionamento.
85
86
6. Simulazioni
Di seguito sono stati riportati i risultati di due tra le simulazioni più rilevanti.
6.2.1
Disturbo composto da rampe
In questa simulazione la motocicletta parte da ferma, accelera fino a raggiungere la velocità di
20 m/s e mantiene tale velocità fino alla fine della simulazione. Durante il tratto percorso a
velocità costante vengono applicati dei disturbi di coppia sullo sterzo.
Si verfica che, a fronte di un disturbo composto da tre rampe (come mostrato in figura 6.1),
l’angolo di rollio si stabilizza.
Figura 6.1: Disturbo a rampa e andamento dell’angolo di rollio
La motocicletta, in seguito ad un disturbo di coppia di 3 Nm, si stabilizza mantenendo un
angolo di rollio positivo (0,228 radianti circa); quando la coppia viene annullata con una rampa
uguale ma opposta in segno (che interviene dopo 20 secondi) la motocicletta si raddrizza1 .
Successivamente, a 40 secondi, interviene la terza rampa, di ampiezza pari a -5 Nm. In questo
caso si inclina fino a raggiungere un angolo di rollio costante e negativo.
1
L’angolo di rollio diventa nullo a causa del momento di autoallineamento.
6.2 Prove di pilotaggio per il controllo tramite joystick
87
Questa simulazione dimostra che la motocicletta è completamente manovrabile: è sufficiente pilotare opportunamente2 un disturbo di coppia che agisce sullo sterzo per imporre
l’angolo di rollio, e quindi la direzione, desiderati.
6.2.2
Disturbo sinusoidale
Nella seconda simulazione (riportata in figura 6.2), si applica allo sterzo un disturbo sinusoidale.
In questo caso la motocicletta continua a cambiare inclinazione: l’angolo di rollio varia
come una funzione sinusoidale, con periodo pari a quello del disturbo, e con ampiezza pari
a 0,228 radianti. Nella prima simulazione (quella in cui il disturbo è una composizione di
Figura 6.2: Controllo joystick: disturbo sinusoidale e angolo di rollio
rampe) la motocicletta, per raggiungere ognuna delle condizioni di regime, impiega un tempo
di assestamento pressoché costante, Tass , pari a circa 11 secondi. E’ importante rilevare che, in
una simulazione qui non riportata, la motocicletta, a fronte di un disturbo di coppia pari a 1 Nm
si assesta ad un angolo di rollio pari a 0,089 radianti.
2
La coppia fornita allo sterzo deve controbilanciare gli effetti del momento di autoallineamento riportati allo
sterzo.
88
6. Simulazioni
Grazie a queste informazioni e ipotizzando di analizzare il connubio motocicletta-pilota
come un unico sistema con in ingresso la coppia fornita allo sterzo e in uscita l’angolo di rollio,
è possibile dimostrare come il processo in questione, sotto certe condizioni, si comporti come
un processo del primo ordine (linearizzato nell’intorno di una condizione di equilibrio3 ).
Se fosse un sistema lineare, o comunque a polo dominante, il tempo di assestamento, Tass ,
sarebbe pari a 4 ÷ 5 volte la costante di tempo del polo a più bassa frequenza. Considerando
valido quanto ipotizzato finora, è possibile calcolare la costante di tempo del presunto polo, T ,
come:
T = Tass /(4 ÷ 5) = Tass /(4, 5) = 2, 444
(6.1)
e il guadagno,
µ=
lim
(t→∞,s→0)
G(s) · sca(t) = 0, 089 .
(6.2)
La funzione di trasferimento risulterebbe quindi essere:
G(s) =
µ
0, 089
=
1 + T s 1 + 2, 444 s
(6.3)
Se si considerano i risultati della seconda simulazione, in cui la coppia è una sinusoide di
ampiezza pari a 3 Nm, è interessante notare che la risposta, anch’essa sinusoidale, raggiunge
un valore massimo di rollio pari a 0,228 radianti.
Come si può vedere dalla figura 6.2 il ritardo tra i picchi delle due funzioni è sempre costante
e pari a 2,7 secondi, viene rilevato a:
• a 8,88 s per la coppia e 11,58 s per il rollio,
• a 24,54 s e 27,24 s per il secondo picco,
• a 40,26 s e 42,96 s per il terzo;
questo dimostra che le due sinusoidi hanno il medesimo periodo, ma sono sfasate di 2,7 radianti,
cioè 154°.
Ritenendo valida l’assunzione che il sistema sia equiparabile ad uno del primo ordine, è
possibile calcolare, oltre alla fase (154°), il valore del modulo.
3
Angolo di rollio nullo.
6.2 Prove di pilotaggio per il controllo tramite joystick
89
Per calcolare il modulo è opportuno ricordare che, in un sistema del primo ordine, quando
in ingresso è presente una sinusoide del tipo:
u(t) = A sin(ω t) ,
(6.4)
y(t) = B sin(ω t + φ)4 .
(6.5)
l’uscita sarà:
Il rapporto
B
A
corrisponde al modulo di G(s) per la particolare frequenza ω, mentre φ è la fase
di G(s), anch’essa calcolata per la particolare frequenza.
In questo caso ω = 0, 2, quindi G(s) = G( jω) = B/A = 0, 076; mentre la fase, calcolata
precedentemente, è pari a 154°.
Per dimostrare la validità di quanto citato, è opportuno determinare, per poterli poi confrontare, gli stessi valori (modulo e fase), utilizzando la funzione di trasferimento calcolata con
la prima simulazione:
G(s) =
µ
0, 089
=
,
1+s T
1 + s 2, 444
(6.6)
ma se s = jω e se ω = 0, 2 (frequenza del disturbo di coppia), allora:
G( j 0, 2) =
0, 089
= 0, 071 − 0, 035 j.
1 + 0, 2 · 2, 444 j
(6.7)
Il calcolo del modulo e della fase sono molto semplici, rispettivamente:
p
0, 0712 + 0, 0352 = 0, 079 e
• fase: arctan −0,035
= −26° ma, dato che l’angolo è calcolato nel quarto quadrante:
0,071
• modulo:
φ = 180° − 26° = 154°.
Come si può facilmente notare, gli angoli calcolati coincidono perfettamente e i moduli discostano, uno dall’altro, di meno del 3% (errore probabilmente dovuto a qualche imprecisione di
rilevamento per la costante di tempo del polo); questo dimostra che il sistema, nelle condizioni
4
Il sistema deve essere asintoticamente stabile e la frequenza ω con cui viene sollecitato deve essere inferiore
a quella critica. In un sistema reale anche l’ampiezza della sinusoide in ingresso (A) deve essere adeguata.
90
6. Simulazioni
considerate, si comporta come un sistema del primo ordine, con una banda passante di circa 0,4
Hz.
E’ inevitabile aggiungere che le considerazioni sviluppate finora sono da ritenersi valide
esclusivamente per un valore di velocità di 20 m/s; a velocità più alte/basse il ragionamento deve
essere opportunamente scalato a causa dell’influenza che la velocità esercita sul comportamento
dinamico: al crescere della velocità aumenterà il tempo di assestamento ma anche l’angolo di
rollio raggiunto.
Analoghe considerazioni potrebbero essere sviluppate considerando altri fattori, come il
passo o l’angolo di caster, notoriamente legati alla manovrabilità della motocicletta. In conclusione si è dimostrato che il controllo joystick, testato anche in molti altri scenari non citati, è
certamente una soluzione semplice ed efficace al problema del pilotaggio di una motocicletta.
6.3
Percorrenza di una rotonda e manovra ad otto
Prima di presentare i risultati ottenuti è necessario premettere che, d’ora in poi, quando si parlerà
di curvatura della traiettoria si intenderà indicare il risultato della seguente formula:
C=
tan(φ)
g,
Vx2
(6.8)
ottenuta dalle equazioni di bilancio descritte nel capitolo precedente.
6.3.1
Percorrenza di una rotonda molto stretta
Il primo scenario prevede di far percorrere alla motocicletta una rotonda molto stretta con curvatura pari a 0,114, che, in termini dimensionali, si traduce in un raggio di curvatura superiore
a 8,5 metri, precisamente:
r=
1
=
C
1
tan(φ)
(Vx )2
=
g
1
tan(0,76)
(9)2
· 9, 81
∼
= 8, 75metri.
(6.9)
6.3 Percorrenza di una rotonda e manovra ad otto
91
La manovra affrontata, come si può vedere dai frame riassuntivi presenti in figura 6.3, è molto
impegnativa: l’angolo di rollio, dopo un transitorio iniziale, si assesta attorno ad un valore di
0,76 radianti, valore prossimo a quello di tilt.
Nella figura 6.4 sono presenti la coppia complessiva che agisce sullo sterzo e l’angolo di
rollio. Si nota come la motocicletta inizi ad inclinarsi lateralmente in modo graduale dopo 4
secondi, questo perchè il disturbo di coppia fornito allo sterzo è una rampa che parte ritardata
dello stesso intervallo di tempo (necessario dato che la motocicletta parte da ferma).
I risultati sono realistici, infatti è perfettamente plausibile che un pilota, per affrontare la
rotonda in questione, ad una velocità pressoché costante di 9 m/s, generi al massimo 3,5 N/m di
coppia sullo sterzo.
E’ interessante notare l’azione controsterzante del pilota (nei primi 8 secondi), che permette
di sbilanciare la motocicletta verso l’interno della curva per agevolare la manovra.
Dalla figura 6.5 si può notare come nel primo giro la motocicletta tenda a curvare eccessivamente. Questa sovraelongazione è l’effetto causato da due fattori:
1. il valore di angolo di rollio da raggiungere è estremo, prossimo a quello che causerebbe
la perdita d’aderenza e la successiva caduta,
2. la rampa in realtà è piu simile ad uno scalino, infatti il tempo per raggiungere la condizione di regime è di solo 0,5 secondi.
Nei giri successivi al primo, la traiettoria si discosta solamente in modo marginale da quella
ideale.
6.3.2
Manovra ad otto su superficie irregolare
Questa simulazione prevede che la motocicletta affronti una manovra ad otto su superficie
collinare. La superficie collinare è modellizzata da un paraboloide iperbolico di equazione:
z=
x 2 y 2
+
+ 0, 55.
20
30
(6.10)
92
6. Simulazioni
Figura 6.3: Frame tratti dall’animazione generata dalla percorrenza di una rotonda
6.3 Percorrenza di una rotonda e manovra ad otto
93
Figura 6.4: Coppia allo sterzo e angolo di rollio
Figura 6.5: Traiettoria della motocicletta per affrontare una rotonda con raggio di 8,75 metri
94
6. Simulazioni
Per accrescere il contributo grafico la simulazione è stata arricchita con un manto stradale
tridimensionale realizzato con l’ausilio di una procedura matlab creata ad hoc e il software
QuickGrid.
In questo caso il disturbo, che agisce sullo sterzo, è il risultato della sommatoria di quattro
rampe opportunamente parametrizzate. Come si può notare dalla figura 6.7 la motocicletta
affronta dislivelli di poco inferiori a 10 metri, sicuramente una grandezza considerevole.
Anche in questo caso le coppie che agiscono sullo sterzo, riportate in figura, sono sicuramente paragonabili a quelle che potrebbe esercitare il pilota, per affrontare questo tipo di
manovra.
Nel grafico della coppia misurata sullo sterzo non è possibile evidenziare con chiarezza le 4
fasi della curva. La presenza dei dislivelli è rilevante e influisce direttamente sul comportamento
dinamico della motocicletta: in alcuni casi agevola la manovra di sterzo, in altri la ostacola.
6.4
6.4.1
Condizioni di aderenza al limite in curva
Rotonda con split-mue
In questa simulazione la motocicletta percorre inizialmente un tratto rettilineo che le permette
di raggiungere la velocità di 18 Km/h circa e, successivamente, intraprende una traiettoria a
curvatura costante con un raggio di circa 8 metri.
L’aspetto interessante è che la superficie stradale presenta un coefficiente d’attrito µ variabile. Nella parte superiore della circonferenza µ assume il valore di 1 (manto stradale in condizioni ottimali) e nella parte inferiore assume il valore di circa 0.5 che indica la presenza di
asfalto decisamente scivoloso (quasi ghiacciato).
Come si può notare in figura 6.9 la motocicletta procede senza problemi fino al cambio di
aderenza dove “scoda” vistosamente, nei giri successivi si stabilizza sempre più, anche se si
verifica un leggero drift del centro della circonferenza.
Osservando il valore assunto dal sideslip della ruota anteriore e posteriore è possibile individuare con precisione il momento in cui la motocicletta perde aderenza. E’ interessante notare
6.4 Condizioni di aderenza al limite in curva
95
Figura 6.6: Frame tratti dall’animazione generata da una manovra ad otto su superficie collinare
96
6. Simulazioni
Figura 6.7: Quota del punto di contatto durante la simulazione
Figura 6.8: Coppia allo sterzo
6.4 Condizioni di aderenza al limite in curva
Figura 6.9: Traiettoria seguita dalla motocicletta
Figura 6.10: Sideslip del pneumatico posteriore (in blu) e anteriore (in rosso)
97
98
6. Simulazioni
che la ruota posteriore presenta un valore di sideslip decisamente maggiore a causa dello “scodamento”. Inoltre il sideslip anteriore cambia di valore leggermente in anticipo rispetto a quello
posteriore dato che il pneumatico anteriore subisce per primo la variazione del coefficiente
d’attrito.
Figura 6.11: Angolo di rollio della motocicletta e posizione angolare dello sterzo
Esaminando l’angolo di rollio abbinato alla posizione angolare dello sterzo è possibile individuare l’azione del pilota nel momento in cui l’aderenza diminuisce: quando l’angolo di rollio
aumenta improvvisamente (la motocicletta stà cadendo) il pilota sterza verso l’interno della
curva per evitare la caduta e successivamente verso l’esterno per controllare la parte posteriore
della motocicletta. Nei giri successivi si verifica lo stesso fenomeno ma in maniera più lieve,
dato che l’angolo di rollio si è già stabilizzato sul valore di equilibrio (imposto dalla curvatura
di set-point).
6.4.2
Rotonda affrontata a velocità crescente fino alla perdita di aderenza
In questa simulazione il pilota percorre inizialmente un breve rettilineo che gli permette di
raggiungere la velocità di circa 20 Km/h, in seguito affronta una curva a raggio costante (setpoint di curvatura costante) di circa 12 metri di diametro. Infine, dopo aver compiuto alcuni giri,
6.4 Condizioni di aderenza al limite in curva
99
incrementa gradualmente (con accelerazione costante nel tempo) la velocità, fino ad oltrepassare
il limite di tenuta (come si può notare in figura 6.13).
Figura 6.12: Traiettoria percorsa dalla motocicletta
Figura 6.13: Velocità dalla motocicletta
Osservando il valore assunto dal sideslip del pneumatico anteriore possiamo distinguere due
fasi differenti:
• inizialmente il sideslip aumenta fino a stabilizzarsi su un certo valore (dato che la velocità
e il raggio di curva sono costanti);
• successivamente, quando la motocicletta inizia ad accelerare, il sideslip cresce fino ad
arrivare al valore di 1, che corrisponde alla perdita totale di aderenza e in seguito scivola
per la tangente.
100
6. Simulazioni
Figura 6.14: Caduta della motocicletta
Figura 6.15: Sideslip del pneumatico anteriore
Esaminando l’angolo di rollio abbinato alla posizione angolare dello sterzo si possono
osservare diversi fenomeni legati alle manovre effettuate dal pilota:
• inizialmente si può osservare l’azione controsterzante per favorire l’entrata in curva (e la
conseguente variazione dell’angolo di rollio),
• in seguito l’angolo di rollio e quello di sterzo rimangono costanti (dato che il set-point di
curvatura e di velocità sono costanti),
• nell’ultima parte della simulazione l’aumento della velocità di percorrenza della curva
richiede un aumento dell’angolo di rollio (dato che l’angolo di rollio d’equilibrio aumen-
6.5 Prove di frenata con e senza ABS in diverse condizioni
101
Figura 6.16: Angolo di rollio del pneumatico anteriore e angolo di sterzo
ta) ed il pilota è costretto a sterzare verso l’esterno della curva. Questo provoca inizialmente un allargamento della traiettoria e in seguito la caduta della motocicletta dato che
è stato superato l’angolo di tilt.
6.5
6.5.1
Prove di frenata con e senza ABS in diverse condizioni
Prove realizzate in rettilineo
Per convalidare il modello dell’impianto frenante sul rettilineo, è stato necessario realizzare
delle simulazioni, aventi diversi obiettivi:
• tarare opportunamente il sistema ABS;
• misurare l’andamento dello spazio d’arresto al variare della banda passante dell’impianto
frenante;
102
6. Simulazioni
Figura 6.17: Spostamento del carico verticale in frenata
Taratura dell’impianto ABS
Inizialmente sono stati svolti dei test al fine di individuare il valore di slip ottimale, cioè quel
valore per cui è minimo lo spazio d’arresto (quindi massimo l’integrale doppio nel tempo della
forza frenante).
Per svolgere queste simulazioni la dinamica dell’impianto frenante e quella del pilota sono
state considerate quasi istantanee (complessivamente 1000 Hz di banda passante) in modo da
non influenzare l’esito finale. In seguito sono stati misurati gli spazi d’arresto (ad una velocità
prossima ai 100 Km/h) al variare dello slip ottimale.
Come si può notare, dalla figura 6.18 e dalla figura 6.19, il valore che consente di ottenere
le prestazioni migliori è di 0,11: permette di fermare la motocicletta in soli 35,73 metri.
I valori ottenuti sono perfettamente plausibili, anche se paragonati a quelli dalle motociclette
reali (da enduro).
6.5 Prove di frenata con e senza ABS in diverse condizioni
Figura 6.18: Tabella degli spazi d’arresto al variare dello slip ottimale
Figura 6.19: Grafico degli spazi di arresto al variare dello slip ottimale
103
104
6. Simulazioni
Andamento dello spazio d’arresto al variare della banda passante
Queste simulazioni hanno lo scopo di studiare l’andamento dello spazio d’arresto al variare
della dinamica dell’impianto frenante.
In tutte queste prove la banda passante del pilota è stata considerata di 8 Hz, lo slip ottimale
anteriore di 0,11 e posteriore di 0,12.
Gli esperimenti in questione sono stati realizzati nelle medesime condizioni esterne di quelli precedenti (l’aderenza è quella dell’asfalto asciutto). Il pilota, lanciato con la motocicletta
in rettilineo alla velocità di 100 Km/h, aziona bruscamente (senza rilasciare) la leva del freno.
L’ABS, se attivo, modula la frenata cercando di mantenere il valore di slip ottimale (0,11).
In figura 6.20 è possibile notare l’andamento dello slip del pneumatico anteriore in tre casi
distinti:
• Frenata senza ABS: lo slip assume bruscamente il valore di -1 (ruota bloccata), senza
accennare ad un aumento, fino al completo arresto della motocicletta;
• Frenata con ABS (banda 10 Hz): il valore dello slip, dopo brusche oscillazioni iniziali, si
assesta sul valore ottimale (0,11);
• Frenata con ABS (banda 20 Hz): lo slip si assesta più velocemente sul valore ottimale e
con minori oscillazioni.
Come si può notare dalla figura 6.21, nella prima simulazione l’ABS è stato disattivato;
infatti lo spazio d’arresto è decisamente elevato. Per quanto riguarda le altre prove, effettuate
con ABS attivato, la frenata diventa soddisfacente superati i 10 Hz (valore tipico degli impianti
d’attuazione associati agli ABS moderni).
E’ interessante notare che oltre un certo valore la dinamica dei freni influenza solo in modo
marginale gli spazi d’arresto, probabilmente perchè il fattore limitante (collo di bottiglia) è
determinato dalle caratteristiche degli pneumatici utilizzati.
6.5 Prove di frenata con e senza ABS in diverse condizioni
105
Figura 6.20: Valore assunto dallo slip del pneumatico anteriore al variare della banda passante
dell’impianto d’attuazione dei freni
Figura 6.21: Tabella degli spazi d’arresto al variare della banda passante dell’impianto
d’attuazione dei freni
106
6. Simulazioni
Figura 6.22: Grafico degli spazi d’arresto ottenuti al variare della banda passante dell’impianto
d’attuazione dei freni
6.5.2
Prove realizzate in curva
In questo paragrafo saranno descritte alcune delle prove che sono state effettuate per approfondire e verificare il comportamento in frenata in curva di una motocicletta. In particolare
saranno analizzate frenate in condizioni diverse (con diverse tarature dell’ABS).
Le simulazioni prevedono che il pilota, impegnato in una curva, debba affrontare una manovra
d’emergenza e agisca bruscamente sulla leva del freno anteriore, senza rilasciarla più.
Gli scenari proposti sono:
1 - curva con raggio di 112 metri (circa) percorsa a 20 m/s,
2 - curva con raggio di 112 metri (circa) percorsa a 30 m/s,
2 - curva con raggio di 54 metri (circa) percorsa a 22 m/s,
4 - curva con raggio di 112 metri (circa) percorsa a 30 m/s e con asfalto bagnato.
6.5 Prove di frenata con e senza ABS in diverse condizioni
107
Figura 6.23: Spostamento del carico verticale in una frenata in curva
Curva con raggio di 112 metri percorsa a 20 m/s
Questo scenario prevede che la motocicletta affronti una curva con raggio di 112 metri (circa)
ad una velocità pressoché costante di 20 m/s. La motocicletta, per poter mantenere la curvatura,
si assesta intorno ad un angolo di rollio di circa 20°.
I dati presentati in seguito si riferiscono a prove di frenata:
• senza ABS,
• con ABS tarato per il rettilineo (slip ottimale = 0,11) e differenti impianti frenanti5 (con
banda passante differente).
Come si può notare dalla figura 6.24, dove sono riportati i tempi necessari per frenare da 20
a 5 m/s, utilizzando l’ABS e un impianto frenante più performante, è possibile impiegare meno
di due secondi.
E’ importante specificare che, nel caso in cui si utilizzi un impianto frenante privo di sistema
di antibloccaggio o con dinamica di attuazione pneumatica inferiore a 6 Hz, la motocicletta cade
prima di raggiungere la velocità di 5 m/s.
5
L’attuazione dell’impianto frenante, come descritto precedentemente, è stata modellizzata con un filtro
passa-basso, con banda passante differente a seconda del tipo di impianto considerato. A frequenze più elevate
corrispondono impianti frenanti più veloci.
108
6. Simulazioni
Figura 6.24: Tempo per frenare da 20 a 5 m/s in una curva di 112 metri di raggio
Per poter analizzare nello specifico tutte le prove che sono state eseguite in questo scenario
è necessario riportare gli istanti di caduta delle varie prove.
Sebbene non si possa definire con chiarezza l’istante di caduta di una motocicletta, si è pensato di considerare l’istante in cui l’angolo di rollio supera un determinato valore che identifica
la perdita di controllo, valore differente per ogni set di prove. Dopo tale istante l’angolo cresce
rapidamente fino a π2 , senza riuscire più a ristabilizzarsi nell’intorno di quello desiderato. E’
opportuno non considerare un valore di angolo troppo elevato, ad esempio superiore all’angolo
di tilt, poiché le dinamiche di caduta sono molto differenti, e falserebbero i risultati6 . Per questo
ciclo di simulazioni l’angolo di caduta è stato fissato a 0,5 radianti (circa 29°).
Dalla figura 6.25 si può notare come la presenza di un sistema di antibloccaggio sia un
requisito indispensabile: senza ABS la motocicletta cade quasi subito, praticamente senza
rallentare.
Un altro requisito di fondamentale importanza è avere un discreto circuito di attuazione
pneumatica: con 8 Hz la frenata è molto buona, al di sotto dei 7 Hz diventa scadente.
6
E’ importante sottolineare che le non linearità del sistema vietano di effettuare considerazioni puntigliose al
di sotto della velocità critica.
6.5 Prove di frenata con e senza ABS in diverse condizioni
109
Figura 6.25: Velocità e tempo di frenata prima di cadere in una curva lenta
Curva con raggio di 112 metri percorsa a 30 m/s
In questo set di simulazioni la motocicletta affronta una curva simile alla precedente ma a
velocità molto più elevata: 30 m/s. Le condizioni sono molto vicine al limite di tenuta: la moto,
per mantenere la curvatura, si assesta con un angolo di rollio di circa 38°(vicino all’angolo
limite).
In queste simulazioni si analizza il valore ottimale di slip longitudinale, variando da 0,11
(taratura per il rettilineo) a 0,02.
Come si può vedere dai risultati in figura 6.26 le prestazioni migliori si ottengono imponendo un valore ottimale di slip pari a 0,11, ossia l’ABS tarato per il rettilineo.
Anche per le velocità registrate nell’istante in cui si perde il controllo, riportate in figura
6.27 il discorso è analogo: l’ABS tarato per il rettilineo riesce, fino all’istante di caduta, a far
rallentare maggiormente la motocicletta e in un tempo inferiore, è quindi il più performante.
110
6. Simulazioni
Figura 6.26: Tempo per frenare da 30 a 5 m/s in una curva di 112 metri di raggio
Figura 6.27: Velocità e tempo di frenata prima di cadere in una curva veloce
6.5 Prove di frenata con e senza ABS in diverse condizioni
111
Curva con raggio di 54 metri percorsa a 22 m/s
In queste simulazioni la motocicletta deve affrontare una curva al limite della tenuta, infatti
deve mantenere un angolo di rollio di poco superiore a 42°. Utilizzando il medesimo pilota e
impianto frenante, si prova a variare il valore ottimale di slip per l’ABS.
I dati rilevati evidenziano come il sistema di antibloccaggio tarato per il rettilineo, che fino
ad ora era risultato il più performante, sia del tutto inadeguato in queste condizioni. Come si
può vedere in figura 6.28, nel caso in cui lo slip ottimale sia pari a 0,11 la motocicletta cade,
mentre con valori minori o uguali a 0,08 mantiene l’equilibrio.
Figura 6.28: Tempo per frenare da 22 a 5 m/s in una curva di 54 metri di raggio
La figura 6.29 evidenzia ulteriormente il problema: utilizzando l’ABS tarato con slip ottimale pari a 0,11 la motocicletta cade quasi istantaneamente, ad oltre 16 m/s.
Diminuendo il valore di slip ottimale la motocicletta conserva la stabilità ma lo spazio di
frenata aumenta eccessivamente.
Da queste simulazioni risulta evidente che, nel caso in cui l’angolo di rollio sia di circa 42°,
112
6. Simulazioni
sarebbe opportuno utilizzare un valore di slip ottimale, per la taratura dell’ABS, leggermente
inferiore.
Figura 6.29: Velocità e tempo di frenata prima di cadere in una curva stretta
Curva con raggio di 112 metri percorsa a 30 m/s su asfalto bagnato
Queste prove sono analoghe a quelle effettuate precedentemente, ma su asfalto bagnato.
Come si può notare in figura 6.30, quando il valore di slip ottimale per l’ABS è superiore a
0,09 la motocicletta cade prima di raggiungere i 5 m/s.
Il miglior tempo di frenata si ottiene con slip ottimale pari a 0,09: poco meno di 5 secondi
per passare da 30 a 5 m/s.
Nella figura 6.31 si nota ancora meglio quanto descritto precedentemente.
6.5 Prove di frenata con e senza ABS in diverse condizioni
113
Figura 6.30: Tempo per frenare da 30 a 5 m/s sul bagnato in una curva di 112 metri di raggio
Figura 6.31: Velocità e tempo di frenata prima di cadere su asfalto bagnato in una curva veloce
114
6. Simulazioni
Capitolo 7
Conclusioni e sviluppi futuri
Questo scritto documenta il lavoro che ha portato alla realizzazione di un modello virtuale,
tramite il quale è possibile simulare la dinamica di un generico veicolo a due ruote. Grazie al
package MotorcycleDynamics sarà possibile disporre di uno strumento software utile per
analizzare le più svariate proprietà dinamiche di qualsiasi mezzo a due ruote.
Il modello presentato è stato concepito essenzialmente con una duplice finalità: sia per
affrontare le fasi preliminari della progettazione di un veicolo, evitando ingenti costi di fabbricazione dei prototipi e riducendo notevolmente i tempi realizzativi, che per effettuare prove
ritenute troppo rischiose per i collaudatori.
La comprovata veridicità dei risultati delle simulazioni è giustificata dalla meticolosità che
ha contraddistinto sia il procedimento di rappresentazione del sistema fisico che lo studio e la
creazione del sistema di controllo. L’implementazione seguita ha consentito di ridurre considerevolmente il numero e la consistenza delle approssimazioni, assottigliando cosı̀ il confine tra
realtà e simulazione.
Il contenuto decisamente innovativo delle prove di simulazione proposte è legato alla rivoluzionaria logica di controllo introdotta e allo studio, approfondito in svariate condizioni, del
dispositivo di antibloccaggio delle ruote in frenata, meglio noto come ABS (Antilock Brake
System).
Il sistema di pilotaggio presuppone che l’utente interagisca, in tempo reale, eventualmente
utilizzando un interfaccia di input/output opportunamente configurata (come un joystick dota115
116
7. Conclusioni e sviluppi futuri
to di potenziometri e ritorno di forza), con la simulazione, manovrando sterzo, acceleratore e
freni. Le simulazioni, finalizzate alla validazione di questo controllo, hanno evidenziato come il
complesso motocicletta-pilota possa essere giustamente equiparato ad un sistema del primo ordine, linearizzato nell’intorno della condizione “angolo di rollio nullo”. Questa considerazione
è stata promotrice di molti altri approfondimenti; per esempio si è dimostrato che, fornendo
la medesima coppia sullo sterzo, a velocità più elevate aumenta il tempo di assestamento del
sistema, ma anche l’angolo di rollio raggiunto.
Un altro aspetto fondamentale di questo studio è legato all’analisi del comportamento dinamico della motocicletta in corrispondenza di una frenata d’emergenza. L’impianto frenante,
di cui è dotata la motocicletta, è stato sottoposto a prove di simulazione con diverse condizioni
stradali, traiettorie e utilizzando differenti regolazioni. Dai dati rilevati è emerso che l’ABS
tarato per la frenata in rettilineo garantisce prestazioni eccellenti anche in curva, ma solo su asfalto asciutto (in condizioni ottimali) e con angolo di rollio inferiore a 38°. L’aderenza influisce
marcatamente sul valore di slip ottimale per il sistema di antibloccaggio, in particolare, su asfalto bagnato o con coefficiente d’attrito inferiore, sarebbe preferibile utilizzare un valore minore
di 0,11, ideale per la frenata in rettilineo su asfalto asciutto. Probabilmente sarebbe opportuno
utilizzare un valore di slip ottimale che sia funzione del sideslip (grandezza che meglio rappresenta la condizione di aderenza laterale), ma dato che questo non è misurabile, si potrebbe
sfruttare congiuntamente l’angolo di rollio e lo slip.
Come è facile intuire, ogni progetto è il completamento di una fase produttiva ma, inevitabilmente, apre la strada a nuovi sviluppi, integrazioni, aggiunte, ottimizzazioni e rielaborazioni costruttive; anche questo lavoro potrà, in futuro, essere potenziato, perciò di seguito
sono presentate alcune tra le possibili proposte di sviluppo.
7.1
Realizzazione di altri veicoli basati su ruote
Grazie all’approccio acausale utilizzato, sarebbe possibile realizzare, senza modificare i modelli dei pneumatici e della strada, qualsiasi altro veicolo. Per esempio si potrebbero simulare
7.2 Sospensioni attive
117
monocicli, veicoli a tre, quattro o più ruote, con geometrie di sterzo sperimentali, un aspetto
decisamente importante dati i costi ingenti per la realizzazione dei prototipi.
7.2
Sospensioni attive
Le sospensioni attive, ideate negli anni ’80 in formula 1, successivamente sono approdate nel
mondo dei veicoli a quattro ruote e, solo recentemente, in quello delle due ruote.
Al giorno d’oggi, sembra che la fase di sperimentazione, perlomeno nel campo dei motocicli, non abbia raggiunto risultati esaurienti e che la ricerca debba ancora approfondire alcuni
aspetti salienti legati al funzionamento dinamico di questi sistemi.
Utilizzando il package MotorcycleDynamics e modificando opportunamente il modello delle sospensioni sarebbe possibile ottenere dati preziosi.
7.3
ABS con centralina di calcolo e sensori
Per un’analisi veramente approfondita dell’impianto frenante dotato di ABS sarebbe opportuno
riconsiderare le semplificazioni che ha subito il modello presentato in questo studio, come:
• idealità dei sensori per stimare lo slip,
• banda passante del sistema di controllo ideale,
• attuazione sui freni regolata dal controllo in tempo continuo e non a intervalli di tempo
discreti,
• attuazione sui freni pilotata dal sistema di controllo con valori continui e non discreti (non
molto influente, legato alla precisione di campionamento, cioè al numero di bit dedicati).
7.4
Controllo in traiettoria/percorso
In aggiunta al controllo in curvatura e a quello in angolo di rollio risulterebbe molto utile realizzare un controllo che permetta alla motocicletta di seguire un percorso prestabilito. Per
118
7. Conclusioni e sviluppi futuri
realizzare questo controllo è necessario scegliere una rappresentazione opportuna del percorso.
Esistono due alternative possibili:
• textbfCaso 1: il percorso può essere inteso semplicemente come luogo geometrico dei
punti che la motocicletta deve attraversare (a prescindere dal tempo);
• Caso 2: è possibile aggiungere una legge oraria che lo descriva in modo da introdurre
informazioni riguardanti la velocità e l’accelerazione.
In entrambi i casi è necessario stimare in modo adeguato l’errore di traiettoria istantaneo, in
particolare:
• un errore di posizione (distanza tra il punto desiderato e la motocicletta);
• un errore di direzione (angolo esistente tra la tangente alla traiettoria e la direzione desiderata).
Nel primo caso per errore di posizione si intende la distanza tra la motocicletta e il punto
più vicino appartenente al percorso desiderato e per errore di direzione l’angolo minimo tra la
retta su cui giace il vettore velocità della motocicletta e la tangente alla traiettoria nel punto più
vicino (appartenente al percorso desiderato).
Figura 7.1: Caso 1: calcolo dell’errore di traiettoria dato il luogo geometrico dei punti
Nel secondo caso per errore di posizione si intende la distanza tra la motocicletta e il punto in cui si dovrebbe trovare (secondo la legge oraria). Come mostrato in figura, si possono
individuare due componenti:
7.5 Controllo di trazione
119
• errore laterale: indica in che misura sarà necessario spostarsi lateralmente agendo opportunamente sullo sterzo;
• errore longitudinale: indica di quanto sarà necessario spostarsi longitudinalmente agendo
sull’acceleratore o sul freno.
Per errore di direzione si intende l’angolo minimo tra la retta su cui giace il vettore velocità e
la tangente alla traiettoria nel punto in cui si dovrebbe trovare la motocicletta (secondo la legge
oraria).
Figura 7.2: Caso 2: calcolo dell’errore di traiettoria data la legge oraria
Dopo aver definito gli errori occorre semplicemente adottare un controllo in curvatura e
modificare il set-point aggiungendo i due errori (ovviamente “pesati” in modo adeguato). Nel
secondo caso sarà necessario agire (con la stessa logica) sulla coppia fornita alla ruota posteriore
e a quella anteriore fornendo una coppia proporzionale all’errore longitudinale.
7.5
Controllo di trazione
Dalle prove di simulazione è emerso un inconveniente che riguarda il sistema di controllo in
velocità: il fenomeno di wind-up. Questo si verifica quando il set-point di velocità longitudinale richiesto non può essere raggiunto dalla motocicletta a causa della saturazione dovuta al
120
7. Conclusioni e sviluppi futuri
pattinamento della ruota posteriore (ovviamente quando slip >> slipottimale).
Per ovviare a questo problema è possibile adottare due strategie differenti:
• inviare al sistema di controllo un set-point di velocità “plausibile” tenendo in considerazione i limiti di accelerazione e pattinamento della motocicletta.
• inserire un filtro anti-windup possibilmente integrato con un sistema di “traction control”
dal funzionamento molto simile all’ABS mostrato in precedenza. Quando il valore assunto dallo slip supera lo slip ottimale, la coppia fornita alla ruota posteriore viene ridotta
o annullata. In questo modo si otterrebbero performance in accelerazione decisamente
migliori di quelle attuali. A questo punto si potrebbero introdurre anche la dinamica del
pilota (tramite un filtro passa basso con 8 Hz di banda passante) e quella del motore
e adottare come variabile di controllo la posizione angolare (opportunamente saturata)
della manopola dell’acceleratore (o un valore percentuale derivato da questo).
Elenco delle figure
2.1
2.2
2.3
2.4
Un modello di un semplice motore controllato . .
Il modello Motor . . . . . . . . . . . . . . . . .
L’architettura di Dymola . . . . . . . . . . . . .
Il processo dal codice Modelica alla simulazione
.
.
.
.
9
10
12
15
3.1
3.2
3.3
3.4
3.5
Macro-schema del modello . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Passo, angolo di caster e trail . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schema concettuale d’interazione tra il pneumatico e la superficie stradale . . .
Comportamento della funzione µx (λ) in differenti condizioni stradali . . . . . .
I quattro frame: frame del mozzo (in verde), wheel (in giallo), frame del punto
di contatto ideale (in rosso) e del punto di contatto reale (in blu). . . . . . . . .
Identificazione della direzione della velocità di rotazione equivalente della ruota
Generazione del momento di twist . . . . . . . . . . . . . . . . . . . . . . . .
Forze di resistenza aerodinamica . . . . . . . . . . . . . . . . . . . . . . . . .
18
20
23
24
3.6
3.7
3.8
4.1
4.2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Schema di un connettore meccanico . . . . . . . . . . . . . . . . . . . . . . .
Esempio di catena cinematica: lo schema delle connessioni e il contributo
grafico dell’animazione creata . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Le geometrie della moto, del pilota e le posizioni dei baricentri . . . . . . . . .
4.4 Schema generale delle connessioni . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Caratteristiche di default della molla (in alto a destra) e dello smorzatore (in alto
a sinistra) della sospensione anteriore e ingrandimento della zona di funzionamento “normale” della molla (in basso) . . . . . . . . . . . . . . . . . . . . .
4.6 Una possibile implementazione del modello di una ruota (Standard Wheel).
Si può notare il connettore (in giallo), il sensore (triangolo con il contorno blu),
il record dei dati (in alto a destra) e il corpo della ruota (in blu). . . . . . . . . .
4.7 Le terne della ruota: frame b in verde, wheel in giallo, P in rosso e POC in blu
4.8 Il frame solidale con la ruota frame b (in verde) e wheel (in giallo) . . . . .
4.9 Il versore x wheel (in giallo) è il risultato della normalizzazione del prodotto
vettoriale di y wheel (in giallo) e z POC (in blu) . . . . . . . . . . . . . . . .
4.10 Gli assi x wheel (in giallo) e x POC (in blu) sono paralleli . . . . . . . . . .
4.11 Terna del punto di contatto . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.12 Le terne della ruota: frame b in verde, wheel in giallo, P in rosso e POC in blu
121
25
26
33
34
38
39
41
42
44
46
48
49
50
51
51
52
122
ELENCO DELLE FIGURE
4.13
4.14
4.15
4.16
4.17
Caratteristiche dei modelli d’attrito longitudinale: Lineare e di Pacejka
Esempio implementativo del modello del pilota Joystick Driver
Strada a sella con vettore normale (in rosso) e quota (in blu) . . . . .
Strada piana con salita . . . . . . . . . . . . . . . . . . . . . . . . .
Il modello MotorcycleDynamics.Supermotard . . . . . . . .
.
.
.
.
.
53
57
59
60
62
5.1
5.2
5.3
5.4
Componenti che modellizzano il pilota . . . . . . . . . . . . . . . . . . . . . .
Le 4 fasi di una curva: controsterzo, sterzo, mantenimento e chiusura . . . . . .
Azioni sullo sterzo in curva . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le 4 fasi di una curva: angolo dello sterzo, coppia fornita allo sterzo e angolo
di rollio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Angolo di rollio di equilibrio in curva . . . . . . . . . . . . . . . . . . . . . .
Schema generale controllo in curvatura . . . . . . . . . . . . . . . . . . . . . .
Regolatore di curvatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stabilizzatore di velocità . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stabilizzatore di accelerazione . . . . . . . . . . . . . . . . . . . . . . . . . .
Sistema di controllo dell’angolo di rollio . . . . . . . . . . . . . . . . . . . . .
Valore assunto dal coefficiente non lineare Coeff Roll al variare dell’angolo
di rollio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schema riassuntivo del pilota joystick . . . . . . . . . . . . . . . . . . . . . .
Dal controllo PPP al controllo joystick . . . . . . . . . . . . . . . . . . . . . .
Controllo di velocità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schema generale dell’impianto frenante . . . . . . . . . . . . . . . . . . . . .
Dinamica del pilota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Andamento della forza longitudinale al variare dello slip . . . . . . . . . . . .
Coefficiente non lineare ABS . . . . . . . . . . . . . . . . . . . . . . . . . . .
Il modello dei freni: Modelica.Rotational.Brake . . . . . . . . . . .
Andamento della coppia frenate (d’attrito) al variare della velocità angolare. . .
Dinamica del circuito pneumatico dei freni . . . . . . . . . . . . . . . . . . . .
67
68
68
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
6.1
6.2
6.3
6.4
6.5
6.6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Disturbo a rampa e andamento dell’angolo di rollio . . . . . . . . . . . . . . .
Controllo joystick: disturbo sinusoidale e angolo di rollio . . . . . . . . . . . .
Frame tratti dall’animazione generata dalla percorrenza di una rotonda . . . . .
Coppia allo sterzo e angolo di rollio . . . . . . . . . . . . . . . . . . . . . . .
Traiettoria della motocicletta per affrontare una rotonda con raggio di 8,75 metri
Frame tratti dall’animazione generata da una manovra ad otto su superficie
collinare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7 Quota del punto di contatto durante la simulazione . . . . . . . . . . . . . . .
6.8 Coppia allo sterzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.9 Traiettoria seguita dalla motocicletta . . . . . . . . . . . . . . . . . . . . . . .
6.10 Sideslip del pneumatico posteriore (in blu) e anteriore (in rosso) . . . . . . . .
6.11 Angolo di rollio della motocicletta e posizione angolare dello sterzo . . . . . .
6.12 Traiettoria percorsa dalla motocicletta . . . . . . . . . . . . . . . . . . . . . .
69
71
72
73
73
73
74
75
76
77
77
78
79
80
81
82
83
83
86
87
92
93
93
95
96
96
97
97
98
99
ELENCO DELLE FIGURE
6.13
6.14
6.15
6.16
6.17
6.18
6.19
6.20
123
6.23
6.24
6.25
6.26
6.27
6.28
6.29
6.30
6.31
Velocità dalla motocicletta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Caduta della motocicletta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Sideslip del pneumatico anteriore . . . . . . . . . . . . . . . . . . . . . . . . . 100
Angolo di rollio del pneumatico anteriore e angolo di sterzo . . . . . . . . . . 101
Spostamento del carico verticale in frenata . . . . . . . . . . . . . . . . . . . . 102
Tabella degli spazi d’arresto al variare dello slip ottimale . . . . . . . . . . . . 103
Grafico degli spazi di arresto al variare dello slip ottimale . . . . . . . . . . . . 103
Valore assunto dallo slip del pneumatico anteriore al variare della banda passante dell’impianto d’attuazione dei freni . . . . . . . . . . . . . . . . . . . . 105
Tabella degli spazi d’arresto al variare della banda passante dell’impianto d’attuazione dei freni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Grafico degli spazi d’arresto ottenuti al variare della banda passante dell’impianto
d’attuazione dei freni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Spostamento del carico verticale in una frenata in curva . . . . . . . . . . . . . 107
Tempo per frenare da 20 a 5 m/s in una curva di 112 metri di raggio . . . . . . 108
Velocità e tempo di frenata prima di cadere in una curva lenta . . . . . . . . . . 109
Tempo per frenare da 30 a 5 m/s in una curva di 112 metri di raggio . . . . . . 110
Velocità e tempo di frenata prima di cadere in una curva veloce . . . . . . . . . 110
Tempo per frenare da 22 a 5 m/s in una curva di 54 metri di raggio . . . . . . . 111
Velocità e tempo di frenata prima di cadere in una curva stretta . . . . . . . . . 112
Tempo per frenare da 30 a 5 m/s sul bagnato in una curva di 112 metri di raggio 113
Velocità e tempo di frenata prima di cadere su asfalto bagnato in una curva veloce113
7.1
7.2
Caso 1: calcolo dell’errore di traiettoria dato il luogo geometrico dei punti . . . 118
Caso 2: calcolo dell’errore di traiettoria data la legge oraria . . . . . . . . . . . 119
6.21
6.22
124
ELENCO DELLE FIGURE
Bibliografia
[1] AEgis Technologies, ACSL home page, http://www.acslsim.com/.
[2] AspenTech, ASPEN Plus and SpeedUp home page, http://www.aspentech.com/.
[3] K. J. Âström, Bycycle dynamics and control, Delft.
[4] K.E. Brenan, S.L. Campbell, and L.R. Petzold, Numerical Solution of Initial-Value
Problems in Differential Algebraic Equations, North-Holland, New York, 1989.
[5] A. P. Breunese and J.F. Broenink, Modeling mechatronics systems using the SIDOPS+ language., ICBGM’97, 3rd International Conference on Bond Graph Modeling and Simulation (The Society for Computer Simulation International, ed.), Simulation Series, vol. 21,
1997, pp. 301–306.
[6] P. Burton and C. Pantelides, Modeling of combined discrete/continuous processes, AIChE
Journal 40 (1994), 966–979.
[7] G. Castelnuovo, L. Gotti, Progetto di un modello in scala di un dispositivo rotante da
imbarcare a bordo della stazione spaziale, Ph.D. thesis, Politecnico di Milano, 2002.
[8] F.E. Cellier and H. Elmqvist, Automated formula manipulation supports object-oriented
continuous-system modelling, IEEE Control Systems Magazine 13 (1993), no. 2, 28–38.
[9] Tang-Hsien Chang, Eight-degrees-of-freedom kinematic model demonstrating afterimpact motorcycle’s behavior, Journal of the Chinese Institute of Engineers 25 (2002),
no. 6, 679–691.
[10] Controllab Products B.V., 20sim home page, http://www.20sim.com.
[11] V. Cossalter, Motorcycle Dynamics, Race Dynamics, Milwaukee, USA, 2002.
[12] V. Cossalter, A. Doria, and R. Lot, Steady Turning of Two-Wheeled Vehicles, Vehicle
System Dynamics 31 (1999), 157–181.
[13] V. Cossalter and R. Lot, A motorcycle multi-body model for real time simulations based
on the natural coordinates approach, Vehicle System Dynamics: International Journal of
Vehicle Mechanics and Mobility 37 (2002), 423–447.
125
126
BIBLIOGRAFIA
[14] V. Cossalter, R. Lot R., and F. Maggio, The Influence of Tire Properties on the Stability of
a Motorcycle in Straight Running and in Curve, SAE Automotive Dynamics & Stability
Conference (ADSC) (Detroit, Michigan, USA, May 7-9), 2002.
[15]
, On the Stability of Motorcycle during Braking, SAE Small Engine Technology
Conference & Exhibition (Graz, Austria, September 2004), 2004, SAE Paper number:
2004-32-0018 / 20044305.
[16] J.R. Dormand and P.J. Prince, A family of embedded runge-kutta formulae, Journal of
Computational and Applied Mathematics 6 (1980), 19–26.
[17] http://www.dynasim.se/.
[18] Dynasim AB, Dymola−Dynamic Modelling Laboratory, Lund, Sweden, http://www.
dynasim.se/dymola.htm.
[19] EECS Department of the University of California at Berkeley, SPICE home page, http:
//bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/.
[20] Simos Evangelou, The control and stability analysis of two-wheeled road vehicles, Ph.D.
thesis, University of London, 2003.
[21] G. Ferretti, Systematic dynamic modelling of mechanical systems containing kinematic
loops, Mathematical Modelling of Systems 2 (1996), no. 3, 212–235.
[22] G. Ferretti (ed.), Modelling and simulation of motorcycle dynamics for active control
system prototyping, 5th MATHMOD Vienna, February 2006.
[23] G. Ferretti, F. Schiavo, and L. Viganò, Modular modelling of flexible thin beams in multibody systems, 44th IEEE Conference on Decision and Control (Seville, Spain), 12-15
December, 2005.
[24]
, Object-oriented modelling and simulation of flexible multibody thin beams in
modelica with the finite element method, 4th Modelica Conference (Hamburg-Harburg,
Germany), March 7-8, 2005.
[25] P. Fritson, L. Viklund, D. Fritson, and J. Herber, High level mathematical modeling and
programming, IEEE Software 12 (1995), no. 3, all pages.
[26] P. Fritzson (ed.), 3th international modelica conference, Linköpings Universitet,
Linköping, Sweden, November 3-4 2003, http://www.modelica.org/events/
Conference2003.
[27] C. Führer, Differential-algebraische-gleichungssysteme in mechanischen mehrkörpersystemen: Theorie, numerische ansätze und anwendungen., Ph.D. thesis, Fakultät für
Mathematik und Informatik, Technische Universität München, 1988.
BIBLIOGRAFIA
127
[28] K. Guo and H. Guan, Modeling of Driver/Vehicle Directional Control Systems, Vehicle
System Dynamics 22 (1993), 141–184.
[29] N.M. Hall, S.R. Wereley, Linear control issues in the higher control of helicopter vibration, Proceedings of the 35th Annual Forum of American Helicopter Society (1989), all
pages.
[30] A.C. Hindmarsh, ODEPACK, a systematized collection of ode solvers, IMACS Transactions on Scientific Computation, vol. 1, pp. 55–64, Noth-Holland, Amsterdam,
1983.
[31] IEEE, Standard VHDL analog and mixed signal extensions, Techical Report 1076.1, IEEE,
1997.
[32] A. Jeandel, F. Boudaud, P. Ravier, and A. Bushing, U.L.M. un language de modélisation,
a modeling language, CESA’96 IMACS Multiconference (Lille, France) (IMACS, ed.),
1996.
[33] U. Kiencke and L. Nielsen, Automotive Control Systems, Springer-Verlag, Berlin, 2000.
[34] M. Kloas, V. Friesen, and M. Simons, Smile - a simulation environment for energy systems, SAS’95, 5t h International IMACS Symposium on Systems Analysis and Simulation,
1995.
[35] A. Leva and C. Maffezzoni, Modelling of power plants, Thermal power plant simulation
and control (London) (D. Flynn, ed.), IEE, 2003, pp. 17–60.
[36] L.Formaggia, F.Nobile, A.Quarteroni, and A.Veneziani, Multiscale modelling of the circulatory system: a preliminary analysis, Computing and Visualization in Science 2 (1999),
no. 2, 75–83.
[37] D. J. N. Limebeer, R. S. Sharp, and S. Evangelou, The stability of motorcycles under
acceleration and braking, Proc. I. Mech. E., Part C, Journal of Mechanical Engineering
Science 215 (2001), 1095–1109.
[38] LMS engineering innovation, DADS home page, http://www.lmsintl.com.
[39] S.L. Campbell L.R. Petzold, K.E. Brenan, The numerical solution of initial value problems
in differential-algebraic equations, Elseveir Science Publishing Co., 1989.
[40] Ch. Lubich, U. Nowak, U. Pöhle, and Ch. Engstler, An overview of MEXX: numerical
software for integration of multibody systems, Advanced Multibody Dynamics, pp. 421–
426, Kluwer Academic Publishers, 1993.
[41] C. Maffezzoni and R. Girelli, MOSES: modular modeling of physical systems in an objectoriented database, Mathematical Modeling of Systems 4 (1998), no. 2, 121–147.
128
BIBLIOGRAFIA
[42] Luca Marescotti, Modellazione del sistema pilota-veicolo a due ruote in ambiente
integrato Matlab-Adams, Master’s thesis, Universitá di Pisa, 2003.
[43] S.E. Mattsson and M. Andersson, Omola - an object-oriented modeling language, Recent
Advances in Computer Aided Control Systems, pp. 291–310, Elsevier Science, 1993.
[44] S.E. Mattsson, M. Andersson, and K.J. Astrom, Object-oriented modeling and simulation,
ch. 2, pp. 31–69, Marcel Dekker Inc., 1993.
[45] S.E. Mattsson, H. Elmqvist, and M. Otter, Physical System Modeling with Modelica,
Control Engineering Practice 6 (1998), 501–510.
[46] S.E. Mattsson and G. Söderlind, Index reduction in differential-algebraic equations using
dummy derivatives, SIAM Journal on Scientific Computing 14 (1993), no. 3, 677–692.
[47] MSC software, ADAMS home page, http://www.mscsoftware.com.
[48] National Instruments MATRIXx Design and Development Tools, SystemBuild Home
Page, http://ni.com/matrixx/systembuild.htm.
[49] M. Oh and C.C. Pantelides, A modeling and simulation language for combined lumped and
distributed parameter systems, Computers and Chemical Engineering 20 (1996), 611–633.
[50] H. Olsson, H. Tummescheit, and H. Elmqvist, Using automatic differentiation for partial derivatives of functions in modelica, Proc. 4th International Modelica Conference
(Hamburg-Harburg, Germany, March 7-84), 2005, pp. 105–112.
[51] M. Otter (ed.), 2th international modelica conference, Deutsches Zentrum fur Luft und
Raumfahrt (DLR), Oberpfaffenhofen, Germany, March 18-19 2002, http://www.
modelica.org/events/Conference2002.
[52] M. Otter, H. Elmqvist, and S.E. Mattsson, The new modelica multibody library, Proc. 3rd
International Modelica Conference (Linköping, Sweden, November 3-4), 2003, pp. 311–
330.
[53] H.B. Pacejka, Tyre and Vehicle Dynamics, Buttherworth Heinemann, Oxford, 2002.
[54] C.C. Pantelides, The consistent initialization of differential-algebraic systems, SIAM
Journal Scientific Statistical Computation 9 (1988), no. 2, 213–231.
[55] J.T. Goodall R.M. Pearson, Adaptive schemes for the active control of helicopter structural
response, IEEE Transactions on Control Systems Technology 2 (1994), no. 2, 61–72.
[56] PELAB, Openmodelica, Linköping, Sweden, http://www.ida.liu.se/˜pelab/
modelica/OpenModelica.html.
[57] S. Perotto, S. Micheletti, and F. Schiavo, Modelling heat exchangers by the finite element
method with grid adaption in modelica, 4th Modelica Conference (Hamburg-Harburg,
Germany), March 7-8, 2005.
BIBLIOGRAFIA
129
[58] L.R. Petzold, A description of DASSL - a differential/algebraic system solver, 10th World
Congress on System Simulation and Scientific Computation (Montreal, Canada), 1982,
pp. 430–432.
[59] P. Piela, T. Epperly, Westerberg K., and Westerberg A., Ascend: An object-oriented computer environment for modeling and analysis: the modeling language, Computers and
Chemical Engineering 15 (1991), no. 1, 53–72.
[60] A. Quarteroni, S. Ragni, and A. Veneziani, Coupling between lumped and distributed
models for blood flow problems, Computing and Visualization in Science 4 (2001), no. 2,
111–124.
[61] P. Sahlin, A. Bring, and E.F. Sowell, The neutral model format for building simulation,
version 3.02, Techincal report, Department of Building Sciences, The Royal Institute of
Technology, Stockolm, Sweden, 1996.
[62] F. Schiavo, L. Viganò, and G. Ferretti, Modular modelling of flexible beams for multibody
systems, Multibody System Dynamics (2006), all pages, (submitted).
[63] Francesco Schiavo, Modelling and simulation of lumped and distribuited parameters
physical systems with object oriented techniques, Ph.D. thesis, Politecnico di Milano,
2006.
[64] G. Schmitz (ed.), 4th international modelica conference, Hamburg University of Technology, Hamburg-Harburg, Germany, March 7-8 2005, http://www.modelica.org/
events/Conference2005.
[65] L.F. Shampine and M.K. Gordon, Computer solution of ordinary differential equations:
the initial value problem, W.H. Freeman, San Francisco, 1975.
[66] R. S. Sharp, Stability, control and steering responses of motorcycles, Vehicle System
Dynamics 35 (2001), 291–318.
[67] R. S. Sharp, S. Evangelou, and D. J. N. Limebeer, Advances in the modelling of motorcycle
dynamics, Multibody System Dynamics 12 (2004), 251–283.
[68] R. S. Sharp and D. J. N. Limebeer, A motorcycle model for stability and control analysis,
Multibody System Dynamics 6 (2001), 123–142.
[69] R.S. Sharp, The stability and control of motorcycles, Journal of Mechanical Engineering
Science 13 (1971), 316–329.
[70] A.H. Sievers, L.A. von Flotow, Comparison and extensions of control methods for narrowband disturbance rejection, IEEE Transactions on Signal Processing 40 (1992), no. 10, all
pages.
[71] Simpack, Simpack home page, http://www.simpack.com.
130
BIBLIOGRAFIA
[72] J.C. Strauss, The SCi continuous systems simulation language, Simulation 9 (1967), 281–
303.
[73] Synopsys, Saber home page, http://www.synopsys.com/products/
mixedsignal/saber/saber.html.
[74] R.E. Tarjan, Depth-first search and linear graph algorithms, SIAM Journal of Computing
1 (1972), 146–160;.
[75] The MathWorks, Matlab and Simulink for Technical Computing, http://www.
mathworks.com/.
[76] The Modelica Association, Modelica - a unified object-oriented language for physical systems modeling, Language Specification Version 2.2, 2005, http://www.modelica.
org.
[77] M. Tiller, Introduction to Physical Modeling with Modelica, Kluwer, 2001.
[78] P.E. Wellstead, Introduction to Physical Modelling, Academic Press, London, 1979.
[79] S.R. Wereley, N.M. Hall, Frequency response of linear time periodic systems, Proceedings
of the 29th IEEE Conference on Decision and Control (1990), 3650–3655.
Scarica

Modellizzazione orientata agli oggetti, simulazione e controllo di