• Non ci sono risultati.

Appendice D D.1 Introduzione

N/A
N/A
Protected

Academic year: 2021

Condividi "Appendice D D.1 Introduzione"

Copied!
176
0
0

Testo completo

(1)

Appendice D

D.1 Introduzione

Nel paragrafo seguente sono riportati i listati dei file MATLAB che fanno parte

della procedura integrata, in ambiente CATIA V5-MATLAB.

(2)

D.2 Listati dei file MATLAB

Principale

% PRINCIPALE

%Questo file serve per leggere i parametri variabili per il nostro studio parametrico %che portano ad una modifica del dimensionamento %dei vari componenti strutturali. I %parametri variabili sono quelli contenuti nei seguenti file di input:

%"Dati.txt", "Pd.txt", "Pl.txt", Pv.txt".

clear all; clc;

format short; tempo=clock;

disp('Controllare che nel Set Path siano state salvate le seguenti directory:'); disp('-..\Tesi\InputProgramma;');

disp('-..\Tesi\Programma;'); disp('-..\Tesi\InputCATIA;'); disp('-..\Tesi\Post-Processing;');

disp('Per continuare digitare: return e premere INVIO.'); keyboard; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % INPUT INIZIALI % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DatiIniziali; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % INPUT FISSI % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% pallet;

factrad=57.29578;%[adimensionale] fattore di conversione da radianti a gradi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % TRAVE DI PAVIMENTO % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DimensionamentoTraveDiPavimento;

spessoreTP=spessore; %[mm] spessore della trave di pavimento

flangiaTP=round(larghezza); %[mm] larghezza della flangia della trave % di pavimento

animaTP=altezza; %[mm] altezza dell'anima della trave di % pavimento

lunghezzaTP=round(L*1000); %[mm] lunghezza della trave di pavimento % misurata sulla flangia superiore

alfaTP=alfa; %[gradi] angolo di rastremazione della % trave di pavimento

hTP=round(h*1000); %[mm] distanza flangia superiore trave di % pavimento - asse orizz. di riferimento %delta1TP; %[gradi] angolo che individua il punto di % intersezione della flangia sup. con lo skin e l’asse verticale %delta2TP; %[gradi] angolo che individua il punto di % intersezione della flangia inf. con lo skin e l'asse verticale

%runout1TP; %[gradi] run-out delle semiflangie sup. % ed inf. della sezione a C trave di pavimento %runout2TP; %[gradi] run-out delle semiflangie sup. % ed inf. contigue trave di pavimento

%xrunoutTP; %[mm] distanza tra il punto di intersezione tra la % flangia superiore ed inferiore della trave e l'ordinata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % TRAVE DI STIVA % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DimensionamentoTraveDiStiva;

spessoreTS=spessore; %[mm] spessore della trave di stiva

flangiaTS=round(larghezza); %[mm] larghezza della flangia della trave di stiva

(3)

xrunoutTSsup=round(xrunoutTSsup*1000); %[mm] distanza tra il punto di intersezione % tra la flangia superiore ed inferiore della trave e l'ordinata

xrunoutTSinf=round(xrunoutTSinf*1000); %[mm] distanza tra il punto di intersezione % tra la flangia inferiore ed inferiore della trave e l'ordinata %alfaTS; %[gradi] angolo di rastremazione della trave di stiva hTS=round(hTS); %[mm] distanza flangia superiore - asse orizzontale

%delta1TS; %[gradi] angolo che individua il punto di intersezione della flangia % superiore con lo skin e l'asse verticale

%runout1TS; %[gradi] run-out delle semiflangie superiore ed inferiore della sezione a C

%runout2TS; %[gradi] run-out delle semiflangie superiore ed inferiore contigue

%lunghezzaTS; %[mm] lunghezza della trave di stiva misurata sulla flangia superiore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % MONTANTE PASSEGGERI % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DimensionamentoMontantiPas;

spessoreMP=spessore; %[mm] spessore del montante passeggeri

latoMP=larghezza; %[mm] larghezza del montante passeggeri (sezione quadrata) %alfaintMP; %[gradi] angolo tra l'asse oriz. e la la retta che unisce il % centro con il punto d'intersezione tra la flangia interna del montante e l'ordinata %alfaextMP; %[gradi] angolo tra l'asse oriz. e la la retta che unisce il % centro con il punto d'intersezione tra la flangia esterna del montante e l'ordinata %alfamedMP; %[gradi] angolo tra l'asse oriz. e la la retta che unisce il % centro con il punto d'intersezione tra la mediana del montante e l'ordinata %DMP; %[mm] diametro interno dell'ordinata inferiore

%hMP; %[mm] distanza del montante passeggeri dall'asse orizzontale %distanzaMP; %[mm] distanza dall'asse di simm. della flangia int. del montante %LCMP; %[mm] lunghezza montante a sezione costante

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % MONTANTE STIVA % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DimensionamentoMontantiDiStiva;

spessoreMS=spessore; %[mm] spessore del montante di stiva

latoMS=larghezza; %[mm] larghezza del montante di stiva (sezione quadrata) %alfaintMS; %[gradi] angolo tra l'asse orizz. e la la retta che unisce il % centro con il punto d'intersezione tra la flangia interna del montante e l'ordinata %alfaextMS; %[gradi] angolo tra l'asse orizz. e la la retta che unisce il % centro con il punto d'intersezione tra la flangia esterna del montante e l'ordinata %alfamedMS; %[gradi] angolo tra l'asse orizz. e la la retta che unisce il % centro con il punto d'intersezione tra la mediana del montante e l'ordinata

%DMS; %[mm] diametro interno dell'ordinata inferiore

%hMS; %[mm] distanza del montante di stiva dall'asse orizzontale %distanzaMS; %[mm] distanza dall'asse di simm. della flangia int. del montante %LCMS; %[mm] lunghezza montante a sezione costante

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % PANNELLI % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Pannelli;

spessorePD=round(td*10)/10; %[mm] spessore del pannello dorsale

semiangoloPD=alfa4; %[gradi] semiangolo del pannello dorsale

spessorePL=round(tl*10)/10; %[mm] spessore del pannello laterale

semiangoloPLD=alfad; %[gradi] semiangolo del pannello laterale superiore

semiangoloPLV=alfav; %[gradi] semiangolo del pannello laterale inferiore

spessorePV=round(tv*10)/10; %[mm] spessore del pannello ventrale

semiangoloPV=alfa1; %[gradi] semiangolo del pannello ventrale %DfusPD; %[mm] diametro pannello dorsale 3D %DfusPL; %[mm] diametro pannello laterale 3D %DfusPV; %[mm] diametro pannello ventrale 3D %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% %

% CORRENTI %

% %

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

spessoreCD=round(tsd*10)/10; %[mm] spessore del corrente dorsale

animaCD=round(hd); %[mm] altezza dell'anima del corrente dorsale

flangiaCD=round(fd); %[mm] lunghezza della flangia del corrente dorsale baseCD=round(dd); %[mm] lunghezza della base del corrente dorsale

raccordoCD=raccordoD; %[mm] raggio di raccordo del corrente dorsale

%BD1angle; %[gradi] spaziatura angolare primaria del pannello dorsale

%BD2angle; %[gradi] spaziatura angolare secondaria del pannello dorsale

(4)

ND2=nd1; %[adimensionale] numero correnti secondari semipannello dorsale

spessoreCL=round(tsl*10)/10; %[mm] spessore del corrente laterale

animaCL=round(hl); %[mm] altezza dell'anima del corrente laterale

flangiaCL=round(fl); %[mm] lunghezza della flangia del corrente laterale

baseCL=round(dl); %[mm] lunghezza della base del corrente laterale

raccordoCL=raccordoL; %[mm] raggio di raccordo del corrente laterale

%BL1angle; %[gradi] spaziatura angolare primaria del pannello laterale

%BLDangle; %[gradi] spaziatura angolare sec. del pannello laterale verso il dorsale

%BLVangle; %[gradi] spaziatura angolare sec. del pannello laterale verso il ventrale

NL1D=nl0d; %[adimensionale] numero correnti primari semipan .laterale verso dorsale

NL2D=nl1d; %[adimensionale] numero correnti secondari semipann. laterale verso dorsale

NL1V=nl0v; %[adimensionale] numero correnti primari semipann. laterale verso ventrale

NL2V=nl1v; %[adimensionale] numero correnti secondari semipann. laterale verso ventrale

Naux=naux; %[adimensionale] num. correnti tra mediana e serie di correnti nel dettaglio

spessoreCV=round(tsv*10)/10; %[mm] spessore del corrente ventrale

animaCV=round(hv); %[mm] altezza dell'anima del corrente ventrale

flangiaCV=round(fv); %[mm] lunghezza della flangia del corrente ventrale baseCV=round(dv); %[mm] lunghezza della base del corrente ventrale

