Sei sulla pagina 1di 93

Corso di

Meccanica Del Veicolo


Caratterizzazione dellhandling
di unautovettura mediante modelli
matematici lineari e non lineari

Studenti
Mattia Giovinazzi
Giancarlo Manieri
Paolo Martina

Titolare del corso


Prof. Ing. Giulio Reina

Anno accademico 2015/2016

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:

Moto del veicolo su superficie piana e orizzontale;


Piccole accelerazioni laterali ay < 0,4 g;
Componente longitudinale della velocit Vg costante (u = costante);
Angoli di deriva piccoli;
Resistenze di avanzamento trascurabili (X + Fxa = 0);
Trazione posteriore;

Sotto queste ipotesi, dallequilibrio dinamico, si ottiene un sistema di equazioni differenziali


lineari del primo ordine, ordinarie, non omogenee, a coefficienti costanti, rispettivamente
nelle variabili disaccoppiate v(t) e r(t):
+

) (
+ ) +


2 + 2

= (
) (
) +

{
= (

In forma matriciale del tutto equivalente, il sistema pu essere espresso come:


{} = [] {} + []
Dove z il vettore delle variabili di stato:
() = [

()
]
()

A la matrice dinamica dei coefficienti:

1
(()) = [

+
2

4 ] =
[

2 + 2
]

B il vettore dei termini noti:

() = ()

[ ]
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

(0) = ((0), (0)), 1 , 2 gli autovalori della matrice A e , i rispettivi autovettori.

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;

%
%
%
%
%
%
%
%
%
%
%

[N] massa del veicolo


[m^2/s^2] accelerazione di gravit
[kg] massa veicolo in kg
[kgm^2] momento di inerzia
[m] passo
[m] semipasso anteriore
[N/rad] rigidezza di deriva anteriore per singolo pneumatico
[N/rad] rigidezza di deriva posteriore per singolo pneumatico
[N/rad] rigidezza di deriva anteriore per intero asse
[N/rad] rigidezza di deriva asse posteriore
rapporto di trasmissione

% RICHIESTA: determinare gli autovalori del sistema che controllano la


% stabilit direzionale del veicolo a u = 80.5 [km/h]
u = 80.5/3.6;
t = [0:0.01:10];
dt = 0.01;
teta=pi/6;
delta = tau*teta;
%x0 = [0;0];
j=0;
for a=[ 0.45*l 0.5*l 1.22 0.6*l 0.65*l
studio del comportamento

%
%
%
%
%
%

[m/s] velocit longitudinale


tempo di simulazione
tempo di integrazione
[rad] angolo al volante imposto dal driver
angolo di sterzo allo pneumatico
condizioni iniziali

0.7*l

];

% Variazione del semipasso anteriore:


% del veicolo al variare della

posizione del baricentro


b=l-a;
a1=(Ca + Cp)/(m*u);
a2=((Ca*a - Cp*b)/(m*u))+u;
a3=((Ca*a - Cp*b)/(I_z*u));
a4=((Ca*(a^2) + Cp*(b^2))/(I_z*u));
A=-[a1 a2; a3 a4];
varibili di stato.

%
%
%
%
%
%

Determinante=det(A);
Traccia=sum(diag(A));

% Determinante della matrice caratteristica


% Traccia della matrice caratteristica

b1=Ca/m;
b2=(Ca*a)/(I_z);
B=[b1;b2];
delta

% Elementi della matrice B


% Elementi della matrice B
% MATRICE B: matrice dei coefficienti dell'ingresso

[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"

% Calcolo delle matrici di autovettori e 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

% Definizione dell'autovalore lambda1 come elemento di


% Definizione dell'autovalore lambda2 come elemento di

% STABILITA' DEL SISTEMA


Autovalori=diag(autovalori);
calcolati,

% Organizzazone degli autovalori, precedentemente


% in un vettore colonna chiamato "Autovalori"

if Autovalori<0
% Soluzione particolare - STEADY STATE
zp = -inv(A)*B*delta;
vp = zp(1,1);
rp = zp(2,1);

% Calcolo della soluzione particolare Zp a regime


% Velocit laterale a regime
% Velocit di imbardata a regime

% Soluzione dell'omogenea - TRANSIENT STATE


v(1)=0;
% Condizione iniziale corrispondente a t=0 che
corrisponde all'elemento di posto 1 nel vettore t
r(1)=0;
% Condizione iniziale
C = -inv(autovettori)*zp;
% Imposizione delle condizioni iniziali per il calcolo
% della matrice C dei coefficienti C1 e C2
% Z=Z0+Zp. Per t=0, z=0-->
% 0=Z0 + Zp= C1x1 + C2x2 + Zp
for i = 1:length(t);
v0(i) = C(1,1)*autovettori(1,1)*exp(t(i)*lambda1)+C(2,1)*autovettori(1,2)*exp(t(i)*lambda2);
r0(i) = C(1,1)*autovettori(2,1)*exp(t(i)*lambda1)+C(2,1)*autovettori(2,2)*exp(t(i)*lambda2);

% Soluzione globale = TRANSIENT STATE + STEADY STATE


v(i)= v0(i)+vp;
% Elemento di posto 1,1 della soluzione globale
r(i)= r0(i)+rp;
% Elemento di posto 1,1 della soluzione globale
z(:,i)=[v(i);r(i)];

% Soluzione globale

% Traiettoria della vettura al variare della posizione del semipasso anteriore


beta = atan(v/u);
% Angolo di assetto
psi= cumsum(r*dt);
% Angolo di imbardata
vg(:,i) = [u;v(i)];
% Vettore velocit del baricentro nel sistema di
riferiemnto assi-veicolo
end
for i=2:length(t)
R = [cos(psi(i)), -sin(psi(i))
sin(psi(i)) , cos(psi(i))];

% Definizione della matrice di rotazione R

X(1)=0;
Y(1)=0;
V(:,i)= R*vg(:,i);
strada
Xpunto(i)=V(1,i);
Ypunto(i)=V(2,i);

% Coordinata X della posizione iniziale


% Coordinata Y della posizione iniziale
% Vettore velocit del baricentro nel sistema assi-

X(i)=X(i-1)+Xpunto(i)*dt;
Y(i)=Y(i-1)+Ypunto(i)*dt;

% Coordinata X della traiettoria


% Coordinata Y della traiettoria

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

Discussione punto 1.1


Nel grafico (fig. 1.1.1) stato rappresentato landamento della velocit di imbardata, a seguito
di una manovra step steer, al variare della posizione del baricentro in termini di posizione del
semipasso anteriore, a, rispetto al passo l.
Dallanalisi delle curve si estrapolano due principali comportamenti. Il primo, caratteristico
delle vetture sottosterzanti, denota il passaggio dal transitorio al regime in assenza di overshoot, denotando una stabilit generale del sistema; il secondo quello delle vetture sovrasterzanti: se i rispettivi autovalori hanno parte reale negativa, la vettura stabile; nel caso in
cui gli autovalori abbiano parte reale positiva, la vettura instabile.
Nel caso particolare di a = 1,22 [m] il tempo di salita pari a t = 0,47 [s].

Fig. 1.1.1

Discussione punto 1.2


Nel grafico seguente (fig. 1.1.2) rappresentato landamento del gradiente di sottosterzo al
variare della posizione del baricentro. Si noti che, spostando il centro di massa verso il posteriore, il comportamento del veicolo passa da sottosterzante a sovrasterzante. In particolare il
passaggio segnato dal valore di a= 1,24 [m].

Fig. 1.1.2

Discussione punto 1.3


Per langolo di assetto, , si ottiene il seguente diagramma (fig. 1.1.3). Da esso si deduce che
per bassi valori del semipasso anteriore, landamento dellangolo di assetto tende asintoticamente ad un valore di regime ma, spostando il centro di massa verso il posteriore, landamento si discosta in misura maggiore.

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

che rappresenta lamplificazione dinamica della velocit di im-

bardata dovuta allingresso armonico usando questi valori:


a)

= 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

Acquisizione dati dal file .txt


[T, U, R, A_x]=textread('data_hw1.txt');
% T = xlsread('data_1.xlsx','A1:A589');
% U = xlsread('data_1.xlsx','B1:B589');
% R = xlsread('data_1.xlsx','C1:C589');
% A_x = xlsread('data_1.xlsx','D1:D589');

%
%
%
%

Time [s]- dati sperimentali


Velocit longitudinale [m/s]
Velocit di imbardata [deg/s]
Accelerazione longitudinale [m/s^2]

Andamento della velocit longitudinale e della velocit di imbardata del veicolo:


for t=1:length(T)
figure(1)
subplot(2,2,1)
plot(T,U)
grid on
xlabel('Tempo [s]')
ylabel('Velocit longitudinale [m/s]')
title('Velocit longitudinale')
subplot(2,2,2)
plot(T,R)

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')

Calcolo accelerazione (derivata di U rispetto a T, Fig. 2.2.1).


a = gradient(U,T);
figure (2)
subplot(2,1,2)
plot(T,a)

% Calcolo dellaccelerazione come derivata di U rispetto a T

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

Acquisizione dati dal file .txt


[T, Vx_gps, w]=textread('data_hw2a.txt');
r_rot=0.35;
V_tire = w * r_rot;

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]')

ylabel('Velocit pneumatico [m/s]')


title('Velocit pneumatico')
subplot(3,1,3)
plot(T,V_tire)
hold on
plot(T,Vx_gps)
grid on
xlabel('Tempo [s]')
ylabel('V_GPS Vs V_tire [m/s]')
title('V_GPS Vs V_tire')

Scorrimento longitudinale
for t=1:(length(T))
S(t)=(V_tire(t)./Vx_gps(t))-1;
end

% Scorrimento longitudinale

Velocit scorrimento longitudinale


for t=1:(length(T))
Vs(t)=Vx_gps(t)-V_tire(t);
end

Grafico scorrimento e velocit di scorrimento


figure (2)
subplot(2,1,1)
plot(T,S)
hold on
grid on
xlabel('Tempo [s]')
ylabel('Scorrimento longitudinale (%)')
title('Scorrimento longitudinale')
subplot(2,1,2)
plot(T,Vs)
hold on
grid on
ylabel ('Velocit scorrimento longitudinale')
xlabel ('Tempo [s]')
title('Velocit 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:
-

Velocit rilevata dal GPS e velocit pneumatico


Scorrimento longitudinale in funzione del tempo e velocit di scorrimento
Forza longitudinale in funzione dello scorrimento.

Successivamente stata calcolata la forza longitudinale come


=
in cui il valore di ax stato calcolato mediante la funzione gradient di Matlab, derivando la
velocit longitudinale misurata dal GPS rispetto al tempo.

clear all
clc
close all

Acquisizione dai da file .txt


[T, Vx_gps, w]=textread('data_hw2b.txt');
m=1500;
r_rot=0.35;
V_tire = w*r_rot;

% Massa del veicolo[kg]


% Velocit pneumatico [m/s]

Grafico andamento della velocit longitudinale e velocit rilevata dal GPS


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]')
ylabel('Velocit pneumatico [m/s]')
title('Velocit pneumatico')
subplot(3,1,3)

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 scorrimento longitudinale


for t=1:(length(T))
Vs(t)=Vx_gps(t)-V_tire(t);

%Velocit di scorrimento

end

Grafico scorrimento e velocit di scorrimento longitudinale


figure (2)
subplot (2,1,1)
plot(T,S)
hold on
grid on
xlabel('Tempo [s]')
ylabel('Scorrimento longitudinale (%)')
title('Scorrimento longitudinale')
subplot(2,1,2)
plot(T,Vs)
hold on
grid on
ylabel ('Velocit scorrimento longitudinale')
xlabel ('Tempo [s]')
title('Velocit scorrimento longirudinale')

Definizione forza longitudinale


a_x=gradient(Vx_gps,T);
for t=1:(length(T))
F_x(t)=m.*a_x(t);
end

Grafico Forza longitudinale in funzione dello scorrimento


figure(3)
subplot(2,1,1)
plot(S,F_x,'*')
hold on
grid on
ylabel ('Forza longitudinale [N]')
xlabel ('Scorrimento')
title('Scorrimento vs Force')

Stima della rigidezza longitudinale:


subplot(2,1,2)
T = table(S, F_x);
plot(S,F_x,'+');
[p,~,mu] = polyfit(T.S, T.F_x,1);
f = polyval(p,S,[],mu);
hold on
grid on
plot(S,f)
hold off
ylabel ('Forza longitudinale [N]')
xlabel ('Scorrimento')
title('Scorrimento vs Force INTERPOLAZIONE DATI ')
Cx=f(1)

%stima della rigidezza in N

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:

basse accelerazioni laterali (ay < 0.4 g);


angoli di sterzo piccoli;
angoli di deriva piccoli;
trazione anteriore;

si perviene alla seguente relazione


=

+ ( + ) = +

(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)

Sostituendo le (2.4.2) e (2.4.3) nella (2.4.1) si ottiene:


=


2
+(

(2.4.4)

Definendo il gradiente di sottosterzo la quantit adimensionale , = (

), 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;

% 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');

Gradiente di sottosterzo
K_us=((M*g)/l)*((b/(Ca)) - (a/(Cp)));

Velocit di imbardata analitica


r_analitico=zeros(length(T),1);
for t=1:(length(T))
R_det(t) = (l+((K_us*V(t).^2)/g))/delta(t);
r_analitico(t)=V(t)./R_det(t);
end

(2.4.5)

Angolo di assetto analitico


beta_det = zeros(length(T),1);
for t=1:(length(T))
beta_det(t)=(asin((b./R_det(t)).*cos(alpha_p(t))))-alpha_p(t);
end

Angoli di deriva analitici


Fza=M*g*b/l;
Fzb=M*g*a/l;
alpha_a_det = zeros(length(T),1);
alpha_p_det = zeros (length(T),1);
for t=1:(length(T))
alpha_p_det(t) = (Fzb*V(t).^2)./(Cp.*R_det(t)*g);
alpha_a_det(t) = (Fza*V(t).^2)./(Ca.*R_det(t)*g);
end

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 ')

Grafico velocit di imbardata sperimentale


subplot(3,1,2)
plot(T,r)
hold on
grid on
xlabel ('Tempo [s]')
ylabel ('Velcoit di imbardata [rad/s]')
title ('Velocit di imbardata sperimentale ')

Confronto Velocit di imbardata analitica e sperimentale


subplot(3,1,3)
plot(T,r,'r',T,r_analitico,'b')
hold on
grid on
xlabel ('Tempo [s]')
title ('Confronto velocit di imbardata analitica vs sperimentale')

Fig. 2.4.1: Confronto velocit di imbardata analitica e sperimentale

Grafico angolo di assetto analitico


figure(4)
subplot(3,1,1)
plot (T,beta_det,'r')
hold on
grid on
xlabel('Tempo [s]')
ylabel ('Angolo di assetto analitico')
title ('Angolo di assetto analitico')

Grafico angolo di assetto sperimentale


subplot(3,1,2)
plot (T,beta,'b')
hold on
grid on
xlabel('Tempo [s]')
ylabel ('Angolo di assetto sperimentale')
title ('Angolo di assetto sperimentale')

Confronto angolo di assetto analitico vs sperimentale


subplot(3,1,3)
plot (T,beta_det,'r')
hold on
plot (T,beta,'b')
grid on
xlabel ('Tempo [s]')
title ('Confronto angolo di assetto analitico vs sperimentale')

Fig. 2.4.2: Confronto angoli di assetto analitico e sperimentale

Angoli di deriva sperimentali


alpha_a = zeros(length(T),1);
alpha_p = zeros (length(T),1);
R = zeros(length(T),1);
for t=1:(length(T))
R(t)= V(t)./r(t);
alpha_a(t)= delta(t)-((a./R(t))+beta(t));
alpha_p(t)=(b./R(t))-beta(t);

% Raggio di curvatura
% Angolo di deriva anteriore
% Angolo di deriva posteriore

end

Confronto angoli di deriva analitici vs sperimentali anteriori


figure(2)
subplot(3,1,1)
plot (T,alpha_a_det,'r')
hold on
grid on

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')

Fig. 2.4.3: Confronto angoli di deriva anteriori analitici e sperimentali

Confronto angoli di deriva analitici vs sperimentali posteriori


figure(3)
subplot(3,1,1)
plot (T,alpha_p_det,'r')
hold on
grid on
xlabel('Tempo [s]')
ylabel ('Angolo di deriva post. analitico')
title ('Angolo di deriva post. analitico')
subplot(3,1,2)
plot (T,alpha_p)
hold on
grid on
xlabel('Tempo [s]')
ylabel ('Angolo di deriva post. sperimentale')
title ('Angolo di deriva post. sperimentale')
subplot(3,1,3)
plot (T,alpha_p,'b',T,alpha_p_det,'r')
hold on
grid on
xlabel('Tempo [s]')
title ('Confronto angolo di deriva posteriore analitico vs sperimentale ')

Fig. 2.4.4: Confronto angoli di deriva posteriori analitici e sperimentali

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:

Fig. 2.4.5: Confronto velocit di imbardata analitica e sperimentale

Fig. 2.4.6: Confronto angoli di assetto analitico e sperimentale

Fig. 2.4.7: Confronto angoli di deriva anteriori analitici e sperimentali

Fig. 2.4.8: Confronto angoli di deriva posteriori analitici e sperimentali

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.

Diagramma La forza laterale Fy in funzione di per il modello di Dugoff.


Effettua un confronto con il modello di Pacejka (vedi parte 3).
Ripeti il punto 4) usando il modello di Dugoff.
Trova il coefficiente di aderenza che approssima meglio i dati sperimentali.

La risoluzione dei quesiti precedentemente discussi ha avuto, come fondamento teorico, un


modello matematico in cui, il legame tra forze laterali e angoli di deriva (solo se di piccola
entit), di lineare proporzionalit a mezzo la rigidezza di deriva C .
Nel presente paragrafo, invece, vengono introdotti due modelli non lineari, rispettivamente il
Dugoff Model e la Magic Formula di Pacejka, che permettono di affrontare il problema
anche per angoli di deriva non piccoli e da un punto di vista pi completo e realistico.
Discussione punto 1
Il modello elaborato da Dugoff richiede un minor numero di parametri per stimare le forze
laterali e lespressione di Fy la seguente:
() = tan() ()

(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;

% Accelerazione di gravit [m/s^2]

M = 1573;
I_z = 3200;
a = 1.3111;

% Massa del veicolo[kg]


% Momento di inerzia [kgm^2]
% Semipasso anteriore [m]

b = 1.539;
l = a+b;
Ca = 45000*2;
Cp = 70000*2;

%
%
%
%

Semipasso posteriore [m]


Passo del veicolo [m]
Coefficiente di rigedezza anteriore, intero asse [N/rad]
Coefficiente di rigedezza posteriore, intero asse [N/rad]

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);

%
%
%
%
%

carico normale agente sullo pneumatico amteriore


carico normale agente sullo pneumatico posteriore
coeffciente di attrito massimo
angolo di deriva dello pneumatico
conversione in radianti

Fzanteriore= M*g*b/l;
Fzposteriore=M*g*a/l;

% Carico verticale all'anteriore


% Carico verticale al posteriore

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

Grafico andamento Fy anteriore Dugoff e Fy posteriore Dugoff in funzione di alfa, al variare di


mu
figure(1)
subplot(1,2,1)
plot(alpha_deg,Fyant)
grid on
set(gcf,'color','white')
legend( '\mu=0.4', '\mu=0.5', '\mu=0.6', '\mu=0.7', '\mu=0.8', '\mu=0.9', '\mu=1.0',
'\mu=1.1', '\mu=1.2', '\mu=1.3', '\mu=1.4')
title('Forza laterale al variare di \alpha (ant.)')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)
subplot(1,2,2)
plot(alpha_deg,Fypost)
grid on
set(gcf,'color','white')
legend( '\mu=0.4', '\mu=0.5', '\mu=0.6', '\mu=0.7', '\mu=0.8', '\mu=0.9', '\mu=1.0',
'\mu=1.1', '\mu=1.2', '\mu=1.3', '\mu=1.4')
title('Forza laterale al variare di \alpha (post.)')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)

