S-function to initialize

2 views (last 30 days)
cyberdyne
cyberdyne on 10 Sep 2011
This is the s-function that animates a robotic manipulator model; it does't see the vector to initialize the robot graphic (in the function is [0 pi/2 0 0 pi/2 -pi/2 pi]), but it considers only [0 0 0 0 0 0 0].
function [sys,x0,str,ts] = splotbot(t,x,u,flag, robot)
switch flag,
case 0
% initialize the robot graphics
[sys,x0,str,ts] = mdlInitializeSizes; % Init
plot(robot, [0 pi/2 0 0 pi/2 -pi/2 pi]);
case 2
% come here on update
if ~isempty(u),
plot(robot, u');
drawnow
end
ret = [];
case {1, 4, 9}
ret = [];
end
%
%=============================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=============================================================================
%
function [sys,x0,str,ts]=mdlInitializeSizes
%
% call simsizes for a sizes structure, fill it in and convert it to a
% sizes array.
%
% Note that in this example, the values are hard coded. This is not a
% recommended practice as the characteristics of the block are typically
% defined by the S-function parameters.
%
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 0;
sizes.NumInputs = -1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
%
% initialize the initial conditions
%
x0 = [];
%
% str is always an empty matrix
%
str = [];
%
% initialize the array of sample times
%
ts = [0 0];
% end mdlInitializeSizes

Answers (0)

Categories

Find more on Simulation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!