Simulink/Tutorials/Nise8
Revision as of 19:20, 16 July 2020 by DukeEgr93 (talk | contribs) (Created page with " == Simple Simulation == === Model === File:RunScriptImage.PNG === Code === <syntaxhighlight lang=matlab> %% Startup clear format short e %% Define filename Filename = '...")
Contents
Simple Simulation
Model
Code
%% Startup
clear
format short e
%% Define filename
Filename = 'SimLabWithScript'
open_system(Filename)
%% Get info about the model
get_param(Filename, 'ObjectParameters')
%% Set typical parameters
% Solver
%%% Simulation time
set_param(Filename, 'StartTime', '0')
set_param(Filename, 'StopTime', '10')
%%% Solver options
set_param(Filename, 'Solver', 'ode45')
set_param(Filename, 'MaxStep', 'auto')
set_param(Filename, 'MinStep', 'auto')
set_param(Filename, 'InitialStep', 'auto')
set_param(Filename, 'RelTol', '1e-3')
set_param(Filename, 'AbsTol', 'auto')
%% Data Import/Export
%%% Save options
set_param(Filename, 'LimitDataPoints', 'off')
%% Get info about the blocks
get_param([Filename '/Clock'], 'ObjectParameters')
get_param([Filename '/Fcn'], 'ObjectParameters')
get_param([Filename '/Scope'], 'ObjectParameters')
get_param([Filename '/To Workspace'], 'ObjectParameters')
get_param([Filename '/To Workspace'], 'VariableName')
%% Set function block info
set_param([Filename '/Fcn'], 'Expression', 'cos(u(1))')
%% Run the system
out = sim(Filename)
%% Plot the data
plot(out.tout, out.y, 'ko:')
%% Save plot, model image, and model based on filename
eval(sprintf('print -deps %sout', Filename))
%eval(sprintf('print -s%s -deps %smodel', Filename, Filename))
save_system(Filename)
% close_system(Filename)
First Order Differential Equation
Model
Code
% Startup
clear
format short e
% Define filename
Filename = 'FirstDeriv'
open_system(Filename)
% Set typical parameters
%% Solver
%%% Simulation time
set_param(Filename, 'StartTime', '0')
set_param(Filename, 'StopTime', '10')
%%% Solver options
set_param(Filename, 'Solver', 'ode45')
set_param(Filename, 'MaxStep', 'auto')
set_param(Filename, 'MinStep', 'auto')
set_param(Filename, 'InitialStep', 'auto')
set_param(Filename, 'RelTol', '1e-3')
set_param(Filename, 'AbsTol', 'auto')
%% Data Import/Export
%%% Save options
set_param(Filename, 'LimitDataPoints', 'off')
% Set function block info
set_param([Filename '/Fcn'], 'Expression', '0')
set_param([Filename '/Gain'], 'Gain', '0')
set_param([Filename '/Integrator'], 'InitialCondition', '0')
% Run the system
out = sim(Filename)
% Plot the data
figure(1); clf
plot(out.tout, out.f, 'k-', out.tout, out.x, 'r-')
gzoom
title('Input and Response for FD')
xlabel('Time (s)');
ylabel('Value');
legend('Input', 'Output', 'location', 'best')
% Save plot, model image, and model based on filename
eval(sprintf('print -deps %sout', Filename))
eval(sprintf('print -s%s -dpng %smodel', Filename, Filename))
save_system(Filename)
%close_system(Filename)
<syntaxhighlight>
== Second Order Differential Equation ==
=== Model ===
[[File:SecondDerivImage.PNG]]
=== Code ===
<syntaxhighlight lang=matlab>
% Startup
clear
format short e
% Define filename
Filename = 'SecondDeriv'
open_system(Filename)
% Set typical parameters
%% Solver
%%% Simulation time
set_param(Filename, 'StartTime', '0')
set_param(Filename, 'StopTime', '10')
%%% Solver options
set_param(Filename, 'Solver', 'ode45')
set_param(Filename, 'MaxStep', 'auto')
set_param(Filename, 'MinStep', 'auto')
set_param(Filename, 'InitialStep', 'auto')
set_param(Filename, 'RelTol', '1e-3')
set_param(Filename, 'AbsTol', 'auto')
%% Data Import/Export
%%% Save options
set_param(Filename, 'LimitDataPoints', 'off')
% Set function block info
set_param([Filename '/Fcn'], 'Expression', '0')
set_param([Filename '/Gain'], 'Gain', '0')
set_param([Filename '/Gain1'], 'Gain', '0')
set_param([Filename '/Integrator'], 'InitialCondition', '0')
set_param([Filename '/Integrator1'], 'InitialCondition', '0')
% Run the system
out = sim(Filename)
% Plot the data
figure(1); clf
plot(out.tout, out.f, 'k-', out.tout, out.x, 'r-')
gzoom
title('Input and Response for SD')
xlabel('Time (s)');
ylabel('Value');
legend('Input', 'Output', 'location', 'best')
% Save plot, model image, and model based on filename
eval(sprintf('print -deps %sout', Filename))
eval(sprintf('print -s%s -dpng %smodel', Filename, Filename))
save_system(Filename)
%close_system(Filename)