I risultati ottenuti sono i seguenti:

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;

Calcolo di Fy al variare dell'angolo di deriva, per diversi valori di carico verticale


Fz_pacejka=2:2:8;

% Carichi verticali 2 4 6 8 [kN]

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

Grafico andamento Fy secondo il modello di Pacejka, al variare del carico verticale


figure(2)
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)

I risultati ottenuti sono i seguenti:

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);

% Carico verticale alla ruota


% Variazione angolo di deriva

% IL BCD che mi esce

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);

% Angolo di deriva dello


% Conversione in radianti

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

Grafico confronto Pacejka Dugoff


figure(1)
plot(alpha_pacejka,Fy_pacejka)
grid on
set(gcf,'color','white')
hold on
plot(alpha_deg,Fyant)
title('Confronto F_y Pacejka vs F_y Dugoff ')
legend('F_y Pacejka','F_y Dugoff')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)
ylabel('F_y')
hold on

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));

%Angolo di deriva anteriore


%Angolo di deriva posteriore

zf=(mu*Fzf/(2*Caf*abs(tan(af))));
if zf<1
ff=zf*(2-zf);
else
ff=1;
end
Fyf=(-Caf*tan(af)*ff);

%Forza laterale anteriore Dugoff

zr=(mu*Fzr/(2*Car*abs(tan(ar))));
if zr<1
fr=zr*(2-zr);
else
fr=1;
end
Fyr=(-Car*tan(ar)*fr);