raccordoCV=raccordoV; %[mm] raggio di raccordo del corrente ventrale

%BV1angle; %[gradi] spaziatura angolare primaria del pannello ventrale

%BV2angle; %[gradi] spaziatura angolare secondaria del pannello ventrale

NV1=nv0l; %[adimensionale] numero correnti primari semipannello ventrale

NV2=nv1; %[adimensionale] numero correnti secondari semipannello ventrale

AllineaPannelli;

%DfusCD; %[mm] diametro correnti dorsali 3D %DfusCL; %[mm] diametro correnti laterali 3D %DfusCV; %[mm] diametro correnti ventrali 3D %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % ORDINATA % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Ordinata;

Tordsup=round(tordsup*10)/10; %[mm] spessore ordinata superiore

Tordinf=round(tordinf*10)/10; %[mm] spessore ordinata inferiore

Hordsup=round(hordsup*1000); %[mm] anima ordinata superiore

Hordinf=round(hordinf*1000); %[mm] anima ordinata inferiore

Fordsup=round(fordsup*1000); %[mm] flangia ordinata superiore

Fordinf=round(fordinf*1000); %[mm] flangia ordinata inferiore

Bordsup=round(bordsup*1000); %[mm] base ordinata superiore

Bordinf=round(bordinf*1000); %[mm] base ordinata inferiore

%gamma1; %[gradi] angolo tra l'asse orizzontale e inizio transizione inferiore %gamma2; %[gradi] angolo tra l'asse orizzontale e inizio transizione superiore

gamma3=semiangoloPLD+semiangoloPD; %[gradi] angolo tra l'asse verticale e la linea di % riferimento del laterale

%LarghezzaD; %[mm] larghezza delle aperture per i correnti dorsali %LarghezzaL; %[mm] larghezza delle aperture per i correnti laterali %LarghezzaV; %[mm] larghezza delle aperture per i correnti ventrali %AltezzaD; %[mm] altezza delle aperture per i correnti dorsali %AltezzaL; %[mm] altezza delle aperture per i correnti laterali %AltezzaV; %[mm] altezza delle aperture per i correnti ventrali

AllineaOrdinata;

%Tordlat; %[mm] spessore ordinata laterale 3D

%OffsetOD; %[mm] distanza diametro fusoliera flangia ordinata dorsale 3D %OffesetOL; %[mm] distanza diametro fusoliera flangia ordinata laterale 3D %OffsetOV; %[mm] distanza diametro fusoliera flangia ordinata ventrale 3D %OffsetODFS; %[mm] spostamento bordo esterno flangia fail-safe dorsale 3D %raccordoOD; %[mm] raggio di raccordo delle aperture per i correnti dorsali %raccordoOL; %[mm] raggio di raccordo delle aperture per i correnti laterali %raccordoOV; %[mm] raggio di raccordo delle aperture per i correnti ventrali

FfailsafeD=round(fFailSafeD*1000); %[mm] Flangia di Fail-Safe dorsale

FfailsafeL=round(fFailSafeL*1000); %[mm] Flangia di Fail-Safe laterale

FfailsafeV=round(fFailSafeV*1000); %[mm] Flangia di Fail-Safe ventrale

TfailsafeD=round(tFailSafeD*10)/10; %[mm] Spessore Flangia di Fail-Safe dorsale

TfailsafeL=round(tFailSafeL*10)/10; %[mm] Spessore Flangia di Fail-Safe laterale

TfailsafeV=round(tFailSafeV*10)/10; %[mm] Spessore Flangia di Fail-Safe ventrale %runoutFSd; %[gradi] Run-Out della flangia di Fail-Safe dorsale %runoutFSl; %[gradi] Run-Out della flangia di Fail-Safe laterale %runoutFSv; %[gradi] Run-Out della flangia di Fail-Safe ventrale %DFailSafeV; %[mm] diametro della flangia di fail-safe ventrale %tetaV; %[gradi] angolo tra l'asse vert. e la fine della flangia di fail-safe vent. %DFailSafeL; %[mm] diametro della flangia di fail-safe laterale

%tetaLsup; %[gradi] angolo tra l'asse orizz. e la parte sup. della flangia di fail-safe % laterale

%tetaLinf; %[gradi] angolo tra l'asse orizzontale e la parte inferiore della flangia di % fail-safe laterale

(5)

%DFailSafeD; %[mm] diametro della flangia di fail-safe dorsale

%tetaD; [gradi] angolo tra l'asse orizz. e la fine della flangia di fail-safe dorsale

HordR=hordR*1000; %[mm] altezza anima ordinata rigida

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

% %

% FUSOLIERA %

% %

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

%lunghezzafus; %[mm] lunghezza fusoliera %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % MESH % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Mesh; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % PROPRIETA' % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Proprieta; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % CARICHI % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Carichi; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % OUTPUT % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Visualizza; %Salvataggio Workspace save store.mat; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % POST-PROCESSING % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% disp(' ');

disp('Si vuole procedere alla fase di post-processing?'); post=input('SI (Digitare 1) - NO (Digitare 2): ');

%controllo inserimento dati if post==1 %ok elseif post==2 %ok else disp(' '); disp(' ');

disp('Errore: inserito numero di scelta errato.'); disp(' ');

disp(' '); end

if post==1

PostProcessing; else %non fai niente end

disp(' '); disp(' ');

disp('Fine procedura.');

disp(sprintf('Tempo impiegato (minuti): %d',etime(clock,tempo)/60)); disp(' ');

(6)

DatiIniziali

% DATI INIZIALI

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

% %

% INPUT DELLA PROCEDURA %

% %

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

% Dati [matrice] matrice di dati che si carica dalla directory ..\tesi\inputprogramma %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% %

% OUTPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % D [m] Diametro fusoliera

% h [m] Distanza pavimento passeggeri dall'asse di simmetria orizzontale % hordinf [m] altezza ordinata inferiore

% hordsup [m] altezza ordinata superiore % fordinf [m] flangia ordinata inferiore % fordsup [m] flangia ordinata superiore % tordinf [mm] spessore ordinata inferiore % tordsup [mm] spessore ordinata superiore % bordsup [m] base ordinata superiore % bordinf [m] base ordinata inferiore

% gord [mm] gioco tra il corrente e l'apertura del corrente % MTP [mm^4] momento di inerzia trave di pavimento

% MTS [mm^4] momento di inerzia trave di stiva

% NMP [N] carico di esercizio sulla trave di pavimento % NMS [N] carico di esercizio sulla trave di stiva % fFailSafeD [m] Flangia di Fail-Safe dorsale

% fFailSafeL [m] Flangia di Fail-Safe laterale % fFailSafeV [m] Flangia di Fail-Safe ventrale

% tFailSafeD [mm] Spessore Flangia di Fail-Safe dorsale % tFailSafeL [mm] Spessore Flangia di Fail-Safe laterale % tFailSafeV [mm] Spessore Flangia di Fail-Safe ventrale

% distaFS [mm] Distanza tra l'apertura del corrente e la flangia di Fail-Safe % distaTP [mm] Distanza tra la trave di pavimento e lo skin

% distaTS [mm] Distanza tra la trave di stiva e l'apertura del corrente

% runout1TP [gradi] Run-Out delle semifla. sup. ed inf. della sez. a C trave di pavim. % runout2TP [gradi] Run-Out delle semifla. Sup. ed inf. contigue trave di pavimento % runout1TS [gradi] Run-Out delle semifla. Sup. ed inf. della sez. a C trave di stiva % runout2TS [gradi] Run-Out delle semifla. Sup. ed inf. contigue trave di stiva % runoutFSd [gradi] Run-Out della flangia di Fail-Safe dorsale

% runoutFSl [gradi] Run-Out della flangia di Fail-Safe laterale % runoutFSv [gradi] Run-Out della flangia di Fail-Safe ventrale % EMP [Pa] Modulo di Young del montante passeggeri % EMS [Pa] Modulo di Young del montante di stiva % lunghezzafus [mm] Lunghezza fusoliera

% g [m] Gioco tra pareti di containers e struttura(small e large) % hpav [m] Altezza massima pavimento passeggeri

% PrecMesh [intero]Grado di precisione della mesh del modello

% Tdim [N] Taglio dimensionante agente sulla sezione di verifica

% Mdim [N*mm] Momento flettente dimensionante agente sulla sezione di verifica % Dfus [mm] Diametro fusoliera

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Questo file serve per fornire i dati iniziali dell'ordinata, del diametro di fusoliera %e dell'altezza massime della trave di pavimento, oltre alle specifiche di momento %d'inerzia della trave di pavimento e della trave di stiva.

%NOTA BENE: con flangia ordinata si intende la flangia dell'ordinata(a zeta) che è a %contatto con lo skin della fusoliera, mentre con base ordinata si intende la flangia %dell'ordinata più interna.

load Dati.txt;

%Assegnamento dei dati

D=Dati(1); %[m] Diametro fusoliera

