Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

2
voti

Script Scilab per il calcolo del carico critico euleriano.

Premessa

Anche se non è specifico del campo dell'ingegneria elettrica è comunque importante per un qualsiasi ingegnere industriale avere delle nozioni di Scienza delle Costruzioni. Una di queste nozioni è quella di carico critico euleriano cioè il carico massimo che una trave può sostenere in presenza di una forza premente normale alla sezione della trave ( la trave in questo caso è detta "puntone" ).

Un classico esempio che interessa l'ingegneria elettrica è quello dei tralicci di sostegno delle linee. Le travi che formano questi tralicci sono soggette a forze normali alla loro sezione ed alcune di loro ( quelle che appunto svolgono la funzione di "puntoni" ) incorrono nel problema dell'instabilità se il carico applicato è troppo elevato.

Per calcolare questo carico ci è stata data dal grande Leonhard Euler una semplice formula che restituisce, dato il materiale, la sezione e la lunghezza della trave il valore del carico minimo che può sostenere prima di incorrere in instabilità evidentemente inaccettabili.

Dalla teoria al codice

Dato che la standardizzazione nel campo delle travi per costruzioni meccaniche è ormai molto diffusa, così come la presenza di materiali ormai di uso largamente comune, nel risolvere problemi di questo tipo si incorre nel noioso inconveniente di fare calcoli su calcoli ripetitivi e poco interessanti.

Quindi ho fatto un piccolo e semplice script per Scilab ( ambiente di lavoro open source largamente utilizzato ) che permette di inserire i valori noti di una trave e di ottenere immediatamente il valore del momento di inerzia minimo della sezione considerata e il carico critico euleriano massimo applicabile alla trave senza incorrere in pericolose instabilità.

Ovviamente chi un giorno utilizzerà questo script deve tener presente che è solo uno strumento per verificare velocemente la bontà dei propri calcoli non certamente come un punto di riferimento per quanto riguarda la progettazione di travi o la loro verifica. Venendo finalmente al sodo le semplici formule che ho utilizzato sono quelle del momento di inerzia di varie sezioni ( 4 nella fattispecie) e poi la formula di eulero per il calcolo del carico critico.



Carico Critico Euleriano  : P_{cr}=\frac{\pi^2 \cdot E \cdot J_{min}}{L^2}



Momenti di inerzia delle sezioni considerate :


  • Rettangolare rispetto l'asse x : \frac{b \cdot h^3}{12}
  • Rettangolare rispetto l'asse y : \frac{b^3 \cdot h}{12}
  • Circolare : \frac{\pi}{64} \cdot d^4
  • Anulare : \frac{\pi}{64} \cdot (D^4-d^4)
  • Doppia T rispetto l'asse x :     \frac{b \cdot h^3}{12}-\frac{(b-s) \cdot (h-2 \cdot s)^3}{12}
  • Doppia T rispetto l'asse y :        \frac {h \cdot b^3}{12}-\frac{(h-2 \cdot s) \cdot (b-s)^3}{12}


Quando si parla di asse x e asse y intendo assi cartesiani posizionati sul baricentro della sezione. Comunque se non fosse chiaro rimando alla pagina di Wikipedia riguardante il momento di inerzia [1].

L'altro dato presente è il modulo di Young del materiale ( in questo caso allumino ed acciaio) [2]

A questo punto non mi resta che inserire il codice da me scritto per correlare queste semplici relazioni.



mprintf("\n")
mprintf("\n -*-*-*-*-*-*- EULER -*-*-*-*-*-*- \n")
mprintf("\n Created by Alessandro Poggiani \n")
mprintf ("\n Questo script calcola il carico critico euleriano di una trave nota la geometria della sezione  \n")
mprintf ("\n Inserire tutti i dati in millimetri così che il risultato ottenuto sia espresso in MegaPascal per quanto riguarda il CARICO CRITICO  e in mm^4 per quanto riguarda il MOMENTO DI INERZIA MINIMO. \n")
mprintf ("Di che materiale è costituita la trave? \n")
mprintf ("1 --> ACCIAIO \n") 
mprintf ("2 --> ALLUMINIO \n") 

scelta1 = input("Scegliere il tipo di materiale --> ")
 
if(scelta1==1)
E=210000; //modulo di Young acciaio	
elseif(scelta1==2)
E=70000; //modulo di Young alluminio
else
mprintf("La scelta non è prevista \n")
end 

l = input("Inserire il valore della lunghezza libera di inflessione --> ")
mprintf("Inserire il numero corrispondente alla sezione di cui si vuole calcolare Pcr \n")
//E=210000; 
mprintf("1 --> SEZIONE RETTANGOLARE \n")
mprintf("2 --> SEZIONE CIRCOLARE PIENA \n")
mprintf("3 --> SEZIONE ANULARE \n")
mprintf("4 --> SEZIONE A DOPPIA T \n")


scelta2 = input("Scegliere il tipo di sezione --> ")

if (scelta2==1)
	b=input("Inserire il valore della base --> ")
	h=input("Inserire il valore dell altezza --> ")
	if (b<h) //calcolo del momento di inerzia minimo
	  J_min=(h*(b^3))/12 
	  elseif(b>h)
	J_min=(b*(h^3))/12
	else 
	J_min=(b*(h^3))/12
	end
	Pcr=((%pi^2)*J_min*E)/(l^2) //calcolo del Carico Euleriano Critico
	
elseif (scelta2==2)
       d=input("Inserire il valore del diametro --> ")
 	J_min2=(%pi/64)*(d^4)
	Pcr=((%pi^2)*J_min2*E)/(l^2)

elseif(scelta2==3)
        D=input("Inserire il valore del diametro maggiore --> ")
        d1=input("Inserire il valore del diametro minore --> ")
       if(D>d1)
        J_min3=(%pi/64)*(D^4-d1^4) 
        Pcr=((%pi^2)*J_min3*E)/(l^2)
        else        
        mprintf("Il valore del diametro maggiore è più piccolo di quello del diametro minore \n")
        end

elseif(scelta2==4)
          s=input("Inserire lo spessore della sezione --> ") 
          h=input("Inserire il valore dell altezza della sezione --> ")
        b=input("Inserire il valore della base della sezione --> ")
        Jx=((b*h^3)/12)-((b-s)*((h-2*s)^3)/12);
        Jy=((h*b^3)/12)-(((h-2*s)*(b-s)^3)/12);
        if(Jy < Jx)
        J_min4=Jy
        else
        J_min4=Jx
        end 
        Pcr=((%pi^2)*J_min4*E)/(l^2)
else 
        mprintf("La scelta considerata non e prevista. \n")


end






Per utilizzare lo script ovvimente basta copiarlo con un editor di testo e salvarlo con estensione .m e successivamente eseguirlo con Scilab.

Naturalmente è gradita qualsiasi segnalazione di eventuali errori o consiglio dato che sto muovendo i primi passi con la programmazione in Scilab!!

1

Commenti e note

Inserisci un commento

di Mariomik,

Grazie per questo utile script™.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.