• Non ci sono risultati.

1. Appendice al capitolo 5 A. Appendice

N/A
N/A
Protected

Academic year: 2021

Condividi "1. Appendice al capitolo 5 A. Appendice"

Copied!
46
0
0

Testo completo

(1)

261

A. Appendice

1. Appendice al capitolo 5

Qui di seguito vengono riportati esempi di programmi in linguaggio Matlab usati per la riduzione

dei dati delle prestazioni non cavitanti e cavitanti dell’induttore DAPROT3. Il primo rappresenta

le prestazioni non cavitanti a 1500 rpm:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% % % % Daprot 3 performance 1500 % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% clear all close all clc

% definizione di cartella principale main_folder=pwd; % nome pompa nome='Daprot3'; % dati geometria r_2=0.081; % in [m]

% area frontale di passaggio dell'acqua Area=pi*(r_2)^2; % in [m^2]

% velocità angolare della pompa Om=1500; % in rpm

% velocità angolare della pompa in rad/s Omega=Om*2*pi/60; % in [rad/s]

% numero di scan rate

(2)

262

% durata della prova t=2; % in [s]

% samples per prova Samples=num*t;

% Caricamento dei dati di pressione e di portata del flusso (esegui un % controllo delle

% funzioni di matlab)

% prendo il file offset presente nella cartella offset 1500

dati=load('C:\\Users\\andrea\\Documents\\tesi\\Sperimentazione\\Daprot3\\NC\\FREDDE\\NC_1500\\D APROT3_1500_COLD_prova_offset.txt');

P_ingresso=[]; % pressione in ingresso (1)

P_ingresso_off=[]; % pressione in ingresso offset(1)

dP_1bar=[]; % differenziale tra il diffusore della voluta mediato e lo scarico della voluta (2)

dP_1bar_off=[]; % differenziale tra il diffusore della voluta mediato e lo scarico della voluta all'offset(2) dP_7bar=[]; % differenziale tra l'ingresso e il diffusore della voluta mediato (3)

dP_7bar_off=[]; % differenziale tra l'ingresso e il diffusore della voluta mediato all'offset (3) P_in_Recesso=[]; % pressione in ingresso RECESSO (4)

P_in_Recesso_off=[]; % pressione in ingresso RECESSO offset (4)

dP_5bar=[]; % differenziale tra l'ingresso e l'uscita della camera di prova (27)

dP_5bar_off=[]; % differenziale tra l'ingresso e l'uscita della camera di prova all'offset(27) P_diffusore=[]; % pressione media sul diffusore della voluta (28)

P_diffusore_off=[]; % pressione media sul diffusore della voluta all'offset(28)

% VALORI MEDI OFFSET

% media offset canale (1)

P_ingresso_off=dati(:,1);

media1_off=mean(P_ingresso_off);

% media offset canale (2)

dP_1bar_off=dati(:,2);

media2_off=mean(dP_1bar_off);

% media offset canale (3)

dP_7bar_off=dati(:,3);

media3_off=mean(dP_7bar_off);

% media offset canale (4)

P_in_Recesso_off=dati(:,4);

(3)

263

% media offset canale (27)

% dP_5bar_off=dati(:,27);

% media27_off=mean(dP_5bar_off); %

% media offset canale (28)

% P_diffusore_off=dati(:,28);

% media28_off=mean(P_diffusore_off);

% Valori medi di pressione Pressione=[]; for i=1:9; dati_i=load(sprintf('C:\\Users\\andrea\\Documents\\tesi\\Sperimentazione\\Daprot3\\NC\\FREDDE\\NC_ 1500\\DAPROT3_1500_COLD_prova_0%i.txt',i)); % medie P_ingresso=dati_i(:,1); media_ingresso_i=mean(P_ingresso); dP_1bar=dati_i(:,2); media_differenziale_1bar_i=mean(dP_1bar); dP_7bar=dati_i(:,3); media_differenziale_7bar_i=mean(dP_7bar); P_in_Recesso=dati_i(:,4); media_in_Recesso_i=mean(P_in_Recesso); % dP_5bar=dati_i(:,27); % media_differenziale_5bar_i=mean(dP_5bar); % P_diffusore=dati_i(:,28); % media_P_diffusore_i=mean(P_diffusore);

%costruzione matrice di pressione Pressione(i,1)=media_ingresso_i; Pressione(i,2)=media_differenziale_1bar_i; Pressione(i,3)=media_differenziale_7bar_i; Pressione(i,4)=media_in_Recesso_i; % Pressione(i,5)=media_differenziale_5bar_i; % Pressione(i,6)=media_P_diffusore_i; end for i=10:1:44; dati_i=load(sprintf('C:\\Users\\andrea\\Documents\\tesi\\Sperimentazione\\Daprot3\\NC\\FREDDE\\NC_ 1500\\DAPROT3_1500_COLD_prova_%i.txt',i)); % medie P_ingresso=dati_i(:,1); media_ingresso_i=mean(P_ingresso); dP_1bar=dati_i(:,2); media_differenziale_1bar_i=mean(dP_1bar);

(4)

264

dP_7bar=dati_i(:,3); media_differenziale_7bar_i=mean(dP_7bar); P_in_Recesso=dati_i(:,4); media_in_Recesso_i=mean(P_in_Recesso); % dP_5bar=dati_i(:,27); % media_differenziale_5bar_i=mean(dP_5bar); % P_diffusore=dati_i(:,28); % media_P_diffusore_i=mean(P_diffusore);

%costruzione matrice di pressione Pressione(i,1)=media_ingresso_i; Pressione(i,2)=media_differenziale_1bar_i; Pressione(i,3)=media_differenziale_7bar_i; Pressione(i,4)=media_in_Recesso_i; % Pressione(i,5)=media_differenziale_5bar_i; % Pressione(i,6)=media_P_diffusore_i; end

% MATRICE DELLE PRESSIONI COSTRUITA

% Caricamento delle condizioni

condizioni=load('C:\Users\andrea\Documents\tesi\Sperimentazione\Daprot3\NC\FREDDE\NC_1500.txt');

% Calcolo dei coefficienti di flusso per ciascuna prova phi= % (Q/(A*Omega*r)) phi=[]; for i=1:44 phi(i,1)=condizioni(i,1)*(10^(-3))/(pi*Omega*(r_2^3)); end T_1=[];

% Temperatura media della prova for i=1:44

T_1(i,1)=condizioni(i,2); end;

% Temperatura dell'acqua nel SI T=T_1+273.15 ; % in K

% Ritorno ad operare nella cartella madre cd (main_folder);

% Densità dell'acqua alla temperatura media della prova rho=waterdensity(T_1); % in kg/m^3

% Pressione di vapore dell'acqua alla temperatura media della prova p_v=watervapourpressure(T_1) ; % in Pascal

(5)

265

% calcolo della prevalenza TOTALE (POMPA+DIFFUSORE) psi=[]; for i=1:44 psi(i,1)=(Pressione(i,2)*10^(5))/((rho(i)*(Omega*r_2)^2)); end

% calcolo della prevalenza della pompa psi_7bar=[]; for i=1:44 psi_7bar(i,1)=(Pressione(i,3)*10^(5))/((rho(i)*(Omega*r_2)^2)); end

% Plottaggio dati psi phi figure ('Name','\psi-\phi')

plot(phi,psi,'<k','MarkerFaceColor','b','MarkerSize',6) hold on

plot(phi,psi_7bar,'ok','MarkerFaceColor','g','MarkerSize',6) title('Daprot3 Prove NON cavitanti')

xlabel('\phi') ylabel('\Psi')

legend('\omega = 1500 rpm , \Deltap 1 bar','\omega = 1500 rpm , \Deltap 7 bar') grid on box on axis([0 0.1 0 0.3]) filesave='C:\Users\andrea\Documents\tesi\Sperimentazione\Vampire prestazioni\Daprot3_prove_NC\prestazioni_1500_1_mm.mat'; save(filesave,'phi','psi','psi_7bar');

a seguire vengono mostrati i programmi utilizzati per le prestazioni cavitanti nelle prove

continue:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%

%

% DAPROT3 cavitanti 2500 rpm Fredde PORTATA 28.41 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%% close all clear all clc main_folder=pwd;

(6)

266

% nome pompa nome='DAPROT3'; % velocità angolare in rpm Om=2500;

% velocità angolare in rad/s Omega=Om*2*pi/60; % raggio di riferimento r_2=0.081; % in [m] % Area di passaggio Area=pi*r_2^2; % in [m^2]

% numero di samples al secondo num=1000; % [1/s]

% durata della prova in secondi t=240; % [s]

% numero totale di campioni N=num*t;

% Battente Idrostatico Batt_idro=0.06; % in [bar]

% creazione della matrice di pressione

P_ingresso=[]; % pressione in ingresso (1)

P_ingresso_off=[]; % pressione in ingresso offset(1)

Pressione=[]; % differenziale tra l'ingresso e l'uscita della camera di prova (27)

dP_5bar_off=[]; % differenziale tra l'ingresso e l'uscita della camera di prova all'offset(27)

OFF=load('C:\Users\andrea\Documents\tesi\Sperimentazione\Daprot3\Cavitating\FREDDE\CAV_2500_co ntinue_COLD\DAPROT3_2500_CAV_COLD_Q_28_41_offset.txt');

dP_5bar_off=mean(OFF(:,2)); % valore medio della pressione all'offset

P_ingresso_off=mean(OFF(:,1)); % valore medio di pressione in ingresso all'offset

Prova=load('C:\Users\andrea\Documents\tesi\Sperimentazione\Daprot3\Cavitating\FREDDE\CAV_2500_c ontinue_COLD\DAPROT3_2500_CAV_COLD_Q_28_41_continua.txt');

Pressione=Prova(:,2);

P_ingresso=Prova(:,1)-Batt_idro;

% caricamento delle condizioni della prova

condizioni=load('C:\Users\andrea\Documents\tesi\Sperimentazione\Daprot3\Cavitating\FREDDE\CAV_25 00_continue_COLD\Condizioni_prove.txt');