h=Dati(2); %[m] Distanza pavimento passeggeri dall'asse di simmetria orizz.le

hordinf=Dati(3); %[m] altezza ordinata inferiore

hordsup=Dati(4); %[m] altezza ordinata superiore

fordinf=Dati(5); %[m] flangia ordinata inferiore

fordsup=Dati(6); %[m] flangia ordinata superiore

tordinf=Dati(7); %[mm] spessore ordinata inferiore

(7)

bordsup=Dati(9); %[m] base ordinata superiore

bordinf=Dati(10); %[m] base ordinata inferiore

gord=Dati(11); %[mm] gioco tra il corrente e l'apertura del corrente

MTP=Dati(12); %[mm^4] momento di inerzia trave di pavimento

MTS=Dati(13); %[mm^4] momento di inerzia trave di stiva

NMP=Dati(14); %[N] carico di esercizio sulla trave di pavimento

NMS=Dati(15); %[N] carico di esercizio sulla trave di stiva

fFailSafeD=Dati(16); %[m] Flangia di Fail-Safe dorsale

fFailSafeL=Dati(17); %[m] Flangia di Fail-Safe laterale

fFailSafeV=Dati(18); %[m] Flangia di Fail-Safe ventrale

tFailSafeD=Dati(19); %[mm] Spessore Flangia di Fail-Safe dorsale

tFailSafeL=Dati(20); %[mm] Spessore Flangia di Fail-Safe laterale

tFailSafeV=Dati(21); %[mm] Spessore Flangia di Fail-Safe ventrale

distaFS=Dati(22); %[mm] Distanza tra l'apertura del corr. e la flangia di Fail-Safe

distaTP=Dati(23); %[mm] Distanza tra la trave di pavimento e lo skin

distaTS=Dati(24); %[mm] Distanza tra la trave di stiva e l'apertura del corrente

runout1TP=Dati(25); %[gradi] Run-Out delle semiflangie superiore ed inferiore della % sezione a C trave di pavimento

runout2TP=Dati(26); %[gradi] Run-Out delle semiflangie superiore ed inferiore % contigue trave di pavimento

runout1TS=Dati(27); %[gradi] Run-Out delle semiflangie superiore ed inferiore della % sezione a C trave di stiva

runout2TS=Dati(28); %[gradi] Run-Out delle semiflangie superiore ed inferiore % contigue trave di stiva

runoutFSd=Dati(29); %[gradi] Run-Out della flangia di Fail-Safe dorsale

runoutFSl=Dati(30); %[gradi] Run-Out della flangia di Fail-Safe laterale

runoutFSv=Dati(31); %[gradi] Run-Out della flangia di Fail-Safe ventrale

EMP=Dati(32); %[Pa] Modulo di Young del montante passeggeri

EMS=Dati(33); %[Pa] Modulo di Young del montante di stiva

lunghezzafus=Dati(34); %[mm] Lunghezza fusoliera

g=Dati(35); %[m] Gioco tra pareti di containers e struttura(small e large)

hpav=Dati(36); %[m] Altezza massima pavimento passeggeri

PrecMesh=Dati(37); %[intero]Grado di precisione della mesh del modello

Tdim=Dati(38); %[N] Taglio dimensionante agente sulla sezione di verifica

Mdim=Dati(39); %[N*mm] Momento flettente dimensionante agente sulla sezione di verifica

(8)

Pallet

% PALLET

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

% %

% INPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % D [m] Diametro fusoliera

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

% %

% OUTPUT DELLA PROCEDURA %

% %

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

% hip [m] altezza lato interno pallet Tipo LD3 (small e large) % hep [m] altezza lato esterno pallet Tipo LD3 (small e large) % lsp [m] larghezza base superiore pallet Tipo LD3 (small e large) % lip [m] larghezza base inferiore pallet Tipo LD3 (small e large)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Questo file contiene i dati di due tipi di pallet di uso piu' frequente, uno nella %versione large ed un altro nella versione small. Il tipo di pallet da utilizzare e' %funzione del diametro della fusoliera.

%Controllo sul diametro della fusoliera

if D>4.5 %[m]

hip=1.626; %[m] altezza lato interno pallet Tipo LD3 large

hep=1.128; %[m] altezza lato esterno pallet Tipo LD3 large

lsp=2.007; %[m] larghezza base superiore pallet Tipo LD3 large

lip=1.562; %[m] larghezza base inferiore pallet Tipo LD3 large

else hip=1.170; %[m] altezza lato interno pallet Tipo LD3 small

hep=0.660; %[m] altezza lato esterno pallet Tipo LD3 small

lsp=1.225; %[m] larghezza base superiore pallet Tipo LD3 small

lip=0.780; %[m] larghezza base inferiore pallet Tipo LD3 small

(9)

DimensionamentoTraveDiPavimento

% DIMENSIONAMENTO SEZIONE TRAVE DI PAVIMENTO

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

% %

% INPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MTP [mm^4] momento di inerzia trave di pavimento % D [m] diametro fusoliera

% h [m] distanza pavimento passeggeri dall'asse di simmetria orizzontale % distaTP [mm] distanza tra lo skin e la trave di pavimento

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

% %

% OUTPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % spessore [mm] spessore della trave di pavimento

% larghezza [mm] larghezza della flangia della trave di pavimento % altezza [mm] altezza dell'anima della trave di pavimento

% L [mm] lunghezza della trave di pavimento misurata sulla flangia superiore % alfa [gradi] angolo di rastremazione della trave di pavimento

% delta1TP [gradi] angolo che individua il punto di intersezione della flangia % superiore con lo skin e l'asse verticale

% delta2TP [gradi] angolo che individua il punto di intersezione della flangia % inferiore con lo skin e l'asse verticale

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Specifica richiesta: Momento di inerzia della trave di pavimento = 1.35*10^7 [mm^4] %Ciclo iterativo

M=MTP; %[mm^4]

Store=[]; StoreS=[];

for i=180:1:240 %ciclo h [mm]

for j=0.5:0.1:0.7 %ciclo d/h [adimensionale]

for k=1:0.1:3 %ciclo t (spessore) [mm]

d=i; %altezza anima trave di pavimento

b=i*j; %larghezza flangia trave di pavimento

t=k; %spessore trave di pavimento

J=4*t*(b/2)*(d/2-t/2)^2+(1/12)*t*(d-2*t)^3; %mom. d’inerzia della trave di pav. Area=2*b*t+(d-t)*t; %sezione della trave di pavimento

Store=[Store

J Area d b t]; end

end end

%Ora di tutte le configurazioni che sopravvivono al controllo inertia<M

temp=size(Store); for i=1:temp(1) if Store(i,1)>M StoreS=[StoreS

Store(i,1) Store(i,2) Store(i,3) Store(i,4) Store(i,5)]; else %non fare niente

end end

