simulink中的fcn模块,matlabfcn模块和s函数模块()
- 格式:doc
- 大小:22.00 KB
- 文档页数:3
simulink中的fcn模块,matlabfcn模块和s函数模块()
Simulink中的Fcn 模块,MATLAB Fcn 模块和S函数模块
Fcn 模块
Fcn模块对它的输入进行指定的表达式运算。
使用的表达式可由下面的一个或多个部分组成。
u --- 模块的输入。
如果u是一个向量,u(i)表示此向量的第i个元素;u(1)或者u表示第一个元素
数值常数(例如表达式5.2*u)
算术运算符(+ - * / ^ 例如表达式u^2+5.2)
关系运算符(== != > < >= <=) --表达式返回1,如果关系为真; 否则返回0
逻辑运算符(&& || !) 表达式返回1,如果关系为真; 否则返回0
括号
数学函数(abs, acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, hypot, ln, log, log10, pow, power, rem, sgn, sin, sinh, sqrt,
tan, tanh.)
Workspace中定义的变量– 如果变量名字不是Matlab 保留字符(比如sin),变量名字会被传递给Matab,从而在Maltab Workspace中获取相应给定的值。
矩阵或者向量必须具体到其对应的元素。
(比如A(1,1))
注意:Fcn模块中使用的表达式不支持矩阵运算,同样不支持(:) 符。
模块输入可以是标量或者向量,但输出总是标量数值。
 
MATLAB Fcn 模块
MATLAB Fcn模块对它的输入进行指定的Matlab函数或者表达式运算。
输出尺寸必须和模块中定义的尺寸相符,否则报错。
下面是MATLAB Fcn模块中可以使用的有效表达式
sin atan2(u(1),u(2)) u(1)^u(2)
注意:
同Fcn模块相比,在仿真中MATLAB Fcn模块速度要慢,因为它需要在每个积分步骤中调用Maltab编译器。
因此建议使用Fcn模块或者Math Function模块代替MATLAB Fcn模块,或者编写M文件或者MEX文件S 函数代替它。
 
S Function (System Function)
S函数,即系统函数,用来扩展Simulink模块库。
一个S函
数,相当于一个Simulink模块,只不过这个模块不是在Simulink Library中已经存在的,用户需要根据自己对Simulink的功能需求,使用指定的编程语言来定制自己的Simulink模块。
S 函数支持Matlab, C, C++, Ada, or Fortran等语言,编写S 函数需要按照一定的格式,具体如何编写S函数,参考Matlab 自带文档。
如果能用现有的Simulink 模块库中的模块满足需求,不建议使用S函数编写。