matlab中s-function的编写
- 格式:doc
- 大小:46.50 KB
- 文档页数:4
matlab中s函数模板在Matlab中,s函数是一种用于执行数学运算和计算的函数模板,它提供了一种方便快捷的方式来实现各种数学运算和算法。
通过使用s函数模板,您可以轻松地编写自己的自定义函数,并将其集成到Matlab应用程序中。
本文将介绍Matlab中s函数模板的使用方法、示例和注意事项。
一、s函数模板概述Matlab中的s函数模板提供了一种灵活的编程方式,可以方便地实现各种数学运算和算法。
它基于Simulink的s-functionblock,允许您使用Matlab代码编写自定义函数,并将其嵌入到Simulink模型中。
s函数模板支持多种数据类型和运算符,包括矩阵运算、向量运算、三角函数、指数和对数等。
二、使用s函数模板要使用s函数模板,您需要按照以下步骤进行操作:1.编写Matlab代码实现所需的数学运算和算法。
确保代码具有可读性和可维护性,以便于后续的维护和扩展。
2.将Matlab代码保存为.m文件。
确保文件名以s开头,以表示它是s函数的模板。
3.在Simulink模型中添加s-functionblock,并指定要使用的s函数模板文件名。
4.根据需要配置s-functionblock的其他参数,如输入输出端口、数据类型等。
5.运行Simulink模型,即可使用s函数模板执行数学运算和计算。
三、示例以下是一个简单的示例,展示如何使用s函数模板实现矩阵求逆运算:1.编写Matlab代码实现矩阵求逆运算:```matlabfunctiony=inv_matrix(A)%矩阵求逆函数模板%输入:矩阵A(m*n)%输出:矩阵的逆(m*n)[m,n]=size(A);y=eye(m)-A*A';end```2.将上述代码保存为s函数模板文件inv_matrix.m。
3.在Simulink模型中添加s-functionblock,并指定inv_matrix.m为s函数模板文件名。
4.根据需要配置s-functionblock的其他参数,如输入输出端口、数据类型等。
文章编号:1001-9227(2001)02-0024-03利用Matlab 的S -Function 实现非线性PID 控制Ξ周英玉 丁淑华 郭 晨(大连海事大学自动控制教研室 大连,116026) 摘 要:介绍了Matlab 的S -Function 的运行原理、功能及实现方法,并用它去实现非线性PID 。
实践表明利用S -Function 可实现复杂的函数关系,简化编程。
关键词:Matlab Simulink S -Function 非线性PIDAB STRACT :This paper introduces the working principle ,the function and the realized way of Mat 2lab ’s S -Function.With it ,nonlinear PID is realized easily.The simulation of result shows that S -Func 2tion can come true the complex function relation and simplify program.KEYWORD S :Matlab simulink S -Function Nonlinear PID 中图分类号:TP273+.2文献标识码:B1 S -Function 1.1 S -Function 简介S -Function 是Simulink 的精华[1]。
Simulink 是运行在Matlab 环境下的用于建模,仿真和分析动态系统的软件包。
利用Simulink 本身包含的模块库,对于数学模型比较简单的经典的PID 控制器,我们可以方便的建立它的模块[2],如图1所示。
但要利用其现有的模块去实现比较复杂的非线性关系,就可能使构造的模块过于复杂,有时甚至难于实现用户的要求。
如果利用Simulink 提供的S -Function (System -Function )来实现的话,用户所要完成的工作就会大大减少。
S-function(系统函数)是Simulink的一种自定义函数,它允许用户在Simulink模型中扩展功能,以满足对实现复杂算法的需求。
要使用S-function,用户需要编写一个用C、C++或Matlab编写的文件,定义输入、输出、状态变量以及所需的功能。
S-function的主要用法如下:1. 创建S-function文件:创建用C、C++或Matlab编写的S-function文件。
这个文件将包含所有需要定义的系统函数。
文件名必须与S-function名称匹配。
2. 在S-function文件中声明输入输出变量以及参数:在S-function文件中,需要声明输入、输出变量、状态变量以及参数。
这样Simulink会知道如何处理S-function。
3. 实现函数的功能:在S-function文件中,需要根据算法需求实现所需功能。
这可以包括初始化、信号处理、状态更新等各种操作。
4. 将S-function添加到Simulink模型中:在Simulink中,从Library Browser中找到"User-Defined Functions"类别,并将其中的S-Function模块拖到模型中。
5. 配置S-function模块:双击添加到模型中的S-Function模块,在S-function name框添加您的S-function文件的名称。
还可以在Parameters框中输入参数,如果需要的话。
6. 连接S-function模块:在模型中连接S-function模块的输入和输出端,根据系统需求设置传递信号。
完成上述步骤后,可以运行模型,并查看S-function的运行结果。
总之,S-function的用法主要可以分为编写S-function文件、在Simulink模型中添加S-function 模块这两个部分。
通过实现自定义的功能、参数及输入输出变量,用户可以在Simulink环境中使用S-function完成复杂算法的实现。
s函数是system Function的简称,用它来写自己的simulink模块.(够简单吧,^_^,详细的概念介绍大伙看帮助吧)可以用matlab、C、C++、Fortran、Ada等语言来写,这儿我只介绍怎样用matlab语言来写吧(主要是它比较简单)先讲讲为什么要用s函数,我觉得用s函数可以利用matlab的丰富资源,而不仅仅局限于simulink提供的模块,而用c或c++等语言写的s函数还可以实现对硬件端口的操作,还可以操作windows API等的先介绍一下simulink的仿真过程(以便理解s函数),simulink的仿真有两个阶段:1.初始化:这个阶段主要是设置一些参数,像系统的输入输出个数、状态初值、采样时间等;2.运行阶段:这个阶段里要进行计算输出、更新离散状态、计算连续状态等等。
这个阶段需要反复运行,直至结束.在matlab的workspace里打edit sfuntmpl(这是matlab自己提供的s函数模板),我们看它来具体分析s函数的结构。
它的第一行是这样的:function [sys,x0,str,ts]=sfuntmpl(t,x,u,flag)先讲输入与输出变量的含义:t是采样时间,x是状态变量,u是输入(是做成simulink模块的输入),flag是仿真过程中的状态标志(以它来判断当前是初始化还是运行等);sys输出根据flag的不同而不同(下面将结合flag来讲sys的含义),x0是状态变量的初始值,str是保留参数(mathworks公司还没想好该怎么用它,嘻嘻,一般在初始化中将它置空就可以了,str=[]),ts是一个1×2的向量,ts(1)是采样周期,ts(2)是偏移量.下面结合sfuntmpl。
m中的代码来讲具体的结构:switch flag,%判断flag,看当前处于哪个状态case 0, [sys,x0,str,ts]=mdlInitializeSizes;flag=0表示处于初始化状态,此时用函数mdlInitializeSizes进行初始化,此函数在sfuntmpl.m的149行我们找到他,在初始化状态下,sys是一个结构体,用它来设置模块的一些参数,各个参数详细说明如下:size = simsizes;%用于设置模块参数的结构体用simsizes来生成sizes。
matlab中s函数模板-回复MATLAB中的s函数模板是一种用于编写自定义模块的工具,它允许用户以自己的方式定义系统的动态行为。
本文将详细介绍s函数模板的具体操作步骤和相关注意事项。
首先,为了能够使用s函数模板,我们需要在MATLAB工作区创建一个新的模型或打开一个已有的模型。
然后,我们可以按照以下步骤进行s函数模板的编写。
第一步,创建s函数模板文件。
在MATLAB的命令窗口中输入以下命令:sfunctionname这将会创建一个名为"sfunctionname.m"的文件,其中"sfunctionname"是我们给s函数模板命名的名称。
第二步,打开s函数模板文件,并编辑其内容。
在"function"关键字下方的行中,可以定义输入输出参数以及任何需要的局部变量。
例如,以下是一个基本的s函数模板:function [sys,x0,str,ts] = sfunctionname(t,x,u,flag)switch flagcase 0 初始化模型[sys,x0,str,ts] = mdlInitializeSizes; 调用模型初始化函数case 1 计算模型状态方程sys = mdlDerivatives(t,x,u);case 2 计算模型输出方程sys = mdlOutputs(t,x,u);case 3 处理模型状态信息sys = mdlUpdate(t,x,u);case 4 处理模型输出信息sys = mdlGetTimeOfNextVarHit(t,x,u);case 9 处理模型示意图sys = mdlTerminate(t,x,u);otherwiseerror(['Unhandled flag = ',num2str(flag)]);endend在上述代码中,我们定义了四个输入参数t、x、u和flag,以及四个输出参数sys、x0、str和ts。
matlab中matlabfunction函数matlab中matlabfunction函数是一种非常有用的函数,它可以将matlab代码转化为用户自定义的matlab函数。
在matlab中,matlabfunction函数可以用于许多不同的应用程序,包括数学建模、图像处理和数据分析等。
本文将介绍matlabfunction函数的基本用法、语法和一些实例。
matlabfunction函数用法matlabfunction函数是matlab中的一个函数,可以将用户编写的matlab代码转化为matlab函数。
使用matlabfunction函数可以解决许多编程问题,如生成二进制mex文件、创建可独立运行的函数和提升函数速度等。
除此之外,matlabfunction函数还可以被用于将matlab代码转化为c++代码,从而实现速度上的提升。
matlabfunction函数语法matlabfunction函数的基本语法如下:function [f1,f2,...fn] = matlabfunction( inputs )其中,f1、f2、...fn是函数的输出参数,inputs是函数的输入参数。
在matlab 中,使用该函数的方法是定义一个.m文件,然后将需要转换成函数的matlab代码书写在.m文件中,将函数文件名与mex文件名所在的路径传递给matlabfunction函数,然后即可生成可独立运行的函数或二进制mex文件。
下面,我们将详细介绍matlabfunction函数的语法部分。
1. 输出参数matlabfunction函数可以有一个或多个输出参数。
输出参数的个数应该与函数的输出数目保持一致。
当你将matlabfunction函数应用于你的matlab代码时,matlab会自动生成相应数目的输出参数。
可以根据自己的实际需求选择是否使用输出参数。
2. 输入参数matlabfunction函数的输入参数与matlab函数中的输入参数基本一致,可以包含一个或多个输入参数。
Simulink®S-Functions使用S-Function Builder本章概述S-Function Builder优势以及局限在模型中使用S-Function Builder使用S-Function Builder定义S-function各个参数以及算法使用S-Function Builder集成外部源代码S-Function BuilderUser-Defined Functions 库中包含了S-Function Builder 模块,通过该模块提供的图形用户界面,用户可创建C语言S-functionS-Function Builder能够接收和输出Simulink支持的复数,1-D或2-D信号S-Function Builder模块仅能用于C MEX S-function的创建,而且需要系统至少有一个输入和一个输出S-Function Builder 流程积分阶段仿真终止计算输出Outputs计算离散状态更新Discrete Updates 计算连续状态导数Continuous Derivatives计算输出Outputs建立模块i/o 和参数Data Properties设置状态个数,初始化状态以及设置采样时间Initialization使用S-Function Builder: 初始化S-function 名称采样时间状态个数以及初始值使用S-Function Builder: 数据属性使用S-Function Builder: 库外部源文件外部头文件外部函数原型使用S-Function Builder: 输出/求导/更新输出方程导数方程更新方程使用S-Function Builder:编译信息编译S-function 编译状态无状态S-Functions无状态C MEX S-function其中g 为系统输出, P m 和P a 为系统输入。
()()⎪⎪⎩⎪⎪⎨⎧≥−≤≤−−≤≤−≤=a m a m a m a m a a m a a m a m a m P P P P P P P P P P P P P P P P P P g 2if 12if 22if 22if 122无状态S-Functions (续)S-Function Builder 结果处理宽度动态变化的信号能接收任何宽度信号示例: Pm在Data Properties,设置Pm宽度和输出端口为-1 使用u_width定义输出信号宽度.在Outputs,使用for循环定义g值处理宽度动态变化的信号(续)处理S-Function Builder 参数Pa 定义为一个参数变量:在Data Properties, 增加Pa作为系统参数 访问参数值,使用Pa [0]连续状态S-Functions示例: 连续系统方程为其中m , k 和b 为S-function 参数[][])(0)()(01)()(/10)()(//10)()(212121t F t x t x t y t F m t x t x m b m k t x t x +⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡−−=⎥⎦⎤⎢⎣⎡&&>>mass_spring_builder>>edit mass_spring_b.c连续状态S-Functions(续)在Initialization,设置连续状态个数和初始化条件在Data Properties定义m, b, 和k.在Outputs, 输入输出方程.在Continuous Derivatives,输入状态导数方程,使用dX访问连续状态导数向量离散状态S-Functions离散状态方程为:其中Kp, Ki, Kd, 和Ts为S-function 参数.)()()(1)()(1)()(0001)1()1(212121k e T K K k x k x T K k y k e T K k x k x k x k x s d p s d s i ⎟⎟⎠⎞⎜⎜⎝⎛++⎭⎬⎫⎩⎨⎧⎥⎦⎤⎢⎣⎡−=⎥⎦⎤⎢⎣⎡+⎭⎬⎫⎩⎨⎧⎥⎦⎤⎢⎣⎡=⎭⎬⎫⎩⎨⎧++离散状态S-Functions (续) 在Initialization,设置离散状态个数,离散状态初始化和采样周期0.02秒.在Data Properties,增加Kp, Ki, 和Kd三个参数在Outputs,输入输出方程在Discrete Updates,中输入状态更新方程集成外部源码支持外部函数原型,在Libraries中以头文件形式加入调用外部函数Includes source.cExternalfunctions示例: Wrapper S-Function使用S-Function Builder创建wrapper S-function,该函数调用排序源码sort_ext.c.在库需要中加入外部源码Wrapper S-Function (续) >> sort_builder本章小结S-Function Builder优势以及局限在模型中使用S-Function Builder使用S-Function Builder定义S-function各个参数以及算法使用S-Function Builder集成外部源代码。
S-Function是system-function的缩写。
当Matlab所提供的simulink模型不能完全满足用户需要时,就可以通过S-函数提供用户自己编写程序啦满足自己要求模型的接口。
S-函数可以用Matlab、C、C++、Ada和Fortran语言编写,但是后四种语言编写的S-函数需要编译成MEX 文件。
在同名的M文件和MEX文件的S-函数情况下,Matlab和simulink优先调用MEX。
S-函数主要用来实现下面几个方面的功能:(1)向simulink模块中增加一个通用目标的模型(2)使用S-函数的模块来充当硬件的驱动(3)在仿真中嵌入已经存在的C代码(4)将系统表示成一系列的数学方程(5)在simulink中使用动画使用S-函数的一个优点是,你可以建立一个通用目标的模块,在一个模型中可以多次调用,每一个模块可以有不同的参数。
本教程的目录如下2# S-函数工作原理2.1 模型的数学描述2.2 S-函数仿真过程2.3 S-函数回调方法3# M文件S-函数的编写和模板4# M文件S-函数实例4.1简单单摆仿真实验4.2混合系统M文件S-函数一、S-函数工作原理模型的数学描述simulink模块一般由若干输入、状态和输出组成,其中输出是时间、状态和输入的函数可以通过下面的几个数学表达式来描述上面的过程,具体如下:输出:y=f(x,u,t)状态:x'=g(x,u,t)S-函数仿真过程simulink模型的处理主要有两个过程:1第一个阶段是初始化这时侯的所有参数都将被确定,主要完成以下几个过程:(1)传递参数表达式给Matlab进行求解(2)得到的数值作为实际的参数使用(3)展开模型的层次,每个子系统被它们所包含的模块替代(4)检查好相邻模块间的连接(5)确定状态初值和采样时间2第二阶段是模型仿真运行仿真开始运行,仿真过程是求解器和simulink引擎交互控制的。
求解器的作用是传递模块的输出,对状态导数进行积分,并确定采样时间,周而复始,直到仿真结束。
s函数是system Function的简称,用它来写自己的simulink模块。
(够简单吧,^_^,详细的概念介绍大伙看帮助吧)可以用matlab、C、C++、Fortran、Ada等语言来写,这儿我只介绍怎样用matlab语言来写吧(主要是它比较简单)先讲讲为什么要用s函数,我觉得用s函数可以利用matlab的丰富资源,而不仅仅局限于simulink提供的模块,而用c 或c++等语言写的s函数还可以实现对硬件端口的操作,还可以操作windows API等的先介绍一下simulink的仿真过程(以便理解s函数),simulink的仿真有两个阶段:1.初始化:这个阶段主要是设置一些参数,像系统的输入输出个数、状态初值、采样时间等;2.运行阶段:这个阶段里要进行计算输出、更新离散状态、计算连续状态等等。
这个阶段需要反复运行,直至结束。
在matlab的workspace里打edit sfuntmpl(这是matlab自己提供的s函数模板),我们看它来具体分析s函数的结构。
它的第一行是这样的:function [sys,x0,str,ts]=sfuntmpl(t,x,u,flag) 先讲输入与输出变量的含义:t是采样时间,x是状态变量,u是输入(是做成simulink模块的输入),flag是仿真过程中的状态标志(以它来判断当前是初始化还是运行等);sys输出根据flag的不同而不同(下面将结合flag来讲sys的含义),x0是状态变量的初始值,str是保留参数(mathworks公司还没想好该怎么用它,嘻嘻,一般在初始化中将它置空就可以了,str=[]),ts是一个1×2的向量,ts(1)是采样周期,ts(2)是偏移量。
下面结合sfuntmpl.m中的代码来讲具体的结构:switch flag, %判断flag,看当前处于哪个状态case 0, [sys,x0,str,ts]=mdlInitializeSizes;flag=0表示处于初始化状态,此时用函数mdlInitializeSizes进行初始化,此函数在sfuntmpl.m的149行我们找到他,在初始化状态下,sys是一个结构体,用它来设置模块的一些参数,各个参数详细说明如下:size = simsizes;%用于设置模块参数的结构体用simsizes来生成sizes.NumContStates = 0;%模块连续状态变量的个数sizes.NumDiscStates = 0;%模块离散状态变量的个数sizes.NumOutputs = 0;%模块输出变量的个数sizes.NumInputs = 0;%模块输入变量的个数sizes.DirFeedthrough = 1;%模块是否存在直接贯通(直接贯通我的理解是输入能%直接控制输出)sizes.NumSampleTimes = 1;%模块的采样时间个数,至少是一个sys = simsizes(sizes); %设置完后赋给sys输出举个例子,考虑如下模型:dx/dt=fc(t,x,u) 也可以用连续状态方程描述:dx/dt=A*x+B*u x(k+1)=fd(t,x,u)也可以用离散状态方程描述:x(k+1)=H*x(k)+G*u(k) y=fo(t,x,u)也可以用输出状态方程描述:y=C*x+D*u设上述模型连续状态变量、离散状态变量、输入变量、输出变量均为1个,我们就只需改上面那一段代码为:(一般连续状态与离散状态不会一块用,我这儿是为了方便说明)sizes.NumContStates=1;sizes.NumDiscStates=1;sizes.NumOutputs=1;sizes.NumInpu ts=1; 其他的可以不变。
继续在mdlInitializeSizes函数中往下看:x0 = []; %状态变量设置为空,表示没有状态变量,以我们上面的假设,可改%为x0=[0,0](离散和连续的状态变量我们都设它初值为0) str = []; %这个就不用说了,保留参数嘛,置[]就可以了,反正没什么用,可能7.0会给它一些意义ts = [0 0]; %采样周期设为0表示是连续系统,如果是离散系统在下面的mdlGet %TimeOfNextVarHit函数中具体介绍嘻嘻,总算讲完了初始化,后面的应该快了。
在sfuntmpl的106行继续往下看:case 1, sys=mdlDerivatives(t,x,u); flag=1表示此时要计算连续状态的微分,即上面提到的dx/dt=fc(t,x,u)中的dx/dt,找到mdlDerivatives函数(在193行)如果设置连续状态变量个数为0,此处只需sys=[]; 就可以了(如sfuntmpl中一样),按我们上述讨论的那个模型,此处改成sys=fc(t,x(1),u)或sys=A*x(1)+B*u %我们这儿x(1)是连续状态变量,而x(2)是离散的,这儿只用到连续的,此时的输出sys就是微分继续,在sfuntmpl的112行:case 2, sys=mdlUpdate(t,x,u); flag=2表示此时要计算下一个离散状态,即上面提到的x(k+1)=fd(t,x,u),找到mdlUpdate函数(在206行)它这儿sys=[];表示没有离散状态,我们这而可以改成sys=fd(t,x(2),u)或sys=H*x(2)+G*u;%sys即为x(k+1) 看来后面几个一两句话就可了,呵呵,在sfuntmpl的118行:case 3, sys=mdlOutputs(t,x,u); flag=3表示此时要计算输出,即y=fo(t,x,u),找到mdlOutputs函数(在218行),如上,如果sys=[]表示没有输出,我们改成sys=fo(t,x,u)或sys=C*x+D*u %sys此时为输出y 好像快完了,嘻嘻,在sfuntmpl的124行case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); flag=4表示此时要计算下一次采样的时间,只在离散采样系统中有用(即上文的mdlInit ializeSizes中提到的ts设置ts(1)不为0) 连续系统中只需在mdlGetTimeOfNextVarHit函数中写上sys=[];这个函数主要用于变步长的设置,具体实现大家可以用edit vsfunc看vsfunc.m这个例子最后一个,在sfuntmpl的130行case 9, sys=mdlTerminate(t,x,u); flag=9表示此时系统要结束,一般来说写上在mdlT erminate函数中写上sys=[]就可,如果你在结束时还要设置什么,就在此函数中写关于sfuntmpl这个s函数的模板讲完了。
s函数还可以带用户参数,下面给个例子,和simulink 下的gain模块功能一样,大伙自己看吧,我睡觉去了,累了function [sys,x0,str,ts] = sfungain(t,x,u,flag,gain)switch flag,case 0,sizes = simsizes;sizes.NumContStates = 0;sizes.NumDiscStates = 0;sizes.NumOutputs = 1;sizes.NumInputs = 1;sizes.DirFeedthrough = 1;sizes.NumSampleTimes = 1;sys = simsizes(sizes);x0=[]; str=[]; ts=[0,0];case 3, sys=gain*u;case {1,2,4,9}, sys = [];endSIMULINK s-function的设计Simulink为用户提供了许多内置的基本库模块,通过这些模块进行连接而构成系统的模型。
对于那些经常使用的模块进行组合并封装可以构建出重复使用的新模块,但它依然是基于Simulink原来提供的内置模块。
而Simulink s-function 是一种强大的对模块库进行扩展的新工具。
(一)、s-function的概念s-function是一个动态系统的计算机语言描述,在MATLAB里,用户可以选择用m文件编写,也可以用c或mex文件编写,在这里只给大家介绍如何用m文件编写s-function。
S-function提供了扩展Simulink模块库的有力工具,它采用一种特定的调用语法,使函数和Simulink解法器进行交互。
S-function最广泛的用途是定制用户自己的Simulink模块。
它的形式十分通用,能够支持连续系统、离散系统和混合系统。
(二)、建立m文件s-function1、使用模板文件:sfuntmp1. m 格式:[sys,x0]=function(t,x,u,flag) 该模板文件位于MATLAB根目录下toolbox/simulink/blocks目录下。
模板文件里s-function的结构十分简单,它只为不同的flag的值指定要相应调用的m文件子函数。
比如当flag=3时,即模块处于计算输出这个仿真阶段时,相应调用的子函数为sys=mdloutputs(t,x,u)。
模板文件使用switch语句来完成这种指定,当然这种结构并不唯一,用户也可以使用if语句来完成同样的功能。
而且在实际运用时,可以根据实际需要来去掉某些值,因为并不是每个模块都需要经过所有的子函数调用。
模板文件只是Simulink为方便用户而提供的一种参考格式,并不是编写s-function的语法要求,用户完全可以改变子函数的名称,或者直接把代码写在主函数里,但使用模板文件的好处是,比较方便,而且条理清晰。
使用模板编写s-function,用户只需把s-函数名换成期望的函数名称,如果需要额外的输入参量,还需在输入参数列表的后面增加这些参数,因为前面的4个参数是simulink调用s-function时自动传入的。
对于输出参数,最好不做修改。
接下去的工作就是根据所编s-function要完成的任务,用相应的代码去替代模板里各个子函数的代码即可。
Simulink 在每个仿真阶段都会对s-function进行调用,在调用时,Simulink会根据所处的仿真阶段为flag传入不同的值,而且还会为sys这个返回参数指定不同的角色,也就是说尽管是相同的sys变量,但在不同的仿真阶段其意义却不相同,这种变化由simulink自动完成。
m文件s-function可用的子函数说明如下:mdlInitializeSizes(flag=0):定义s-function模块的基本特性,包括采样时间、连续或者离散状态的初始条件和sizes数组。