/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 0.8.7 ] */ /* [wxMaxima: input start ] */ kill(all); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ assume(omega>0); assume(zeta>0); assume(r>0); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] m*acc + c*vel + k*disp = f con acc = diff(u(t),t,2), vel = diff(u(t),t,1) disp = u(t) normalizzo dividendo per m e chiamo c/m = 2*zeta*omega k/m = omega^2 q(t)= f(t)/m scrivo il residuo dell'equaz. di equilibrio dinamico [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ res: 1 * diff(u(t),t,2) + 2*zeta*omega * diff(u(t),t,1) + omega^2 *u(t) -q(t); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] ho forzante armonica modulata in pulsazione r*omega, con r arbitrario q(t) = qr*cos(r*omega*t)-qi*sin(r*omega*t) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ q(t):= qr*cos(r*omega*t)-qi*sin(r*omega*t); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] modulo forzante [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ qm:sqrt(qr^2+qi^2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] suppongo la risposta armonica, e modulata sulla stessa pulsazione della forzante [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] u(t):= ur*cos(r*omega*t)-ui*sin(r*omega*t); [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ u(t):= ur*cos(r*omega*t)-ui*sin(r*omega*t); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] valuto il residuo sotto queste nuove ipotesi, valutando le derivate [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ res:ev(res,diff)$ res:expand(res); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] estraggo i coefficienti dei fattori coseno [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ res_cos:coeff(res,cos(omega*r*t)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] estraggo i coefficienti dei fattori seno [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ res_sin:coeff(res,sin(omega*r*t)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] controllo non vi siano residui [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ fullratsimp( res - res_cos*cos(r*omega*t) - res_sin*sin(r*omega*t)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] annullo i coeff. dei fattori seno e coseno trovando la soluzione in termini di ur e ui [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ linsolve([res_cos=0,res_sin=0],[ur,ui]),globalsolve=true; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] modulo risposta [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ um:fullratsimp(sqrt(ur^2+ui^2)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] amplificazione rispetto a risposta statica [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ um/(qm/omega^2); factor(%); define( amp(r,zeta) , % ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] grafico amplificazione dinamica [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d( [ amp(r,10^(-2 )), amp(r,10^(-1.5)), amp(r,10^(-1 )), amp(r,10^(-0.5)), amp(r,10^( 0 )), amp(r,10^( 0.5)) ], [r,0,2], [logy], [legend,"0.01","0.0316","0.1","0.316","1","3.16"] ); /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$