venerdì 22 marzo 2013

Calcolo reazioni vincolari con Mathomatic


Risolvere un sistema isostatico significa risolvere il sistema di equazioni formato dalla condizione di equilibrio delle forze e dei momenti. Dopo aver sostituito i vincoli con le reazioni incognite e applicato le convenzioni sui segni non è difficile formare le equazioni. In genere nei casi semplici come quelli qui proposti il centro di rotazione viene scelto su un vincolo in modo da eliminare un incognita. Risolta l'equazione dei momenti si passa per sostituzione a risolvere quella delle forze. A mano il procedimento risolta laborioso e soggetto ad errore. Nel passato erano molto utilizzati i metodi grafici per esempio come il poligono funicolare. Attualmente una infinità di programmi e programmini online e no eseguono il calcolo matriciale. La soluzione con questi è immediata dopo avere immesso la matrice dei coefficienti. Una applicazione che invece manipola le equazioni con le regole dell'algebra come le applichiamo a mano è Mathomatic. Esso è un free e open source software che può simbolicamente risolvere, semplificare, combinare e confrontare equazioni algebriche. Così utilizzando questo software che è anche online si ha una risoluzione automatica di qualunque sistema di equazioni e comunque complesso. 

Qui di seguito il primo esempio. Per risolverlo con Mathomatic non occorre scaricare il programma ma basta andare al Service on the Web e incollare la sequenza di istruzioni scritta sotto. Per praticità gli indici delle forze e delle reazioni fanno riferimento alla numerazione dei nodi.


Equazioni e dialogo da incollare nel riquadro di input:
;
R2 + R4 - 100 - 300 - 50 = 0 ;equilibrio delle forze
-100*2 + 300*3 - R4*6 + 50*7 = 0 ;equilibrio dei momenti
R4 ;risolvi per la reazioni R4
#1 ;richiama l'equazione #1
eliminate R4 ;combinare l'equazione #1 con la #2
R2 ;calcola l'altra reazione
;
I risultati sono:
R4 = 175 N
R2 = 275 N
Le dimensioni le ho riportate io perchè non sono considerate nella risoluzione con Mathomatic

Un altro esempio numerico
;
R2 + R5 - 500 - 1200 - 100*2.5 = 0                              ; equilibrio delle forze
-200  - 500*5 + 1200*1 + 100*2.5*4.25 - R5*5.5 = 0 ; equilibrio dei momenti
R5     ; calcola R5
#1     ; richiama l'equazione 1
eliminate R5 ; combinare 1 con 2
R2    ;calcola R2
;

Un esempio parametrico
;
F2*x2 - R3*x3 + F4*x4 = 0   ;#1 eq. momenti
R1 + R3 - F2 - F4 = 0 ;#2 eq. forze
M2 = -R3*(x3-x2) + F4*(x4-x2) ;#3 momento in nodo 2
M3 = F4*(x4-x3) ;#4 momento in nodo 3
#1 
solve for R3
#2 
eliminate R3 
solve for R1
#3 
eliminate R3
;


sabato 2 febbraio 2013

Una gru a bandiera

Lo script qui proposto riguarda il proporzionamento di una gru a bandiera. Lo sbraccio è costituito da una monorotaia sostenuta ad una estremità da un tirante. Mediante i due slider si modificano rispettivamente la lunghezza L del tratto AB e la distanza H verticale AC dei supporti. Il carico è valutato in modo che la freccia di inflessione non superi l'1/800 della lunghezza L della monorotaia. Per il calcolo delle reazioni si suppone che il carico si trovi sull'estremità B.






domenica 20 gennaio 2013

Roark 7a ed. - Tab 8.1

Le scelte progettuali non sono mai univoche ed anzi prevedono un'infinità di combinazioni dei dati di ingresso.
Ogni variazione dei dati di ingresso è un nuovo scenario in cui rappresentare una soluzione. L'idea quindi è di utilizzare gli sliders come nelle consolle del suono. Si tratta di variare i dati di input entro un certo range in modo da ottenere il risultato voluto. Lo script qui sotto descritto applica questa modalità di calcolo ad un insieme di casi semplici riportati nelle tabelle del Roark.
Le formule e gli schemi sono tratti dal testo Roark's Formulas for Stress and Strain 7a edizione. Nella sezione 1 dell'interfaccia sono raccolti i 6 casi di vincolo delle estremità della trave. Nella sezione 2 ci sono gli sliders di input alle formule. Nella sezione 3 ci sono le finestre di input per i valori massimi dei range di variazione.  Infine nella sezione 4 sono riportati i risultati per gli estremi A e B: forza e momento di reazione, freccia e rotazione.



giovedì 20 dicembre 2012

Formule del Roark

Gli script di programmazione raccontano storie che leggono dati e forniscono dati. Gli script bisogna interpretarli a livello di funzionamento e a livello di risultati. L'interprete di esecuzione degli script in questo caso è Python 3.2. I risultati dipendono invece dall'oggetto di studio. Fra un milione di scelte su cui lavorare un classico è l'analisi lineare di travi rettilinee. Il Roark fornisce una casistica ben strutturata da interpretare e implementare negli script. Sotto è il caso della trave a sbalzo

Tab 8 caso 1.0














Script in python

import math

#valori di input
l = 600. #[mm] lunghezza trave
W = 50. #[kN] carico concentrato
a = 0. #[mm] distanza dal vincolo A del carico
I = 416.67 #[Cm^4] momento d'inerzia
E = 210000. #[MPa] modulo elasticità acciaio

#calcolo
'''caso 8.1a pag. 100 (7a edizione in pdf-2542X_08 pag. 65'''
I *= 10000 #[mm^4]
W *= 1000 #[N]
RA = 0.
MA = 0.
yA = -W/(6*E*I) * (2*l**3 - 3*l**2*a + a**3)
ThetaA = (W * (l - a)**2) / (2 * E * I)
MB = -W * (l - a) / (1000*1000)
RB = W / 1000
yB = 0.
ThetaB = 0.
outputA = 'RA = {0:.1f}, MA = {1:.1f},yA = {2:.2f}, ThetaA = {3:.2f}'.format(RA, MA, yA, ThetaA)
outputB = 'RB = {0:.1f}, MB = {1:.1f},yB = {2:.2f}, ThetaB = {3:.2f}'.format(RB, MB, yB, ThetaB)
print('Reazioni in kN, momenti in kN*m, freccia in mm')
print(outputA)
print(outputB)



mercoledì 21 marzo 2012

Dimensionamento delle ruote di frizione.






Approfondimenti con WolframAlpha

Listato Scilab PM9
//dati
P = 2 //[kW]potenza motrice
N1 = 600 //[g/min]giri ruota motrice
r = 2 //rapporto di trasmissione = N1/N2
i = 300 //[mm]interasse ruote

k = 1.5 //corff. aderenza
f = 0.2 //coeff. attrito
a = 30 //[N/mm]resistenza per unità di larghezza delle ruote

clc 
M = P*9549/N1 //[Nm]coppia motrice trasmessa
R1 = i/(1+r) //raggio ruota motrice
F = M*1000/R1 //forza tangenziale fra le ruote
T = k*F/f //forza di compressione
B = T/a

printf("RUOTE DI FRIZIONE" + "\n")
printf("Potenza motrice: " + string(P) + " [kW], " + "Giri motore: " + string(N1) + "\n\n")
printf("Larghezza minima ruote B = " + string(int(B))+ "[mm]\n")
printf("Compressione ruote T = " + string(int(T)) + "[N] \n")