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.