• Non ci sono risultati.

PROGRAMMI MATLAB OSCILLAZIONI DEL FLUSSO

N/A
N/A
Protected

Academic year: 2021

Condividi "PROGRAMMI MATLAB OSCILLAZIONI DEL FLUSSO"

Copied!
8
0
0

Testo completo

(1)

PROGRAMMI MATLAB

OSCILLAZIONI DEL FLUSSO

Nelle pagine che seguono vengono riportati i programmi MatLab che sono stati

utilizzati nel corso della modellizzazione del circuito per il calcolo della frequenza

naturale delle oscillazioni del flusso, ed in particolare:

1. Programma usato per la caratterizzazione della valvola per il singolo valore

della pressione dell’olio considerato. Si fornisce un esempio a titolo

indicativo.

(2)

%Costruzione vettore DELTAp(valvola) - Q %30 bar clear all; load A.txt; load B.txt; load C.txt; load D.txt; load E.txt; load F.txt; load G.txt; load H.txt; Mean1 = mean(A,1); Mean2 = mean(B,1); Mean3 = mean(C,1); Mean4 = mean(D,1); Mean5 = mean(E,1); Mean6 = mean(F,1); Mean7 = mean(G,1); Mean8 = mean(H,1); Deltap(1) = Mean1(2); Deltap(2) = Mean2(2); Deltap(3) = Mean3(2); Deltap(4) = Mean4(2); Deltap(5) = Mean5(2); Deltap(6) = Mean6(2); Deltap(7) = Mean7(2); Deltap(8) = Mean8(2);

%Inizializzazione delle dimensioni significative (mm) D_s = 150; %Diametro del condotto si mandata

A_1 = (150/2)^2*pi; %Area della sezione del condotto di mandata l_s = 2000; %Lunghezza del condotto di mandata

D_d = 100; %Diametro del condotto di scarico

A_2 = (100/2)^2*pi; %Area della sezione del condotto di scarico l_d = 3000; %Lunghezza del condotto di scarico

l_r1 = 50; %Lunghezza del raddrizzatore di flusso sulla mandata l_r2 = 50; %Lunghezza del raddrizzatore di flusso sullo scarico l_v = 1000; %Lunghezza della silent throttle valve

r_t1 = 81; %Raggio dell'induttore (nel caso di falsa girante) eps_p = 0.2; %Valore della rugosità superficiale dei tubi eps_r = 0.1; %Valore della rugosità superficiale dell'honeycomb %nei raddrizzatori

Qf = [3.41 5.33 7.27 9.14 10.99 12.80 14.60 16.23]; %Calcolo del numero di Reynolds

ni_H2O = 10; %Viscosità dell'acqua supposta costante [mm^2/s] Re_s = (4/(pi*D_s*ni_H2O))*Qf; %mandata

(3)

Re_d = (4/(pi*D_d*ni_H2O))*Qf; %scarico

Re_r1 = (Qf/A_1)*5/ni_H2O; %raddrizzatore 1 con tubini da 5 mm Re_r2 = (Qf/A_2)*5/ni_H2O; %raddrizzatore 2 con tubini da 5 mm %Calcolo dei valori del coefficiente di attrito per i vari componenti %Si è fatto uso dell'equazione di Churchill per tubi

Re = Re_s; for i=1:length(Qf) eps_D(i) = eps_p/D_s; end; A=(2.457*log(1./((7./Re).^0.9+0.27*(eps_D)))).^16; B=(37530./Re).^16; f_s = 8*((8./Re).^12+(1./(A+B).^(3/2))).^(1/12); Re = Re_d; for i=1:length(Qf) eps_D = eps_p/D_d; end; A=(2.457*log(1./((7./Re).^0.9+0.27*(eps_D)))).^16; B=(37530./Re).^16; f_d = 8*((8./Re).^12+(1./(A+B).^(3/2))).^(1/12); Re = Re_r1; for i=1:length(Qf) eps_D = eps_r/5; end; A=(2.457*log(1./((7./Re).^0.9+0.27*(eps_D)))).^16; B=(37530./Re).^16; f_r1 = 8*((8./Re).^12+(1./(A+B).^(3/2))).^(1/12); Re = Re_r2; for i=1:length(Qf) eps_D = eps_r/5; end; A=(2.457*log(1./((7./Re).^0.9+0.27*(eps_D)))).^16; B=(37530./Re).^16; f_r2 = 8*((8./Re).^12+(1./(A+B).^(3/2))).^(1/12);

K_s = f_s*(l_s/D_s+30); %30 è in entrambi i casi il valore del diametro K_d = f_d*(l_d/D_d+90); %equivalente per un raccordo a gomito di 90° %Nel condotto di scarico ci sono 3 gomiti

K_r1 = f_r1*(l_r1/5); K_r2 = f_r2*(l_r2/5); %Calcolo di K_v DeltaH_d = 0.5*K_d.*(Qf./A_2).^2; DeltaH_s = 0.5*K_s.*(Qf./A_1).^2; DeltaH_r1 = 0.5*K_r1.*(Qf./A_1).^2; DeltaH_r2 = 0.5*K_r2.*(Qf./A_2).^2;