%Forza laterale posteriore Dugoff

x1d=((Fyf/m)*cos(delta))+(Fyr/m)-(Vx*x2);
x2d=(a/Iz)*Fyf*cos(delta)-((b/Iz)*Fyr);

%Prima equazione cinematica Dugoff


%Seconda equazione cinematica Dugoff

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]')

ylabel ('Angolo di deriva [rad]')


title ('Angolo di deriva ant. Dugoff vs Sperimentale')
figure(4)%grafico alfa posteriore
hold on
plot(t,ardug,'r')
plot(t,arsperimentale,'b')
xlabel('Tempo [s]')
ylabel ('Angolo di deriva [rad]')
title ('Angolo di deriva post. Dugoff vs Sperimentale')

In particolare possibile confrontare graficamente i diagrammi relativi a yaw-rate, angolo di


assetto, angoli di deriva anteriore e posteriore, nei casi di simulazione secondo Dugoff e dei
risultati sperimentali:

Fig. 2.5.4: Confronto Dugoff Vs sperimentale, velocit di imbardata

Fig. 2.5.5: Confronto Dugoff Vs sperimentale, angolo di assetto

Fig. 2.5.6: Confronto Dugoff Vs sperimentale, angolo di deriva anteriore

Fig. 2.5.7: Confronto Dugoff Vs sperimentale, angolo di deriva posteriore

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
=

