主要内容

生成的代码MATLAB离散事件系统

为了提高模拟性能,您可以配置MATLAB离散事件系统模拟使用生成的代码。与模拟使用参数设置为代码生成选项,只使用MATLAB模拟并生成代码块®函数支持代码生成。金宝app

MATLAB离散事件系统有多个块支持代金宝app码重用模型MATLAB离散事件系统块使用相同的系统对象™源文件。代码重用的代码只生成一次使块共享系统对象。

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

从R2017b,MATLAB离散事件系统使用生成的代码块可以模拟。现有的应用程序继续处理模拟使用参数设置为解释执行

如果你想使用MATLAB生成的代码块离散事件系统加速度,更新系统对象代码使用这些指导方针。为更新的一个例子MATLAB离散事件系统系统对象,请参阅多核的开发自定义调度程序控制系统的例子。

取代重命名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 (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);

标志更改为逻辑值

把国旗从价值观等10逻辑值,例如真正的

管理全球数据

管理全球数据在模拟使用其中一个代码生成:

移动日志记录和图形功能

许多MATLAB日志记录和图形功能不支持代码生成。金宝app你可以移动日志记录和图形函数为:

  • 一个新的matlab.DiscreteEventSystem对象和配置相关的MATLAB离散事件系统块来模拟使用解释执行模式。

  • 现有的simevents.SimulationObserver对象

取代持久变量

取代持久变量通过声明一个系统对象属性。看到创建系统对象为更多的信息。

代码生成与离散事件系统的局限性

限制包括:

另请参阅

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

相关的话题