生成的代码MATLAB离散事件系统块
为了提高模拟性能,您可以配置MATLAB离散事件系统模拟使用生成的代码。与模拟使用参数设置为代码生成
选项,只使用MATLAB模拟并生成代码块®函数支持代码生成。金宝app
MATLAB离散事件系统有多个块支持代金宝app码重用模型MATLAB离散事件系统块使用相同的系统对象™源文件。代码重用的代码只生成一次使块共享系统对象。
迁移现有MATLAB离散事件系统系统对象
从R2017b,MATLAB离散事件系统使用生成的代码块可以模拟。现有的应用程序继续处理模拟使用参数设置为解释执行
。
如果你想使用MATLAB生成的代码块离散事件系统加速度,更新系统对象代码使用这些指导方针。为更新的一个例子MATLAB离散事件系统系统对象,请参阅多核的开发自定义调度程序控制系统的例子。
取代重命名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 (num2str (id),……0,obj.Priorities (id));% #好< * AGROW > |
事件=[事件obj。eventGenerate (int2str (id),……0,obj.Priorities (id)));% #好< AGROW > |
替换功能,不支持代码生成金宝app
替换功能,不支持代码生成功能支持代码生成的等价物。金宝app例如:
之前 | 后 |
---|---|
事件(id) = obj。eventGenerate (num2str (id),……0,obj.Priorities (id));% #好< * AGROW > |
事件=[事件obj。eventGenerate (int2str (id),……0,obj.Priorities (id)));% #好< AGROW > |
声明函数不支持代码生成金宝app
为不支持代码生成功能,没有功能对等,使用金宝appcoder.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日志记录和图形功能不支持代码生成。金宝app你可以移动日志记录和图形函数为:
一个新的
matlab.DiscreteEventSystem
对象和配置相关的MATLAB离散事件系统块来模拟使用解释执行
模式。现有的
simevents.SimulationObserver
对象
取代持久变量
取代持久变量通过声明一个系统对象属性。看到创建系统对象为更多的信息。
代码生成与离散事件系统的局限性
限制包括:
另请参阅
matlab.DiscreteEventSystem
|阻塞
|cancelGenerate
|cancelIterate
|cancelTimer
|cancelForward
|条目
|eventForward
|生成
|getEntityPortsImpl
|getEntityTypesImpl
|迭代
|queueFIFO
|setupEvents
|计时器
|matlab.System