% Phi è definito come Q/(Omega*r_2^3)

% i valori del flussimetro per controllare se ci sono fluttuazioni nella % portata sono alla colonna 25 del file di prova

(7)

267

Q=[]; % la portata letta dal flussimetro Q=Prova(:,25);

% correzione della portata che dipende dal valore letto sul flussimetro Portata=[]; % in [l/s] for i=1:240000 Portata(i,1)=condizioni(1,4)*(Q(i)-2)/8; end; phi_misurato=[]; for i=1:240000 phi_misurato(i)=Portata(i)/(Omega*r_2^3); end; tempo=linspace(0,240,240000);

% il coefficiente di prevalenza Psi è definito come % Psi=pressione*10^5/(rho*(Omega*r_2)^2)

% Temperatura media della prova

T_1=condizioni(1,2);

% Temperatura dell'acqua nel SI T=T_1+273.15 ; % in K

% Densità dell'acqua alla temperatura media della prova rho=waterdensity(T_1); % in kg/m^3

% Pressione di vapore dell'acqua alla temperatura media della prova p_v=watervapourpressure(T_1) ; % in Pascal Psi=[]; for i=1:240000; Psi(i,1)=Pressione(i,1)*10^5/(rho*(Omega*r_2)^2); end; % calcolo di sigma sigma=[]; for i=1:240000; sigma(i,1)=(P_ingresso(i,1)*10^5-p_v)/(0.5*rho*(Omega*r_2)^2); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%ZONA CON SOVRAPPOSIZIONE%%%%%%%%%%%%%%%%%%%%%%%%%%

% PARAMETRO DI CAMPIONAMENTO c dove c*(n°dei secondi a cui vogliamo % campionare)=4 costante

(8)

268

c=1;

% PARAMETRO DI RICOPRIMENTO r definito da 0 a 1 dove 1 sta per il 100% % funziona con [r,z]= [0.5 1] [0.75 3] [0.25 1] r=0.75;z=3; Psi_mediato=[]; P_ingresso_mediato=[]; phi_mediato=[]; for K=1:(60*c/(1-r))-z; % index_in=(1+(K-1)*(4000/c)*(1-r)); % index_fin=(4000/c+(K-1)*(4000/c)*(1-r)); % P_ingresso_mediato(K,1)=mean(P_ingresso(index_in:index_fin)); index=0; for i=(1+(K-1)*(4000/c)*(1-r)):(4000/c+(K-1)*(4000/c)*(1-r)); index=index+1; S(index,1)=P_ingresso(i,1); P(index,1)=Psi(i,1); q(index,1)=Portata(i,1); end; P_ingresso_mediato(K,1)=mean(S); Psi_mediato(K,1)=mean(P); phi_mediato(K,1)=mean(q); clear S P q end sigma_mediato=[]; for i=1:(60*c/(1-r))-z; sigma_mediato(i,1)=(P_ingresso_mediato(i,1)*10^5-p_v)/(0.5*rho*(Omega*r_2)^2); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%

% plottaggio Pressione nel tempo figure ('Name','Pressione-tempo')

plot(tempo,P_ingresso,'sm','MarkerFaceColor','m') title('DAPROT3 Prove CAVITANTI 2500 rpm') xlabel('Tempo (s)')

ylabel('Pressione in ingresso (bar)') legend('\phi = 0.065') hold on grid on box on axis([0 250 0.1 1.6])

% plottaggio Phi nel tempo

(9)

269

plot(tempo,phi_misurato,'sm','MarkerFaceColor','m') title('DAPROT3 Prove CAVITANTI 2500 Q 28.41') xlabel('Tempo') ylabel('\phi') legend('\phi = 0.065') hold on grid on box on axis([0 240 0 100])

% plottaggio Phi/Phi_nominale nel tempo

figure ('Name','Phi_misurato/Phi_nominale-tempo') plot(tempo,phi_misurato/Phi,'sm','MarkerFaceColor','m') title('DAPROT3 Prove CAVITANTI 2500 Q 28.41')

xlabel('Tempo') ylabel('\phi') legend('\phi = 0.065') hold on grid on box on axis([0 240 0 3])

% plottaggio Psi sigma % figure ('Name','psi_sigma')

% plot(sigma,Psi,'sk','MarkerFaceColor','y') % title('DAPROT3 Prove CAVITANTI 2500 Q 19.89') % xlabel('\sigma') % ylabel('\psi') % legend('\psi-\sigma') % hold on % grid on % box on % axis([0 0.55 0 0.55])

% plottaggio Psi sigma_mediato figure ('Name','psi_sigma_mediato')

plot(sigma_mediato,Psi_mediato,'sk','MarkerFaceColor','m') title('DAPROT3 Prove CAVITANTI 2500 Q 28.41')

xlabel('\sigma') ylabel('\psi') legend('\phi = 0.065') hold on grid on box on axis([0 0.5 0 0.4])

% plottaggio Psi/Psi_nominale sigma_mediato figure ('Name','psi_sigma_mediato')

plot(sigma_mediato,Psi_mediato/Psi(1,1),'sk','MarkerFaceColor','m') title('DAPROT3 Prove CAVITANTI 2500 Q 28.41')

(10)

270

xlabel('\sigma') ylabel('\psi/\psi_0') legend('\phi = 0.065') hold on grid on box on axis([0 0.55 0 1.3]) filesave='C:\Users\andrea\Documents\tesi\Sperimentazione\VAMPIRE\CAVITANTI\DAPROT3_CAV_COLD\c av_cold_28_41.mat'; save(filesave,'sigma_mediato','Psi_mediato','phi_mediato');

mentre il seguente viene utilizzato per le prove discrete:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%

% %

% Daprot3 cavitanti discrete 2500 phi 0.065 % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% clear all close all clc

% definizione di cartella principale main_folder=pwd; % nome pompa nome='DAPROT3'; % dati geometria r_2=0.081; % in [m]

% area frontale di passaggio dell'acqua Area=pi*(r_2)^2; % in [m^2]

% velocità angolare della pompa Om=2500; % in rpm

% velocità angolare della pompa in rad/s Omega=Om*2*pi/60; % in [rad/s]

% numero di scan rate

(11)

271

% durata della prova t=2; % in [s]

% samples per prova Samples=num*t; % battente idrostatico Bat_idro=0.06;

% Caricamento dei dati di pressione e di portata del flusso (esegui un % controllo delle

% funzioni di matlab)

% prendo il file offset presente nella cartella VAMPIRE

dati=load('C:\Users\andrea\Documents\tesi\Sperimentazione\Daprot3\Cavitating\FREDDE\CAV_2500_dis crete_COLD\dati_off_phi_0_065\DAPROT3_2500_CAV_COLD_Q_28_41_discreta_offset.txt');

P_ingresso=[]; % pressione in ingresso (1)

P_ingresso_off=[]; % pressione in ingresso offset(1)

dP_5bar=[]; % differenziale tra l'ingresso e l'uscita della camera di prova (27)

dP_5bar_off=[]; % differenziale tra l'ingresso e l'uscita della camera di prova all'offset(27)

% VALORI MEDI OFFSET

% media offset canale (1)

P_ingresso_off=dati(:,1);

media1_off=mean(P_ingresso_off);

% media offset canale (27)

dP_5bar_off=dati(:,2);

media27_off=mean(dP_5bar_off);

% portata sono alla colonna 25 del file di prova Q=[]; % la portata letta dal flussimetro

% Valori medi di pressione Pressione=[]; for i=1:9; dati_i=load(sprintf('C:\\Users\\andrea\\Documents\\tesi\\Sperimentazione\\Daprot3\\Cavitating\\FREDD E\\CAV_2500_discrete_COLD\\dati_phi_0_065\\DAPROT3_2500_CAV_COLD_Q_28_41_discreta_0%i.txt',i) ); % medie P_ingresso=dati_i(:,1)-Bat_idro; media_ingresso_i=mean(P_ingresso); dP_5bar=dati_i(:,2);

(12)

272

media_differenziale_5bar_i=mean(dP_5bar);

%costruzione matrice di pressione Pressione(i,1)=media_ingresso_i;

Pressione(i,2)=media_differenziale_5bar_i; end

% Caricamento delle condizioni

condizioni=load('C:\Users\andrea\Documents\tesi\Sperimentazione\Daprot3\Cavitating\FREDDE\CAV_25 00_discrete_COLD\Condizioni_prove_discrete.txt');

% Calcolo dei coefficienti di flusso per ciascuna prova phi= % (Q/(A*Omega*r))

phi=(condizioni(1,1)*10^(-3)/(Omega*r_2^3)); T_1=[];

% Temperatura media della prova T_1(i,1)=condizioni(1,2);

% Temperatura dell'acqua nel SI T=T_1+273.15 ; % in K

% Ritorno ad operare nella cartella madre cd (main_folder);

% Densità dell'acqua alla temperatura media della prova rho=waterdensity(T_1); % in kg/m^3

% Pressione di vapore dell'acqua alla temperatura media della prova p_v=watervapourpressure(T_1) ; % in Pascal

% correzione della portata che dipende dal valore letto sul flussimetro % calcolo della prevalenza TOTALE (POMPA+DIFFUSORE)% calcolo di sigma RHO=mean(rho(:)); sigma=[]; for i=1:9; sigma(i,1)=(Pressione(i,1)*10^5-p_v(i))/(0.5*(RHO)*(Omega*r_2)^2); end psi=[]; for i=1:9 psi(i,1)=(Pressione(i,2)*10^(5))/(RHO*(Omega*r_2)^2); end

% Plottaggio dati psi phi figure ('Name','\psi-\phi')

(13)

273

plot(sigma,psi,'ok','MarkerfaceColor','r')

title('DAPROT3 Prove cavitanti 2500 Q28.41 DISCRETE') xlabel('\sigma') ylabel('\Psi') legend('\phi = 0.065') hold on grid on box on axis([0 0.5 0 0.4]) % filesave='C:\Users\andrea\Documents\tesi\Sperimentazione\VAMPIRE\CAVITANTI\DAPROT3_CAV_COLD\ DAPROT3_cav_cold_28_41_discrete.mat'; save(filesave,'sigma','psi','phi');