Per il primo dataset si ha:

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;

% carico normale agente sullo pneumatico anteriore

Fzp=M*g*a/l;
mu=0.4:0.2:1.8;
R = V./r;
alfaanteriore=delta-(a./R)-beta;

% carico normale agente sullo pneumatico posteriore


% coeffciente di attrito massimo

alfaposteriore=(b./R)-(beta);

% angolo di deriva posteriore sperimentale

% angolo di deriva anteriore sperimentale

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

Elaborazione dati sperimentali


[alfaanterioreord,ant]=sort(alfaanteriore); % abbiamo ordinato in ordine crescente le derive
anteriori
Fyanteriore=(Fza*V.*V)./(R*g);
Fyanterioreord = Fyanteriore(ant);
poly=polyfit(alfaanterioreord,Fyanterioreord,2);
rettapoly=@(alfaanterioreord) poly(1)*alfaanterioreord.^2+poly(2)*alfaanterioreord+poly(3);
FyantDUGOFFord = FyantDUGOFF(ant,:);

Grafico Fy anteriore sperimentale


figure(1)
subplot(1,2,1)
plot(alfaanterioreord,FyantDUGOFFord)
hold on
plot(alfaanterioreord,rettapoly(alfaanterioreord),'--','LineWidth',1,'color','black');
grid on
set(gcf,'color','white')
rez=1200;
legend( '\mu=0.4', '\mu=0.6', '\mu=0.8', '\mu=1', '\mu=1.2', '\mu=1.4', '\mu=1.6', '\mu=1.8')
title('Forza laterale al variare di \alpha (ant.) [Dugoff]')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)
subplot(1,2,2)
plot(alfaanterioreord,Fyanterioreord,'*')
hold on
plot(alfaanterioreord,rettapoly(alfaanterioreord),'LineWidth',3,'color','black');
grid on
set(gcf,'color','white')
rez=1200;
title('Forza laterale al variare di \alpha (ant.) [sperimentale]')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)

