disp(' ') disp(' srs.m ver 2.0 July 3, 2006') disp('byTomIrvineEmail:*****************')disp(' ') disp(' This program calculates the shock response spectrum') disp(' of an acceleration time history, which is pre-loaded into Matlab.') disp(' The time history must have two columns: time(sec) & acceleration') disp(' ') % clear t; clear y; clear yy; clear n; clear fn; clear a1; clear a2 clear b1; clear b2; clear jnum; clear THM; clear resp; clear x_pos; clear x_neg; % iunit=input(' Enter acceleration unit: 1= G 2= m/sec^2 '); % disp(' ') disp(' Select file input method '); disp(' 1=external ASCII file '); disp(' 2=file preloaded into Matlab '); file_choice = input(''); % if(file_choice==1) [filename, pathname] = uigetfile('*.*'); filename = fullfile(pathname, filename); % fid = fopen(filename,'r'); THM = fscanf(fid,'%g %g',[2 inf]); THM=THM'; else THM = input(' Enter the matrix name: '); end % t=double(THM(:,1)); y=double(THM(:,2)); % tmx=max(t); tmi=min(t); n = length(y); % out1 = sprintf('\n %d samples \n',n); disp(out1) % dt=(tmx-tmi)/(n-1); sr=1./dt; % out1 = sprintf(' SR = %g samples/sec dt = %g sec \n',sr,dt); disp(out1) % fn(1)=input(' Enter the starting frequency (Hz) '); if fn(1)>sr/30. fn(1)=sr/30.; end % idamp=input(' Enter damping format: 1= damping ratio 2= Q '); % disp(' ') if(idamp==1) damp=input(' Enter damping ratio (typically 0.05) '); else Q=input(' Enter the amplification factor (typically Q=10) '); damp=1./(2.*Q); end % disp(' ') disp(' Select algorithm: ') disp(' 1=Kelly-Richman 2=Smallwood '); ialgorithm=input(' '); % tmax=(tmx-tmi) + 1./fn(1); limit = round( tmax/dt ); n=limit; yy=zeros(1,limit); for i=1:length(y) yy(i)=y(i); end % disp(' ') disp(' Calculating response..... ') % % SRS engine % ...