Simulink中的MATLAB Function说明及其变量初始化

阅读: 评论:0

Simulink中的MATLAB Function说明及其变量初始化

Simulink中的MATLAB Function说明及其变量初始化

Matlab function是一支持使用M语言编写模块功能,并能够将其生成C代码,用于开发桌面应用和嵌入式应用模块。

在function 头的下一行增加%#codegen符号,其作用是为了使静态代码分析器Code Analyzer 诊断代码并提示用户对可能在代码生成的过程中导致错误的违规写法进行修正。

MATLAB Function内部的M语言有严格的要求:

                  变量必须要给定初始值及其维度,变量类型及其虚实性,不支持变维度变量

simulink中的运行机制,每个采样点会调用一次MATLAB Function的函数,两次调用之间,同一个变量的前次计算结果传递到当前计算周期是个大问题。解决的办法是采用persistent变量来实现函数退出和进入时内部变量值的保持。

persistent变量是定义在某个函数内的来变量类型,可以在函数调用的不同次数间保持上一次退出该函数的值。它变量声明与global的区别是,persistent变量是能在被定义函数中被识别,避免被外部修改。声明persistent变量时,它刚刚被创建,还不具有初始值,其内容为空值[ ]。调用persistent变量的函数时,先判断persistent变量是否为空。如果为空需要进行初始化赋值。当非空时,它会记住上次被调用的结果。

Example:

function y = fcn(u)
%#codegen
%*********初始化******************
persistent sum_val
if isempty(sum_val)  %初始化
    sum_val = 0;
end
sum_val = sum_val + u ;
y = sum_val;

本文发布于:2024-01-30 03:22:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170655613318872.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:初始化   变量   Simulink   MATLAB   Function
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23