(14)

274

2. Appendice al capitolo 6

In questa appendice vengono mostrati i programmi matlab usati per la riduzione delle forze

rotodinamiche. Verranno mostrati a titolo di esempio il programma offset ed il programma

eccentricità.

Il programa OFFSET:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%

%%%%%%%%

%%%%%%%% ROTODINAMICA PASSO 1 offset forze %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% clear all close all clc

%% IMPOSTAZIONE DEL CAMPIONAMENTO

numero_samples_secondo=5000; % numero di campioni al secondo [1/s] durata_prova=120; % durata della prova in secondi

numero_samples_tot=numero_samples_secondo*durata_prova; % numero totale di campioni durante la prova

t=linspace(0,durata_prova,numero_samples_tot); % vettore tempo

%% MOTORE PRIMARIO

Omega=2; % velocità di rotazione in giri al minuto [rpm]

Om=Omega*2*pi/60; % velocità di rotazione del motore primario in radianti al secondo [rad/s] angolo_tetha=203; % angolo del lettore di tacca rispetto all'asse x in gradi sesagesimali TETHA=angolo_tetha*2*pi/360; % angolo del lettore di tacca rispetto all'asse x in radianti [rad]

%% MATRICE DI CALIBRAZIONE DEL DINAMOMETRO

MATRICE_CALIBRAZIONE=load('MATRICE_AA_DEFINITIVA_ESA.txt');

% MATRICE_CALIBRAZIONE=[2.7429E-04, -1.0517E-05, -7.2015E-06, 7.8241E-06, 4.0478E-03, -5.1829E-7;... % -2.8061E-04, -3.4021E-06, -7.9686E-07, 2.6293E-05, 4.0591E-03, 1.1799E-06;...

% 4.1636E-06, 2.8225E-04, 2.7571E-05, -2.6228E-06, -4.1216E-06, 2.1390E-06;... % 6.4291E-06, -2.7220E-04, -1.8388E-05, -3.9311E-05, -3.9870E-03, -1.5632E-06;... % 1.0562E-05 -2.5799E-04 7.8579E-04 1.2745E-05 -6.2591E-05 -1.6850E-06;... % 2.4439E-05 -2.9256E-04 -8.7972E-04 -2.2237E-05 -2.5213E-04 -1.3499E-06;... % -2.9847E-04 -1.6727E-05 1.6219E-06 8.7360E-04 -8.5660E-05 -1.3996E-07;... % -2.5336E-04 -2.5515E-06 3.0442E-06 -8.0403E-04 -4.5430E-05 5.8678E-07;... % 4.4244E-07 1.4181E-06 9.3911E-06 -4.1965E-06 -2.6343E-05 -1.9800E-05;...

(15)

275

% 1.8372E-06 1.4691E-06 -7.3762E-06 -4.2189E-07 -3.7879E-05 -1.9226E-05 ]; % le colonne rappresentano FX,FY,MX,MY,MZ,FZ, mentre le righe sono i ponti %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ACQUISIZIONE DATI %%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%

%% VALORI CARICATI DAL FILE.TXT [filename,pathname]=uigetfile('.txt'); PONTI_TOT=load(sprintf('%s%s',pathname,filename)); %'C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\DAPROT3\DAPROT3_offset_a_2rp m_11_04_2013.txt'); PONTE=(10^-3)*PONTI_TOT(:,5:14)';

%% FORZE CALCOLATE DAL DINAMOMETRO NEL RIFERIMENTO ROTANTE

FORZE_SYS_ROT=MATRICE_CALIBRAZIONE\PONTE;

%% calcolo della frequenza di rotazione

lettore_tacca_princ_pulito1=max(PONTI_TOT(:,1)-1,0); % il segnale del lettore di tacca viene tagliato a quota 0 e quota 1

lettore_tacca_princ=min(lettore_tacca_princ_pulito1,1);

figure('Name','LETTORE TACCA PRINCIPALE') plot(lettore_tacca_princ) grid on xlabel('samples') ylabel('Principal Counter') indici_tacca_princ=find(lettore_tacca_princ); k=0; for j=1:(length(indici_tacca_princ)-1) if indici_tacca_princ(j)==indici_tacca_princ(j+1)-1 else k=k+1; estremi_princ(k)=indici_tacca_princ(j); end end if k==1 estremi_princ(2)=indici_tacca_princ(end); end

frequenza_tacche_princ=estremi_princ(2)-estremi_princ(1); % numero di samples periodo fondam

(16)

276

periodo_tacche_princ=frequenza_tacche_princ/numero_samples_secondo; velocita_di_rot=2*pi*(1/periodo_tacche_princ(1)); %% correzione di Fx C11=[0]; C12=[0]; C13=[0]; C21=[0]; C22=[0]; C23=[0]; C31=[0]; C32=[0]; C33=[0]; F1=[0]; F2=[0]; F3=[0]; for i=1:numero_samples_tot C11=C11+(sin(velocita_di_rot*t(i)))^2; C12=C12+sin(velocita_di_rot*t(i))*cos(velocita_di_rot*t(i)); C13=C13+sin(velocita_di_rot*t(i)); C21=C21+sin(velocita_di_rot*t(i))*cos(velocita_di_rot*t(i)); C22=C22+(cos(velocita_di_rot*t(i)))^2; C23=C23+cos(velocita_di_rot*t(i)); C31=C31+sin(velocita_di_rot*t(i)); C32=C32+cos(velocita_di_rot*t(i)); C33=C33+1; F1=F1+FORZE_SYS_ROT(1,i)*sin(velocita_di_rot*t(i)); F2=F2+FORZE_SYS_ROT(1,i)*cos(velocita_di_rot*t(i)); F3=F3+FORZE_SYS_ROT(1,i); end CC=[C11 C12 C13; C21 C22 C23; C31 C32 C33]; FF=[F1; F2; F3]; M_Fx=CC\FF; F_mx=sqrt((M_Fx(1))^2+(M_Fx(2))^2); PHI_x=atan2(M_Fx(2),M_Fx(1)); offset_Fx=M_Fx(3); F_x=F_mx*sin(velocita_di_rot*t+PHI_x)+offset_Fx; %% Calcolo della Varianza e della Deviazione Standard Fx Varianza_Fx=0;

(17)

277

Varianza_Fx=Varianza_Fx+(F_x(r)-FORZE_SYS_ROT(1,r)).^2; end Varianza_Fx=Varianza_Fx/numero_samples_tot; deviazione_standard_Fx=sqrt(Varianza_Fx); %% correzione di Fy F1=0; F2=0; F3=0; for i=1:numero_samples_tot F1=F1+FORZE_SYS_ROT(2,i)*sin(velocita_di_rot*t(i)); F2=F2+FORZE_SYS_ROT(2,i)*cos(velocita_di_rot*t(i)); F3=F3+FORZE_SYS_ROT(2,i); end FF=[F1; F2; F3]; M_Fy=CC\FF; F_my=sqrt((M_Fy(1))^2+(M_Fy(2))^2); PHI_y=atan2(M_Fy(2),M_Fy(1)); offset_Fy=M_Fy(3); F_y=F_my*sin(velocita_di_rot*t+PHI_y)+offset_Fy; %% Calcolo della Varianza e della Deviazione Standard Fy Varianza_Fy=0; for r=1:numero_samples_tot Varianza_Fy=Varianza_Fy+(F_y(r)-FORZE_SYS_ROT(2,r)).^2; end Varianza_Fy=Varianza_Fy/numero_samples_tot; deviazione_standard_Fy=sqrt(Varianza_Fy); %% correzione di Fz F1=0; F2=0; F3=0; for i=1:numero_samples_tot F1=F1+FORZE_SYS_ROT(6,i)*sin(velocita_di_rot*t(i)); F2=F2+FORZE_SYS_ROT(6,i)*cos(velocita_di_rot*t(i)); F3=F3+FORZE_SYS_ROT(6,i); end FF=[F1; F2; F3]; M_Fz=CC\FF; F_mz=sqrt((M_Fz(1))^2+(M_Fz(2))^2); PHI_z=atan2(M_Fz(2),M_Fz(1));

(18)

278

offset_Fz=M_Fz(3);

F_z=F_mz*sin(velocita_di_rot*t+PHI_z)+offset_Fz; %% Calcolo della Varianza e della Deviazione Standard Fz Varianza_Fz=0; for r=1:numero_samples_tot Varianza_Fz=Varianza_Fz+(F_z(r)-FORZE_SYS_ROT(6,r)).^2; end Varianza_Fz=Varianza_Fz/numero_samples_tot; deviazione_standard_Fz=sqrt(Varianza_Fz); %% Correzione di Mx M1=0; M2=0; M3=0; for i=1:numero_samples_tot M1=M1+FORZE_SYS_ROT(3,i)*sin(velocita_di_rot*t(i)); M2=M2+FORZE_SYS_ROT(3,i)*cos(velocita_di_rot*t(i)); M3=M3+FORZE_SYS_ROT(3,i); end MM=[M1; M2; M3]; M_Mx=CC\MM; M_mx=sqrt((M_Mx(1))^2+(M_Mx(2))^2); PHI_X=atan2(M_Mx(2),M_Mx(1)); offset_Mx=M_Mx(3); M_x=M_mx*sin(velocita_di_rot*t+PHI_X)+offset_Mx; %% Calcolo della Varianza e della Deviazione Standard Mx Varianza_Mx=0; for r=1:numero_samples_tot Varianza_Mx=Varianza_Mx+(M_x(r)-FORZE_SYS_ROT(3,r)).^2; end Varianza_Mx=Varianza_Mx/numero_samples_tot; deviazione_standard_Mx=sqrt(Varianza_Mx); %% Correzione di My M1=0; M2=0; M3=0; for i=1:numero_samples_tot M1=M1+FORZE_SYS_ROT(4,i)*sin(velocita_di_rot*t(i));

