龙空技术网

Stateflow的图形函数

云龙派 100

前言:

现在兄弟们对“c语言画图函数”可能比较重视,兄弟们都想要了解一些“c语言画图函数”的相关文章。那么小编在网上收集了一些有关“c语言画图函数””的相关文章,希望朋友们能喜欢,我们一起来了解一下吧!

流程图的创建使Stateflow几乎成为了一种可视化的编程工具。Stateflow应用流程图可以创建复用对象——图形函数的方法。

1.状态中的流程图

前面都是将流程图直接创建与Stateflow图块下,使Stateflow流程图成为了Chart层次的流程图。Stateflow也支持层次化的建模,用户创建的流程图可以包含在状态之中,这时的流程图就属于状态这一层次了。

如下图所示的Stateflow框图具有两个状态,状态A和状态B,其中状态B中包含了流程图——do-while循环结构。创建该流程图时,可以首先添加两个状态,然后增大其中一个状态的尺寸,直接将流程图的转移和连接节点添加到这个状态内部,这样便构成了状态内的流程图。

和所有的流程图类似,状态内的流程图也是在状态被激活的哪一瞬间进行检测和执行的,直到执行到没有出口的节点(终止节点)为止。如上述的模型所示,当状态B被激活时,其状态图内部的流程图就会被执行,直到执行到终止节点为止。当该循环结构完成了数据对象data的累加工作。这里的流程图执行完成之后,状态B处于活动状态,直到发生相应的事件,触发状态B向状态A切换,而当状态B再次被激活时,流程图又会被全部执行一次。

当流程图包含到状态之中时,状态在每次激活时就可以充分利用流程图的特点来完成复杂算法的开发。

2.创建图形函数

图形函数实际上是包含了流程图的状态的延伸,Stateflow中有图形函数的图形对象工具。首先,查看下图所示的Stateflow框图,这个框图具有两个状态:状态Normal和状态Inverse。在这两个状态中都包含了流程图。它们包含的流程图十分简单,就是根据输入数据进行相应的逻辑判断,然后决定具体的输出。从框图上看,这两个流程图的体系结构完全一致,有所区别的就是参数,即处理的数据不同,因此可以通过图形函数的形式来完成模型的创建。

该Stateflow框图具有两个状态:状态Normal和状态Inverse。在这两个状态中都包含了流程图。它们包含的流程图十分简单,就是根据输入数据进行相应的逻辑判断,然后决定具体的输出。从框图上看,这两个流程图的体系结构完全一致,有所区别的就是参数,即处理的数据不同,因此可以通过图形函数的形式来完成模型的创建。

增加图形函数的方法与步骤如下:

首先在Stateflow图形编辑器的图形对象工具栏上单击图形对象按钮;

然后在Stateflow的图形编辑器中任意空白位置单击鼠标左键,即完成了向现有模型增加图形函数的工作。

增加的图形函数对象是直角矩形,并且处于编辑状态,等待用户输入图形函数的名称,如图所示:

此时可以在光标处定义图形函数的名称。图形函数的名称可以按照M语言或者C语言对函数名称等的要求来完成定义。如果图形函数具有输出变量,则只能有一个输出变量,这个输出变量可以是标量、向量或者矩阵。输入参数则没有个数限制。例如这里命名图形函数为y = mygfunc(x),如图所示:

在定义图形函数名称时,一定要在图形函数对象的边缘内部完成,如果需要扩大图形函数对象的尺寸,可以直接用鼠标拖放四个直角边来完成。另外,要注意图形函数名称的大小写,一般都为小写。

命名完毕之后,就可以在图形函数对象内部完成流程图的创建了。如果图形函数对象不够大,则需要进一步扩大对象的尺寸。注意,此时在创建流程图时需要使用作为输入/输出参数的数据对象。如果在图形函数内部还需要增加额外的本地数据对象,则需要在模型查看器中完成。增加流程图之后的图形函数如上图所示。

3.图形函数的属性

图形函数同样也有自己的属性定义,如下图所示:

其他的属性与以前的图形模块类似,而对图形函数来说比较特殊的属性就是Function Inline Option。这个属性决定了图形函数在执行或者生成代码时,函数本身在代码中的表现方式,主要有三种选项:

Auto选项:由Stateflow自己判断是否将图形函数内嵌或者作为单独函数存放于代码中。Inline选项:将图形函数对应的代码内嵌在框图生成代码的相应位置,也就是说,在模型运行过程中调用图形函数时,不采用函数调用的形式,而是直接嵌入的代码中。Function:将图形函数作为具体的函数存放于生成的代码中。

如前所述,如果需要在Stateflow图形函数中使用本地数据对象,则可以通过Stateflow的模型查看器来完成数据对象的添加和定义。Stateflow的图形函数可以定义的数据对象类型(Scope属性)可以为:Local、Canstant、Parameter、Input、Output,如图所示。其中,Input和Output类型的数据对象在用户为图形函数命名时可自动创建。

参考内容

[1] 张威.Stateflow逻辑系统建模[M].西安:西安电子科技大学出版社,2007.

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

作 者 | 郭志龙

编 辑 | 郭志龙

校 对 | 郭志龙

标签: #c语言画图函数