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 :
Momenti di inerzia delle sezioni considerate :
- Rettangolare rispetto l'asse x :
- Rettangolare rispetto l'asse y :
- Circolare :
- Anulare :
- Doppia T rispetto l'asse x :
- Doppia T rispetto l'asse y :
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!!

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)