www.gusucode.com > rtwdemos 工具箱matlab源码程序 > rtwdemos/rsimdemos/rsimdemo1.m

    function rsimdemo1
%RSIMDEMO1 - Runs ten RSim simulations while altering damping coefficient.
%   RSIMDEMO1 illustrates the use of the Rapid Simulation Target (RSim)
%   for running a Simulink model as a compiled simulation using new
%   parameter data that is read from a .mat file.

%   Copyright 1994-2005 The MathWorks, Inc.
% 

  %-------------------------------------------------------------------%
  % Check for UNC directory on Windows or under MATLABROOT on all     %
  % platforms to avoid corrupting product/project directories.        %
  %-------------------------------------------------------------------%
  rtw_checkdir;

  % The MAT-File rsim_tfdata.mat is required in the local directory.
  if ~isempty(dir('rsim_tfdata.mat')),
    delete('rsim_tfdata.mat');
  end
  str1 = fullfile(matlabroot,'toolbox','rtw','rtwdemos','rsimdemos','rsim_tfdata.mat');   
  str2 = ['copyfile(''', str1, ''',''rsim_tfdata.mat'',''writable'')'];
  eval(str2);
  
  
  % 0pen the Simulink model "rsimtfdemo" if it isn't already loaded
  openModels = find_system('SearchDepth',0,'Name','rtwdemo_rsimtf');
  if isempty(openModels)
    open_system('rtwdemo_rsimtf')
  end
  pause(.25);
  
  % create 10 parameters sets and save each set to 
  % files called: params1.mat, params2.mat, ...
  evalin('base','w = 70;')
  evalin('base','theta = 1.0;')
  disp('Building compiled RSim simulation.')
  make_rtw
  
  disp('Creating rtP data files')
  for i=1:10
    % extract current rtP structure using new damping factor.
    [rtpstruct]=evalin('base','rsimgetrtp(''rtwdemo_rsimtf'');');
    savestr = strcat('save params',num2str(i),'.mat rtpstruct');
    eval(savestr)
    evalin('base','theta = theta - .1;');   
  end
  disp('Finished creating parameter data files.')
  
  % run 10 RSim simulations using new parameter sets
  % and plot the results
  figure
  for i=1:10
    % bang out and run a simulation using new parameter data
    runstr = ['!',pwd,filesep, 'rtwdemo_rsimtf -p params',num2str(i),'.mat', ' -v'];
    eval(runstr)
    
    % load simulation data into MATLAB for plotting.
    load rtwdemo_rsimtf.mat; 
    axis([0 1 0 2]);
    plot(rt_tout, rt_yout)
    hold on
  end
  
  % cleanup
  evalin('base','clear w theta')
  disp('This RSim demonstration has completed 10 simulations while using')
  disp('a new damping factor for each simulation.')
  
%endfunction rsimdemo1


% [EOF] rsimdemo1.m