DeltaH_b1 = 0.5*0.5*(Qf./A_1).^2; %Perdite dovute all'uscita dal bollitore DeltaH_b2 = 0.5*1*(Qf./A_2).^2; %Perdite dovute all'ingresso nel bollitore

DeltaH_v = Deltap-DeltaH_d-DeltaH_s-DeltaH_r1-DeltaH_r2-DeltaH_b1-DeltaH_b2; LOGDELTAp = log(Deltap);

(4)

LOGQf = log(Qf); N = polyfit(LOGQf,LOGDELTAp,1); loglog (Qf,Deltap); xlabel('Portata (l/s)'); ylabel('DELTAp (atm)'); grid on;

save 30.txt N -ascii -tabs;

2. Modello numerico del circuito e calcolo della frequenza naturale delle

oscillazioni del flusso. Si fornisce un esempio a titolo indicativo.

%Script per il calcolo della frequenza naturale del circuito clear all;

%Inizializzazione delle dimensioni significative (mm) D_s = 150; %Diametro del condotto si mandata

A_1 = (150/2)^2*pi; %Area della sezione del condotto di mandata l_s = 2000; %Lunghezza del condotto di mandata

D_d = 100; %Diametro del condotto di scarico

A_2 = (100/2)^2*pi; %Area della sezione del condotto di scarico l_d = 3000; %Lunghezza del condotto di scarico

l_r1 = 50; %Lunghezza del raddrizzatore di flusso sulla mandata l_r2 = 50; %Lunghezza del raddrizzatore di flusso sullo scarico l_v = 1000; %Lunghezza della silent throttle valve

r_t1 = 81; %Raggio dell'induttore (nel caso di falsa girante) eps_p = 0.2; %Valore della rugosità superficiale dei tubi eps_r = 0.1; %Valore della rugosità superficiale dell'honeycomb %nei raddrizzatori %Input: OMEGA = 2000; Qf = [3 6 10 12 14 16 17.5 18.5 20 21 22.5]; PERC = Qf./(max(Qf)); L_D_v = -21.5.*PERC+36.5; D_v = 0.6.*l_v./L_D_v; A_v = (pi/4).*D_v.^2; Qf = Qf.*1.0e6; %Conversione a mm^3/s

OMEGA = OMEGA*2*pi/60; %Conversione a rad/sec FI = Qf./(pi*r_t1^3*OMEGA);

%Calcolo di PSI e della derivata di PSI rispetto a PHI (NOTA:best fit!)

FI_vett = [0.067 0.065 0.064 0.063 0.062 0.06 0.059 0.057 0.055 0.052 0.05 0.048 0.046 0.044 0.042 0.039 0.038];

FI_vett = [FI_vett 0.036 0.035 0.033 0.032 0.031 0.029 0.028 0.026 0.025 0.023 0.022 0.02 0.019 0.018 0.016 0.015];

(5)

FI_vett = [FI_vett 0.013 0.012 0.011 0.01 9.266e-3 8.389e-3 7.207e-3 6.406e-3 5.567e-3 4.766e-3 4.024e-3 3.356e-3];

FI_vett = [FI_vett 2.631e-3 1.907e-3 1.601e-3 1.335e-3 1.068e-3];

PSI_vett = [0.125 0.126 0.125 0.126 0.128 0.129 0.129 0.131 0.134 0.135 0.136 0.139 0.138 0.139 0.14 0.139]; PSI_vett = [PSI_vett 0.142 0.139 0.139 0.136 0.143 0.143 0.143 0.145 0.142 0.142 0.14 0.141 0.138 0.144 0.137]; PSI_vett = [PSI_vett 0.141 0.137 0.139 0.138 0.138 0.138 0.137 0.133 0.134 0.138 0.137 0.137 0.14 0.141 0.142 0.142 0.142 0.144 0.146]; N = polyfit(FI_vett,PSI_vett,5); PSI = polyval(N,FI); if min(PSI)<0

disp('ATTENZIONE-SI STANNO CONSIDERANDO VALORI FUORI DALL''INVILUPPO FI-PSI DELL''INDUTTORE!!');

end;

dPSI_dFI = (5*N(1)*FI.^4+4*N(2)*FI.^3+3*N(3)*FI.^2+2*N(4)*FI+N(5)); %Calcolo del numero di Reynolds

ni_H2O = 10; %Viscosità dell'acqua supposta costante [mm^2/s] Re_s = (4/(pi*D_s*ni_H2O))*Qf; %mandata

Re_d = (4/(pi*D_d*ni_H2O))*Qf; %scarico

Re_r1 = (Qf/A_1)*5/ni_H2O; %raddrizzatore 1 con tubini da 5 mm Re_r2 = (Qf/A_2)*5/ni_H2O; %raddrizzatore 2 con tubini da 5 mm %Calcolo dei valori del coefficiente di attrito per i vari componenti %Si è fatto uso dell'equazione di Churchill per tubi

