EXAMEN: La figura 3.5 del texto de balachandran en el código de Matlab que se comparte por internet genera una grafica errónea. Analizar el código y modificarlo hasta que se produzcan las graficas correctas del problema de regresión lineal de un resorte no lineal.
Código: % Vibrations % Balachandran & Magrab % Figures 3.5a&b clear clc close all dd=linspace(0,.48*0.0254,50); W=[0 75 200 300 400 500 600 700 800]*4.448; d=[0 .2 .28 .34 .38 .41 .44 .46 .48]*0.0254; fxt=inline('x(1)*(d/x(2)).^x(3)' fxt=inline('x(1)*(d/x(2)).^x(3)', ,'x' 'x', ,'d' 'd'); ); opt=optimset('display' opt=optimset('display', ,'off' 'off'); ); x=lsqcurvefit(fxt,[2500 .01 2.6],d,W,[],[],opt); figure(1) plot(d,W,'sk' plot(d,W,'sk',dd,fxt(x,dd), ,dd,fxt(x,dd),'k-' 'k-') ) set(gca,'fontsize' set(gca,'fontsize',14) ,14) xlabel('x xlabel('x (m)', (m)','fontsize' 'fontsize',14) ,14) ylabel('W ylabel('W (N)', (N)','fontsize' 'fontsize',14) ,14) disp(['a= disp(['a= ' num2str(x(1)) ' N b= ' num2str(x(2)) ' m num2str(x(3))])
En esta línea del código es en donde se se modifica modifica su PLOT en el cual se modifica una variante de de su vector (p) [2500 .01 2 .05]
2.6
c= '
fn=sqrt((W/x(1)).^(-1/x(3))*(x(3)/x(2)))/2/pi*sqrt(9.8); figure(2) plot(W(2:end),fn(2:end),'ks' plot(W(2:end),fn(2:end), 'ks') ) Avg=(fn(4)+fn(end))/2; del=(fn(4)-fn(end))/2; fh=Avg+del; fl=Avg-del; disp(['del/Avg*100= disp(['del/Avg*100= ' num2str(del/Avg*100)]) hold on plot([0 4000],[fh fh],'k--' fh],'k--',[0 ,[0 4000],[fl fl],'k--' fl],'k--',[0 ,[0 4000],[Avg Avg],'kAvg],'k') set(gca,'fontsize' set(gca,'fontsize',14) ,14) ylabel('f_n ylabel('f_n (Hz)', (Hz)','fontsize' 'fontsize',14) ,14) xlabel('W xlabel('W (N)', (N)','fontsize' 'fontsize',14) ,14) v=axis; v(4)=12; axis(v)
Desarrolle el problema 3.14 de ecuaciones del movimiento de un disco con un masa adicional una vez que se concluya y conecte la frecuencia natural Wn (pp.100) encontrar el valor para:
>> r=0.35; >> l=0.55; >> k=1; >> m=1; >> g=9.81; >> jg=1; >> mg=1; >> %h=[1:100]; >> wn=sqrt(((k*r*2)+(m*g*l))/((m*(l+r)^2)+(mg*r*2)+(jg))) wn = 1.5584 >> plot(wn,'o') Esto es introducido en MATLAB y graficado :