Elaborazione dati sperimentali


[alfaposterioreord,ant2]=sort(alfaposteriore); % abbiamo ordinato in ordine crescente le
derive anteriori
Fyposteriore=(Fzp*V.*V)./(R*g);
Fyposterioreord = Fyposteriore(ant2);
poly2=polyfit(alfaposterioreord,Fyposterioreord,2);
rettapoly2=@(alfaposterioreord)
poly2(1)*alfaposterioreord.^2+poly2(2)*alfaposterioreord+poly2(3);
FypostDUGOFFord = FypostDUGOFF(ant2,:);

Grafico Fy posteriore sperimentale


figure(2)
subplot(1,2,1)
plot(alfaposterioreord,FypostDUGOFFord)
hold on
plot(alfaposterioreord,rettapoly2(alfaposterioreord),'--','LineWidth',1,'color','black');
grid on
set(gcf,'color','white')
rez=1200;
legend( '\mu=0.4', '\mu=0.6', '\mu=0.8', '\mu=1', '\mu=1.2', '\mu=1.4', '\mu=1.6', '\mu=1.8')
title('Forza laterale al variare di \alpha (post.) [Dugoff]')

xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)


subplot(1,2,2)
plot(alfaposterioreord,Fyposterioreord,'*')
hold on
plot(alfaposterioreord,rettapoly2(alfaposterioreord),'LineWidth',3,'color','black');
grid on
set(gcf,'color','white')
rez=1200;
title('Forza laterale al variare di \alpha (post.) [sperimentale]')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)