Re = Re_s; for i=1:length(Qf) eps_D(i) = eps_p/D_s; end; A=(2.457*log(1./((7./Re).^0.9+0.27*(eps_D)))).^16; B=(37530./Re).^16; f_s = 8*((8./Re).^12+(1./(A+B).^(3/2))).^(1/12); Re = Re_d; for i=1:length(Qf) eps_D = eps_p/D_d; end; A=(2.457*log(1./((7./Re).^0.9+0.27*(eps_D)))).^16; B=(37530./Re).^16; f_d = 8*((8./Re).^12+(1./(A+B).^(3/2))).^(1/12); Re = Re_r1; for i=1:length(Qf) eps_D = eps_r/5; end; A=(2.457*log(1./((7./Re).^0.9+0.27*(eps_D)))).^16; B=(37530./Re).^16; f_r1 = 8*((8./Re).^12+(1./(A+B).^(3/2))).^(1/12);

(6)

Re = Re_r2; for i=1:length(Qf) eps_D = eps_r/5; end; A=(2.457*log(1./((7./Re).^0.9+0.27*(eps_D)))).^16; B=(37530./Re).^16; f_r2 = 8*((8./Re).^12+(1./(A+B).^(3/2))).^(1/12);

K_s = f_s*(l_s/D_s+30); %30 è in entrambi i casi il valore del diametro K_d = f_d*(l_d/D_d+90); %equivalente per un raccordo a gomito di 90° %Nel condotto di scarico ci sono 3 gomiti

K_r1 = f_r1*(l_r1/5); K_r2 = f_r2*(l_r2/5); %Calcolo di K_v DeltaH_p = PSI*(OMEGA*r_t1)^2; DeltaH_d = 0.5*K_d.*(Qf./A_2).^2; DeltaH_s = 0.5*K_s.*(Qf./A_1).^2; DeltaH_r1 = 0.5*K_r1.*(Qf./A_1).^2; DeltaH_r2 = 0.5*K_r2.*(Qf./A_2).^2;

DeltaH_b1 = 0.5*0.5*(Qf./A_1).^2; %Perdite dovute all'uscita dal bollitore DeltaH_b2 = 0.5*1*(Qf./A_2).^2; %Perdite dovute all'ingresso nel bollitore

DeltaH_v = DeltaH_p-DeltaH_d-DeltaH_s-DeltaH_r1-DeltaH_r2-DeltaH_b1-DeltaH_b2; K_v = DeltaH_v./(0.5*(Qf./A_v).^2);

if min(K_v)<0

disp('ATTENZIONE-PERDITE ECCESSIVE-(H_v<0!!)'); end;

%Calcolo delle resistenze e delle induttanze R_s = K_s.*(Qf./A_1^2); R_r1 = K_r1.*(Qf./A_1^2); R_b1 = 0.5*(Qf./A_1^2); R_d = K_d.*(Qf./A_2^2); R_r2 = K_r2.*(Qf./A_2^2); R_b2 = 1*(Qf./A_2^2); R_v = K_v.*(Qf./(A_v.^2)); R_p = -(OMEGA*r_t1)/(A_1)*(dPSI_dFI)+Qf.*(1/A_1^2-1/A_2^2); L_s = l_s/A_1; L_r1 = l_r1/A_1; L_d = l_d/A_2; L_r2 = l_r2/A_2; L_v = 0.6*l_v./A_v; omega = (R_s+R_r1+R_b1+R_d+R_r2+R_b2+R_v+R_p)./(L_s+L_r1+L_d+L_r2+L_v); %Output figure plot(FI,omega); axis([0 0.08 0 50]); title('Velocità di rotazione 2000rpm'); xlabel('Portata [PHI]'); ylabel('Frequenza naturale [Hz]');

(7)

disp('La frequenze naturali sono'); disp(omega); for i=1:length(Qf) A(1,i) = FI(i); A(2,i) = omega(i); end;

(8)

Riferimenti

Documenti correlati

Lo apriamo con un editor (ad esempio digitando sulla shell di Linux pico diary). Il file contiene quanto apparso sulla shell di Matlab/Octave ad eccezione del prompt

Per essere eseguiti i programmi devono essere presenti nella cartella di lavoro (current directory).. Per capire qual è la cartella attuale esiste il

I Per salvare tutte e solo alcune variabili x , y e z della sessione di lavoro in un file (con estensione.mat) di nome nomefile si utilizza il comando save..  save

I primi due input del comando linspace corrispondono agli estremi del vettore desiderato, mentre il terzo input corrisponde al numero totale di elementi che si desiderano nel

dell’una con quelle dell’altra, si è potuto capire quali frammenti mancavano in ogni filmato. Si tratta di.. posporre; si è detta però molto dispiaciuta e ha inviato un

ha alcun effetto sull’intorno chimico dei protoni. Nel caso delle prove compiute utilizzando il DMSO-d6, solvente in grado di rompere il legame idrogeno, si

In realtà, vi sono due categorie semantiche opposte a proposito di confine: la prima coppia è quella “frontiera-recinto” (aggressiva e conquistatrice); la seconda è

Ŏnŏsashilgwa kwanjŏm(The Current State Cultural Education for Teaching Korean Language in Japan and Related Issues –Focusing on Korean Education as a Second