第一次成功使用MATLAB里面的s-function

今天要用MATLAB里面的s-fuction,以前从未使用过,头一次,找过文档,下过实例代码,在错误里面遨游。
成功的一个例子,函数y=k*x+b。
脚本代码fun.m。

function [sys,x0,str,ts] = fun(t,x,u,flag,k,b)
switch flag
case 0
    [sys,x0,str,ts]=mdlInitializeSizes;
%case 1,sys=mdlDerivatives(t,x,u,A,B,C,D);
case 3
    sys=mdlOutputs(t,x,u,k,b);
case { 1, 2, 4, 9 }
    sys = [];
otherwise
    error(num2str(flag));
end
function [sys,x0,str,ts]=mdlInitializeSizes()
sizes = simsizes;
sizes.NumContStates = 0; 
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1;
sizes.NumInputs =1; 
sizes.DirFeedthrough = 1; 
sizes.NumSampleTimes = 1;
sys = simsizes(sizes); %x0 = zeros(2,1); 
x0=[];
str = []; 
ts = [-1,0];
%function sys=mdlDerivatives(t,x,u,k,b)
%sys =k*u+b; % end mdlDerivatives
function sys=mdlOutputs(~,~,u,k,b)
sys = k*u+b;

接着是simulink仿真:

第一次成功使用MATLAB里面的s-function_第1张图片
结果就不多说了,能出现想要的图片。
说的是坑,请接着看。
第一次成功使用MATLAB里面的s-function_第2张图片
第一次成功使用MATLAB里面的s-function_第3张图片
看好了,上面是代码导入和控制参数的设置。
接着是右击s-function模块,找到Mask,选择Create Mask,到下图:
第一次成功使用MATLAB里面的s-function_第4张图片
然后添加控制参数。

第一次成功使用MATLAB里面的s-function_第5张图片
点击OK,接着回去点击s-function模块添加参数值即可。

你可能感兴趣的:(第一次成功使用MATLAB里面的s-function)