Studenti
Mattia Giovinazzi
Giancarlo Manieri
Paolo Martina
Sommario
Parte 1 ........................................................................................................................................ 4
Punto 1 ................................................................................................................................... 4
Discussione punto 1.1 ...................................................................................................... 10
Discussione punto 1.2 ...................................................................................................... 11
Discussione punto 1.3 ...................................................................................................... 12
Punto 2 ................................................................................................................................. 14
Discussione punto a ......................................................................................................... 18
Discussione punto b ......................................................................................................... 19
Parte 2 ...................................................................................................................................... 20
Punto 1-2 .............................................................................................................................. 20
Discussione punto 2 ......................................................................................................... 23
Punto 3 ................................................................................................................................. 25
Discussione punto a ......................................................................................................... 25
Discussione punto b ......................................................................................................... 29
Punto 4 ................................................................................................................................. 34
Punto a ............................................................................................................................. 34
Punto b, dataset 1 ............................................................................................................ 37
Punto b, dataset 2 ............................................................................................................ 42
Discussione punto b ......................................................................................................... 43
Punto 5 ................................................................................................................................. 44
Discussione punto 1 ......................................................................................................... 44
Discussione punto 2 ......................................................................................................... 47
Discussione punto 3 ......................................................................................................... 52
Discussione punto 4 ......................................................................................................... 57
Punto 6 ................................................................................................................................. 65
Discussione punto a ......................................................................................................... 68
Discussione punto b ......................................................................................................... 69
Discussione punto c.......................................................................................................... 70
Punto 7 ................................................................................................................................. 74
Punto 8 ................................................................................................................................. 81
Discussione punto a ......................................................................................................... 84
Discussione punto b ......................................................................................................... 85
Parte 3 ...................................................................................................................................... 87
Punto a ................................................................................................................................. 87
Punto b ................................................................................................................................. 88
Punto c.................................................................................................................................. 89
Discussione punto a ......................................................................................................... 90
Discussione punto b ......................................................................................................... 91
Discussione punto c.......................................................................................................... 93
Parte 1
Punto 1
Un autovettura sportiva caratterizzata dai seguenti parametri:
M = 9.919 [kN];
Iz = 570 [kgm2];
l =2.26 [m];
a = 1.22 [m];
CA = 58.62 [kN/rad] (singolo pneumatico);
CP = 71.36 [kN/rad] (singolo pneumatico);
= 1/20 [-];
Adottando un modello a due gradi di libert, si calcolino gli autovalori del sistema che controllano la stabilit direzionale del veicolo a V = 80.5 [km/h].
Se il guidatore opera un colpo di sterzo con angolo al volante = 30 mantenendo costante la
velocit, si determini:
1. Il tempo di salita della risposta del veicolo in termini di velocit di imbardata (tempo
necessario perch la velocit di imbardata raggiunga per la prima volta il valore di regime).
2. Discutere come cambia il comportamento del veicolo al variare della posizione del baricentro.
3. Diagrammare landamento dellangolo di assetto e la traiettoria seguita dal veicolo.
Per lo studio delle propriet di handling del veicolo assegnato si far di seguito riferimento al
modello monotraccia o a bicicletta. Si considereranno inoltre le seguenti ipotesi semplificative:
) (
+ ) +
2 + 2
= (
) (
) +
{
= (
()
]
()
1
(()) = [
+
2
4 ] =
[
2 + 2
]
() = ()
[ ]
La soluzione generale del sistema data dalla somma dellintegrale z0(t) del sistema omogeneo associato (TRANSIENT STATE) e di un integrale particolare zp(t) (STEADY STATE):
() = 0 () + ()
() = 1 1 + 2 2 +
1
In cui = [ ] il vettore delle costanti da determinare in base alle due condizioni iniziali
2
close all
clear all
clc
% DATI INPUT
M= 9919 ;
g = 9.81;
m = M/g;
I_z = 570;
l = 2.26;
a= 1.22;
Ca1 = 58620;
Cp1 = 71360 ;
Ca = Ca1*2;
Cp = Cp1*2;
tau = 0.05;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
0.7*l
];
%
%
%
%
%
%
Determinante=det(A);
Traccia=sum(diag(A));
b1=Ca/m;
b2=(Ca*a)/(I_z);
B=[b1;b2];
delta
[autovettori,autovalori]=eig(A);
mediante la funzione "eig(A)"
lambda1=autovalori(1,1);
posto 1,1 della matrice "autovalori"
lambda2=autovalori(2,2);
posto 2,2 della matrice "autovalori"
Semipasso posteriore
Elementi della matrice A
Elementi della matrice A
Elementi della matrice A
Elementi della matrice A
MATRICE DINAMICA A: matrice dei coefficienti delle
if Autovalori<0
% Soluzione particolare - STEADY STATE
zp = -inv(A)*B*delta;
vp = zp(1,1);
rp = zp(2,1);
% Soluzione globale
X(1)=0;
Y(1)=0;
V(:,i)= R*vg(:,i);
strada
Xpunto(i)=V(1,i);
Ypunto(i)=V(2,i);
X(i)=X(i-1)+Xpunto(i)*dt;
Y(i)=Y(i-1)+Ypunto(i)*dt;
end
% Grafico: RAPPRESENTAZIONE DELLA TRAIETTORIA DELLA VETTURA AL VARIARE DELLA POSIZIONE DEL
BARICENTRO
figure(4)
hold on
ylim([-100 180]); xlim([-100 180]); axis square;
plot(Y,X,'linewidth',1)
grid on
title('Traiettoria della vettura al variare della posizione del baricentro')
legend('a=0.45*l','a=0.5*l','a=1.22','a=0.6*l','a=0.65*l','a=0.7*l')
xlabel('Tempo [s]')
ylabel('Velocit laterale, v [m/s]')
% Grafico: ANDAMENTO DELLA VELOCIT LATERALE v DEL BARICENTRO
figure(3)
hold on
axis square;
plot(t,v,'linewidth', 1)
title('Velocit laterale del baricentro del veicolo ')
legend('a=0.45*l','a=0.5*l','a=1.22','a=0.6*l','a=0.65*l','a=0.7*l')
xlabel('Tempo [s]')
ylabel('Velocit laterale, v [m/s]')
grid on
% Grafico: ANDAMENTO DELLA VELOCIT DI IMBARDATA
figure(2)
hold on;
axis square;
plot(t,r,'linewidth',1)
title('Andamento della velocit di imbardata')
costante=[0.47;0.47];
costante2=[-0.1;0.6];
line (costante,costante2,'LineWidth',1);
xlabel('Tempo [s]')
ylabel('Velocit di imbardata, r [rad/s]')
legend('x=0.47')%*l','a=0.5*l','a=1.22','a=0.6*l','a=0.65*l','a=0.7*l'
set(gca,'LooseInset', [0,0,0,0]);
print('figure2','-dpng','-r300');
grid on
% Grafico: ANDAMENTO DELL'ANGOLO DI ASSETTO
figure(5)
hold on
grid on
axis square;
plot(t,beta,'linewidth',1)
grid on
title('Andamento angolo di assetto al variare del baricentro')
legend('a=0.45*l','a=0.5*l','a=1.22','a=0.6*l','a=0.65*l','a=0.7*l')
xlabel('Tempo [s]')
ylabel('Angolo di assetto, \beta [rad]')
% Calcolo del k_us al variare della posizione del semipasso anteriore a
j=j+1;
sp(j)=a;
K_us(j) = (M)*((l-a)/Ca-a/Cp)/l ;
% Grafico: ANDAMENTO DEL K_us AL VARIARE DELLA POSIZIONE DEL SEMIPASSO ANTERIORE
figure (1)
axis square;
plot(sp, K_us,'r','linewidth',2);
costante=[1.24;1.24];
costante2=[-0.04;0.04];
line (costante,costante2)
title('Andamento del k_u_s al variare della posizione del semipasso anteriore')
xlabel ('a')
ylabel ('K_u_s')
grid on
else
end
end
Fig. 1.1.1
Fig. 1.1.2
Fig. 1.1.3
Per tracciare la traiettoria percorsa dal veicolo durante la manovra di colpo di sterzo, caratterizzata anchessa al variare della posizione del centro di massa, sono state implementate le
equazioni per il calcolo delle coordinate x(t) e y(t) proprie del baricentro (fig. 1.1.4).
bene precisare che, per la rappresentazione della traiettoria percorsa, il sistema di riferimento assi-strada adottato sovrapponibile a quello assi-pneumatico e presenta lasse x longitudinale positivo verso lalto e lasse y positivo verso sinistra.
Fig. 1.1.4
Punto 2
Se il guidatore opera una manovra di sine sweep, si valuti la risposta in frequenza del veicolo.
Si assuma un ingresso armonico del tipo
() = 0
Dove 0 = 30 e sono rispettivamente la ampiezza e la frequenza dellingresso.
La risposta del sistema sar del tipo
() = 0
() = 0
Diagrammare il rapporto
|0 |
0
= 0.5 5 [rad/s];
M = 1500 [kg];
Iz = 2420 [kgm2];
l = 2.54 [m];
a = 1.14 [m];
C, a = 44 [kN/rad pneumatico-1];
C, p = 47 [kN/rad pneumatico-1];
V = 25 [m/s].
= 0.5 5 [rad/s];
M = 1365 [kg];
Iz = 2400 [kgm2];
l = 2.58 [m];
a = 0.912 [m];
C, a = 73 [kN/rad pneumatico-1];
C, p = 90 [kN/rad pneumatico-1];
V = 33.3 [m/s].
b)
Nellipotesi che il veicolo sia approssimabile ad un sistema lineare tempo-invariante (asintoticamente stabile) la sua risposta dinamica, a fronte di un ingresso armonico di ampiezza A e
pulsazione , anchessa armonica di pulsazione , sfasata di un angolo e di ampiezza pari
al prodotto di A per il modulo della funzione di trasferimento G(i).
Partendo dalle equazioni di equilibrio dinamico del veicolo scritte in forma matriciale
} = [] {()} + []
{()
(1.2.1)
e supponendo che le condizioni iniziali, v(0) ed r(0) siano identicamente nulle, si ottiene mediante trasformata di Laplace:
{()} = [] {()} + [] ()
(1.2.2)
da cui:
{()} = ([] [])1 [] () = [()] ()
(1.2.3)
Le funzioni:
[()] = ([] [])1 []
(1.2.4)
sono le funzioni di trasferimento relative alla dinamica laterale del veicolo nel dominio di Laplace. Lanalisi della risposta in frequenza si effettua tramite diagrammi di Bode studiando
modulo e fase delle funzioni [G(i)], ottenute per sostituzione della variabile s con la variabile
i.
close all;
clear all;
clc
%CARATTERISTICHE VEICOLO A
m = 1500;
%Kg Massa del veicolo
l = 2.54;
%m Passo del veicolo
a = 1.14;
%m Semipasso anteriore
b = l-a;
%m Semipasso posteriore
Ca = 2*44000;
%N/rad Rigidezza pneumatici asse anteriore
Cp = 2*47000;
%N/rad Rigidezza pneumatici asse posteriore
tau = 1/20;
%Rapporto di riduzione dellangolo di sterzo tra volante ed asse
I_z = 2420;
%Kg*m^2 Momento di inerzia rispetto a z calcolato rispetto a G
u = 25;
%m/s Velocit del veicolo
teta = pi/6;
%Angolo al volante
delta=tau*teta;
%rad Angolo di sterzo
a1 = (Ca+Cp)/(m*u);
a2 = ((Ca*a-Cp*b)/(m*u))+u;
a3 = (Ca*a-Cp*b)/(u*I_z);
a4 = (Ca*a^2+Cp*b^2)/(u*I_z);
A = -[a1 a2; a3 a4];
b1 = Ca/m;
b2 = (Ca*a)/I_z;
B = [b1; b2];
w=0.5:0.01:5;
s=tf('s');
G_rA=(b2*s+a1*b2-a3*b1)/(s^2+(a4+a1)*s+a1*a4-a2*a3); %Funzione di trasferimento relativa
all'angolo di imbardata(r) del veicolo A
figure(1)
bode(G_rA,w)
hold on
%CARATTERISTICHE VEICOLO B
m = 1365;
%Kg Massa del veicolo
l = 2.58;
%m Passo del veicolo
a = 0.912;
%m Semipasso anteriore
b = l-a;
%m Semipasso posteriore
Ca = 73000;
%N/rad Rigidezza pneumatici asse anteriore
Cp = 90000;
%N/rad Rigidezza pneumatici asse posteriore
tau = 1/20;
%rapporto di riduzione dellangolo di sterzo tra volante ed asse
I_z = 2420;
%Kg*m^2 Momento di inerzia rispetto a z calcolato rispetto a G
u = 33.3;
% m/s Velocit del veicolo
teta = pi/6;
%Angolo al volante
delta=tau*teta;
%rad Angolo di sterzo
a1 = (Ca+Cp)/(m*u);
a2 = ((Ca*a-Cp*b)/(m*u))+u;
a3 = (Ca*a-Cp*b)/(u*I_z);
a4 = (Ca*a^2+Cp*b^2)/(u*I_z);
A = -[a1 a2; a3 a4];
b1 = Ca/m;
b2 = (Ca*a)/I_z;
B = [b1; b2];
w1=0.5:0.01:5;
w=2*pi*w1;
s=tf('s');
G_rB=(b2*s+a1*b2-a3*b1)/(s^2+(a4+a1)*s+a1*a4-a2*a3); %Funzione di trasferimento relativa alla
velocit di imbardata (r) del veicolo B
figure(2)
bode(G_rB, w)
Discussione punto a
Con riferimento ai dati del veicolo a, mediante software di calcolo simbolico, sono state ricavate le funzioni di trasferimento della velocit laterale v(s) e della velocit di imbardata r(s),
secondo quanto visto nella relazione (1.2.4)
(1 2 2 + 4 1))
( 2 + (4 + 1) + 1 4 2 3)
()
[()] = [
]=
(2 + 1 2 3 1)
()
[( 2 + (4 + 1) + 1 4 2 3)]
Passando nel dominio di Fourier, con la funzione bode() integrata nel software Matlab, sono
stati tracciati i diagrammi di Bode relativi alla velocit di imbardata (Fig. 1.2.1):
Fig. 1.2.1 Diagramma di Bode relativo alla velocit di imbardata del veicolo a)
Come si evince dal grafico della magnitudo, la risposta del sistema a allinput armonico presenta un gain crescente, con un valore di picco pari a 16.3 [dB] in corrispondenza di = 2.97
[rad/s] ed unelevata attenuazione per valori di pulsazione maggiori. Dal grafico della fase,
invece, si nota che alle basse frequenze il veicolo risponde prontamente alle variazioni di , a
differenza di quanto accade alle alte.
Il veicolo si comporta, quindi, come un filtro passa basso, ovvero solo le sollecitazioni a bassa
frequenza producono un effetto apprezzabile; quelle ad alta frequenza risultano, invece, tagliate.
Discussione punto b
Sostituendo nella matrice dinamica [A] i valori caratteristici del veicolo b e ripetendo i passaggi
visti nel punto precedente, si giunge nuovamente alla definizione delle funzioni di trasferimento relative a velocit laterale e di imbardata.
Il diagramma di Bode relativo a r mostrato in Fig. 1.2.2:
Fig. 1.2.2 Diagramma di Bode relativo alla velocit di imbardata del veicolo b)
La risposta del sistema b risulta simile a quella del sistema a, presentando un gain crescente
con massimo pari a 13.8 [dB] in corrispondenza di = 5.78 [rad/s]. Anche in questo, si assiste
ad un ritardo nella risposta del sistema, tanto maggiore quanto maggiore risulta la frequenza
dellinput relativo a .
Parte 2
Punto 1-2
1. Scarica i dati dall'Intranet (data_hw1.txt, Time (sec), Vel (m/s), Yaw Rate (deg/s)).
2. Scrivi una function MATlab che legge il tempo, vehicle yaw rate e vehicle velocity e
restituisce vehicle heading angle (tra 0 e 360 deg) e vehicle acceleration (confronta
risultato analitico con misura sperimentale presente indata_hw1.txt).
Cosa sta facendo il veicolo?
Per soddisfare le prime due richieste si fatto uso del comando Matlab textread('data_hw1.txt') che permette di acquisire direttamente da un file .txt i dati sperimentali
relativi a: tempo di acquisizione [s] , velocit longitudinale del veicolo [m/s] , velocit di imbardata
[deg/s] e accelerazione longitudinale [m/s2] .
% PARTE 2
% Punto 1-2
% Scaricare i dati data_hwl.txt
clear all
close all
clc
%
%
%
%
grid on
xlabel('Tempo [s]')
ylabel('Velocit di imbardata [deg/s]')
title('Velocit di imbardata')
end
Avendo la velocit di imbardata [deg/s] possibile calcolare l'andamento nel tempo dell'angolo di imbardata o mediante il comando "cumsum" o mediante la sua espressione esplicita
indicata come segue:
psi = zeros(length(T),1);
psi(1)=0;
for t=1:(length(T)-1)
R(t)=R(t,1);
T(t)=T(t,1);
dt=T(t+1)-T(t);
psi(t+1)=psi(t)+((R(t)+R(t+1)).*dt/2); % Calcolo dellangolo di imbardata
end
psi_360=psi;
Cos come richiesto nel punto 2, il valore dell'angolo di imbardata stato normalizzato per
essere compreso tra 0 e 360.
for i=1:length(psi)
if psi_360(i)<360
psi_360(i)=psi_360(i);
elseif psi_360(i)<720
psi_360(i)=psi_360(i)-360;
elseif psi_360(i)<1080
psi_360(i)=psi_360(i)-720;
end
if sign(psi_360(i))<0
if psi_360(i)>-360
psi_360(i)=psi_360(i)+360;
elseif psi_360(i)>-720
psi_360(i)=psi_360(i)+720;
elseif psi_360(i)>-1080
psi_360(i)=psi_360(i)+1080;
end
end
end
Andamento nel tempo dell'angolo di imbardata compreso nell'intervallo 0- 360 (Fig. 2.2.2).
subplot(2,2,[3,4])
plot(T,psi_360)
grid on
xlabel('Tempo [s]')
ylabel('Angolo di imbardata [deg]')
title('Angolo di imbardata nel tempo 0-360')
hold all
grid on
xlabel('Tempo [s]')
ylabel('Accelerazione longitudinale [m/s^2]')
title('Accelerazione longitudinale come derivata di U rispetto a T')
subplot(2,1,1)
plot(T,A_x)
grid on
xlabel('Tempo [s]')
ylabel('a_x [m/s^2]')
title('Accelerazione longitudinale')
Discussione punto 2
Analizzando contemporaneamente i grafici che riportano landamento della velocit di imbardata e dellangolo di imbardata, possibile intuire che lautovettura stia percorrendo due giri
di una traiettoria pseudo-rettangolare in verso orario, prima di percorrere un tratto rettilineo
con il quale la manovra termina.
Valutando preliminarmente langolo di imbardata, si nota subito un andamento duale che giustifica la supposizione della percorrenza di due giri in senso orario; tale angolo, infatti, decresce passando da un valore di 360 ad un valore di 0 (normalizzato) in accordo con la convenzione relativa al sistema di riferimento adottato. Sempre considerando lo stesso parametro,
la traiettoria pseudo-rettangolare giustificata dallalternanza di tratti decrescenti e tratti rettilinei (in corrispondenza di 90-180-270-360) cui si sovrappone una velocit di imbardata
che alterna il suo valore, in maniera ciclica, tra -40 deg/s e 0 deg/s, questultimo corrispondente a condizioni di marcia in rettilineo.
Ponendo attenzione allandamento della velocit longitudinale, possibile rilevare unaccelerazione nei primi istanti della manovra e una decelerazione negli istanti finali della stessa. Il
tratto rettilineo finale, invece, intuibile analizzando il contemporaneo annullamento della
velocit di imbardata e dellangolo di imbardata a partire da t = 45 s. Negli istanti successivi
lautovettura si arresta cos come evidenziato dal valore nullo della velocit longitudinale per
t = 48 s.
Fig. 2.2.1
Fig. 2.2.2
Punto 3
Scarica i dati dall'Intranet (data_hw2a.txt e data_hw2b.txt, time (s), Longitudinal speed (m/s),
angular velocity (rad/s)).
Assumi il raggio effettivo di rotolamento uguale a 0.35 m.
a) Per il primo set di dati plotta GPS Velocity e Tire Velocity (hold on). Plotta tire slip
vs time. A che cosa dovuta la differenza nei dati?
b) Per il secondo data set, plotta tire slip vs. time, e tire slip vs. Force (mass of the car
1500 kg). Stima la rigidezza longitudinale.
Discussione punto a
Il primo passo stato utilizzare la funzione Matlab textread per caricare i dati relativi a
tempo di acquisizione [s], velocit longitudinale misurata dal GPS [m/s] e velocit angolare
[rad/s]. Utilizzando linformazione relativa al raggio effettivo di rotolamento, stata calcolata
la velocit dello penumatico V_tire come prodotto dello stesso raggio per la velocit angolare. Successivamente stato calcolato il valore del coefficiente di scorrimento e la relativa
velocit di scorrimento.
clear all
clc
close all
Grafico della velocit rilevata dal GPS, della velocit dello pneumatico e confronto
figure (1)
subplot(3,1,1)
plot(T,Vx_gps)
hold on
grid on
xlabel('Tempo [s]')
ylabel('Velocit [m/s]')
title('Velocit rilevata dal GPS')
subplot(3,1,2)
plot(T,V_tire)
hold on
grid on
xlabel('Tempo [s]')
Scorrimento longitudinale
for t=1:(length(T))
S(t)=(V_tire(t)./Vx_gps(t))-1;
end
% Scorrimento longitudinale
Analizzando gli andamenti della velocit longitudinale misurata dal GPS e della velocit dello
pneumatico, questi risultano essere quasi sovrapponibili, eccezion fatta per listante di tempo
prossimo a 6 s. lecito pensare che la differenza fra le due velocit, che si manifesta in corrispondenza di una frenatura, sia imputabile alla presenza di scorrimento (Fig. 2.3.1a).
Fig. 2.3.1a
A tal proposito si scelto di plottare non soltanto landamento dello scorrimento in funzione
del tempo ma anche landamento della velocit di scorrimento.
bene ricordare che una velocit di scorrimento positiva indice che il battistrada sta ruotando pi velocemente di quanto sta avanzando il centro della ruota e quindi il veicolo in
fase di frenatura. Analogamente se la velocit di scorrimento negativa il veicolo sta accelerando.
Nel nostro caso, in corrispondenza di t = 6 s, possibile notare un valore positivo a conferma
della correttezza di quanto supposto precedentemente. Inoltre, soffermando lattenzione sul
valore delle grandezze di interesse considerate, possibile notare una perfetta coincidenza
delle stesse che si assestano intorno al valore nullo sino ad un tempo di circa 6 secondi, momento in cui il driver inizia la manovra di frenatura: qui si registra un valore di scorrimento
prossimo allo 0.5, superiore al limite di 0.2 tipico di asfalto asciutto, che lascia supporre lavvenuto bloccaggio delle ruote (Fig. 2.3.2a).
Fig. 2.3.2a
Discussione punto b
Per il secondo set di dati stato ripetuto lo stesso procedimento del punto precedente e sono
stati plottati i seguenti andamenti:
-
clear all
clc
close all
plot(T,Vx_gps)
hold on
plot(T,V_tire)
grid on
xlabel('Tempo [s]')
ylabel('Vx_gps Vs V_tire [m/s]')
title('Vx_gps Vs V_tire')
Scorrimento longitudinale
for t=1:(length(T))
S(t)=(V_tire(t)./Vx_gps(t))-1;
end
%Scorrimento longitudinale
%Velocit di scorrimento
end
Analizzando gli andamenti della velocit longitudinale misurata dal GPS e della velocit dello
pneumatico, questi risultano essere sovrapponibili (Fig. 2.3.1b).
Fig. 2.3.1b
lecito pensare, quindi, che gli pneumatici siano in condizione di aderenza e tale supposizione
trova conferma analizzando il valore corrispettivo di scorrimento longitudinale: esso molto
basso e prossimo a zero cos come la velocit di scorrimento (Fig. 2.3.2b).
Fig. 2.3.2b
Per landamento della forza longitudinale in funzione dello scorrimento, la nuvola di punti
approssimata mediante il comando polyfit con un polinomio di grado 1. La conseguente
stima della rigidezza longitudinale, intesa come la pendenza della retta appena ottenuta, porta
ad un valore di Cx pari a:
Cx = 1.0715e+04.
Punto 4
La Infiniti G35 ha le seguenti caratteristiche:
m = 1573 [kg];
a = 1.311 [m];
C, f = 45 [kN/rad tire-1];
Iz = 3200 [kgm2];
b = 1.539 [m];
C, r = 70 [kN/rad tire-1].
a) Scrivi un codice Matlab che simuli la velocit di imbardata e langolo di assetto in funzione dellangolo di sterzo e della velocit longitudinale;
b) Scarica i due data file G35 e confronta in maniera chiara i risultati della simulazione
con quelli sperimentali in termini di velocit di imbardata, r, angolo di assetto, e angolo di deriva, , anteriore e posteriore.
Punto a
Al fine di individuare una relazione che leghi la velocit di imbardata r e langolo di assetto ,
allangolo di sterzo e alla velocit longitudinale v, si fatto ricorso al modello a bicicletta.
Facendo valere le ipotesi di:
+ ( + ) = +
(2.4.1)
Dallequilibrio dinamico, nelle ipotesi di linearit, possibile esprimere gli angoli di deriva anteriore e posteriore come segue:
2
(2.4.2)
2
=
(2.4.3)
2
+(
(2.4.4)
), ed il
raggio di curvatura come = , si in grado di definire, a partire dalla (2.4.4), una legge che
esprime la velocit di imbardata, r, in funzione di e v:
=
1
( +
)
(2.4.4)
Anche per langolo di assetto , possibile risalire ad una relazione che la leghi a e v:
= asin (
Dati input
g = 9.81;
M = 1573;
% Massa del veicolo[kg]
I_z = 3200;
% Momento di inerzia [kgm^2]
a = 1.3111;
% Semipasso anteriore [m]
b = 1.539;
% Semipasso posteriore [m]
l = a+b;
% Passo del veicolo [m]
Ca = 45000*2;
% Coefficiente di rigedezza anteriore, intero asse [N/rad]
Cp = 70000*2;
% Coefficiente di rigedezza posteriore, intero asse [N/rad]
[T, V, delta, r, beta]=textread('HW7_G35_datafile_1.txt');
Gradiente di sottosterzo
K_us=((M*g)/l)*((b/(Ca)) - (a/(Cp)));
(2.4.5)
Punto b, dataset 1
Si passa adesso al confronto dei dati analitici relativi a r, , A e P con quelli sperimentali
acquisiti sulla vettura in esame. Per prima cosa si provveduto ad importare i dati sperimentali, dopo di ch si passati a confrontarne i grafici:
Grafico Velocit di imbardata analitica
figure(1)
subplot(3,1,1)
plot (T,r_analitico,'r')
hold on
grid on
xlabel('Tempo [s]')
ylabel ('Velocit di imbardata')
title ('Velocit di imbardata analitica ')
% Raggio di curvatura
% Angolo di deriva anteriore
% Angolo di deriva posteriore
end
xlabel('Tempo [s]')
ylabel ('Angolo di deriva ant. analitico')
title ('Angolo di deriva ant. analitico')
subplot(3,1,2)
plot (T,alpha_a)
hold on
grid on
xlabel('Tempo [s]')
ylabel ('Angolo di deriva ant. sperimentale')
title ('Angolo di deriva ant. sperimentale')
subplot(3,1,3)
plot (T,alpha_a,'b',T,alpha_a_det,'r')
hold on
grid on
xlabel('Tempo [s]')
title ('Confronto angolo di deriva anteriore analitico vs sperimentale')
Punto b, dataset 2
Per il veicolo 2 si ripete quanto gi visto nel punto precedente e se ne riportano di seguito i
grafici di interesse:
Discussione punto b
Con riferimento al dataset del veicolo 1, si osserva in generale piena corrispondenza tra i risultati analitici e sperimentali, a conferma sia della bont delle ipotesi iniziali sia del metodo
di ricerca della soluzione.
Relativamente al dataset del veicolo 2, si evidenziano, invece, tutti i limiti del modello lineare
monotraccia. A partire da t = 56 [s] fino a t = 62 [s], si osserva un notevole scostamento tra gli
andamenti analitici e i corrispondenti sperimentali. Ci direttamente imputabile ai valori di
> 2, limite oltre il quale il modello lineare perde di efficacia.
Punto 5
Un modello di pneumatico non-lineare quello di Dugoff .
1.
2.
3.
4.
(2.5.1)
dove:
() = {
(2 ) < 1
1
1
(2.5.2)
2 |tan()|
(2.5.3)
con
=
clear all
close all
clc
Dati input
g = 9.81;
M = 1573;
I_z = 3200;
a = 1.3111;
b = 1.539;
l = a+b;
Ca = 45000*2;
Cp = 70000*2;
%
%
%
%
Modello di DUGOFF
Calcolo di Fy al variare dell'angolo di deriva
Fza= M*g*b/l;
Fzp=M*g*a/l;
mu=0.4:0.1:1.4;
alpha_deg= 0:0.1:40 ;
alpha_rad=alpha_deg*(pi/180);
%
%
%
%
%
Fzanteriore= M*g*b/l;
Fzposteriore=M*g*a/l;
for j=1:length(mu)
for i=1:length(alpha_rad)
lambda(i,j)=(mu(j)*Fzanteriore)./(2*Ca*(abs(tan(alpha_rad(i)))));
if lambda(i,j)<1
Flambda(i,j)=lambda(i,j)*(2-lambda(i,j));
elseif lambda(i,j) >=1
Flambda(i,j)=1;
end
Fyant(i,j)=Ca.*Flambda(i,j)*(tan(alpha_rad(i)))';
end
% Fy anteriore
end
for j=1:length(mu)
for i=1:length(alpha_rad)
lambdapost(i,j)=(mu(j)*Fzposteriore)./(2*Cp*(abs(tan(alpha_rad(i)))));
if lambdapost(i,j)<1
Flambdapost(i,j)=lambdapost(i,j)*(2-lambdapost(i,j));
elseif lambdapost(i,j) >=1
Flambdapost(i,j)=1;
end
Fypost(i,j)=Cp.*Flambdapost(i,j)*(tan(alpha_rad(i)))';
% Fy posteriore
end
end
Analizzando i grafici possibile rilevare un aumento di forze laterali corrispondenti ad un aumento di aderenza longitudinale. Allaumentare di , infatti, lo penumatico in grado di scambiare forze in misura maggiore e, parallelamente, si nota unespansione del campo di variazione lineare pur rimanendo costante la pendenza che corrisponde al coefficiente di rigidezza
di deriva.
Discussione punto 2
l modello elaborato da Pacejka richiede numerosi parametri e, per la stima della forza laterale, ha la seguente forma:
= sin( atan( ))
(2.5.4)
= (1 E) + ( ) atan( )
(2.5.5)
= 1.30
(2.5.6)
= 0 3 + 1 2 + 2
(2.5.7)
= 3 sin(4 atan(5 ))
(2.5.8)
= 6 2 + 7 + 8
(2.5.9)
dove:
0 = 0
1 = 22.1
2 = 1011
3 = 1078
6 = 0
4 = 1.82 7 = 0.354
5 = 0.208 8 = 0.707
Modello di PACEJKA
a0=0;
a1=-22.1;
a2=1011;
a3=1078;
a4=1.82;
a5=0.208;
a6=0;
a7=-0.354;
a8=0.707;
alpha_pacejka=0:0.1:40;
% Variazione angolo di deriva
C = 1.3;
for j=1:length(Fz_pacejka)
D(j) = a0*((Fz_pacejka(j))^3)+a1*((Fz_pacejka(j))^2)+a2*(Fz_pacejka(j));
BCD(j) = a3*sin(a4*atan(a5*(Fz_pacejka(j))));
E(j) = a6*((Fz_pacejka(j))^2)+a7*(Fz_pacejka(j))+a8;
B(j) = BCD(j)/(C*D(j));
for i=1:length(alpha_pacejka)
phi(i,j)=((1-E(j))*(alpha_pacejka(i)))+((E(j)/B(j))*atan(B(j)*alpha_pacejka(i)));
Fy_pacejka(i,j)=D(j)*sin(C*atan(B(j)*phi(i)));
end
end
In particolare, nel punto in questione richiesto un confronto tra il modello di Dugoff e quello
di Pacejka. Se in questultimo modello lunico grado di libert il carico verticale Fz, in Dugoff
invece necessario ipotizzare sia il valore del coefficiente di aderenza di picco sia il carico verticale Fz applicato alla ruota. Al fine di operare un confronto efficace sono state considerate le
seguenti ipotesi:
Si partiti dal modello di Pacejka e, per il calcolo della rigidezza di deriva espressa come BCD,
stato imposto il carico verticale Fz = 4 kN/tire ottenendo:
BCD= 708.7768 N/deg
Tale valore stato imposto previa conversione in N/rad , come dichiarato in precedenza, corrispondente alla rigidezza di deriva del modello di Dugoff.
Il valore del coefficiente di aderenza laterale di picco stato calcolato a partire, anchesso, dal
modello di Pacejka ed imposto come dato di input per il modello di Dugoff pari a
= 0.9226
PACEJKA
Calcolo Fy di Pacejka al variare dell'angolo di deriva
a0=0;
a1=-22.1;
a2=1011;
a3=1078;
a4=1.82;
a5=0.208;
a6=0;
a7=-0.354;
a8=0.707;
Fz_pacejka=4;
[kN]
alpha_pacejka=0:0.1:40;
C = 1.3;
D = a0*((Fz_pacejka)^3)+a1*((Fz_pacejka)^2)+a2*(Fz_pacejka);
BCD = a3*sin(a4*atan(a5*(Fz_pacejka)));
espresso in N/deg
E = a6*((Fz_pacejka)^2)+a7*(Fz_pacejka)+a8;
B = BCD/(C*D);
for i=1:length(alpha_pacejka)
phi(i)=((1-E)*(alpha_pacejka(i)))+((E/B)*atan(B*alpha_pacejka(i)));
Fy_pacejka(i)=D*sin(C*atan(B*phi(i)));
end
BCDrad= BCD./0.0174;
Modello di DUGOFF
Calcolo Fy di Dugoff al variare dell'angolo di deriva
alpha_deg= 0:0.1:40 ;
pneumatico
alpha_rad=alpha_deg*(pi/180);
FzDUGOFF= Fz_pacejka*1000;
mu = D/FzDUGOFF;
for i=1:length(alpha_rad)
lambda(i)=(mu*FzDUGOFF)./(2*BCDrad*(abs(tan(alpha_rad(i)))));
if lambda(i)<1
Flambda(i)=lambda(i)*(2-lambda(i));
elseif lambda(i) >=1
Flambda(i)=1;
end
Fyant(i)=BCDrad.*Flambda(i)*(tan(alpha_rad(i)))';
end
Analizzando il grafico possibile notare un simile andamento lineare per entrambi i modelli
per piccoli valori di angoli di deriva; per angoli sempre pi grandi, invece, possibile apprezzare un comportamento non lineare. In particolare, il modello di Pacejka presenta un overshoot corrispondente alla massima forza laterale di picco scambiabile dallo pneumatico con la
strada prima di raggiungere la condizione di saturazione di aderenza dove, ad un aumento
dellangolo di deriva, non corrisponde un aumento della forza laterale.
Il modello di Dugoff, invece, presenta un andamento monotono crescente senza evidenziare
alcun massimo locale e, di conseguenza, non contiene alcuna informazione riguardo alla saturazione di aderenza e alla conseguente transizione alla condizione di slittamento globale.
possibile concludere che il modello di Dugoff certamente meno accurato del modello di
Pacejka nel prevedere la forza laterale sviluppata per grandi angoli di deriva; tuttavia un
modello matematico meno complesso e di pi immediata implementazione la cui natura
tende a sottostimare il problema, condizione non sfavorevole in quanto permette di operare
in condizioni di sicurezza.
Discussione punto 3
La non linearit, introdotta col modello di pneumatico di Dugoff, non consente la risoluzione
delle equazioni della dinamica in forma chiusa e, dunque, si opta per un approccio di tipo
numerico. Lintegrazione delle variabili cinematiche avviene per mezzo dellalgoritmo ODE45
implementato nel software Matlab.
Si definiscono dapprima le equazioni differenziali del moto in apposite functions, che verranno
poi richiamate nellODE45:
function xd = Dugoff(t,x, delta1, u1, time1)
delta=interp1(time1,delta1,t);
Vx=interp1(time1,u1,t);
x1=x(1);
x2=x(2);
m=1573;
l=2.85;
Iz=3200;
Cp=2*70000;
Ca=2*45000;
%Vx = 30;
%delta =(pi*1.5/180);
a=1.331;
b=l-a;
dt=0.001;
t=0:dt:3;
Fzf=((m*9.807*b)/(l));
Fzr=((m*9.807*a)/(l));
Caf=Ca;
Car=Cp;
mu=1.8;
af=(-delta+(atan((a*x2)+(x1))/Vx));
ar=(atan(((-b*x2)+(x1))/Vx));
zf=(mu*Fzf/(2*Caf*abs(tan(af))));
if zf<1
ff=zf*(2-zf);
else
ff=1;
end
Fyf=(-Caf*tan(af)*ff);
zr=(mu*Fzr/(2*Car*abs(tan(ar))));
if zr<1
fr=zr*(2-zr);
else
fr=1;
end
Fyr=(-Car*tan(ar)*fr);
x1d=((Fyf/m)*cos(delta))+(Fyr/m)-(Vx*x2);
x2d=(a/Iz)*Fyf*cos(delta)-((b/Iz)*Fyr);
xd = [x1d; x2d];
return
Una volta definite le equazioni differenziali secondo il modello non lineare di Dugoff, possibile richiamarle nellalgoritmo di integrazione ODE45:
clear all;
close all;
clc;
m=1573;
l=2.85;
Iz=3200;
Cp=2*70000;
Ca=2*45000;
a=1.331;
b=l-a;
[T, V, delta, r, beta]=textread('HW7_G35_datafile_1.txt');
afsperimentale=-(-delta+(atan((a*r)+(beta.*V))./V));
arsperimentale=-(atan(((-b*r)+(beta.*V))./V));
x0 = [0 0]; % Condizioni iniziali per lintegrazione
[t,y] = ode45(@(t,y) Dugoff(t,y, delta, V, T),T,x0);% Funzione che effettua lintegrazione
afdug=-(-delta+atan((a*y(:,2)+y(:,1))./V));
ardug=-atan(((-b*y(:,2)+(y(:,1)))./V));
figure(1) %grafico vel. imbardata
plot(t,y(:,2),'r')
hold on
plot(t,r,'k')
xlabel('Tempo [s]')
ylabel ('Velocit di imbardata [rad/s]')
title ('Velocit di imbardata Dugoff vs Sperimentale')
figure(2) %grafico beta
plot(t,(y(:,1)./V),'r')
hold on
plot(t,beta,'k')
xlabel('Tempo [s]')
ylabel ('Angolo di assetto [rad]')
title ('Angolo di assetto vs Sperimentale')
figure(3) %grafico alfa anteriore
hold on
plot(t,afdug,'r')
plot(t,afsperimentale,'b')
xlabel('Tempo [s]')
Come si evince dai diagrammi, limpiego del modello di pneumatico di Dugoff, sebbene pi
oneroso in termini di implementazione, senza dubbio pi accurato e preciso del modello
lineare nel seguire pi fedelmente landamento delle rilevazioni sperimentali.
Discussione punto 4
Al fine di determinare il valore di che meglio approssima i dati sperimentali, stato operato
un confronto tra la forza laterale ottenuta a partire da tali dati e quella ottenuta mediante il
modello di Dugoff valutata per diversi valori di . Per implementare tale modello, gli angoli di
deriva sono stati calcolati come segue, a partire dai dati a disposizione:
=
=
Per lelaborazione dei dati sperimentali, invece, sono state utilizzate le seguenti espressioni:
2
=
Dati input
g = 9.81;
% Accelerazione di gravit [m/s^2]
M = 1573;
% Massa del veicolo[kg]
I_z = 3200;
% Momento di inerzia [kgm^2]
a = 1.3111;
% Semipasso anteriore [m]
b = 1.539;
% Semipasso posteriore [m]
l = a+b;
% Passo del veicolo [m]
Ca = 45000*2;
% Coefficiente di rigedezza anteriore, intero asse [N/rad]
Cp = 70000*2;
% Coefficiente di rigedezza posteriore, intero asse [N/rad]
[T, V, delta, r, beta]=textread('HW7_G35_datafile_1.txt');
Modello di DUGOFF
Plottare Fy al variare dell'angolo di deriva
Fza= M*g*b/l;
Fzp=M*g*a/l;
mu=0.4:0.2:1.8;
R = V./r;
alfaanteriore=delta-(a./R)-beta;
alfaposteriore=(b./R)-(beta);
Fzanteriore= M*g*b/l;
Fzposteriore=M*g*a/l;
% Ciclo for per il calcolo di Fy anteriore
for j=1:length(mu)
for i=1:length(alfaanteriore)
lambda(i,j)=(mu(j)*Fzanteriore)./(2*Ca*(abs(tan(alfaanteriore(i)))));
if lambda(i,j)<1
Flambda(i,j)=lambda(i,j)*(2-lambda(i,j));
elseif lambda(i,j) >=1
Flambda(i,j)=1;
end
FyantDUGOFF(i,j)=Ca.*Flambda(i,j)*(tan(alfaanteriore(i)))';
end
end
% Ciclo for per il calcolo di Fy posteriore
for j=1:length(mu)
for i=1:length(alfaposteriore)
lambda2(i,j)=(mu(j)*Fzposteriore)./(2*Cp*(abs(tan(alfaposteriore(i)))));
if lambda2(i,j)<1
Flambda2(i,j)=lambda2(i,j)*(2-lambda2(i,j));
elseif lambda2(i,j) >=1
Flambda2(i,j)=1;
end
FypostDUGOFF(i,j)=Cp.*Flambda2(i,j)*(tan(alfaposteriore(i)))';
end
end
Dati input
g = 9.81;
M = 1573;
% Massa del veicolo[kg]
I_z = 3200;
% Momento di inerzia [kgm^2]
a = 1.3111;
% Semipasso anteriore [m]
b = 1.539;
% Semipasso posteriore [m]
l = a+b;
% Passo del veicolo [m]
Ca = 45000*2;
% Coefficiente di rigedezza anteriore, intero asse [N/rad]
Cp = 70000*2;
% Coefficiente di rigedezza posteriore, intero asse [N/rad]
[T, V, delta, r, beta]=textread('HW7_G35_datafile_2.txt');
Modello di DUGOFF
%Plottare Fy al variare di alpha
Fza= M*g*b/l;
Fzp=M*g*a/l;
mu=0.4:0.2:1.8;
R = V./r;
alfaanteriore=delta-(a./R)-beta;
alfaposteriore=(b./R)-(beta);
Fzanteriore= M*g*b/l;
Fzposteriore=M*g*a/l;
% Ciclo for per il calcolo di Fy anteriore
for j=1:length(mu)
for i=1:length(alfaanteriore)
lambda(i,j)=(mu(j)*Fzanteriore)./(2*Ca*(abs(tan(alfaanteriore(i)))));
if lambda(i,j)<1
Flambda(i,j)=lambda(i,j)*(2-lambda(i,j));
elseif lambda(i,j) >=1
Flambda(i,j)=1;
end
FyantDUGOFF(i,j)=Ca.*Flambda(i,j)*(tan(alfaanteriore(i)))';
end
end
% Ciclo for per il calcolo di Fy posteriore
for j=1:length(mu)
for i=1:length(alfaposteriore)
lambda2(i,j)=(mu(j)*Fzposteriore)./(2*Cp*(abs(tan(alfaposteriore(i)))));
if lambda2(i,j)<1
Flambda2(i,j)=lambda2(i,j)*(2-lambda2(i,j));
elseif lambda2(i,j) >=1
Flambda2(i,j)=1;
end
FypostDUGOFF(i,j)=Cp.*Flambda2(i,j)*(tan(alfaposteriore(i)))';
end
end
FypostDUGOFFord = FypostDUGOFF(ant2,:);
Punto 6
Simula una manovra di step-steer per la G35 che produca uno yaw rate finale di 50 [deg/s]
usando lapprossimazione lineare.
a) trova una formula che fornisce langolo di sterzo desiderato;
b) simula uno step-steer a 15 [m/s] ed uno a 30 [m/s];
c) scambia le rigidezze di deriva anteriori e posteriori e sposta il centro di massa indietro
di 0.2[m].
1. trova il nuovo gradiente di sottosterzo e ripeti il punto b;
2. cosa accade e perch?
3. Plotta la posizione dei poli (inclusi n e ) per ogni run.
Per individuare il valore di associato alla manovra di step steer in grado di produrre uno yaw
rate finale di 50 [deg/s], si considera la soluzione particolare che scaturisce dalla risposta del
sistema a tale input:
{ } = {} = []1 []
(2.6.1)
Mediante lutilizzo di un software di calcolo simbolico, si isola lequazione relativa alla velocit
di imbardata:
= (
1 2
3 1
)
1 4 2 3 1 4 2 3
(2.6.2)
Poich la matrice dinamica [A] funzione della velocit longitudinale, u, si ricavano da Matlab
i due valori di relativi, rispettivamente, ad u = 15 [m/s] e u = 30 [m/s].
Al fine di simulare la manovra di step-steer si estrapolano i parametri cinematici che caratterizzano la risposta della vettura a tale input: r(t), (t).
Lequazione della dinamica, scritta in forma matriciale compatta, del tipo differenziale ordinaria del primo ordine non omogena. In quanto tale, imponendo, le condizioni iniziali identicamente nulle, v(0) = 0 e r(0) = 0, la risposta del sistema si compone di una parte relativa al
transient state (soluzione dellomogenea) e di una relativa allo steady state (soluzione particolare):
{ } = {()} = { } + { }
(2.6.3)
{ } = { } = 1 {1 } 1 + 2 {2 } 2
(2.6.4)
{ } = { } = []1 []
(2.6.5)
= { }
(2.6.6)
Per riuscire a plottare i poli necessario trovare gli zeri che annullano il polinomio caratteristico associato allequazione differenziale:
2 ([]) + det[] = 0
(2.6.7)
dove:
det[A] = n2
tr[A] = 2 n
clear all
close all
clc
M=1573;
g=9.81;
Cp=140000;
Ca=90000;
a=1.311;
b=1.539;
I=3200;
u=[15;30];
t = [0:0.01:10];
% tempo di simulazione
for j=1:length(u)
a1(j)=((Ca+Cp)./(M.*u(j)));
a2(j)=((Ca*a-Cp*b)./(M.*u(j)))+u(j);
a3(j)=((Ca*a-Cp*b)./(I.*u(j)));
a4(j)=((Ca*a^2+Cp*b^2)./(I.*u(j)));
end
A_15=-[a1(1) a2(1);a3(1) a4(1)];
A_30=-[a1(2) a2(2); a3(2) a4(2)];
B=[Ca/M; Ca*a/I];
yaw=50*pi/180;
Delta_15=(yaw)/(((a1(1)*B(2)/(a1(1)*a4(1)-a2(1)*a3(1))-(a3(1)*B(1))/(a1(1)*a4(1)a2(1)*a3(1)))));
Delta_30=(yaw)/(((a1(2)*B(2)/(a1(2)*a4(2)-a2(2)*a3(2))-(a3(2)*B(1))/(a1(2)*a4(2)a2(2)*a3(2)))));
Determinante_15=det(A_15);
Determinante_30=det(A_30);
[autovettori_15,autovalori_15]=eig(A_15);
% Calcolo delle matrici di autovettori e
autovalori mediante la funzione "eig(A)"
lambda1_15=autovalori_15(1,1);
% Definizione dell'autovalore lambda1 come
elemento di posto 1,1 della matrice "autovalori"
lambda2_15=autovalori_15(2,2);
% Definizione dell'autovalore lambda2 come
end
figure (1)
subplot(2,1,1)
plot(t,beta_15_deg)
xlabel('Tempo [s]')
ylabel ('Beta [deg]')
title ('Angolo di assetto')
subplot(2,1,2)
plot(t,r_15_deg)
xlabel('Tempo [s]')
ylabel ('r [deg/s]')
title ('Velocit di imbardata')
figure(2)
plot(real(lambda1_15),imag(lambda1_15),'b+',real(lambda2_15),imag(lambda2_15),'ro','LineWidth'
,2)
grid on
xlabel('[Re]-Parte reale')
ylabel('[Im]-parte immaginaria')
legend('lambda(1)','lambda(2)')
title('u = 15[m/s] a=1.511')
W_n15=det(A_15)^(1/2)
Xi_15=-trace(A_15)/(2*W_n15)
Kus=((M*g)/(a+b))*((b/Ca) - (a/Cp))
else
end
Discussione punto a
Si propongono di seguito i valori di w per valori di u = 15 [m/s] e u = 30 [m/s], sia per la
configurazione normale che per la configurazione reverse ottenuta arretrando il baricentro
di 0.2 [m]:
w_15 = 0.635;
w_30 = 0.557;
w_15_reverse = 0.325;
w_30_reverse = -0.06;
Discussione punto b
Il gradiente di sottosterzo nella configurazione standard, risulta essere Kus = 0.0419 [rad].
Poich, in particolare, Kus > 0, allora la vettura sar caratterizzata da un comportamento
sottosterzante. In figura 2.6.1, a basse velocit, langolo di assetto e la velocit di imbardata
presentano un piccolo overshoot in corrispondenza del transitorio; allaumentare della velocit, per u= 30 [m/s], i transitori sono caratterizzati, invece, da un maggiore overshoot, come
si evince da figura 2.6.2.
Discussione punto c
Arretrando il baricentro di 0.2 [m] e scambiando le rigidezze di deriva tra avantreno e retrotreno, il gradiente di sottosterzo diviene Kus = - 0.0194 [rad]. In particolare, poich Kus < 0, la
vettura avr comportamento sovrasterzante e quindi tendente allinstabilit. Infatti, mentre
per basse velocit (u = 15 [m/s]) la vettura riesce ancora a raggiungere, a regime, una condizione di stabilit (Fig. 2.6.3), gi a partire da u = 30 [m/s], il sistema non pi in grado di
rispondere in maniera adeguata allinput allo sterzo (Fig. 2.6.4).
Si riportano da Fig. 2.6.5 a Fig. 2.6.8 le posizioni dei poli relative alle quattro configurazioni (u
= 15 [m/s]; u = 30 [m/s]; ureverse = 15 [m/s]; ureverse = 30 [m/s]). La condizione di stabilit o
instabilit funzione della natura dei poli. In particolare se questi presentano parte reale negativa, la vettura sar stabile; se presentano parte reale positiva, sar instabile.
I poli relativi alla configurazione standard, sono dei numeri complessi coniugati, con parte
reale negativa. Ci conferma lipotesi di stabilit avanzata dallanalisi dei diagrammi sui parametri cinematici e r.
Si riportano in aggiunta i valori della pulsazione naturale, n e del coefficiente di smorzamento
:
I poli relativi alla configurazione reverse sono a parte immaginaria nulla. In particolare quella
che avanza a u = 15 [m/s] presenta entrambi i poli reali negativi, risultando, pertanto stabile;
La vettura che avanza a u = 30 [m/s], ha un polo a parte reale positiva e in quanto tale si
configura come instabile. Anche in questo caso, lanalisi dei poli ha confermato le ipotesi sulla
stabilit/instabilit della vettura di cui sopra.
Le ragioni di instabilit, insorte come conseguenza dello scambio delle rigidezze di deriva tra
avantreno e retrotreno e dello spostamento del baricentro allindietro, risiedono nellincapacit del retrotreno di sviluppare delle Fy tali da bilanciare le forze di inerzia in curva.
A completamento dellanalisi si forniscono i valori di n e nella configurazione reverse:
Punto 7
Ripeti il punto 6 usando il modello di Dugoff e confronta i risultati con il punto 6.
Le equazioni differenziali del moto che reggono la dinamica del veicolo sono espresse nel seguente sistema:
cos +
=
cos
(2.7.1)
(2.7.2)
if zf<1
ff=zf*(2-zf);
else
ff=1;
end
Fyf=(-Caf*tan(af)*ff);
zr=(mu*Fzr/(2*Car*abs(tan(ar))));
if zr<1
fr=zr*(2-zr);
else
fr=1;
end
Fyr=(-Car*tan(ar)*fr);
x1d=((Fyf/m)*cos(delta))+(Fyr/m)-(Vx*x2);
x2d=(a/Iz)*Fyf*cos(delta)-((b/Iz)*Fyr);
xd = [x1d; x2d];
return
Modello lineare
function xd = lin7(t,x, delta, Vx)
x1=x(1);
x2=x(2);
m=1573;
l=2.85;
Iz=3200;
Cp=2*70000;
Ca=2*45000;
a=1.331;
b=l-a;
dt=0.001;
t=0:dt:3;
Fzf=((m*9.807*b)/(l));
Fzr=((m*9.807*a)/(l));
Caf=Ca;
Car=Cp;
mu=1.8;
af=(-delta+(atan((a*x2)+(x1))/Vx));
ar=(atan(((-b*x2)+(x1))/Vx));
Fyf=-Caf*af;
Fyr=-Car*ar;
x1d=((Fyf/m)*cos(delta))+(Fyr/m)-(Vx*x2);
x2d=(a/Iz)*Fyf*cos(delta)-((b/Iz)*Fyr);
xd = [x1d; x2d];
return
Una volta definite le equazioni differenziali, poi possibile richiamarle nellODE45 ed ottenere
gli integrali utili alla simulazione: velocit di imbardata r e angolo di assetto .
clear all
close all
clc
M=1573;
Ca=90000;
Cp=140000;
a=1.311;
b=1.539;
I=3200;
u1=15;
T = [0:0.01:10];
% tempo di simulazione
for j=1:length(u1)
a1(j)=((Ca+Cp)./(M.*u1(j)));
a2(j)=((Ca*a-Cp*b)./(M.*u1(j)))+u1(j);
a3(j)=((Ca*a-Cp*b)./(I.*u1(j)));
a4(j)=((Ca*a^2+Cp*b^2)./(I.*u1(j)));
end
A_15=-[a1(1) a2(1);a3(1) a4(1)];
B=[Ca/M; Ca*a/I];
yaw=50*pi/180;
delta=(yaw)/(((a1(1)*B(2)/(a1(1)*a4(1)-a2(1)*a3(1))-(a3(1)*B(1))/(a1(1)*a4(1)-a2(1)*a3(1)))));
y0 = [0 0];
[t,y] = ode45(@(t,y) dugoff7(t,y, delta, u1),T,y0);% Funzione che effettua lintegrazione
[t,ylin] = ode45(@(t,ylin) lin7(t,ylin, delta, u1),T,y0);% Funzione che effettua
lintegrazione
figure(1) %grafico vel. imbardata
plot(t,y(:,2),'r')
hold on
plot(t,ylin(:,2),'b')
xlabel('Tempo [s]')
ylabel ('Velocit di imbardata [rad/s]')
title ('Velocit di imbardata lineare vs Dugoff')
legend('Dugoff','lineare')
figure(2) %grafico beta
plot(t,(y(:,1)./u1),'r')
hold on
plot(t,(ylin(:,1)./u1),'b')
xlabel('Tempo [s]')
ylabel ('Angolo di assetto [rad]')
title ('Angolo di assetto lineare vs Dugoff')
legend('Dugoff','lineare')
Fig. 2.7.1: confronto velocit di imbardata modello lineare vs non lineare a 15 [m/s]
Fig. 2.7.2: confronto angolo di assetto modello lineare vs non lineare a 15 [m/s]
Fig. 2.7.3: confronto velocit di imbardata modello lineare vs non lineare reverse a 15 [m/s]
Fig. 2.7.4: confronto angolo di assetto modello lineare vs non lineare reverse a 15 [m/s]
Fig. 2.7.5: confronto velocit di imbardata modello lineare vs non lineare a 30 [m/s]
Fig. 2.7.6: confronto angolo di assetto modello lineare vs non lineare a 30 [m/s]
Fig. 2.7.7: confronto velocit di imbardata modello lineare vs non lineare reverse a 30 [m/s]
Fig. 2.7.8: confronto angolo di assetto modello lineare vs non lineare reverse a 30 [m/s]
Punto 8
Simula il comportamento della G35 durante una manovra di lane-change. Usa la seguente
legge temporale per angolo di sterzo:
() = (2 ( 0.5))
() = 0
0.5 1.5
0 0.5 1.5 3
(1.2.1)
In questo caso, per, anche langolo di sterzo una funzione del tempo, per cui la (1.2.1)
devessere riscritta nella forma:
} = [] {()} + [] ()
{()
(2.8.1)
Questo sistema di equazioni non ha, per, una soluzione in forma chiusa e devessere, pertanto, risolta numericamente. Di seguito se ne illustrano i passaggi salienti.
Dichiarazione delle variabili:
function [ dydt ] = diffeq(t,y,tempo,delta,u )
g = 9.81;
%Accelerazione di gravit [m/s^2]
m = 1573;
% Massa del veicolo[kg]
I_z = 3200;
% Momento di inerzia [kgm^2]
a = 1.3111;
% Semipasso anteriore [m]
b = 1.539;
% Semipasso posteriore [m]
l = a+b;
% Passo del veicolo [m]
Ca = 45000*2;
% Coefficiente di rigedezza anteriore, intero asse [N/rad]
Cp = 70000*2;
% Coefficiente di rigedezza posteriore, intero asse [N/rad]
a1 = (Ca+Cp)./(m*u);
a2 = ((Ca*a-Cp*b)./(m*u))+u;
a3 = (Ca*a-Cp*b)./(u*I_z);
a4 = (Ca*a^2+Cp*b^2)./(u*I_z);
A = -[a1 a2; a3 a4];
b1 = Ca/m;
b2 = (Ca*a)/I_z;
B = [b1; b2];
Scrittura di una funzione per interpolare il valore di delta, al fine di ottenerne il valore
nellistante di tempo voluto:
delta = interp1(tempo,delta,t);
dydt=zeros(2,1);
dydt(1)= A(1,1)*y(1)+A(1,2)*y(2)+B(1,1)*delta;
dydt(2)= A(2,1)*y(1)+A(2,2)*y(2)+B(2,1)*delta;
end
0.5 1.5
0 0.5 1.5 3
clear all
clc
close all
%DATI DI INPUT
u=15;
DS=0.4/20;
tempo=linspace(0,3,1000);
for i=1:length(tempo)
if tempo(i) >= 0.5 && tempo(i) <= 1.5
delta(i) = DS*sin(2*pi*(tempo(i)-0.5));
else
delta(i) = 0;
end
end
Impostazione dei valori di tolleranza relativa ed assoluta per la funzione ODE e risoluzione del
sistema. Si noti che la relazione tra tali valori e l'errore ad ogni passo la seguente (dalla documentazione di Matlab):
e(i) <= max(RelTol*abs(y(i)),AbsTol(i))
options=odeset('RelTol',1e-2,'AbsTol',1e-4);
CI=[0 0];
[t,y] = ode45(@(t,y) diffeq(t,y,tempo,delta,u),tempo, CI,options);
X15(i)=X15(i-1)+Xpunto(i)*dt;
Y15(i)=Y15(i-1)+Ypunto(i)*dt;
end
Discussione punto a
Nella figura 2.8.1 sono state riportate le traiettorie per la Infiniti G35 alle due velocit richieste.
Il risultato ottenuto era pienamente atteso: la durata della manovra di sterzatura pari ad 1s,
e nei due casi lauto ha percorso 15 e 30 [m] rispettivamente, confermando la validit del
modello costruito.
Discussione punto b
In questo punto sono state scambiate le rigidezze di deriva anteriore e posteriore, e il
baricentro stato spostato indietro di 20 cm. Il risulta essere negativo, quindi lecito
aspettarsi un comportamento sovrasterzante.
Si noti come la vettura, ad una velocit pari a 30 m/s, presenti un comportamento instabile.
Questo verificato calcolando il valore della velocit critica:
=
= 27.225
Risultando essa minore della velocit a cui procede il veicolo (30 m/s), si pu asserire che il
comportamento della vettura realmente instabile.
Per completezza, si riporta la traiettoria ottenuta con un tempo di simulazione pari a 10 s
(fig.2.8.3)
Quando la velocit pari a 15 m/s (minore rispetto a quella critica), il sistema si porta a regime,
e quindi la traiettoria orizzontale, indice del fatto che, terminata la sterzatura e riportato in
asse lo sterzo, lauto procede in maniera perfettamente rettilinea.
Quando la velocit superiore a quella critica, invece, si nota sin da subito un comportamento
instabile, che termina con un testacoda dopo circa 200 m e 640.
Parte 3
One set of real data (which requires vertical force in kN and slip angle in degrees and gives side
force in N) is given by SAE Paper 870421. Once we put empirical data into a formula like this it
is easy to lose sight of what is going on. To prevent this, plot the following to get an idea of the
tire behavior predicted by this model:
a) Plot side force as a function of slip angle for normal loads of 2, 4, 6 and 8kN.
b) Plot the cornering stiffness (BCD) as a function of normal load from 0 to 8kN.
Explain using this graph how lateral load transfer could be used to change the tire
cornering properties on one of the axles.
c) Plot the peak side force (D) as a function of normal load from 0 to 8kN. Explain
how the maximum traction should differ between cases of minimal and large
lateral load transfer.
Punto a
Il primo punto richiede il plot dellandamento della forza laterale Fy in funzione della deriva al
variare del carico verticale. Dopo aver implementato il modello, la variazione dellangolo di
deriva stata imposta fra 0 e 15.
clear all
close all
clc
g = 9.81;
M = 1573;
a = 1.3111;
b = 1.539;
l = a+b;
Fza= M*g*b/l;
Fzp=M*g*a/l;
%
%
%
%
%
%
%
MODELLO DI PACEJKA
a0=0;
a1=-22.1;
a2=1011;
a3=1078;
a4=1.82;
a5=0.208;
a6=0;
a7=-0.354;
a8=0.707;
Fz_pacejka=2:2:8;
% Carichi verticali 2 4 6 8 [kN]
alpha_pacejka=0:0.1:15;
% Variazione angolo di deriva
C = 1.3;
for j=1:length(Fz_pacejka)
D(j) = a0*((Fz_pacejka(j))^3)+a1*((Fz_pacejka(j))^2)+a2*(Fz_pacejka(j));
BCD(j) = a3*sin(a4*atan(a5*(Fz_pacejka(j))));
E(j) = a6*((Fz_pacejka(j))^2)+a7*(Fz_pacejka(j))+a8;
B(j) = BCD(j)/(C*D(j));
for i=1:length(alpha_pacejka)
phi(i,j)=((1-E(j))*(alpha_pacejka(i)))+((E(j)/B(j))*atan(B(j)*alpha_pacejka(i)));
Fy_pacejka(i,j)=D(j)*sin(C*atan(B(j)*phi(i)));
end
end
Grafico della forza laterale Fy in funzione della rigidezza di deriva al variare del carico verticale
figure(1)
plot(alpha_pacejka,Fy_pacejka)
grid on
set(gcf,'color','white')
legend( 'F_z=2 kN', 'F_z=4 kN', 'F_z=6 kN', 'F_z=8 kN')
title('Forza laterale di Pacejka ')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)
Punto b
Il secondo punto richiede il plot dellandamento della rigidezza di deriva BCD in funzione del
carico verticale.
Cornering stiffness BCD
Fz_pacejka_BCD=0:0.1:8;
for j=1:length(Fz_pacejka_BCD)
BCD2(j) = a3*sin(a4*atan(a5*(Fz_pacejka_BCD(j))));
end
Punto c
Il terzo punto richiede il plot dellandamento della forza laterale di picco D in funzione del
carico verticale.
Forza laterale di picco D
Fz_pacejka_D=0:0.1:8;
for j=1:length(Fz_pacejka_D)
D2(j) = a0*((Fz_pacejka_D(j))^3)+a1*((Fz_pacejka_D(j))^2)+a2*(Fz_pacejka_D(j));
end
Discussione punto a
Analizzando il plot relativo allandamento della forza laterale Fy sviluppata dallo pneumatico
al variare dellangolo di deriva e del carico verticale Fz , le curve esibiscono un comportamento lineare per angoli di deriva molto piccoli o prossimi a zero ed un comportamento non
lineare per angoli di deriva sempre maggiori. possibile notare un overshoot cui corrisponde
la massima capacit dello pneumatico di sviluppare forza laterale nel contatto col suolo. Il
picco raggiunto risulta spostarsi pi in alto e verso destra allaumentare di Fz e ci enfatizza
limportanza di un buon dimensionamento di un sistema sospensivo e aerodinamico al fine di
garantire un opportuno carico verticale agente su ciascuno pneumatico.
Superata questa zona di picco, pur aumentando langolo di deriva, ogni curva tende ad appiattirsi ed assestarsi su un valore di Fy e portarsi in condizioni di saturazione, cui corrisponde
unorma di contatto in slittamento globale.
A parit di deriva, lo penumatico sviluppa una forza Fy tanto pi elevata quanto maggiore il
carico verticale agente. Quanto appena descritto prende il nome di LOAD SENSITIVITY ( Fig.
3.a.1).
Fig. 3.a.1
Discussione punto b
In Fig. 3.b. descritto landamento della rigidezza di deriva C al variare del carico verticale Fz.
Landamento non lineare e presenta un primo tratto crescente e poi un successivo tratto
decrescente (Fig. 3.b).
(Fig. 3.b)
Per comprendere al meglio linfluenza del trasferimento di carico bene riportare un esempio
numerico.
Consideriamo unautovettura sottoposta ad un carico verticale statico W=8000 N per asse. In
assenza di trasferimento di carico, su ciascuno pneumatico grava un carico verticale di 4000 N
cui corrisponde la stessa rigidezza di deriva; questo si traduce in una forza laterale sviluppata
dallintero asse pari a:
= +
Con
= =
Assumendo uno stesso angolo di deriva
= =
si ottiene:
= + = 2
= +
= + = ( + )
<
Da questo esempio si deduce che, in curva, il trasferimento di carico causa una diminuzione
della forza laterale sviluppabile rispetto alla traiettoria rettilinea o alla stessa curva ma in assenza di trasferimento di carico. Ci si ripercuote su quello che viene definito CORNERING
POWER che una indicazione di quanto velocemente sia possibile percorrere una curva.
Nellultimo caso analizzato, quindi, possibile percorrere la curva pi lentamente oppure, per
poterla percorrere alla stessa velocit, necessario aumentare langolo di deriva e spostarsi
su una curva differente.
Discussione punto c
Analizzando la Fig. 3.c possibile notare come, sebbene il trasferimento di carico si traduca
in un aumento della forza laterale Fy scambiata dallo pneumatico, tale forza presenta un proprio valore massimo tipico di ogni valore di carico verticale che cresce allaumentare di Fz ma
in maniera meno che lineare: ad un aumento di Fz non corrisponde un eguale aumento di Fy
di picco sviluppabile dallo pneumatico. bene precisare che tale forza laterale di picco influenzata positivamente o negativamente dal trasferimento di carico a seconda che si consideri lo pneumatico esterno o interno.
Fig. 3.c