(19)

279

M2=M2+FORZE_SYS_ROT(4,i)*cos(velocita_di_rot*t(i)); M3=M3+FORZE_SYS_ROT(4,i); end MM=[M1; M2; M3]; M_My=CC\MM; M_my=sqrt((M_My(1))^2+(M_My(2))^2); PHI_Y=atan2(M_My(2),M_My(1)); offset_My=M_My(3); M_y=M_my*sin(velocita_di_rot*t+PHI_Y)+offset_My; %% Calcolo della Varianza e della Deviazione Standard My Varianza_My=0; for r=1:numero_samples_tot Varianza_My=Varianza_My+(M_y(r)-FORZE_SYS_ROT(4,r)).^2; end Varianza_My=Varianza_My/numero_samples_tot; deviazione_standard_My=sqrt(Varianza_My); %% Correzione di Mz M1=0; M2=0; M3=0; for i=1:numero_samples_tot M1=M1+FORZE_SYS_ROT(5,i)*sin(velocita_di_rot*t(i)); M2=M2+FORZE_SYS_ROT(5,i)*cos(velocita_di_rot*t(i)); M3=M3+FORZE_SYS_ROT(5,i); end MM=[M1; M2; M3]; M_Mz=CC\MM; M_mz=sqrt((M_Mz(1))^2+(M_Mz(2))^2); PHI_Z=atan2(M_Mz(2),M_Mz(1)); offset_Mz=M_Mz(3); M_z=M_mz*sin(velocita_di_rot*t+PHI_Z)+offset_Mz; %% Calcolo della Varianza e della Deviazione Standard Mz Varianza_Mz=0; for r=1:numero_samples_tot Varianza_Mz=Varianza_Mz+(M_z(r)-FORZE_SYS_ROT(5,r)).^2; end Varianza_Mz=Varianza_Mz/numero_samples_tot; deviazione_standard_Mz=sqrt(Varianza_Mz);

(20)

280

%% plottaggio dati FX,FY,MX,MY,MZ,FZ figure ('Name','F sistema rotante corretto')