Per il primo dataset, il valore di che approssima meglio i dati sperimentali :


= 1.8

Per il secondo dataset, stato ripetuto lo stesso procedimento.

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_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;

% carico normale agente sullo pneumatico amteriore


% carico normale agente sullo pneumatico posteriore
% coeffciente di attrito massimo

alfaposteriore=(b./R)-(beta);

% angolo di deriva posteriore sperimentale

% angolo di deriva anteriore sperimentale

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

Elaborazione dati sperimentali


[alfaanterioreord,ant]=sort(alfaanteriore); % abbiamo ordinato in ordine crescente le derive
anteriori
Fyanteriore=(Fza*V.*V)./(R*g);
Fyanterioreord = Fyanteriore(ant);
%
poly=polyfit(alfaanterioreord,Fyanterioreord,2);
% rettapoly=@(alfaanterioreord) poly(1)*alfaanterioreord.^2+poly(2)*alfaanterioreord+poly(3);
%
FyantDUGOFFord = FyantDUGOFF(ant,:);

Grafico Fy anteriore sperimentale


figure(1)
subplot(1,2,1)
plot(alfaanterioreord,FyantDUGOFFord)
hold on
plot(alfaposterioreord,Fyanterioreord,'--')
grid on
set(gcf,'color','white')
rez=1200;
legend( '\mu=0.4', '\mu=0.6', '\mu=0.8', '\mu=1', '\mu=1.2', '\mu=1.4', '\mu=1.6', '\mu=1.8')
title('Forza laterale al variare di \alpha (ant.) [Dugoff]')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)
subplot(1,2,2)
plot(alfaanterioreord,Fyanterioreord,'--')
hold on
plot(alfaanterioreord,rettapoly(alfaanterioreord),'LineWidth',3,'color','black');
grid on
set(gcf,'color','white')
rez=1200;
title('Forza laterale al variare di \alpha (ant.) [sperimentale]')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)

Elaborazione dati sperimentali


[alfaposterioreord,ant2]=sort(alfaposteriore); % abbiamo ordinato in ordine crescente le
derive anteriori
Fyposteriore=(Fzp*V.*V)./(R*g);
Fyposterioreord = Fyposteriore(ant2);
poly2=polyfit(alfaposterioreord,Fyposterioreord,2);
rettapoly2=@(alfaposterioreord)
poly2(1)*alfaposterioreord.^2+poly2(2)*alfaposterioreord+poly2(3);

FypostDUGOFFord = FypostDUGOFF(ant2,:);

Grafico Fy posteriore sperimentale


figure(2)
subplot(1,2,1)
plot(alfaposterioreord,FypostDUGOFFord)
hold on
plot(alfaposterioreord,Fyposterioreord,'--')
grid on
set(gcf,'color','white')
rez=1200;
legend( '\mu=0.4', '\mu=0.6', '\mu=0.8', '\mu=1', '\mu=1.2', '\mu=1.4', '\mu=1.6', '\mu=1.8')
title('Forza laterale al variare di \alpha (post.) [Dugoff]')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)
subplot(1,2,2)
plot(alfaposterioreord,Fyposterioreord,'--')
hold on
plot(alfaposterioreord,rettapoly2(alfaposterioreord),'LineWidth',3,'color','black');
grid on
set(gcf,'color','white')
rez=1200;
title('Forza laterale al variare di \alpha (post.) [sperimentale]')
xlabel('\alpha []','FontSize', 15), ylabel('F_y [N]','FontSize', 15)

Per il secondo dataset, il valore di che approssima meglio i dati sperimentali :


=0.4
bene precisare come, per ogni data-set, il valore di sia uguale tra gli assi anteriore e posteriore.

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

elemento di posto 2,2 della matrice "autovalori"


[autovettori_30,autovalori_30]=eig(A_30);
% Calcolo delle matrici di autovettori e
autovalori mediante la funzione "eig(A)"
lambda1_30=autovalori_30(1,1);
% Definizione dell'autovalore lambda1 come
elemento di posto 1,1 della matrice "autovalori"
lambda2_30=autovalori_30(2,2);

% STABILITA' DEL SISTEMA


Autovalori_15=diag(autovalori_15);
precedentemente calcolati,
Autovalori_30=diag(autovalori_30);
if Autovalori_15<0
% Soluzione particolare - STEADY STATE
zp_15 = -inv(A_15)*B*Delta_15;
regime
vp_15= zp_15(1,1);
rp_15 = zp_15(2,1);

