生成代码MATLAB离散事件系统

为了提高仿真性能,你可以配置MATLAB离散事件系统以模拟使用生成的代码。随着使用模拟参数设置为代码生成选项,则块模拟,并且仅使用MATLAB代码生成®支持代码生成函数。万博1manbetx

MATLAB离散事件系统模块支持代码重万博1manbetx用对于具有多个模型MATLAB离散事件系统块使用相同的System object™源文件。代码重用使代码仅为共享系统对象的块生成一次。

迁移现有MATLAB离散事件系统系统对象

开始在R2017b中,MATLAB离散事件系统块可以模拟使用生成的代码。现有应用程序继续工作与使用模拟参数设置为解释执行

如果你想生成使用MATLAB离散事件系统加速块码,更新使用这些系统指引目标代码。有关更新的示例MATLAB离散事件系统系统对象,请参阅seExampleSchedulerClass文件中的开发自定义调度的多核控制系统的例子。

更换更名matlab.DiscreteEventSystem方法

要利用模拟代码生成的matlab.DiscreteEventSystem类:

  1. matlab.DiscreteEventSystem应用程序文件,更改这些方法名新的名称:

    老方法名称 新方法名称
    blockedImpl 受阻
    destroyImpl 破坏
    entryImpl 条目
    exitImpl 出口
    generateImpl 生成
    iterateImpl 重复
    setupEventsImpl setupEvents
    timerImpl 计时器
  2. 在代码中,移动从保护区更名方法定义为每个公共区域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

将不支持代码生成的函数替换为支持代码生成的功能等价物。万博1manbetx例如:

之前
事件(ID)= obj.eventGenerate(1,num2str(ID),... 0,obj.Priorities(ID));%#确定<* AGROW>
事件= [事件obj.eventGenerate(1,int2str(ID),... 0,obj.Priorities(ID))];%#确定

声明函数不支持代码生成万博1manbetx

对于不支持代码生成且没有功能对等物的函数,使用万博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);

易帜到逻辑值

从价值观,如更改标志10到逻辑值,例如真正的

管理全球数据

管理全球数据,同时使用其中的一个代码生成模拟:

移动记录和图形功能

许多MATLAB日志和图形函数不支持代码生成。万博1manbetx您可以移动日志和图形功能:

  • matlab.DiscreteEventSystem对象并配置关联的MATLAB离散事件系统块使用,以模拟解释执行模式。

  • 现有的simevents.SimulationObserver宾语

更换持久变量

声明一个系统对象的属性替换持久变量。看到创建系统对象(MATLAB)了解更多信息。

代码生成的限制与离散事件系统块

限制包括:

也可以看看

|||||||||||||||

相关的话题