plot(t,FORZE_SYS_ROT(1,:)-offset_Fx,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,F_x-offset_Fx,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - F SISTEMA ROTANTE') xlabel('tempo')

ylabel('F_x in N')

legend('F_x corretto','F_x ricostruito') grid on

box on

figure ('Name','F sistema rotante corretto')

plot(t,FORZE_SYS_ROT(2,:)-offset_Fy,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,F_y-offset_Fy,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - F SISTEMA ROTANTE') xlabel('tempo')

ylabel('F_y in N')

legend('F_y corretto','F_y ricostruito') grid on

box on

figure ('Name','F sistema rotante corretto')

plot(t,FORZE_SYS_ROT(6,:)-offset_Fz,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,F_z-offset_Fz,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - F SISTEMA ROTANTE') xlabel('tempo')

ylabel('F_z in N')

legend('F_z corretto','F_z ricostruito') grid on

box on

figure ('Name','M sistema rotante corretto')

plot(t,FORZE_SYS_ROT(3,:)-offset_Mx,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,M_x-offset_Mx,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - M SISTEMA ROTANTE') xlabel('tempo')

ylabel('M_x in N*m')

legend('M_x corretto','M_x ricostruito') grid on

box on

(21)

281

figure ('Name','M sistema rotante corretto')

plot(t,FORZE_SYS_ROT(4,:)-offset_My,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,M_y-offset_My,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - M SISTEMA ROTANTE') xlabel('tempo')

ylabel('M_y in N*m')

legend('M_y corretto','M_y ricostruito') grid on

box on

figure ('Name','M sistema rotante corretto')

plot(t,FORZE_SYS_ROT(5,:)-offset_Mz,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,M_z-offset_Mz,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - M SISTEMA ROTANTE') xlabel('tempo')

ylabel('M_z in N*m')

legend('M_z corretto','M_z ricostruito') grid on box on %% scrittura risultati disp('--- Fx ---') disp(sprintf('Ampiezza(N): %f',F_mx)) disp(sprintf('Offset (N): %f',offset_Fx)) disp(sprintf('sigma^2 (N^2): %f',Varianza_Fx))

disp(sprintf('deviazione standard (N) : %f',deviazione_standard_Fx)) disp('--- Fy ---')

disp(sprintf('Ampiezza(N): %f',F_my)) disp(sprintf('Offset (N): %f',offset_Fy)) disp(sprintf('sigma^2 (N^2): %f',Varianza_Fy))

disp(sprintf('deviazione standard (N) : %f',deviazione_standard_Fy)) disp('--- Mx ---')

disp(sprintf('Ampiezza(Nm): %f',M_mx)) disp(sprintf('Offset (Nm): %f',offset_Mx)) disp(sprintf('sigma^2 (Nm^2): %f',Varianza_Mx))

disp(sprintf('deviazione standard (Nm) : %f',deviazione_standard_Mx)) disp('--- My ---')

disp(sprintf('Ampiezza(Nm): %f',M_my)) disp(sprintf('Offset (Nm): %f',offset_My)) disp(sprintf('sigma^2 (Nm^2): %f',Varianza_My))

disp(sprintf('deviazione standard (Nm) : %f',deviazione_standard_My)) disp('--- Mz ---')

disp(sprintf('Ampiezza(Nm): %f',M_mz)) disp(sprintf('Offset (Nm): %f',offset_Mz))

(22)

282

disp(sprintf('sigma^2 (Nm^2): %f',Varianza_Mz))

disp(sprintf('deviazione standard (Nm) : %f',deviazione_standard_Mz)) disp('--- Fz ---')

disp(sprintf('Ampiezza(N): %f',F_mz)) disp(sprintf('Offset (N): %f',offset_Fz)) disp(sprintf('sigma^2 (N^2): %f',Varianza_Fz))

disp(sprintf('deviazione standard (N) : %f',deviazione_standard_Fz)) disp('---')

%% correzione angolo tacca primario Index=0; Index2=0; Index=find(F_y==max(F_y(1:(numero_samples_tot/(Omega*2))))); for i=1:(numero_samples_tot/(Omega*2)); Q(i)=PONTI_TOT(i+150000+1,1)-PONTI_TOT(i+150000,1); if Q(i)>=3.5 Index2=150000+find(Q==Q(i)); end end dif_indici=Index2-Index; theta_rad=dif_indici*2*pi/(numero_samples_tot/(Omega*2))-pi/2; theta_deg=dif_indici*360/(numero_samples_tot/(Omega*2))-90;

disp(sprintf('theta (rad): %f',theta_rad)); disp(sprintf('theta (deg): %f',theta_deg));

% figure ('Name','F sistema rotante corretto')

% plot(t,F_y-offset_Fy,'s-r','MarkerfaceColor','r','MarkerSize',1) % hold on

% plot(t,lettore_tacca_princ,'b','markersize',1) % title('DAPROT3 OFFSET - F SISTEMA ROTANTE') % xlabel('tempo') % ylabel('F_y in N') % legend('F_y','lettore di tacca') % grid on % box on %% salvataggio offset FY_air=min(F_y); cd('C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\DAPROT3_30_05_2013'); filesave=sprintf('%s.mat',filename(1:end-4)); %'C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\DAPROT3\offset_F_11_04_2013.m at'; save(filesave,'FY_air','offset_Fx','offset_Fy','offset_Fz','offset_Mx','offset_My','offset_Mz','theta_deg','thet a_rad','F_my','M_mx');

il programma ECCENTRICITA’:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% %

(23)

283

% Calcolo del vettore eccentricità % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% clear all close all clc

%% Parametri iniziali della prova (motore secondario) sps=5000; % campioni per secondo

durata=5; % durata della prova in secondi nts=sps*durata; % numero totale di campioni omega=1000; % velocità di rotazione in rpm

OMEGA=omega*2*pi/60; % velocità in radianti al secondo %eccentricita=1.13; % valore nominale in mm

rotazione_antioraria=1; % 1 se antioraria e 0 se oraria t=linspace(0,durata,nts); %% Caricamento dati [filename,pathname]=uigetfile('.mat'); load(sprintf('%s%s',pathname,filename)); % offset offset=[offset_Fx;offset_Fy;offset_Mx;offset_My;offset_Mz;offset_Fz]; MATRICE_CALIBRAZIONE=load('MATRICE_AA_DEFINITIVA_ESA.txt'); %dati_prova=load('C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\DAPROT3\Roto\D APROT3_ecc_a_6_0_m_1000rpm_08_05_2013_new.txt'); % dati_prova=load('C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\DAPROT3\Roto\Ari a\DAPROT3_ecc_a_6_0_m_1000rpm_23_04_2013.txt'); [filename,pathname]=uigetfile('.txt'); dati_prova=load(sprintf('%s%s',pathname,filename)); %AA='C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\DAPROT3\matrice_calibrazion e.mat'; ...

% matrice di calibrazione del dinamometro %load(AA);

%% CALCOLO DELLE FORZE SUL DINAMOMETRO

PONTI_TOT=(10^-3)*dati_prova(:,5:14)'; % matrice delle tensioni in V uni=ones(1,nts);

FORZE_GREZZE=MATRICE_CALIBRAZIONE\PONTI_TOT; MATRICE_OFFSET=offset*uni;

FORZE=FORZE_GREZZE-MATRICE_OFFSET;

%% calcolo della frequenza effettiva

lettore_tacca_secon_pulito1=max(dati_prova(:,2)-1,0); lettore_tacca_secon=min(lettore_tacca_secon_pulito1,1); figure() plot(lettore_tacca_secon) grid on figure() plot(t,lettore_tacca_secon)

(24)

284

grid on indici_tacca_secon=find(lettore_tacca_secon); k=0; for j=1:(length(indici_tacca_secon)-1) if indici_tacca_secon(j)==indici_tacca_secon(j+1)-1 else k=k+1; estremi_secon(k)=indici_tacca_secon(j); estremi_iniziale_secon(k)=indici_tacca_secon(j+1); end end if k==1 estremi_secon(2)=indici_tacca_secon(end); end frequenza_tacche_secon=estremi_secon(2)-estremi_secon(1); periodo_tacche_secon=frequenza_tacche_secon/sps; OMEGA_EFFETTIVO=2*pi*(1/periodo_tacche_secon(1)); %% CALCOLO DELLE FORZE

%% correzione di Fx C11=[0]; C12=[0]; C13=[0]; C21=[0]; C22=[0]; C23=[0]; C31=[0]; C32=[0]; C33=[0]; F1=[0]; F2=[0]; F3=[0]; for i=1:nts C11=C11+(sin(OMEGA_EFFETTIVO*t(i))).^2; C12=C12+sin(OMEGA_EFFETTIVO*t(i))*cos(OMEGA_EFFETTIVO*t(i)); C13=C13+sin(OMEGA_EFFETTIVO*t(i)); C21=C21+sin(OMEGA_EFFETTIVO*t(i))*cos(OMEGA_EFFETTIVO*t(i)); C22=C22+(cos(OMEGA_EFFETTIVO*t(i))).^2; C23=C23+cos(OMEGA_EFFETTIVO*t(i)); C31=C31+sin(OMEGA_EFFETTIVO*t(i)); C32=C32+cos(OMEGA_EFFETTIVO*t(i)); C33=C33+1; F1=F1+FORZE(1,i)*sin(OMEGA_EFFETTIVO*t(i));

(25)

285

F2=F2+FORZE(1,i)*cos(OMEGA_EFFETTIVO*t(i)); F3=F3+FORZE(1,i); end CC=[C11 C12 C13; C21 C22 C23; C31 C32 C33]; FF=[F1; F2; F3]; M_Fx=CC\FF; F_mx=sqrt((M_Fx(1))^2+(M_Fx(2))^2); PHI_x=atan2(M_Fx(2),M_Fx(1)); offset_Fx=M_Fx(3); F_x=F_mx*sin(OMEGA_EFFETTIVO*t+PHI_x)+offset_Fx; %% Calcolo della Varianza e della Deviazione Standard Fx Varianza_Fx=0; for r=1:nts Varianza_Fx=Varianza_Fx+(F_x(r)-FORZE(1,r)).^2; end Varianza_Fx=Varianza_Fx/nts; deviazione_standard_Fx=sqrt(Varianza_Fx); %% correzione di Fy F1=0; F2=0; F3=0; for i=1:nts F1=F1+FORZE(2,i)*sin(OMEGA_EFFETTIVO*t(i)); F2=F2+FORZE(2,i)*cos(OMEGA_EFFETTIVO*t(i)); F3=F3+FORZE(2,i); end FF=[F1; F2; F3]; M_Fy=CC\FF; F_my=sqrt((M_Fy(1))^2+(M_Fy(2))^2); PHI_y=atan2(M_Fy(2),M_Fy(1)); offset_Fy=M_Fy(3); F_y=F_my*sin(OMEGA_EFFETTIVO*t+PHI_y)+offset_Fy; %% Calcolo della Varianza e della Deviazione Standard Fy Varianza_Fy=0;

for r=1:nts

Varianza_Fy=Varianza_Fy+(F_y(r)-FORZE(2,r)).^2; end

(26)

286

Varianza_Fy=Varianza_Fy/nts; deviazione_standard_Fy=sqrt(Varianza_Fy); %% correzione di Fz F1=0; F2=0; F3=0; for i=1:nts F1=F1+FORZE(6,i)*sin(OMEGA_EFFETTIVO*t(i)); F2=F2+FORZE(6,i)*cos(OMEGA_EFFETTIVO*t(i)); F3=F3+FORZE(6,i); end FF=[F1; F2; F3]; M_Fz=CC\FF; F_mz=sqrt((M_Fz(1))^2+(M_Fz(2))^2); PHI_z=atan2(M_Fz(2),M_Fz(1)); offset_Fz=M_Fz(3); F_z=F_mz*sin(OMEGA_EFFETTIVO*t+PHI_z)+offset_Fz; %% Calcolo della Varianza e della Deviazione Standard Fz Varianza_Fz=0; for r=1:nts Varianza_Fz=Varianza_Fz+(F_z(r)-FORZE(6,r)).^2; end Varianza_Fz=Varianza_Fz/nts; deviazione_standard_Fz=sqrt(Varianza_Fz); %% Correzione di Mx M1=0; M2=0; M3=0; for i=1:nts M1=M1+FORZE(3,i)*sin(OMEGA_EFFETTIVO*t(i)); M2=M2+FORZE(3,i)*cos(OMEGA_EFFETTIVO*t(i)); M3=M3+FORZE(3,i); end MM=[M1; M2; M3]; M_Mx=CC\MM; M_mx=sqrt((M_Mx(1))^2+(M_Mx(2))^2); PHI_X=atan2(M_Mx(2),M_Mx(1)); offset_Mx=M_Mx(3);

(27)

287

M_x=M_mx*sin(OMEGA_EFFETTIVO*t+PHI_X)+offset_Mx; %% Calcolo della Varianza e della Deviazione Standard Mx Varianza_Mx=0; for r=1:nts Varianza_Mx=Varianza_Mx+(M_x(r)-FORZE(3,r)).^2; end Varianza_Mx=Varianza_Mx/nts; deviazione_standard_Mx=sqrt(Varianza_Mx); %% Correzione di My M1=0; M2=0; M3=0; for i=1:nts M1=M1+FORZE(4,i)*sin(OMEGA_EFFETTIVO*t(i)); M2=M2+FORZE(4,i)*cos(OMEGA_EFFETTIVO*t(i)); M3=M3+FORZE(4,i); end MM=[M1; M2; M3]; M_My=CC\MM; M_my=sqrt((M_My(1))^2+(M_My(2))^2); PHI_Y=atan2(M_My(2),M_My(1)); offset_My=M_My(3); M_y=M_my*sin(OMEGA_EFFETTIVO*t+PHI_Y)+offset_My; %% Calcolo della Varianza e della Deviazione Standard My Varianza_My=0; for r=1:nts Varianza_My=Varianza_My+(M_y(r)-FORZE(4,r)).^2; end Varianza_My=Varianza_My/nts; deviazione_standard_My=sqrt(Varianza_My); %% Correzione di Mz M1=0; M2=0; M3=0; for i=1:nts M1=M1+FORZE(5,i)*sin(OMEGA_EFFETTIVO*t(i)); M2=M2+FORZE(5,i)*cos(OMEGA_EFFETTIVO*t(i)); M3=M3+FORZE(5,i);

(28)

288

end MM=[M1; M2; M3]; M_Mz=CC\MM; M_mz=sqrt((M_Mz(1))^2+(M_Mz(2))^2); PHI_Z=atan(M_Mz(2)/M_Mz(1)); offset_Mz=M_Mz(3); M_z=M_mz*sin(OMEGA_EFFETTIVO*t+PHI_Z)+offset_Mz; %% Calcolo della Varianza e della Deviazione Standard Mz Varianza_Mz=0; for r=1:nts Varianza_Mz=Varianza_Mz+(M_z(r)-FORZE(5,r)).^2; end Varianza_Mz=Varianza_Mz/nts; deviazione_standard_Mz=sqrt(Varianza_Mz);

%% calcolo dell'angolo tra il vettore eccentricità e la tacca F=sqrt((F_x).^2+(F_y).^2); Index=[0]; Index2=0; Intervallo=(nts/(omega*durata/60)); Index=find(F==max(F)); Q=[]; passaggio_tacca_pulito=max(dati_prova(:,2)-1,0); pass_tacca=min(passaggio_tacca_pulito,1); pass_tacca(pass_tacca~=0)=1; Z=0; for i=Index:(Index+Intervallo) Q(i)=pass_tacca(i+1)-pass_tacca(i); if Q(i)==1 Z=Z+1; Index2=i; end end xxx=linspace(Index,Index+Intervallo,Intervallo); figure plot(xxx,F(Index:(Index+Intervallo-1)),'r'); hold on plot(xxx,F_x(Index:(Index+Intervallo-1)),'g'); hold on plot(xxx,F_y(Index:(Index+Intervallo-1)),'c'); hold on plot(xxx,200*pass_tacca((Index):(Index+Intervallo-1)),'b'); dif_indici=Index2-Index;

(29)

289

angolo_lettore_tacca2_corretto_deg=dif_indici*360/(Intervallo); if angolo_lettore_tacca2_corretto_deg<260 Delta=100+angolo_lettore_tacca2_corretto_deg; else Delta=360-(100+angolo_lettore_tacca2_corretto_deg); end disp(sprintf('delta_deg(deg): %f',Delta)); % F=sqrt((F_x).^2+(F_y).^2); % % Index=[0]; % Index2=0; % Num_ciclo=2; % Intervallo=(nts/(omega*durata/60)); % Index=find(F==max(F((Num_ciclo*Intervallo+1):((Num_ciclo+1)*Intervallo)))); % % Q=[]; % passaggio_tacca_pulito=max(dati_prova(:,2)-1,0); % pass_tacca=min(passaggio_tacca_pulito,1); % pass_tacca(pass_tacca~=0)=1; % Z=0; % for i=(Num_ciclo*Intervallo+1):((Num_ciclo+1)*Intervallo) % Q(i)=pass_tacca(i+1)-pass_tacca(i); % if Q(i)==1 % Z=Z+1; % Index2=i; % end % end % xxx=linspace(1,300,300); % figure % plot(xxx,F((Num_ciclo*Intervallo+1):((Num_ciclo+1)*Intervallo)),'r'); % hold on % plot(xxx,200*pass_tacca((Num_ciclo*Intervallo+1):((Num_ciclo+1)*Intervallo)),'b'); % if Index2>Index % dif_indici=Index2-Index; % angolo_lettore_tacca2_corretto_deg=dif_indici*360/(Intervallo); % delta=100+angolo_lettore_tacca2_corretto_deg; % else % dif_indici=Index-Index2; % angolo_lettore_tacca2_corretto_deg=dif_indici*360/(Intervallo); % delta=100-angolo_lettore_tacca2_corretto_deg; % end % % Delta=delta; % disp(sprintf('delta_deg(deg): %f',Delta)); %% scrittura risultati disp('--- Fx ---') disp(sprintf('Ampiezza(N): %f',F_mx)) disp(sprintf('Offset (N): %f',offset_Fx)) disp(sprintf('sigma^2 (N^2): %f',Varianza_Fx))

(30)

290

disp(sprintf('deviazione standard (N) : %f',deviazione_standard_Fx)) disp('--- Fy ---')

disp(sprintf('Ampiezza(N): %f',F_my)) disp(sprintf('Offset (N): %f',offset_Fy)) disp(sprintf('sigma^2 (N^2): %f',Varianza_Fy))

disp(sprintf('deviazione standard (N) : %f',deviazione_standard_Fy)) disp('--- Mx ---')

disp(sprintf('Ampiezza(Nm): %f',M_mx)) disp(sprintf('Offset (Nm): %f',offset_Mx)) disp(sprintf('sigma^2 (Nm^2): %f',Varianza_Mx))

disp(sprintf('deviazione standard (Nm) : %f',deviazione_standard_Mx)) disp('--- My ---')

disp(sprintf('Ampiezza(Nm): %f',M_my)) disp(sprintf('Offset (Nm): %f',offset_My)) disp(sprintf('sigma^2 (Nm^2): %f',Varianza_My))

disp(sprintf('deviazione standard (Nm) : %f',deviazione_standard_My)) disp('--- Mz ---')

disp(sprintf('Ampiezza(Nm): %f',M_mz)) disp(sprintf('Offset (Nm): %f',offset_Mz)) disp(sprintf('sigma^2 (Nm^2): %f',Varianza_Mz))

disp(sprintf('deviazione standard (Nm) : %f',deviazione_standard_Mz)) disp('--- Fz ---')

disp(sprintf('Ampiezza(N): %f',F_mz)) disp(sprintf('Offset (N): %f',offset_Fz)) disp(sprintf('sigma^2 (N^2): %f',Varianza_Fz))

disp(sprintf('deviazione standard (N) : %f',deviazione_standard_Fz)) disp('---')

%% plottaggio dati FX,FY,MX,MY,MZ,FZ figure ('Name','F sistema rotante corretto')

plot(t,FORZE(1,:)-offset_Fx,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,F_x-offset_Fx,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - F SISTEMA ROTANTE') xlabel('tempo')

ylabel('F_x in N')

legend('F_x corretto','F_x ricostruito') grid on

box on

figure ('Name','F sistema rotante corretto')

plot(t,FORZE(2,:)-offset_Fy,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,F_y-offset_Fy,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - F SISTEMA ROTANTE') xlabel('tempo')

ylabel('F_y in N')

(31)

291

grid on box on

figure ('Name','F sistema rotante corretto')

plot(t,FORZE(6,:)-offset_Fz,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,F_z-offset_Fz,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - F SISTEMA ROTANTE') xlabel('tempo')

ylabel('F_z in N')

legend('F_z corretto','F_z ricostruito') grid on

box on

figure ('Name','M sistema rotante corretto')

plot(t,FORZE(3,:)-offset_Mx,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,M_x-offset_Mx,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - M SISTEMA ROTANTE') xlabel('tempo')

ylabel('M_x in N*m')

legend('M_x corretto','M_x ricostruito') grid on

box on

figure ('Name','M sistema rotante corretto')

plot(t,FORZE(4,:)-offset_My,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,M_y-offset_My,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - M SISTEMA ROTANTE') xlabel('tempo')

ylabel('M_y in N*m')

legend('M_y corretto','M_y ricostruito') grid on

box on

figure ('Name','M sistema rotante corretto')

plot(t,FORZE(5,:)-offset_Mz,'s-c','MarkerfaceColor','c','MarkerSize',1) hold on

plot(t,M_z-offset_Mz,'s-r','MarkerfaceColor','r','MarkerSize',1) hold on

title('DAPROT3 OFFSET - M SISTEMA ROTANTE') xlabel('tempo')

ylabel('M_z in N*m')

legend('M_z corretto','M_z ricostruito') grid on

(32)

292

box on % %% salvataggio file % cd('C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\VACUUM\'); % filesave=sprintf('%s.mat',filename(1:end-4)); % save(filesave,'Delta');

infine si mostra il codice della prova rotodinamica discreta in aria , mentre quella in acqua non è

necessaria dal momento che segue lo stesso principio.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%

% Calcolo delle forze di Tara in aria con whirl negativo

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%

close all clear all clc

g=9.81; % [m/s^2] accelerazione gravitazionale terrestre alla latitudine di ALTA

%% --- PARAMETRI INIZIALI DA IMPOSTARE --- [filename,pathname]=uigetfile('.mat'); load(sprintf('%s%s',pathname,filename)); % load('C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\DAPROT3\offset_F_23_04_201 3.mat'); offset=[offset_Fx;offset_Fy;offset_Mx;offset_My;offset_Mz;offset_Fz]; %[18.20;-8.15;0.71;1.67;-0.24;88.04].*0;% vettore contenente gli offset [Fx; Fy; Mx; My; Mz; Fz] nel riferimento rotante

[fileecc,pathecc]=uigetfile('.mat'); load(sprintf('%s%s',pathecc,fileecc));

Ncyc=250; % numero di ripetizioni del ciclo fondamentale fattore_di_correzione=input('correzione angolare = ')

epsilon=0.00113; % [m] eccentricità dell'orbita di whirl imposta

delta_deg=Delta+fattore_di_correzione;%(114.4+ fattore di correzione =13.9) % [deg] angolo tra la tacca secondario ed il vettore eccentricità

J=10; % numero intero risultante da (omega/OMEGA)=(I/J) r=input('Rapporto di whirl negativo = (inserire anche il meno)')

% r=-0.1;% rapporto omega/Omega; % rapporto omega/Omega ntot=600000; % n°tot campionamenti per prova

cas=5000; % campionamenti al secondo

teta_deg=theta_deg; % [deg] angolo tra il lettore di tacca prin cipale e l'asse X del sistema assoluto

(33)

293

phi_deg=170; % [deg] angolo tra il lettore di tacca secondario e l'asse X del sistema assoluto

% ---

dt=1/cas; % [s] intervallo di campionamento

I=J*r; % numero intero risultante da (omega/OMEGA)=(I/J) T_acquisizione=ntot/cas; % [s] tempo totale di acquisizione

t=linspace(0,T_acquisizione,ntot); % [s] vettore tempo

teta=((teta_deg*2*pi)/360); % [rad] angolo tra il lettore di tacca principale e l'asse X del sistema assoluto

phi=((phi_deg*2*pi)/360); % [rad] angolo tra il lettore di tacca secondario e l'asse X del sistema assoluto

delta=((delta_deg*2*pi)/360); % [rad] angolo tra la tacca secondario ed il vettore eccentricità

%% --- CARICAMENT0 DATI --- [fileprova,pathprova]=uigetfile('.txt');

dati_prova_a=load(sprintf('%s%s',pathprova,fileprova)); % dati in aria

AA=load('MATRICE_AA_DEFINITIVA_ESA.txt'); % matrice A di calibrazione del dinamometro [V=AF] nel SI

%% --- CALCOLO VELOCITA' DI ROTAZIONE MOTORI --- % Motore principale

lettore_tacca_princ_pulito1=max(dati_prova_a(:,1)-1,0); % trasformazione onda quadra parte inferiore

lettore_tacca_princ=min(lettore_tacca_princ_pulito1,1); % trasformazione onda quadra parte superiore

figure('Name','LETTORE DI TACCA PRINCIPALE') plot(lettore_tacca_princ)

grid on

xlabel('Samples')

ylabel('Principal Counter')

indici_tacca_princ=find(lettore_tacca_princ); % vettore contenente gli indici degli elementi diversi da zero

k=0;

for j=1:(length(indici_tacca_princ)-1)

if indici_tacca_princ(j)==indici_tacca_princ(j+1)-1 else

k=k+1;

estremi_princ(k)=indici_tacca_princ(j); % vettore contenente gli indici di fine tacca (esclusa l'ultima)

(34)

294

estremi_iniziale_princ(k)=indici_tacca_princ(j+1); % vettore contenente gli indici di inizio tacca (esclusa la prima)

end end if k==1

estremi_princ(2)=indici_tacca_princ(end); end

Ntot=estremi_princ(Ncyc*J+1)-estremi_princ(1); % numero di campioni corrispondenti a Ncyc volte il periodo fondamentale

N_sample_periodo_fondamentale=Ntot/Ncyc; % numero di campioni corrispondente al periodo fondamentale

frequenza_principale=cas/N_sample_periodo_fondamentale*J; % frequenza motore principale [1/s]

W=2*pi*frequenza_principale; % [rad/s] velocità di rotazione del motore principale

OMEGA=W*60/(2*pi); % [rpm] velocità di rotazione del motore principale alfa_deg=-(((estremi_iniziale_princ(1)/...

(N_sample_periodo_fondamentale/J))*360)-360); % [deg] angolo tra la tacca principale e il lettore di tacca principale all'istante iniziale

alfa=alfa_deg*pi/180; % [rad] angolo tra la tacca principale e il lettore di tacca principale all'istante iniziale

W_0=teta+alfa-(pi/2); % [rad] angolo tra asse x dinamometro e asse X assoluto all'istante 0 (inizio acquisizione)

W_0_deg=W_0*180/pi; % [deg] angolo tra asse x dinamometro e asse X assoluto all'istante 0 (inizio acquisizione)

%% Motore secondario

lettore_tacca_secon_pulito1=max(dati_prova_a(:,2)-1,0); % trasformazione onda quadra parte inferiore

lettore_tacca_secon=min(lettore_tacca_secon_pulito1,1); % trasformazione onda quadra parte superiore

figure('Name','LETTORE DI TACCA SECONDARIO') plot(lettore_tacca_secon)

grid on

xlabel('Samples')

ylabel('Secondary Counter')

indici_tacca_secon=find(lettore_tacca_secon); % vettore contenente gli indici degli elementi diversi da zero

k=0;

for j=1:(length(indici_tacca_secon)-1)

(35)

295

else k=k+1;

estremi_secon(k)=indici_tacca_secon(j); % vettore contenente gli indici di fine tacca (esclusa l'ultima)

estremi_iniziale_secon(k)=indici_tacca_secon(j+1); % vettore contenente gli indici di inizio tacca (esclusa la prima)

end end if k==1

estremi_secon(2)=indici_tacca_secon(end); end

Ntot_bis=estremi_secon(Ncyc*abs(I)+1)-estremi_secon(1); % numero di campioni corrispondenti a Ncyc volte il periodo fondamentale

N_sample_periodo_fondamentale_bis=Ntot_bis/Ncyc; % numero di campioni corrispondente al periodo fondamentale

if abs(Ntot-Ntot_bis)/Ntot>10^-5 disp('ATTENTION')

Ntot Ntot_bis end

frequenza_secon=cas/N_sample_periodo_fondamentale*I; % frequenza motore secondario [1/s]

w=2*pi*frequenza_secon; % [rad/s] velocità di rotazione del motore secondario

%

% w=0;%% %

omega=w*60/(2*pi); % [rpm] velocità di rotazione del motore secondario %

if r>0 % caso rotazione antioraria beta_deg_antiorario=-(((estremi_iniziale_secon(1)/...

(N_sample_periodo_fondamentale/I))*360)-360); % [deg] angolo tra la tacca secondario e il lettore di tacca secondario all'istante iniziale

beta_antiorario=beta_deg_antiorario*pi/180; % [rad] angolo tra la tacca secondario e il lettore di tacca secondario all'istante iniziale

w_0=phi+beta_antiorario+delta; % [rad] angolo tra l'eccentricità e asse X assoluto all'istante 0 (inizio acquisizione)

else % caso rotazione oraria beta_deg_orario=-(((estremi_secon(1)/...

(N_sample_periodo_fondamentale/I))*360)); % [deg] angolo tra la tacca secondario e il lettore di tacca secondario all'istante iniziale

beta_orario=beta_deg_orario*pi/180; % [rad] angolo tra la tacca secondario e il lettore di tacca secondario all'istante iniziale

(36)

296

w_0=phi+beta_orario+delta; % [rad] angolo tra l'eccentricità e asse X assoluto all'istante 0 (inizio acquisizione)

end

%w_0=phi+delta; %%

w_0_deg=w_0*180/pi; % [deg] angolo tra l'eccentricità e asse X assoluto all'istante 0 (inizio acquisizione)

Tc=J/(OMEGA/60); % [s] periodo del ciclo fondamentale (cioè tempo che impiega la girante per tornare nelle condizioni iniziali)

T=Ntot/cas; % [s] tempo su cui si calcolano le forze figure('Name','LETTORI DI TACCA') % plot(t,lettore_tacca_secon,'r') % hold on plot(t,lettore_tacca_princ,'g') grid on xlabel('Samples') ylabel('Counter')

%legend('Secondary Counter','Principal Counter')

%% --- CALCOLO VETTORE DELLE FORZE ---

matrice_tensioni_a=(10^-3)*dati_prova_a(:,5:14)'; % matrice le cui righe sono le tensioni (V) misurate dai ponti estensimetrici (cioè riga1=ponte1 etc)

% e le cui colonne sono gli ntot campioni presi

forze_a_grezze=AA\matrice_tensioni_a; % matrice le cui righe sono le forze (Fx,Fy,Mx,My,Mz,Fz) e le cui colonne sono ntot (senza aver tolto l'offset)

uni=ones(1,ntot);

matrice_offset=offset*uni;

forze_a=forze_a_grezze-matrice_offset; % matrice le cui righe sono le forze (Fx,Fy,Mx,My,Mz,Fz) e le cui colonne sono ntot (dopo aver tolto l'offset)

%% --- CALCOLO F0X,F0Y,AXX,AXY,AYX,AYY ---

F1_a=forze_a(1,:); %[N] vettore riga corrispondente alla Fx nel sist ema rotante

F2_a=forze_a(2,:); %[N] vettore riga corrispondente alla Fy nel sistema rotante F1c_J_a=0; % Inizializzazione F1s_J_a=0; F2c_J_a=0; F2s_J_a=0; F1c_JmenoI_a=0; F1s_JmenoI_a=0; F2c_JmenoI_a=0;

(37)

297

F2s_JmenoI_a=0; F1c_JpiuI_a=0; F1s_JpiuI_a=0; F2c_JpiuI_a=0; F2s_JpiuI_a=0; for n=1:Ntot F1c_J_a=F1c_J_a+((F1_a(n)*cos(W_0)-F2_a(n)*sin(W_0))*cos((J*(W/J)*n*dt))); F1s_J_a=F1s_J_a+((F1_a(n)*cos(W_0)-F2_a(n)*sin(W_0))*sin((J*(W/J)*n*dt))); F2c_J_a=F2c_J_a+((F1_a(n)*sin(W_0)+F2_a(n)*cos(W_0))*cos((J*(W/J)*n*dt))); F2s_J_a=F2s_J_a+((F1_a(n)*sin(W_0)+F2_a(n)*cos(W_0))*sin((J*(W/J)*n*dt))); F1c_JmenoI_a=F1c_JmenoI_a+((F1_a(n)*cos(W_0-w_0)-F2_a(n)*sin(W_0-w_0))*cos(((J-I)*(W/J)*n*dt))); F1s_JmenoI_a=F1s_JmenoI_a+((F1_a(n)*cos(W_0-w_0)-F2_a(n)*sin(W_0-w_0))*sin(((J-I)*(W/J)*n*dt))); F2c_JmenoI_a=F2c_JmenoI_a+((F1_a(n)*sin(W_0-w_0)+F2_a(n)*cos(W_0-w_0))*cos(((J-I)*(W/J)*n*dt))); F2s_JmenoI_a=F2s_JmenoI_a+((F1_a(n)*sin(W_0-w_0)+F2_a(n)*cos(W_0-w_0))*sin(((J-I)*(W/J)*n*dt))); F1c_JpiuI_a=F1c_JpiuI_a+((F1_a(n)*cos(W_0+w_0)-F2_a(n)*sin(W_0+w_0))*cos(((J+I)*(W/J)*n*dt))); F1s_JpiuI_a=F1s_JpiuI_a+((F1_a(n)*cos(W_0+w_0)-F2_a(n)*sin(W_0+w_0))*sin(((J+I)*(W/J)*n*dt))); F2c_JpiuI_a=F2c_JpiuI_a+((F1_a(n)*sin(W_0+w_0)+F2_a(n)*cos(W_0+w_0))*cos(((J+I)*(W/J)*n*dt))); F2s_JpiuI_a=F2s_JpiuI_a+((F1_a(n)*sin(W_0+w_0)+F2_a(n)*cos(W_0+w_0))*sin(((J+I)*(W/J)*n*dt))); end F1c_J_a=(2/Ntot)*F1c_J_a; F1s_J_a=(2/Ntot)*F1s_J_a; F2c_J_a=(2/Ntot)*F2c_J_a; F2s_J_a=(2/Ntot)*F2s_J_a; F1c_JmenoI_a=(2/Ntot)*F1c_JmenoI_a; F1s_JmenoI_a=(2/Ntot)*F1s_JmenoI_a; F2c_JmenoI_a=(2/Ntot)*F2c_JmenoI_a; F2s_JmenoI_a=(2/Ntot)*F2s_JmenoI_a; F1c_JpiuI_a=(2/Ntot)*F1c_JpiuI_a; F1s_JpiuI_a=(2/Ntot)*F1s_JpiuI_a; F2c_JpiuI_a=(2/Ntot)*F2c_JpiuI_a; F2s_JpiuI_a=(2/Ntot)*F2s_JpiuI_a;

F0X_a=(1/2)*(F1c_J_a-F2s_J_a); % Forza radiale lungo X (fisso col laboratorio) F0Y_a=(1/2)*(F1s_J_a+F2c_J_a); % Forza radiale lungo Y (fisso col laboratorio) AXX_a=(1/(2*epsilon))*(F1c_JmenoI_a-F2s_JmenoI_a+F1c_JpiuI_a-F2s_JpiuI_a); % Componenti matrice rotodinamica Frot=[A] epsilon

AXY_a=(1/(2*epsilon))*(-F1s_JmenoI_a-F2c_JmenoI_a+F1s_JpiuI_a+F2c_JpiuI_a); AYX_a=(1/(2*epsilon))*(F1s_JmenoI_a+F2c_JmenoI_a+F1s_JpiuI_a+F2c_JpiuI_a); AYY_a=(1/(2*epsilon))*(F1c_JmenoI_a-F2s_JmenoI_a-F1c_JpiuI_a+F2s_JpiuI_a);

FN_a=(1/2)*(AXX_a+AYY_a)*epsilon; % Forza normale all'orbita di whirl FT_a=(1/2)*(-AXY_a+AYX_a)*epsilon; % Forza tangenziale all'orbita di whirl

(38)

298

massa_sospesa=-F0Y_a/g; % [kg] massa sospesa F1_ideale = -(massa_sospesa*g)*sin((W*t)+W_0)+...

(massa_sospesa*(w^2)*epsilon*cos(((W-w)*t)+(W_0-w_0))); % Vettori rappresentanti le forze attese nel sistema rotante dovute ad una massa appesa in moto rotante eccentrico

F2_ideale = -(massa_sospesa*g)*cos((W*t)+W_0)-...

(massa_sospesa*(w^2)*epsilon*sin(((W-w)*t)+(W_0-w_0))); figure('Name','Confronto tra F1 reale e F1 simulata')

plot(forze_a(1,:),'r') hold on

plot(F1_ideale,'g') grid on

legend('F1 real','F1 simulated') xlabel('Samples')

ylabel('F1 (N)')

figure('Name','Confronto tra F2 reale e F2 simulata') plot(forze_a(2,:),'r')

hold on

plot(F2_ideale,'g') grid on

legend('F2 real','F2 simulated') xlabel('Samples')

ylabel('F2 (N)')

%% --- SCRITTURA RISULTATI --- disp('---') disp(sprintf('T acquisizione (s): %f',T_acquisizione))

disp(sprintf('T su cui si effettua il processamento [Ncyc*Tc](s): %f',T)) disp(sprintf('Tc ciclo fondamentale (s): %f',Tc))

disp(sprintf('Ncyc numero di cicli considerati : %f',Ncyc)) disp(sprintf('OMEGA (rpm) : %f',OMEGA))

disp(sprintf('omega (rpm) : %f',omega)) disp(sprintf('OMEGA_0 (deg) : %f',W_0_deg)) disp(sprintf('omega_0 (deg) : %f',w_0_deg)) disp('')

disp('--- FORZE ROTODINAMICHE ---') disp(sprintf('omega/OMEGA: %f',r)) disp(sprintf('F0X (N): %f',F0X_a)) disp(sprintf('F0Y (N): %f',F0Y_a)) disp(sprintf('AXX (N/m): %f',AXX_a)) disp(sprintf('AXY (N/m): %f',AXY_a)) disp(sprintf('AYX (N/m): %f',AYX_a)) disp(sprintf('AYY (N/m): %f',AYY_a)) disp(sprintf('FN (N): %f',FN_a))

(39)

299

disp(sprintf('FT (N): %f',FT_a))

disp('---')

%% --- CALCOLO M0X,M0Y,BXX,BXY,BYX,BYY ---

M1_a=forze_a(3,:); % [Nm] vettore riga corrispondente alla Mx nel sistema rotante

M2_a=forze_a(4,:); % [Nm] vettore riga corrispondente alla My nel sistema rotante M1c_J_a=0; % inizializzazione M1s_J_a=0; M2c_J_a=0; M2s_J_a=0; M1c_JmenoI_a=0; M1s_JmenoI_a=0; M2c_JmenoI_a=0; M2s_JmenoI_a=0; M1c_JpiuI_a=0; M1s_JpiuI_a=0; M2c_JpiuI_a=0; M2s_JpiuI_a=0; for m=1:Ntot M1c_J_a=M1c_J_a+((M1_a(m)*cos(W_0)-M2_a(m)*sin(W_0))*cos((J*(W/J)*m*dt))); M1s_J_a=M1s_J_a+((M1_a(m)*cos(W_0)-M2_a(m)*sin(W_0))*sin((J*(W/J)*m*dt))); M2c_J_a=M2c_J_a+((M1_a(m)*sin(W_0)+M2_a(m)*cos(W_0))*cos((J*(W/J)*m*dt))); M2s_J_a=M2s_J_a+((M1_a(m)*sin(W_0)+M2_a(m)*cos(W_0))*sin((J*(W/J)*m*dt))); M1c_JmenoI_a=M1c_JmenoI_a+((M1_a(m)*cos(W_0-w_0)-M2_a(m)*sin(W_0-w_0))*cos(((J-I)*(W/J)*m*dt))); M1s_JmenoI_a=M1s_JmenoI_a+((M1_a(m)*cos(W_0-w_0)-M2_a(m)*sin(W_0-w_0))*sin(((J-I)*(W/J)*m*dt))); M2c_JmenoI_a=M2c_JmenoI_a+((M1_a(m)*sin(W_0-w_0)+M2_a(m)*cos(W_0-w_0))*cos(((J-I)*(W/J)*m*dt))); M2s_JmenoI_a=M2s_JmenoI_a+((M1_a(m)*sin(W_0-w_0)+M2_a(m)*cos(W_0-w_0))*sin(((J-I)*(W/J)*m*dt))); M1c_JpiuI_a=M1c_JpiuI_a+((M1_a(m)*cos(W_0+w_0)-M2_a(m)*sin(W_0+w_0))*cos(((J+I)*(W/J)*m*dt))); M1s_JpiuI_a=M1s_JpiuI_a+((M1_a(m)*cos(W_0+w_0)-M2_a(m)*sin(W_0+w_0))*sin(((J+I)*(W/J)*m*dt))); M2c_JpiuI_a=M2c_JpiuI_a+((M1_a(m)*sin(W_0+w_0)+M2_a(m)*cos(W_0+w_0))*cos(((J+I)*(W/J)*m*dt)) ); M2s_JpiuI_a=M2s_JpiuI_a+((M1_a(m)*sin(W_0+w_0)+M2_a(m)*cos(W_0+w_0))*sin(((J+I)*(W/J)*m*dt))) ; end

(40)

300

M1c_J_a=(2/Ntot)*M1c_J_a; M1s_J_a=(2/Ntot)*M1s_J_a; M2c_J_a=(2/Ntot)*M2c_J_a; M2s_J_a=(2/Ntot)*M2s_J_a; M1c_JmenoI_a=(2/Ntot)*M1c_JmenoI_a; M1s_JmenoI_a=(2/Ntot)*M1s_JmenoI_a; M2c_JmenoI_a=(2/Ntot)*M2c_JmenoI_a; M2s_JmenoI_a=(2/Ntot)*M2s_JmenoI_a; M1c_JpiuI_a=(2/Ntot)*M1c_JpiuI_a; M1s_JpiuI_a=(2/Ntot)*M1s_JpiuI_a; M2c_JpiuI_a=(2/Ntot)*M2c_JpiuI_a; M2s_JpiuI_a=(2/Ntot)*M2s_JpiuI_a;

M0X_a=(1/2)*(M1c_J_a-M2s_J_a); % Momento radiale lungo X (fisso col laboratorio)

M0Y_a=(1/2)*(M1s_J_a+M2c_J_a); % Momento radiale lungo Y (fisso col laboratorio)

BXX_a=(1/(2*epsilon))*(M1c_JmenoI_a-M2s_JmenoI_a+M1c_JpiuI_a-M2s_JpiuI_a); % Componenti matrice rotodinamica Mrot=[B] epsilon

BXY_a=(1/(2*epsilon))*(-M1s_JmenoI_a-M2c_JmenoI_a+M1s_JpiuI_a+M2c_JpiuI_a); BYX_a=(1/(2*epsilon))*(M1s_JmenoI_a+M2c_JmenoI_a+M1s_JpiuI_a+M2c_JpiuI_a); BYY_a=(1/(2*epsilon))*(M1c_JmenoI_a-M2s_JmenoI_a-M1c_JpiuI_a+M2s_JpiuI_a);

% --- SCRITTURA RISULTATI --- disp('')

disp('--- MOMENTI ROTODINAMICI ---') disp(sprintf('M0X (Nm): %f',M0X_a)) disp(sprintf('M0Y (Nm): %f',M0Y_a)) disp(sprintf('BXX (N): %f',BXX_a)) disp(sprintf('BXY (N): %f',BXY_a)) disp(sprintf('BYX (N): %f',BYX_a)) disp(sprintf('BYY (N): %f',BYY_a)) disp('---') %% salvataggio cd('C:\Users\andrea\Documents\tesi\Sperimentazione\ROTODINAMICA\DAPROT3_30_05_2013\'); eval(sprintf('F0X_a_%s=F0X_a;',fileprova(17:end-4)));% F0X_a_6_0_2000rpm_m_0_1=F0X_a; eval(sprintf('F0Y_a_%s=F0Y_a;',fileprova(17:end-4)));% F0Y_a_6_0_2000rpm_m_0_1=F0Y_a; eval(sprintf('AXX_a_%s=AXX_a;',fileprova(17:end-4)));% AXX_a_6_0_2000rpm_m_0_1=AXX_a; eval(sprintf('AXY_a_%s=AXY_a;',fileprova(17:end-4)));% AXY_a_6_0_2000rpm_m_0_1=AXY_a; eval(sprintf('AYX_a_%s=AYX_a;',fileprova(17:end-4)));% AYX_a_6_0_2000rpm_m_0_1=AYX_a; eval(sprintf('AYY_a_%s=AYY_a;',fileprova(17:end-4)));% AYY_a_6_0_2000rpm_m_0_1=AYY_a; eval(sprintf('FN_a_%s=FN_a;',fileprova(17:end-4)));% FN_a_6_0_2000rpm_m_0_1=FN_a; eval(sprintf('FT_a_%s=FT_a;',fileprova(17:end-4)));% FT_a_6_0_2000rpm_m_0_1=FT_a; eval(sprintf('M0X_a_%s=M0X_a;',fileprova(17:end-4)));% M0X_a_6_0_2000rpm_m_0_1=M0X_a; eval(sprintf('M0Y_a_%s=M0Y_a;',fileprova(17:end-4)));% M0Y_a_6_0_2000rpm_m_0_1=M0Y_a;

Riferimenti

Documenti correlati

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

First, after the &#34;Governmentality&#34; lecture, Foucault several times shifted the meaning of the term and the respective periodisation. To give only a few

In questi casi l'istituzione della NGMA, nonostante non possieda ancora all'interno della sua collezione opere dei suddetti artisti, ha iniziato a muovere i primi passi verso

These five systems – nomination quotas to SMDs, supra-districts, rotating districts, PR-tier systems and alternate thresholds – constitute the primary forms of TSMs used

Students, staff, employers and the institutional community engage in higher education with different literacies, different ambitions and different aesthetics and technology,

Smentendo l’idea dell’inesistenza della nozione di individualità nel pensiero cinese diffusasi in Occidente, la prima parte della trattazione mette in luce la centralità

Questa foto è stata scattata nel 2000, quindi molto più recente rispetto alle altre, e si può infatti notare come cambia ciò che vuole trasmetterci l’autore: di

This thesis addresses the implementation of sustainable development in the legal frameworks of regional integration agreements (RIAs). Sustainable development is reaffirmed as