% Organizzazone degli autovalori,


% in un vettore colonna chiamato "Autovalori"

% Calcolo della soluzione particolare Zp a


% Velocit laterale a regime

% Soluzione dell'omogenea - TRANSIENT STATE


v_15(1)=0;
% Condizione iniziale corrispondente a t=0 che
corrisponde all'elemento di posto 1 nel vettore t
r_15(1)=0;
% Condizione iniziale
C_15= -inv(autovettori_15)*zp_15;
% Imposizione delle condizioni iniziali per il
calcolo
for i = 1:length(t);
v0_15(i) =
C_15(1,1)*autovettori_15(1,1)*exp(t(i)*lambda1_15)+C_15(2,1)*autovettori_15(1,2)*exp(t(i)*lamb
da2_15);
r0_15(i) =
C_15(1,1)*autovettori_15(2,1)*exp(t(i)*lambda1_15)+C_15(2,1)*autovettori_15(2,2)*exp(t(i)*lamb
da2_15);

% Soluzione globale = TRANSIENT STATE + STEADY STATE


v_15(i)= v0_15(i)+vp_15;
% Elemento di posto 1,1 della soluzione
globale
r_15(i)= r0_15(i)+rp_15;
% Elemento di posto 1,1 della soluzione
globale
z_15(:,i)=[v_15(i);r_15(i)];
beta_15(i) = atan(v_15(i)./u(1));
beta_15_deg(i)=beta_15(i)*57.3;
r_15_deg(i)=r_15(i)*57.3;

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.

Fig. 2.6.1: Simulazione step steer per u = 15[m/s]

Fig. 2.6.2: Simulazione step steer per u = 30[m/s]

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
:

n_15 = 10.992 [rad/s];


n_30 = 7.2836 [rad/s];
_15 = 0.9042 [-];
_30 = 0.6823 [-].

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:

n_15_reverse= 7.8688 [rad/s];


n_30_reverse = 0 + i 2.4199 [rad/s];
_15_reverse = 1.2561 [-];
_30_reverse = 0 i 2.0423 [-].

Fig. 2.6.3: Simulazione step steer per u = 15 reverse[m/s]

Fig. 2.6.4: Simulazione step steer per u = 30 reverse[m/s]

Fig. 2.6.5: Posizione dei poli per u = 15 [m/s]

Fig. 2.6.6: Posizione dei poli per u = 30 [m/s]

Fig. 2.6.7: Posizione dei poli per u = 15 reverse [m/s]

Fig. 2.6.8: Posizione dei poli per u = 30 reverse [m/s]

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)

Se si adotta il modello di pneumatico lineare ( = ) visto nel punto 6, anche le equazioni


(2.7.1) e (2.7.2) risultano lineari e per esse, sempre sotto ipotesi di angoli piccoli, possibile
risolvere il sistema in forma chiusa.
Il modello di penumatico proposto da Dugoff di tipo non lineare. Questo obbliga ad un approccio di tipo numerico nel processo di integrazione che, nella fattispecie, viene eseguito
mediante la funzione ODE45 del software Matlab.
Si propone di seguito il confronto tra le simulazioni della manovra a colpo di sterzo sulla vettura Infiniti G35, eseguite prima nellipotesi di pneumatico non lineare e poi lineare, alle velocit u = 15 [m/s] e u = 30 [m/s]. Si ripetono i calcoli invertendo le rigidezze di deriva tra avantreno e retrotreno e arretrando il baricentro di 0.2 [m].
Lalgoritmo numerico ODE45 richiede innanzitutto la definizione del set di equazioni differenziali da integrare. A tal proposito sono state dichiarate le seguenti functions:
Modello non lineare di Dugoff
function xd = dugoff7(t,x, delta, Vx)
x1=x(1); %velocit laterale, v
x2=x(2); %velocit di imbardata, r
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)); %Carico all'avantreno
Fzr=((m*9.807*a)/(l)); %Carico al retrotreno
Caf=Ca;
Car=Cp;
mu=1.8; %Si ipotizza uguale si sull'avantreno che sul retrotreno
af=(-delta+(atan((a*x2)+(x1))/Vx)); %Angolo di deriva anteriore
ar=(atan(((-b*x2)+(x1))/Vx));
%Angolo di deriva posteriore
zf=(mu*Fzf/(2*Caf*abs(tan(af))));

%lambda di Dugoff avantreno

if zf<1
ff=zf*(2-zf);
else
ff=1;
end
Fyf=(-Caf*tan(af)*ff);

%Forza laterale di Dugoff sull'avantreno

zr=(mu*Fzr/(2*Car*abs(tan(ar))));
if zr<1
fr=zr*(2-zr);
else
fr=1;
end
Fyr=(-Car*tan(ar)*fr);

%lambda di Dugoff retrotreno

x1d=((Fyf/m)*cos(delta))+(Fyr/m)-(Vx*x2);
x2d=(a/Iz)*Fyf*cos(delta)-((b/Iz)*Fyr);

%Prima equazione della dinamica, v punto


%Seconda equazione della dinamica, r punto

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

%Forza laterale di Dugoff sul retrotreno

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')

