kill(all);

cons. l'equil. del quarto di telaietto

eqtx: XB=0 $

eqty: YA=0 $

eqtz: -P+ZA+ZB=0 $

eqrOx: -P*b+ZA*b+MxA=0 $

eqrOy: P*a-ZB*a+MyB=0 $

eqrOz: 0=0 $

risolvo il sistema lineare, versione naive

linsolve ([eqtx,eqty,eqtz,eqrOx,eqrOy],[ZA,YA,XB,MyB,MxA]) , globalsolve=true;

inserisco caratteristiche di sollecitazione rilevate
sul quarto di telaietto

Mf_BC :  ZB*s $
T__BC : -ZB   $
Mt_BC :  MyB  $

Mf_AC : ZA*r  $
T__AC : -ZA   $
Mt_AC : MxA   $

Procedo con il calcolo dell'energia potenziale elastica U

U__BC : integrate (
        Mf_BC^2 /2/E/J
    +   T__BC^2 /2/G/A * shearcoeff
    +   Mt_BC^2 /2/G/Kt
, s , 0 , b
);

U__AC : integrate (
        Mf_AC^2 /2/E/J
    +   T__AC^2 /2/G/A * shearcoeff
    +   Mt_AC^2 /2/G/Kt
, r , 0 , a
);

U : fullratsimp ( U__BC + U__AC );

procedo con il calcolo mediante Castigliano del
cedimento in z al punto B

wB : diff( U , ZB , 1 );

noto la natura di forma lineare in ZB, posso risolvere l'eq. lineare

linsolve (   wB = 0 , ZB ) , globalsolve=true;

tale equazione ripristina la compatibilità dello spost. in z
del punto B col vincolo di antisimmetria originario

U;

U : ev ( U );

calcolo la freccia sotto il carico P nel modello "quarto di telaietto"
vincolato per antisimmetria

delta_quartoditelaietto : diff (U , P ) $

calcolo l'energia potenziale elastica sull'INTERA struttura,
nel caso di vincolamento originario (3 appoggi)

U_telaiettocompleto : 4 * U $

applico Castigliano considerando l'intera struttura,ù
nel vincolamento originario

delta : diff ( U_telaiettocompleto , P , 1 );

noto il cedimento del punto caricato nel telaietto,
ne derivo la rigidezza torsionale

Kttelaietto : fullratsimp ( P * ( 2 * b )^2/delta );

al fine di meglio comprendere il comportamento della struttura,
definisco un dimensionamento di riferimento

definisco un materiale specifico

ip_mat : [ G = E / 2 / (1+nu) , E=70000 , nu = 0.3 ];

definisco un tipo di sezione specifica

definisco il diametro interno in funzione del diametro esterno 
e dello spessore di parete t

di : de - t;

considero contributo tagliante alla deformata

ip_sez : [  
    A  = %pi * (de^2 - di^2) / 4  ,
    J  = %pi * (de^4 - di^4) / 64 ,
    Kt = %pi * (de^4 - di^4) / 32 ,
    shearcoeff = 2
] ;

TRASCURO contributo del taglio alla deformata;
con shearcoeff=0 infatti elimino il contributo del taglio
all'energia potenziale elastica della struttura

ip_sez_NOTAGLIO : [  
    A  = %pi * (de^2 - di^2) / 4  ,
    J  = %pi * (de^4 - di^4) / 64 ,
    Kt = %pi * (de^4 - di^4) / 32 ,
    shearcoeff = 0
] ;

controlla shearcoeff su un testo di riferimento!!!

definisco un dimensionamento di riferimento

ip_dim :[
    a  = 1200,
    b  = 600,
    de = 80
];

calcolo rigidezza torsionale nel caso specifico

Kttelaietto_num : 
  ev ( Kttelaietto , ip_mat, ip_sez          , ip_dim , infeval )$

variante _NOTAGLIO

Kttelaietto_num_NOTAGLIO : 
  ev ( Kttelaietto , ip_mat, ip_sez_NOTAGLIO , ip_dim , infeval )$

digressione : perché infeval non è attivato di default

NON FATELO (se non avete salvato...)

re :  ri + t/2 ;
ri : 're - t/2;
re;
ev( re ) ;
ev( ev(re));
ev(ev(ev(re)));
ev(ev(ev(ev(re))));
ev(re, infeval);

plotto l'andamento della rigidezza del telaietto 
in funzione dello spessore di parete

wxplot2d(
        [ Kttelaietto_num , Kttelaietto_num_NOTAGLIO ] 
,
        [ t , 0 , 10 ]
,
        [ legend , "con contributo taglio" , "senza contributo taglio"]

);