You are here: Home Academic Course Info docs ucme480 v1_005.m
Document Actions

v1_005.m

by zopeown last modified 2007-04-23 12:04
% v1_005.m % % This a script file to compare the euler solution % with the exact solution for a transient excitation % case. Solution is for a single DOF system with a % sine pulse excitation. %********************************************************************** % Author: Randall J. Allemang % Date: 25-Aug-97 % Structural Dynamics Research Lab % University of Cincinnati % Cincinnati, Ohio 45221-0072 % TEL: 513-556-2725 % FAX: 513-556-3390 % E-MAIL: randy.allemang@uc.edu %********************************************************************* % clg, clear plt=input('Store plots to file (Yes=1): (0)'); if isempty(plt),plt=0;end; mass=input('Mass value: (20)'); if isempty(mass), mass=20;end; stiff=input('Stiffness value: (9000)'); if isempty(stiff),stiff=9000;end; damp=input('Damping value: (130)'); if isempty(damp),damp=130;end; % lambda=roots([mass,damp,stiff]); sigma=real(lambda(1)); om1=abs(imag(lambda(1))); lambda,sigma,om1 pause om2=1.0/0.8*(2.0*pi); om3=om2-om1; om4=om2+om1; om1,om2,om3,om4 pause % Define time limits and increment tinit = 0; tfinal = 2; t=linspace(tinit,tfinal,501); dt=t(2)-t(1) % Define initial conditions xinit = 0; vinit = 0; % Clear force function for ii=1:501 f(ii)=0; end % Define transient excitation (sine pulse) time_dur=0.1; numb_int=round(time_dur/dt) for ii=1:numb_int f(ii)=15*sin(2.*pi./(2.*time_dur).*t(ii)); end plot(t,f), title('SDOF time history (force)'), pause clg % Start Computation for ii=1:501 tt=t(ii); if tt <= time_dur A1=15.*exp(sigma.*tt).*sin(om1.*tt)./(om1.*mass); B1=A1*(om3+exp(-sigma*tt)*(-sigma.*sin(om3*tt)-om3*cos(om3*tt))); C1=B1/(2*sigma*sigma + 2*om3*om3); D1=A1*(om4+exp(-sigma*tt)*(-sigma.*sin(om4*tt)-om4*cos(om4*tt))); E1=D1/(2*sigma*sigma + 2*om4*om4); x1(ii)=C1+E1; A2=-15.*exp(sigma.*tt).*cos(om1.*tt)./(om1.*mass); B2=A2*(sigma+exp(-sigma*tt)*(om3.*sin(om3*tt)-sigma*cos(om3*tt))); C2=B2/(2*sigma*sigma + 2*om3*om3); D2=A2*(-sigma-exp(-sigma*tt)*(om4.*sin(om4*tt)-sigma*cos(om4*tt))); E2=D2/(2*sigma*sigma + 2*om4*om4); x2(ii)=C2+E2; x(ii)=x1(ii)+x2(ii); else A1=15.*exp(sigma.*tt).*sin(om1.*tt)./(om1.*mass); B1=A1*(om3+exp(-sigma*0.1)*(-sigma.*sin(om3*0.1)-om3*cos(om3*0.1))); C1=B1/(2*sigma*sigma + 2*om3*om3); D1=A1*(om4+exp(-sigma*0.1)*(-sigma.*sin(om4*0.1)-om4*cos(om4*0.1))); E1=D1/(2*sigma*sigma + 2*om4*om4); x1(ii)=C1+E1; A2=-15.*exp(sigma.*tt).*cos(om1.*tt)./(om1.*mass); B2=A2*(sigma+exp(-sigma*0.1)*(om3.*sin(om3*0.1)-sigma*cos(om3*0.1))); C2=B2/(2*sigma*sigma + 2*om3*om3); D2=A2*(-sigma-exp(-sigma*0.1)*(om4.*sin(om4*0.1)-sigma*cos(om4*0.1))); E2=D2/(2*sigma*sigma + 2*om4*om4); x2(ii)=C2+E2; x(ii)=x1(ii)+x2(ii); end end % Plot results fig1=figure(1); plot(t,f), title('SDOF time history (force)'), grid, pause fig2=figure(2) if plt==1, print -ddeskjet -f1 v1_005a, end; plot(t,x), title('Exact Solution - SDOF time history (displacement)') grid, pause if plt==1, print -ddeskjet -f2 v1_005b, end;