Modello non lineare vs lineare 15 [m/s]

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]

Modello non lineare vs lineare reverse 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]

Modello non lineare vs lineare 30 [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]

Modello non lineare vs lineare reverse 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

a) Simula la manovra a 15 / (DS=0.4) e 30 / (DS=0.2). Plotta il percorso seguito


dall'auto su stesso grafico.
b) Scambia rigidezza anteriore e posteriore e sposta il centro di massa 20 cm indietro.
Ripeti il punto a).
Le equazioni di equilibrio dinamico del veicolo classiche, scritte in forma matriciale, hanno
espressione:
} = [] {()} + []
{()

(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

Passiamo, ora, a descrivere lo script.


Si introduce un vettore tempo (0, 3) [], diviso in 1000 unit, e si inizializza un ciclo for per
calcolare il vettore delta, tenendo conto delle condizioni di esistenza richieste:
() = sin(2 ( 0.5))
() = 0

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);

Il risultato del sistema di equazioni differenziali del tipo:


()
=(
)
()
con () ed () che sono, rispettivamente, le velocit laterale e di imbardata del veicolo. Si
procede ad integrare questultima al fine di ottenere il valore dellangolo di imbardata.
dt=3/1000;%intervallo di integrazione
psi=cumsum(y(:,2))*dt;%angolo di imbardata in radianti
vlat=y(:,1);
% Traiettoria della vettura al variare della posizione del semipasso anteriore
uvector=u*ones(length(tempo),1);
vg = [uvector,vlat]';
% Vettore velocit del baricentro nel sistema di
riferiemnto assi-veicolo

Conoscendo il valore dellangolo di imbardata si pu ricavare, istante per istante, la matrice


di rotazione R e, cos, definire il vettore velocit del baricentro nel sistema di riferimento assistrada.
Si definiscono, istante per istante, le coordinate x ed y della traiettoria, ottenute moltiplicando
li-esimo valore della velocit per listante di tempo dt.
for i=2:length(t)
R = [cos(psi(i)), -sin(psi(i))
sin(psi(i)) , cos(psi(i))];
X15(1)=0;
Y15(1)=0;
V(:,i)= R*vg(:,i);
strada
Xpunto(i)=V(1,i);
Ypunto(i)=V(2,i);

% Definizione della matrice di rotazione R


% Coordinata X della posizione iniziale
% Coordinata Y della posizione iniziale
% Vettore velocit del baricentro nel sistema assi-

X15(i)=X15(i-1)+Xpunto(i)*dt;
Y15(i)=Y15(i-1)+Ypunto(i)*dt;

% Coordinata X della traiettoria


% Coordinata Y della traiettoria

end

Si procede, poi, a ripetere lintera operazione per il valore di velocit longitudinale = 30 [ ],


e a plottare le traiettorie su uno stesso grafico.
figure(1)
plot(Y15,X15,'Color','red','linewidth',1)
hold on
plot(Y30,X30,'Color','blue','linewidth',1)
grid on
title('Traiettoria della vettura [m]')

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.

Fig. 2.8.1 Traiettoria della vettura caso a)

Lo spostamento laterale del baricentro risulta pari a circa 20 cm in entrambi i casi,


leggermente maggiore nel caso in cui la velocit del veicolo pari a 30 m/s. Si noti come, in
questultimo caso, la risposta del sistema (traiettoria) presenti un moderato overshoot, della
durata di circa 0.3 s, terminato il quale il sistema si porta a regime. Nel caso u= 15 m/s, invece,
non sono emerse sovraelongazioni della risposta.

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.

Fig. 2.8.2: Traiettoria della vettura caso b)

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)

Fig.2.8.3: Traiettoria veicolo caso b) simulazione a 10 secondi

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;

%
%
%
%
%
%
%

Accelerazione di gravit [m/s^2]


Massa del veicolo[kg]
Semipasso anteriore [m]
Semipasso posteriore [m]
Passo del veicolo [m]
carico normale agente sullo pneumatico amteriore
carico normale agente sullo pneumatico posteriore

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

Grafico della rigidezza di deriva in funzione del carico verticale


figure(2)
plot(Fz_pacejka_BCD,BCD2)
grid on
set(gcf,'color','white')
title('Rigidezza di deriva vs. F_z')
xlabel('F_z [kN]','FontSize', 15), ylabel('C [N/deg]','FontSize', 15)

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

Grafico della forza laterale di picco in funzione del carico verticale


figure(3)
plot(Fz_pacejka_D,D2)
grid on
set(gcf,'color','white')
title('Forza laterale di picco vs. F_z')
xlabel('F_z [kN]','FontSize', 15), ylabel('F_y [N]','FontSize', 15)

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

In presenza di trasferimento di carico, invece, ipotizzando un z di 1000 N che porta ad avere


un carico verticale sullo pneumatico interno = 3000 ed un carico verticale sullo
pneumatico esterno = 5000 cui corrispondono due diverse rigidezze di deriva
e e, conseguentemente, due valori diversi di forza laterale
, si ottiene:

= +

Assumendo uno stesso angolo di deriva


= =
si ottiene:

= + = ( + )

In particolare, considerato landamento della curva meno che lineare, si ha che:


<

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

Potrebbero piacerti anche