为了提高仿真性能,你可以配置MATLAB离散事件系统以模拟使用生成的代码。随着使用模拟参数设置为代码生成
选项,则块模拟,并且仅使用MATLAB代码生成®支持代码生成函数。万博1manbetx
MATLAB离散事件系统模块支持代码重万博1manbetx用对于具有多个模型MATLAB离散事件系统块使用相同的System object™源文件。代码重用使代码仅为共享系统对象的块生成一次。
开始在R2017b中,MATLAB离散事件系统块可以模拟使用生成的代码。现有应用程序继续工作与使用模拟参数设置为解释执行
。
如果你想生成使用MATLAB离散事件系统加速块码,更新使用这些系统指引目标代码。有关更新的示例MATLAB离散事件系统系统对象,请参阅seExampleSchedulerClass文件中的开发自定义调度的多核控制系统的例子。
matlab.DiscreteEventSystem
方法要利用模拟代码生成的matlab.DiscreteEventSystem
类:
在matlab.DiscreteEventSystem
应用程序文件,更改这些方法名新的名称:
老方法名称 | 新方法名称 |
---|---|
blockedImpl |
受阻 |
destroyImpl |
破坏 |
entryImpl |
条目 |
exitImpl |
出口 |
generateImpl |
生成 |
iterateImpl |
重复 |
setupEventsImpl |
setupEvents |
timerImpl |
计时器 |
在代码中,移动从保护区更名方法定义为每个公共区域matlab.DiscreteEventSystem
方法。
初始化系统对象中的属性的节属性。不要在构造函数或其他方法对它们进行初始化。换句话说,你不能使用可变大小的系统对象的属性。
使用initEventArray
初始化数组。
之前 | 后 |
---|---|
函数事件= setupEventsImpl(OBJ) |
函数事件= setupEvents(OBJ)事件= obj.initEventArray; |
追加元素结构的阵列。例如:
之前 | 后 |
---|---|
事件(ID)= obj.eventGenerate(1,num2str(ID),... 0,obj.Priorities(ID));%#确定<* AGROW> |
事件= [事件obj.eventGenerate(1,int2str(ID),... 0,obj.Priorities(ID))];%#确定 |
将不支持代码生成的函数替换为支持代码生成的功能等价物。万博1manbetx例如:
之前 | 后 |
---|---|
事件(ID)= obj.eventGenerate(1,num2str(ID),... 0,obj.Priorities(ID));%#确定<* AGROW> |
事件= [事件obj.eventGenerate(1,int2str(ID),... 0,obj.Priorities(ID))];%#确定 |
对于不支持代码生成且没有功能对等物的函数,使用万博1manbetxcoder.extrinsic
函数声明的那些功能外源性。例如,str2double
没有相应的功能。在调用之前coder.extrinsic
,使返回的变量相同的数据类型,您要识别的功能。例如:
之前 | 后 |
---|---|
ID = str2double(标签); |
coder.extrinsic( 'str2double');ID = 1;ID = str2double(标签); |
不通过系统对象被声明为外在功能。
只将静态系统对象方法声明为外部方法。
替换矩阵或结构的阵列单元阵列。
之前 | 后 |
---|---|
entity.data。execTime = obj.ExecTimes {id} (1); |
entity.data.execTime = obj.ExecTimes(ID,1); |
从价值观,如更改标志1
和0
到逻辑值,例如真正的
和假
。
管理全球数据,同时使用其中的一个代码生成模拟:
许多MATLAB日志和图形函数不支持代码生成。万博1manbetx您可以移动日志和图形功能:
新matlab.DiscreteEventSystem
对象并配置关联的MATLAB离散事件系统块使用,以模拟解释执行
模式。
现有的simevents.SimulationObserver
宾语
声明一个系统对象的属性替换持久变量。看到创建系统对象(MATLAB)了解更多信息。
限制包括:
没有全局变量(MATLAB)
系统对象在MATLAB中的代码生成(万博1manbetxSimulink的)
MATLAB系统模块限制(万博1manbetxSimulink的)
受阻
|cancelForward
|cancelGenerate
|cancelIterate
|cancelTimer
|条目
|eventForward
|生成
|getEntityPortsImpl
|getEntityTypesImpl
|重复
|matlab.DiscreteEventSystem
|matlab.System
|queueFIFO
|setupEvents
|计时器