%Ottimizzazione in base al peso( e quindi in base all'area della sezione)

[x,y]=min(StoreS(:,2)); spessore=StoreS(y,5); larghezza=StoreS(y,4); altezza=StoreS(y,3); peso=StoreS(y,2); inertia=StoreS(y,1); %DIMENSIONAMENTO LUNGHEZZA

%La trave di pavimento non la faccio arrivare fino a battuta (anche se nella realtà più %o meno è così), perchè altrimenti anche a causa del fatto che non la faccio terminare %con un arco di circonferenza ma con una retta, si creerebbe uno spicchio, nel quale si %genererebbero degli elementi finiti troppo piccoli e distorti. Per questo motivo %impongo che vi siano almeno 15 mm di spazio vuoto tra il rivestimento e la trave di %pavimento

L=2*((D/2-distaTP/1000)^2-h^2)^0.5; %[m] lung. trave di pav. misurata sulla flangia sup.

(10)

alfarad=atan((x*1000)/altezza);

alfa=alfarad*factrad; %[gradi] angolo di rastremazione della trave di pavimento

delta1TPrad=acos(h/(D/2));

delta1TP=delta1TPrad*factrad; %[gradi] angolo che individua il punto di intersezione % della flangia superiore con lo skin e l'asse verticale

delta2TPrad=acos((h+altezza/1000)/(D/2));

delta2TP=delta2TPrad*factrad; %[gradi] angolo che individua il punto di intersezione % della flangia inferiore con lo skin e l'asse verticale

(11)

DimensionamentoTraveDiStiva

% DIMENSIONAMENTO SEZIONE TRAVE DI STIVA

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

% %

% INPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MTS [mm^4] momento di inerzia trave di stiva % D [m] diametro fusoliera

% animaTP [mm] altezza dell'anima della trave di pavimento

% h [m] distanza pavimento passeggeri dall'asse di simmetria orizzontale % hip [m] altezza lato interno pallet Tipo LD3 (small e large)

% g [m] gioco tra pareti di containers e struttura(small e large) % hordinf [m] altezza ordinata inferiore

% lip [m] larghezza base inferiore pallet Tipo LD3 (small e large) % hep [m] altezza lato esterno pallet Tipo LD3 (small e large) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% %

% OUTPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % spessore [mm] spessore della trave di stiva

% larghezza [mm] larghezza della flangia della trave di stiva % altezza [mm] altezza dell'anima della trave di stiva

% L [mm] lunghezza della trave di stiva misurata sulla flangia superiore % delta1TS [gradi] angolo che individua il punto di intersezione della flangia % superiore con lo skin e l'asse verticale

% delta2TS [gradi] angolo che individua il punto di intersezione della flangia % inferiore con lo skin e l'asse verticale

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Specifica richiesta: Momento di inerzia della trave di stiva = 4.45*10^6 [mm^4] %Ciclo iterativo M=MTS; %[mm^4] Store=[]; StoreS=[]; StoreSS=[]; svuoto0=(D*1000)/2-((h*1000)+animaTP+(hip*1000)+2*g*1000+hordinf*1000); %[mm] altezza % trave di stiva + spazio vuoto

for i=150:1:240 %ciclo h [mm]

for j=0.5:0.1:0.7 %ciclo d/h [adimensionale]

for k=1:0.1:3 %ciclo t (spessore) [mm]

d=i; %altezza anima trave di stiva

b=i*j; %larghezza flangia trave di stiva

t=k; %spessore trave di stiva

J=4*t*(b/2)*(d/2-t/2)^2+(1/12)*t*(d-2*t)^3; %mom. d’inerzia trave di stiva

Area=2*b*t+(d-t)*t; %sezione della trave di stiva

svuoto=svuoto0-i; %freccia massima di vuoto tra la trave di stiva e l'ordinata

Store=[Store

J Area d b t svuoto]; end

end end

%Ora di tutte le configurazioni che sopravvivono al controllo inertia>M

temp=size(Store); for i=1:temp(1) if Store(i,1)>M StoreS=[StoreS

Store(i,1) Store(i,2) Store(i,3) Store(i,4) Store(i,5) Store(i,6)]; else %non fare niente

end end

%Ottimizzazione in base al peso( e quindi in base all'area della sezione)

[x,y]=min(StoreS(:,2)); temp1=size(StoreS); for i=1:temp1(1)

if StoreS(i,2)<x*1.1 StoreSS=[StoreSS

StoreS(i,1) StoreS(i,2) StoreS(i,3) StoreS(i,4) StoreS(i,5) StoreS(i,6)]; else %non fai niente

(12)

end end [x,y]=max(StoreSS(:,6)); spessore=StoreSS(y,5); %[mm] larghezza=StoreSS(y,4); %[mm] altezza=StoreSS(y,3); %[mm] peso=StoreSS(y,2); %[mm^2] inertia=StoreSS(y,1); %[mm^4] spaziovuoto=StoreSS(y,6); %[mm]

%DIMENSIONAMENTO LUNGHEZZA TRAVE DI STIVA

Lmin=lip+g; %[m] semilunghezza trave di stiva minima basata sulla dimensione del % container misurata sulla flangia superiore

L1=((D/2-hordinf)^2-(h+animaTP/1000+2*g+hip)^2)^0.5; %[m] semilunghezza di controllo %CONTROLLO SULLA LUNGHEZZA MINIMA DELLA TRAVE DI STIVA

if L1<Lmin

%manda un messaggio di verifica non superata

disp('Il container non entra. Problema di lunghezza minima di trave di stiva.'); else %manda un messaggio di verifica superata

disp('Controllo di lunghezza minima di trave di stiva superato'); end

%CONTROLLO SUGLI INGOMBRI DEL CONTAINER E ALTRO

x1=((h+animaTP/1000+g+hep)^2+(g+lsp)^2)^0.5; x2=D/2-hordinf;

if x1>x2

%manda un messaggio di verifica non superata

disp('Il container non entra. Problema di ingombro relativo ad hep.'); else %manda un messaggio di verifica superata

disp('Controllo di ingombro relativo ad hep superato'); end

spaziovuotominimo=hordinf*0.8*1000; %spazio vuoto minimo tra la trave di stiva e l'ordinata inferiore

if spaziovuoto<spaziovuotominimo

%manda un messaggio di verifica non superata

disp('Distanza max trave di stiva - ordinata inferiore non sufficiente.'); else %manda un messaggio di verifica superata

disp('Distanza max trave di stiva - ordinata inferiore sufficiente'); end

hTS=(h+animaTP/1000+2*g+hip)*1000; %[mm] posizionamento verticale della trave di stiva %RUN-OUT DELLE FLANGIE

xrunoutTSsup=((D/2-hordinf)^2-(hTS/1000)^2)^0.5-0.007; %[m] punto di intersezione tra %la flangia superiore e ordinata

xrunoutTSinf=((D/2-hordinf)^2-(hTS/1000+altezza/1000)^2)^0.5-0.006; %[m] punto di %intersezione tra la flangia inferiore e ordinata

delta1TSrad=acos(hTS/(Dfus/2));

delta1TS=delta1TSrad*factrad; %[gradi] angolo che individua il punto di intersezione % della flangia superiore con lo skin e l'asse verticale

delta2TSrad=acos((hTS+altezza)/(Dfus/2));

delta2TS=delta2TSrad*factrad; %[gradi] angolo che individua il punto di intersezione % della flangia inferiore con lo skin e l'asse verticale

(13)

DimensionamentoMontantiPasseggeri

%DIMENSIONAMENTO MONTANTI PASSEGGERI

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

% %

% INPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % NMP [N] carico di esercizio sulla trave di pavimento % hordsup [m] altezza ordinata superiore

% lsp [m] larghezza base superiore pallet Tipo LD3 (small e large)

% h [m] distanza pavimento passeggeri dall'asse di simmetria orizzontale % animaTP [mm] altezza dell'anima della trave di pavimento

% g [m] gioco tra pareti di containers e struttura(small e large) % hip [m] altezza lato interno pallet Tipo LD3 (small e large) % D [m] diametro fusoliera

% Dfus [mm] diametro fusoliera

% hTP [mm] distanza flangia superiore - asse orizzontale % EMP [Pa] modulo di Young del montante passeggeri %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% %

% OUTPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % spessore [mm] spessore del montante passeggeri

% larghezza [mm] larghezza del montante passeggeri (sezione quadrata)

% alfaintMP [gradi] angolo tra l'asse orizzontale e la la retta che unisce il centro % con il punto d'intersezione tra la flangia interna del montante e l'ordinata % alfaextMP [gradi] angolo tra l'asse orizzontale e la la retta che unisce il centro % con il punto d'intersezione tra la flangia esterna del montante e l'ordinata % alfamedMP [gradi] angolo tra l'asse orizzontale e la la retta che unisce il centro % con il punto d'intersezione tra la mediana del montante e l'ordinata % DMP [mm] diametro interno dell'ordinata inferiore

% hMP [mm] distanza del montante passeggeri dall'asse orizzontale

% distanzaMP [mm] distanza dall'asse di simmetria della flangia interna del montante % LCMP [mm] lunghezza montante a sezione costante

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Il dimensionamento si basa sull'ipotesi che il carico distribuito applicato alla trave %di pavimento si scarica in maniera simmetrica sui due montanti (5000 N per montante)+un %sovraccarico del 25 dovuto all'ordinata, e sotto tale carico l'accorciamento totale del %montante (è compresso) non deve superare 0,4 mm. Inoltre la sigma di esercizio non deve %superare la sigma critica euleriana/(il fattore di carico ultimo*1.1) (data

%dall'instabilità euleriana delle travi caricate di punta). A quel punto si fa %un'ottimizzazione in base al peso.

N=NMP*0.75; %[N] carico di esercizio

E=EMP; %[Pa] modulo di Young del montante passeggeri %CALCOLO DISTANZA DALL'ASSE DI SIMMETRIA

%E' la distanza tra l'asse di simmetria e la flangia del montante più vicina al medesimo

dsegnato=(D-2*hordsup)*(3/8); %[m] distanza di controllo media

dmonpas=2*g+lsp; %[m] posizionamento orizzontale del montante passeggeri %Controllo sul posizionamento orizzontale

if and(dmonpas<1.1*dsegnato,dmonpas>0.9*dsegnato) %messaggio di verifica superata

disp('Verifica di posizionamento orizzontale del montante passeggeri superata'); else %messaggio di verifica non superata

disp('Verifica di posizionamento orizzontale del montante passeggeri non superata'); end

x1=((D/2-hordinf)^2-(2*g+lsp)^2)^0.5;

L=x1-h-animaTP/1000; %[m] lunghezza del montante (distanza tra la trave di pavimento e % l'intersezione tra la flangia interna e l'ordinata inferiore)

deltamax=0.0004; %[m] massima deformazione montante

Ks=1/(3.75*1.1); %coefficiente di sicurezza rispetto al carico critico sigmaes<sigmacr/(3.75*1.1)

Store=[]; StoreS=[];

for i=0.010:0.001:0.100 % [m]ciclo sul lato l della sezione quadrata del montante

for j=0.0005:0.0001:0.0035 %[m]ciclo sullo spessore t

t=j; l=i;

Area=4*t*(l-t); %[m^2] area della sezione del montante

(14)

Pcr=((3.14)^2*(E*Jy))/(L^2); %[N] carico critico di instabilità euleriana

sigmacr=Pcr/Area; %[N/m^2] sigma critica

sigma=N/Area; %[N/m^2] sigma di esercizio

eps=sigma/E; %[adimensionale] epsilon

Lf=L/(1+eps); %[m] lunghezza finale del montante (è più piccola perchè compresso)

delta=L-Lf; %[m] variazione di lunghezza del montante, se minore di 0.0005 m OK!

Store=[Store

l t Area delta sigma sigmacr ]; end end %verifiche temp=size(Store); for i=1:temp(1) if Store(i,4)<deltamax if Store(i,5)<Store(i,6)*Ks StoreS=[StoreS

Store(i,1) Store(i,2) Store(i,3) Store(i,4) Store(i,5) Store(i,6)]; else %non fai niente

end

else %non fai niente

end end

%Ottimizzazione rispetto al peso [x,y]=min(StoreS(:,3));

spessore=StoreS(y,2)*1000; %[mm]

larghezza=StoreS(y,1)*1000; %[mm]

delta=StoreS(y,4)*1000; %[mm]

distanzaMP=round(dmonpas*1000); %[mm] dist. dell'asse vert. della fla. int. del montante

alfaintMPrad=acos(distanzaMP/(Dfus/2-hordinf*1000));

alfaintMP=alfaintMPrad*factrad; %[gradi] angolo tra l'asse orizz. e la retta che %unisce il centro con il punto d'inters.ne tra la flangia int. del montante e l'ordinata

alfaextMPrad=acos((distanzaMP+larghezza)/(Dfus/2-hordinf*1000));

alfaextMP=alfaextMPrad*factrad; %[gradi] angolo tra l'asse orizz. e la la retta che unisce il centro con il punto d'inters.ne tra la flangia est. del montante e l'ordinata

alfamedMPrad=acos((distanzaMP+larghezza/2)/(Dfus/2));

alfamedMP=alfamedMPrad*factrad; %[gradi] angolo tra l'asse orizzontale e la retta che unisce il centro con il punto d'inters.ne tra la mediana del montante e l'ordinata

hMP=animaTP+hTP; %[mm] distanza del montante passeggeri dall'asse orizzontale

DMP=Dfus-2*hordinf*1000; %[mm] diametro interno dell'ordinata inferiore

LCMP=0.5*DMP*sin(alfaextMPrad)-3*larghezza-hMP; %[mm] lunghezza montante a sezione % costante

(15)

DimensionamentoMontantiDiStiva

% DIMENSIONAMENTO MONTANTI DI STIVA

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

% %

% INPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % NMS [N] carico di esercizio sulla trave di stiva % hordinf [m] altezza ordinata inferiore

% h [m] distanza pavimento passeggeri dall'asse di simmetria orizzontale % animaTP [mm] altezza dell'anima della trave di pavimento

% g [m] gioco tra pareti di containers e struttura(small e large) % hip [m] altezza lato interno pallet Tipo LD3 (small e large) % D [m] diametro fusoliera

% Dfus [mm] diametro fusoliera

% animaTS [mm] altezza dell'anima della trave di stiva % hTS [mm] distanza flangia superiore - asse orizzontale % EMS [Pa] modulo di Young per il montante di stiva %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% %

% OUTPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % spessore [mm] spessore del montante di stiva

% larghezza [mm] larghezza del montante di stiva (sezione quadrata)

% alfaintMS [gradi] angolo tra l'asse orizzontale e la la retta che unisce il centro % con il punto d'intersezione tra la flangia interna del montante e l'ordinata % alfaextMS [gradi] angolo tra l'asse orizzontale e la la retta che unisce il centro % con il punto d'intersezione tra la flangia esterna del montante e l'ordinata % alfamedMS [gradi] angolo tra l'asse orizzontale e la la retta che unisce il centro % con il punto d'intersezione tra la mediana del montante e l'ordinata % DMS [mm] diametro interno dell'ordinata inferiore

% hMS [mm] distanza del montante di stiva dall'asse orizzontale

% distanzaMS [mm] distanza dall'asse di simmetria della flangia interna del montante % LCMS [mm] lunghezza montante a sezione costante

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Il dimensionamento si basa sull'ipotesi che il carico distribuito applicato alla trave % di stiva si scarica in maniera simmetrica sui due montanti (2500 N per montante)+ un % sovraccarico del 25% dovuto all'ordinata, e sotto tale carico l'accorciamento totale % del montante (è compresso) non deve superare 0,1 mm. Inoltre la sigma di esercizio non %deve superare la sigma critica euleriana/(il fattore di carico ultimo*1.1) (data

%dall'instabilità euleriana delle travi%caricate di punta). A quel punto si fa %un'ottimizzazione in base al peso.

N=NMS*0.75; %[N] carico di esercizio

E=EMS; %[Pa] modulo di Young per il montante di stiva

%Calcolo distanza dall'asse di simmetria della flangia interna del montante di stiva

lps=2*((D/2-hordinf)^2-(h+animaTP/1000+2*g+hip)^2)^0.5;

d=lps/4; %[m] distanza asse di simmetria-flangia interna %Calcolo della lunghezza del montante di stiva

x1=(D/2-hordinf)-((D/2-hordinf)^2-d^2)^0.5; L=spaziovuoto/1000-x1; %[m]

deltamax=0.0001; %[m] massima deformazione montante

Ks=1/(3.75*1.1); %coefficiente di sicurezza rispetto al carico critico sigmaes<sigmacr/(3.75*1.1)

Store=[]; StoreS=[];

for i=0.005:0.001:0.100 % [m]ciclo sul lato l della sezione quadrata del montante for j=0.0005:0.0001:0.0035 %[m]ciclo sullo spessore t

t=j; l=i;

Area=4*t*(l-t); %[m^2] area della sezione del montante

Jy=t*l*(l-t)^2+(1/6)*t*(l-t)^3; %[m^4] momento di inerzia flessionale del montante

Pcr=((3.14)^2*(E*Jy))/(L^2); %[N] carico critico di instabilità euleriana

sigmacr=Pcr/Area; %[N/m^2] sigma critica

sigma=N/Area; %[N/m^2] sigma di esercizio

eps=sigma/E; %[adimensionale] epsilon

Lf=L/(1+eps); %[m] lunghezza finale del montante (è più piccola perchè compresso)

delta=L-Lf; %[m] variazione di lunghezza del montante, se minore di 0.0005 m OK!

Store=[Store

(16)

end end %verifiche temp=size(Store); for i=1:temp(1) if Store(i,4)<deltamax if Store(i,5)<Store(i,6)*Ks StoreS=[StoreS

Store(i,1) Store(i,2) Store(i,3) Store(i,4) Store(i,5) Store(i,6)]; else %non fai niente

end

else %non fai niente

end end

%Ottimizzazione rispetto al peso

[x,y]=min(StoreS(:,3));

spessore=StoreS(y,2)*1000; %[mm]

larghezza=StoreS(y,1)*1000; %[mm]

delta=StoreS(y,4)*1000; %[mm]

distanzaMS=round(d*1000); %[mm] distanza dell'asse vert. della flangia int. del montante

alfaintMSrad=acos(distanzaMS/(Dfus/2-hordinf*1000));

alfaintMS=alfaintMSrad*factrad; %[gradi] angolo tra l'asse orizz. e la retta che %unisce il centro con il punto d'inters.ne tra la flangia int. del montante e l'ordinata

alfaextMSrad=acos((distanzaMS+larghezza)/(Dfus/2-hordinf*1000));

alfaextMS=alfaextMSrad*factrad; %[gradi] angolo tra l'asse orizz. e la retta che %unisce il centro con il punto d'inters.ne tra la flangia est. del montante e l'ordinata

alfamedMSrad=acos((distanzaMS+larghezza/2)/(Dfus/2));

alfamedMS=alfamedMSrad*factrad; %[gradi] angolo tra l'asse orizz. e la retta che %unisce il centro con il punto d'intersezione tra la mediana del montante e l'ordinata

hMS=animaTS+hTS; %[mm] distanza del montante passeggeri dall'asse orizzontale

DMS=Dfus-2*hordinf*1000; %[mm] diametro interno dell'ordinata inferiore

LCMS=0.5*DMS*sin(alfaextMSrad)-3*larghezza-hMS; %[mm] lungh. montante a sez.ne costante LCMS=round(LCMS);

(17)

Pannelli

% PANNELLI

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

% %

% INPUT DELLA PROCEDURA %

% %

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

% h [m] distanza pavimento passeggeri dall'asse di simmetria orizzontale % animaTP [mm] altezza dell'anima della trave di pavimento

% g [m] gioco tra pareti di containers e struttura(small e large) % hip [m] altezza lato interno pallet Tipo LD3 (small e large) % hordinf [m] altezza ordinata inferiore

% D [m] diametro fusoliera

% hordsup [m] altezza ordinata superiore

% Pd [matrice] dati pannello dorsale (...\tesi\inputprogramma) % Pl [matrice] dati pannello laterale (...\tesi\inputprogramma) % Pv [matrice] dati pannello ventrale (...\tesi\inputprogramma) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% %

% OUTPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % td [mm] spessore pannello dorsale

% tl [mm] spessore pannello laterale % tv [mm] spessore pannello ventrale % alfa1 [gradi] angolo del semipannello ventrale

% alfav [gradi] angolo del semipannello laterale inferiore % alfal [gradi] angolo del semipannello laterale superiore % alfa4 [gradi] angolo del semipannello dorsale

% tsd [mm] spessore corrente dorsale % hd [mm] altezza corrente dorsale % dd [mm] lunghezza base corrente dorsale % fd [mm] lunghezza flangia corrente dorsale % tsl [mm] spessore corrente laterale

% hl [mm] altezza corrente laterale

% dl [mm] lunghezza base corrente laterale % fl [mm] lunghezza flangia corrente laterale % tsv [mm] spessore corrente ventrale

% hv [mm] altezza corrente ventrale

% dv [mm] lunghezza base corrente ventrale % fv [mm] lunghezza flangia corrente ventrale % raccordoD [mm] raggio di raccordo del corrente dorsale % raccordoL [mm] raggio di raccordo del corrente laterale % raccordoV [mm] raggio di raccordo del corrente ventrale

% BD1angle [gradi] spaziatura angolare primaria del pannello dorsale % BD2angle [gradi] spaziatura angolare secondaria del pannello dorsale % BL1angle [gradi] spaziatura angolare primaria del pannello laterale

% BLDangle [gradi] spaziatura angolare secondaria del pannello laterale superiore % BLVangle [gradi] spaziatura angolare secondaria del pannello laterale inferiore % BV1angle [gradi] spaziatura angolare primaria del pannello ventrale

% BV2angle [gradi] spaziatura angolare secondaria del pannello ventrale % nd0l [intero] numero correnti primari semipannello dorsale

% nd1 [intero] numero correnti secondari semipannello dorsale

% nl0d [intero] numero correnti primari semipannello laterale verso dorsale % nl1d [intero] numero correnti secondari semipannello laterale verso dorsale % nl0v [intero] numero correnti primari semipannello laterale verso ventrale % nl1v [intero] numero correnti secondari semipannello laterale verso ventrale % naux [intero] numero correnti tra mediana e serie di correnti nel dettaglio % nv0l [intero] numero correnti primari semipannello ventrale

% nv1 [intero] numero correnti secondari semipannello ventrale

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Questo file serve per dimensionare le dimensioni dei tre tipi di pannelli (1 dorsale, %2 laterali ed 1 ventrale). Successivamente elabora i dati di ingresso sul

%dimensionamento del pannello irrigidito e fornisce in uscita il corretto posizionamento %e numero di correnti.

factpan=0.00872665; factpan2=114.59156;

%CALCOLO DEGLI ANGOLI DEI PANNELLI

alfa1rad=acos((h+animaTP/1000+2*g+hip)/(D/2-hordinf));

(18)

alfa2=90-alfa1; %[gradi] angolo inferiore del pannello laterale

alfa3rad=asin(1/(D/2-hordsup));

alfa3=alfa3rad*factrad; %angolo superiore del pannello laterale

alfa4=90-alfa3; %semiangolo del pannello dorsale %Caricamento dei dati dei pannelli irrigiditi

%La struttura è stata scritta pensando ad un corrente ad omega, ma è facilmente

%adattabile ad un corrente a zeta, simmetrico e non simmetrico,ma a flangie rettilinee, %considerando la base del corrente ad omega (d) come se fosse la flangia inferiore di %quello a zeta

load Pd.txt;

w=Pd(1); %[mm] spessore generalizzato del pannello irrigidito

ts_t=Pd(2); %ts/t

h_b=Pd(3); %h/b rapporto tra l'altezza del corrente e il passo tra i correnti

d_h=Pd(4); %d/h rapporto tra la base e l'altezza del corrente

As_bt=Pd(5); %As/bt

b=Pd(6); %b [mm] passo tra i correnti

f_h=Pd(7); %f/h rapporto tra la flangia e l'altezza del corrente

tipod=Pd(8); %identifica se è un corrente a zeta("2") oppure ad omega ("1")

calcola1;

td=t; %[mm] spessore pannello dorsale

tsd=ts; %[mm] spessore corrente dorsale

hd=H; %[mm] altezza corrente dorsale

dd=d; %[mm] lunghezza base corrente dorsale

fd=f; %[mm] lunghezza flangia corrente dorsale

bd=b; %[mm] passo tra i correnti

raccordoD=rac; %[mm] raggio di raccordo del corrente dorsale

load Pl.txt;

w=Pl(1); %[mm] spessore generalizzato del pannello irrigidito

ts_t=Pl(2); %ts/t

h_b=Pl(3); %h/b rapporto tra l'altezza del corrente e il passo tra i correnti

d_h=Pl(4); %d/h rapporto tra la base e l'altezza del corrente

As_bt=Pl(5); %As/bt

b=Pl(6); %b [mm] passo tra i correnti

f_h=Pl(7); %f/h rapporto tra la flangia e l'altezza del corrente

tipol=Pl(8); %identifica se è un corrente a zeta ("2") oppure ad omega ("1")

calcola1;

tl=t; %[mm] spessore pannello laterale

tsl=ts; %[mm] spessore corrente laterale

hl=H; %[mm] altezza corrente laterale

dl=d; %[mm] lunghezza base corrente laterale

fl=f; %[mm] lunghezza flangia corrente laterale

bl=b; %[mm] passo tra i correnti

raccordoL=rac; %[mm] raggio di raccordo del corrente laterale

load Pv.txt;

w=Pv(1); %[mm] spessore generalizzato del pannello irrigidito

ts_t=Pv(2); %ts/t

h_b=Pv(3); %h/b rapporto tra l'altezza del corrente e il passo tra i correnti

d_h=Pv(4); %d/h rapporto tra la base e l'altezza del corrente

As_bt=Pv(5); %As/bt

b=Pv(6); %b [mm] passo tra i correnti

f_h=Pv(7); %f/h rapporto tra la flangia e l'altezza del corrente

tipov=Pv(8); %identifica se è un corrente a zeta ("2") oppure ad omega ("1")

calcola1;

tv=t; %[mm] spessore pannello ventrale

tsv=ts; %[mm] spessore corrente ventrale

hv=H; %[mm] altezza corrente ventrale

dv=d; %[mm] lunghezza base corrente ventrale

fv=f; %[mm] lunghezza flangia corrente ventrale

bv=b; %[mm] passo tra i correnti

raccordoV=rac; %[mm] raggio di raccordo del corrente ventrale %PASSO DEI CORRENTI

%Pannello Dorsale

%Si posiziona un corrente nella posizione di mezzeria del pannello e poi gli altri %vengono intervallati con passo costante fissato.

x=factpan*D*1000*alfa4; %[mm] lunghezza di metà pannello dorsale

nd0=floor(x/bd); %[adimensionale] numero dei correnti sul semipannello escluso % quello posizionato in mezzeria

restod=x-nd0*bd; %[mm] resto del semipannello

nd=2*nd0+1; %numero dei correnti sul pannello dorsale %Pannello Laterale

%Fissiamo l'origine nel punto medio dell'arco sotteso dalla trave di pavimento (e di %conseguenza i due semipannelli non sono più simmetrici) e nell'origine non mettiamo il %corrente (non si può praticare un'apertura)

beta2rad=asin((h+animaTP/1000)/(D/2)); beta2=beta2rad*factrad;

(19)

beta1=beta1rad*factrad;

betax=beta1/2+beta2/2; %[gradi] angolo tra l'asse orizzontale di riferimento e il % punto medio dell'arco della T.d.P

alfad=betax+alfa3; %[gradi] angolo del semipannello laterale adiacente al % pannello dorsale

alfav=alfa2-betax; %[gradi] angolo del semipannello laterale adiacente al % pannello ventrale

xd=factpan*D*1000*alfad; %[mm] lunghezza del semipannello superiore

nl0d0=floor(xd/bl); %[adimensionale] numero dei correnti sul semipannello % superiore escluso quello posizionato in mezzeria

restold=xd-nl0d0*bl; %[mm] resto del semipannello superiore

xv=factpan*D*1000*alfav; %[mm] lunghezza del semipannello inferiore

nl0v0=floor(xv/bl); %[adimensionale] numero dei correnti sul semipannello % inferiore escluso quello posizionato in mezzeria

restolv=xv-nl0v0*bl; %[mm] resto del semipannello inferiore

nl=nl0d0+nl0v0; %numero dei correnti sul pannello laterale %Pannello Ventrale

%Si posiziona un corrente nella posizione di mezzeria del pannello e poi gli altri %vengono intervallati con passo costante fissato

x=factpan*D*1000*alfa1; %[mm] lunghezza di metà pannello ventrale

nv0=floor(x/bv); %[adimensionale] numero dei correnti sul semipannello % escluso quello posizionato in mezzeria

restov=x-nv0*bv; %[mm] resto del semipannello

nv=2*nv0+1; %numero dei correnti sul pannello ventrale %CORREZIONE DEI PASSI

%Pannello dorsale - pannello laterale %LEGENDA ricorda1

% ricorda1=1 => pari (vuol dire che pannello dorsale e laterale hanno lo stesso passo) % ricorda1=2 => dorsale (vuol dire che il pannello dorsale ha il passo più grande) % ricorda1=3 => laterale (vuol dire che il pannello laterale ha il passo più grande)

if bd-bl>0

ricorda1=2; %il passo + grande è quello del pannello dorsale

elseif bd-bl==0

ricorda1=1; %stesso passo tra dorsale e laterale

else ricorda1=3; %il passo + grande è quello del pannello laterale

end if ricorda1==1 %pari b2=bd; b1=bl; a2=restod; a1=restold; n20=nd0; n10=nl0d0;

elseif ricorda1==2 %dorsale

b2=bd; b1=bl; a2=restod; a1=restold; n20=nd0; n10=nl0d0;

elseif ricorda==3 %laterale b2=bl; b1=bd; a2=restold; a1=restod; n20=nl0d0; n10=nd0; else %non fai niente

disp('Errore nella procedura Pannelli'); end

CorreggiPassi; controllo1=controllo; if ricorda1==1 %pari

nd0l=n20;

nl0d=n10; %numero di correnti a passo costante nel semipannello laterale che è %adiacente al dorsale

bd1=b21;

bl1d=b11; %passo secondario nel semipannello laterale che è adiacente al dorsale

nd1=n21;

nl1d=n11; %numero dei correnti nel semipannello lat. che è adiacente al dorsale

elseif ricorda1==2 %dorsale

nd0l=n20; nl0d=n10; bd1=b21; bl1d=b11; nd1=n21;

(20)

nl1d=n11;

elseif ricorda1==3 %laterale nl0d=n20; nd0l=n10; bl1d=b21; bd1=b11; nl1d=n21; nd1=n11; else %non fai niente

disp('Errore nella procedura Pannelli'); end

%Pannello ventrale - pannello laterale %LEGENDA ricorda2

% ricorda2=1 => pari (vuol dire che pannello ventrale e laterale hanno lo stesso passo) % ricorda2=2 => ventrale (vuol dire che il pannello ventrale ha il passo più grande) % ricorda2=3 => laterale (vuol dire che il pannello laterale ha il passo più grande)

if bv-bl>0

ricorda2=2; %il passo + grande è quello del pannello ventrale

elseif bv-bl==0

ricorda2=1; %stesso passo tra ventrale e laterale

else ricorda2=3; %il passo + grande è quello del pannello laterale

end if ricorda2==1 %pari b2=bv; b1=bl; a2=restov; a1=restolv; n20=nv0; n10=nl0v0;

elseif ricorda2==2 %ventrale

b2=bv; b1=bl; a2=restov; a1=restolv; n20=nv0; n10=nl0v0;

elseif ricorda2==3 %laterale b2=bl; b1=bv; a2=restolv; a1=restov; n20=nl0v0; n10=nv0; else %non fai niente

disp('Errore nella procedura Pannelli'); end

CorreggiPassi; controllo2=controllo; if ricorda2==1 %pari

nv0l=n20;

nl0v=n10; %numero di correnti a passo costante nel semipannello laterale che è %adiacente al ventrale

bv1=b21;

bl1v=b11; %passo secondario nel semipannello laterale che è adiacente al ventrale nv1=n21;

nl1v=n11; %numero dei correnti nel semipannello lat. che è adiacente al ventrale

elseif ricorda2==2 %ventrale

nv0l=n20; nl0v=n10; bv1=b21; bl1v=b11; nv1=n21; nl1v=n11;

elseif ricorda2==3 %laterale nl0v=n20; nv0l=n10; bl1v=b21; bv1=b11; nl1v=n21; nv1=n11; else %non fai niente

disp('Errore nella procedura Pannelli'); end

%Numero totale dei correnti

ndt=1+2*nd0l+2*nd1; %numero dei correnti sul pannello dorsale

(21)

naux=round((nl0v-5)/2); %numero di correnti che separano la linea di riferimento (in % mezzo alla trave di pavimento) dalla serie di 5 correnti da studiare nel dettaglio

nlt=nl0v+nl1v+nl0d+nl1d; %numero dei correnti sul pannello laterale

ntotale=ndt+nvt+2*nlt; %numero totale dei correnti della fusoliera %CONVERSIONE ANGOLARE DEI PASSI DEI CORRENTI

%Questa operazione è necessaria perchè il CATIA per le matrici circolari, necessita %di una spaziatura angolare e non lineare.

%Pannello Dorsale

BD1angle=factpan2*(1/(D*1000))*bd; %[gradi] spaziatura ang. pri. del pannello dorsale

BD2angle=factpan2*(1/(D*1000))*bd1; %[gradi] spaziatura ang. sec. del pannello dorsale

BL1angle=factpan2*(1/(D*1000))*bl; %[gradi] spaziatura ang. pri. del pannello laterale

BLDangle=factpan2*(1/(D*1000))*bl1d; %[gradi] spaziatura ang. sec. del pannello laterale % verso il dorsale

BLVangle=factpan2*(1/(D*1000))*bl1v; %[gradi] spaziatura angolare secondaria del % pannello laterale verso il ventrale

BV1angle=factpan2*(1/(D*1000))*bv; %[gradi] spaziatura ang. pri. del pannello ventrale

(22)

Calcola1

%CALCOLA1

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

% %

% INPUT DELLA PROCEDURA %

% %

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

% w [mm] spessore generalizzato del pannello irrigidito % ts_t [adimensionale] rapporto spessore corrente - spessore skin

% h_b [adimensionale] rapporto tra l'altezza del corrente e il passo tra i correnti % d_h [adimensionale] rapporto tra la base e l'altezza del corrente

% As_bt [adimensionale] rapporto area corrente - area skin % b [mm] passo tra i correnti

% f_h [mm] rapporto tra la flangia e l'altezza del corrente %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% %

% OUTPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % t [mm] spessore dello skin

% ts [mm] spessore del corrente % H [mm] altezza del corrente

% d [mm] lunghezza della base del corrente % f [mm] lunghezza della flangia del corrente % rac [mm] raggio di raccordo del corrente

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

t=w/(1+As_bt); %[mm] spessore dello skin

ts=t*ts_t; %[mm] spessore del corrente

H=b*h_b; %[mm] altezza del corrente

d=H*d_h; %[mm] lunghezza della base del corrente

f=H*f_h; %[mm] lunghezza della flangia del corrente

rac=(1/6)*max(H,d);

rac=round(rac); %[mm] raggio di raccordo del corrente

if rac<4 rac=4; elseif rac>14 rac=14;

else %non fai niente

(23)

CorreggiPassi

% CORREGGI PASSI

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

% %

% INPUT DELLA PROCEDURA %

% %

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

% b2 [mm] passo tra correnti del secondo semipannello (passo più grande) % b1 [mm] passo tra correnti del primo semipannello (passo più piccolo) % a2 [mm] lunghezza estremità libera secondo semipannello

% a1 [mm] lunghezza estremità libera primo semipannello

% n20 [adimensionale] numero correnti a passo costante secondo semipannello % n10 [adimensionale] numero correnti a passo costante primo semipannello %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% %

% OUTPUT DELLA PROCEDURA %

% %

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

% n20 [adimensionale] numero correnti a passo costante nel secondo semipannello % n10 [adimensionale] numero correnti a passo costante nel primo semipannello % b21 [mm] passo secondario nel secondo semipannello

% b11 [mm] passo secondario nel primo semipannello

% n21 [adimensionale] numero correnti perturbati nel secondo semipannello % n11 [adimensionale] numero correnti perturbati nel primo semipannello

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %In entrata abbiamo il valore dei due passi e dei due resti dei pannelli adiacenti. %La funzione CORREGGIPASSI modifica la parte terminale dei due pannelli mantenendo per %specifica di non dare passi<0.8*b1 e passi>1.2*b2.

controllo=('Nessuna modifica'); %serve per vedere se la procedura ha modificato i %parametri

n21=0; %numero correnti a passo diverso dai loro fratelli del secondo pannello

n11=0; %numero correnti a passo diverso dai loro fratelli del secondo pannello

b21=0; %passo secondario del secondo pannello

b11=0; %passo secondario del primo pannnello

if a1+a2<1.2*b2

%CASO 1: attuo una procedura senza inserimento di correnti nella baia di a1+a2

if a1+a2+b1<1.2*b2 %CASO1A: tolgo l'ultimo corrente del pannello 1 senza % modificare i passi

%OUTPUT

n10=n10-1; %ho tolto il corrente

controllo=('Modificato 1A');

elseif (b1+b2+a1+a2)/2<1.2*b2 %CAS01B: tolgo gli ultimi correnti di entrambi i % pannelli(1 e 2), e piazzo un corrente nel punto medio della baia che si è

% creata(a1+a2+b1+b2) e poi verifico in quale dei due pannelli è andato a finire

%OUTPUT

n10=n10-1; %tolgo ad entrambi i pannelli un corrente a passo costante

n20=n20-1;

bx=(b1+b2+a1+a2)/2;

controllo=('Modificato 1B');

if bx<b2+a2 %vuol dire che fa parte del secondo pannello

n21=1; b21=bx;

else %vuol dire che fa parte del primo pannello

n11=1; b11=bx; end

elseif and((a1+a2+b1+b2)/3>0.8*b1, (a1+a2+b1+b2)/3<1.2*b2)

%CASO1C: non tolgo nessuno degli ultimi correnti prendo i due correnti e li posiziono %equidistanti all'interno della baia a1+a2+b1+b2 e poi verifico in quali pannelli sono %andati a finire %OUTPUT controllo=('Modificato 1C'); n10=n10-1; n20=n20-1; bx=(a1+a2+b1+b2)/3;

if 2*bx<b2+a2 %vuol dire che tutti e due i correnti sono finiti nel secondo %pannello

n21=2; b21=bx;

(24)

% nel secondo pannello

n11=1; n21=1; b21=bx; b11=bx;

else %vuol dire che tutti e due i correnti sono finiti nel primo pannello

n11=2; b11=bx; end

end

else %CASO2: attuo una procedura con inserimento di correnti nella baia di a1+a2

if and((a1+a2)/2>0.8*b1, (a1+a2)/2<1.2*b2)

%CASO2A: inserisco un corrente nel punto medio della baia a1+a2 e non tocco gli ultimi %due correnti dei due pannelli e vado a verificare dove è finito il corrente

%OUTPUT

controllo=('Modificato 2A'); bx=(a1+a2)/2;

if bx<a2 %vuol dire che fa parte del secondo pannello

n21=1; b21=bx;

else %vuol dire che fa parte del primo pannello

n11=1; b11=bx; end

elseif and((a1+a2+b1+b2)/4>0.8*b1, (a1+a2+b1+b2)/4<1.2*b2)

%CASO2B: inserisco un corrente, ma riposiziono questo + gli ultimi correnti dei due %pannelli e li posiziono in maniera equidistante all'interno della baia a1+a2+b1+b2 e %verifico dove vanno a finire i tre correnti

%OUTPUT

controllo=('Modificato 2B'); bx=(a1+a2+b1+b2)/4;

n10=n10-1; n20=n20-1;

if 3*bx<b2+a2 %vuol dire che tutti e tre i correnti sono andati a finire %nel secondo pannello

n21=3; b21=bx;

elseif 2*bx<b2+a2 %vuol dire che due correnti sono andati a finire nel %secondo ed un corrente nel primo pannello

n21=2; n11=1; b21=bx; b11=bx;

elseif bx<b2+a2 %vuol dire che un corrente è finito nel secondo pannello e %due nel primo pannello

n21=1; n11=2; b21=bx; b11=bx;

else %vuol dire che tutti e tre i correnti sono andati a finire nel primo %pannello

n11=2; b11=bx; end

elseif and((a1+a2)/3>0.8*b1, (a1+a2)/3<1.2*b2)

%CASO2C1: inserisco due correnti, e li posiziono in maniera equidistante nella baia %a1+a2 e poi verifico dove sono andati a finire i due correnti

%OUTPUT

controllo=('Modificato 2C1'); bx=(a1+a2)/3;

if 2*bx<a2 %vuol dire che i due correnti sono finiti nel secondo pannello

n21=2; b21=bx;

elseif bx<a2 %vuol dire che un corrente è finito nel secondo pannello e %l'altro nel primo

n21=1; n11=1; b21=bx; b11=bx;

else %vuol dire che sono finiti tutti e due nel primo pannello

n11=2; b11=bx; end

(25)

%CASO2C2: inserisco due correnti, ma riposiziono questi due + gli ultimi dei due %pannelli, e li riposiziono in maniera equidistante e vado a verificare che pannello %sono finiti %OUTPUT controllo=('Modificato 2C2'); n10=n10-1; n20=n20-1; bx=(a1+a2+b1+b2)/5;

if 4*bx<b2+a2 %vuol dire che tutti e quattro sono finiti nel secondo %pannello

n21=4; b21=bx;

elseif 3*bx<b2+a2 %vuol dire che tre correnti sono sul secondo pannello ed %uno sul primo

n21=3; n11=1; b21=bx; b11=bx;

elseif 2*bx<b2+a2 %vuol dire che due correnti sono sul secondo pannello e %due sul primo

n21=2; n11=2; b21=bx; b11=bx;

elseif bx<b2+a2 %vuol dire che un corrente è sul secondo pannello e tre %sul primo

n21=1; n11=3; b21=bx; b11=bx;

else %vuol dire che tutti e quattro i correnti sono sul primo

n11=4; b11=bx; end

end end

(26)

AllineaPannelli

% ALLINEAPANNELLI

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

% %

% INPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % spessorePD %[mm] spessore del pannello dorsale % spessorePL %[mm] spessore del pannello laterale % spessorePV %[mm] spessore del pannello ventrale % spessoreCD %[mm] spessore correnti dorsali % spessoreCL %[mm] spessore correnti laterali % spessoreCV %[mm] spessore correnti ventrali % D %[m] diametro fusoliera

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

% %

% OUTPUT DELLA PROCEDURA %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DfusPD %[mm] diametro pannello dorsale 3D % DfusPL %[mm] diametro pannello laterale 3D % DfusPV %[mm] diametro pannello ventrale 3D % DfusCD %[mm] diametro correnti dorsali 3D % DfusCL %[mm] diametro correnti laterali 3D % DfusCV %[mm] diametro correnti ventrali 3D

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Questo file serve per fornire i dati che servono ad allineare i pannelli della %fusoliera nello spirito di voler lasciare la parete esterna liscia (aerodinamica). %I diametri sia dei correnti, sia dei pannelli sono riferiti ai rispettivi piani medi.

vect1=[spessorePD spessorePL spessorePV]; tmax=max(vect1);

%PANNELLI

DfusPD=round(10000*D+tmax*10-spessorePD*10)/10; %[mm] diametro pannello dorsale 3D

DfusPL=round(10000*D+tmax*10-spessorePL*10)/10; %[mm] diametro pannello laterale 3D

DfusPV=round(10000*D+tmax*10-spessorePV*10)/10; %[mm] diametro pannello ventrale 3D

%CORRENTI

DfusCD=DfusPD-spessorePD-spessoreCD; %[mm] diametro correnti dorsali 3D

DfusCL=DfusPL-spessorePL-spessoreCL; %[mm] diametro correnti laterali 3D

Riferimenti

Documenti correlati

Sono disegnate come segmenti i cui estremi sono tratteggiati e vengono contraddistinte da lettere dell’alfabeto minuscole.. Il piano è il foglio dove disegniamo ma immaginato

Confronta il tuo disegno con quelli dei tuoi compagni: avete trovato tutti la stessa soluzione?. a) Traccia in rosso una retta che incontri solo 1 delle

grado di comprensione, variabile alla quale attribuiamo un forte peso soggettivo (affettivo, appunto). - Al contrario, la percezione della distanza tipologica di una lingua

Il più famoso scienziato antico che studiò le forme e le loro proprietà fu Euclide; egli visse nella Grecia antica 300 anni prima della nascita di

Trovare l’equazione della retta che passa per il punto nale alla retta di equazione... Risolvere il

Nello spazio ordinario, si ha che la proiezione ortogonale di un vettore b su un piano e’, fra i vettori del piano, quello piu’ vicino al vettore b.. Osserviamo che, per ogni vettore

Trova l'equazione di una generica retta passante per Q = (3, 5) (ci sono innite rette passanti per Q che formano un fascio: come si può esprimere una qualsiasi retta di

Angoli formati da rette parallele, angoli interni di un poligono. 2) Determina la misura degli angoli del triangolo ABC e del suo angolo