文档

使用TCP/IP或串行通信的外部模式模拟

设置并运行使用TCP/IP或串行(RS-232)通信通道的外部模式模拟。

  1. 创建并配置一个简单的模型。

  2. 构建目标可执行文件。

  3. 运行目标程序。

  4. 调优参数。

本例使用GRT目标,不需要外部硬件。生成的可执行文件运行如下:

  • 在承载Simulink的开发计算机上万博1manbetx®而且万博1manbetx仿真软件编码器™

  • 作为一个独立于MATLAB的过程®和仿真软万博1manbetx件。

创建和配置模型

在本部分示例中,您将创建一个简单的模型,ex_extModeExample.您还可以创建一个名为ext_mode_example来存储模型和生成的可执行文件。

创建文件夹和模型:

  1. 在MATLAB命令行中输入:

    mkdir ext_mode_example
  2. 使ext_mode_example您的工作文件夹:

    cd ext_mode_example
  3. 在Simulink中创建一个模型万博1manbetx正弦波块为输入信号,二获得方块平行,两个范围块。一定要贴上标签获得而且范围如图所示。

  4. 定义并分配两个MATLAB工作空间变量,一个而且B

    A = 2;B = 3;
  5. 打开增益块A并设置其获得变量的参数。一个

  6. 打开增益块B并设置其获得变量的参数。B

    当目标程序构建完成并以外部模式连接到Simulink时,您可以将新的增益值下载到正在执行的目标程序。万博1manbetx为此,您可以为工作区变量分配新值一个而且B,或在块参数对话框中编辑该值。有关更多信息,请参见调整参数

  7. 验证模型的操作。打开Scope块并运行模型。当A = 2而且B = 3,输出如下所示。

  8. 将模型另存为ex_extModeExample

构建目标可执行文件

为外部模式兼容的目标程序设置所需的模型和代码生成参数。然后,生成代码并构建目标可执行文件。

  1. 单击,打开“配置参数”对话框模拟>型号配置参数

  2. 选择解算器窗格。

  3. 解算器的选择subpane:

    1. 类型字段中,选择固定步

    2. 解算器字段中,选择离散(无连续状态)

    3. 开放附加选项.在固定的大小字段中,指定0.1.(否则,在生成代码时万博1manbetx仿真软件编码器构建过程发布一个警告并提供一个值。)

    离开开始时间设置为的默认值0.0

    点击应用

  4. 选择数据导入/导出窗格,并清除时间而且输出复选框。在本例中,数据没有记录到工作区或mat文件。点击应用

  5. 选择优化窗格。确保默认参数行为设置为可调.内联参数不是本例的一部分。如果已修改,请单击应用

  6. 选择代码生成窗格。缺省情况下,选择通用实时(GRT)目标。

  7. 选择代码生成>接口窗格。在数据交换接口部分中,选择外部模式.此选择支持生成外部模式支持代码,并显示其他外部模式配置参数。万博1manbetx

  8. 外部模式配置节,确保为默认值tcpip传输层参数。

    外部模式支持通过TCP/IP万博1manbetx、串行和自定义传输协议进行通信。的MEX-file名字field指定在主机端实现主机和目标通信的mexfile的名称。TCP/IP的默认值是ext_comm方法提供的一个mex文件万博1manbetx仿真软件编码器软件您可以通过提供其他文件来覆盖这个默认值。如果需要支持其他传输层,请参见万博1manbetx为TCP/IP或串行外部模式通信创建传输层

    MEX-file参数字段允许您指定参数,例如TCP/IP服务器端口号,以传递给外部接口程序。这些参数特定于您正在使用的外部接口。有关设置这些参数的信息,请参见mexo - file TCP/IP传输可选参数而且mexo - file串行传输可选参数

    本例使用默认参数。离开MEX-file参数字段空白。

    静态内存分配复选框控制如何为目标中的外部模式通信缓冲区分配内存。对于本例,不要选中复选框。有关更多信息,请参见控制目标中通信缓冲区的内存分配

  9. 点击应用保存外部模式设置。

  10. 保存模型。

  11. 选择代码生成窗格。确保只生成代码清除,然后,在模型窗口中,按Ctrl + B生成代码并创建目标程序。软件创建ex_extModeExample目标可执行文件在您的工作文件夹。

运行目标程序

现在运行ex_extModeExample目标可执行文件,并使用Simulink作为运行目标程万博1manbetx序的交互式前端。可执行文件在工作文件夹中。运行目标程序,建立Simulink与目标程序的通信。万博1manbetx

请注意

一个外部模式程序ex_extModeExample是基于主机的可执行文件。它的执行与实时操作系统(RTOS)或定时计时器中断无关,也不是实时运行的。程序只是尽可能快地运行,它计算的时间单位是模拟的时间单位,与程序外部的时间不对应。

外部信号和触发对话框(从外部模式控制面板访问)显示模型中支持外部模式信号监测和日志记录的块列表。万博1manbetx在对话框中,您可以配置所查看的信号、获取信号的方式以及显示信号的方式。

在本例中,您观察并使用“外部信号和触发”对话框的默认设置。

  1. 代码模型图的菜单,选择外部模式控制面板.这个控制面板是配置信号监控和数据存档的地方。您还可以连接到目标程序,并开始和停止模型代码的执行。

    • 在目标程序启动后,使用最上面一行的按钮。

    • 信号与触发按钮打开外部信号和触发对话框。使用此对话框选择从目标系统收集并以外部模式查看的信号。您也可以选择在满足一定信号条件时触发数据上传的信号,并定义触发条件。

    • 数据归档按钮将打开“启用数据存档”对话框。使用数据归档保存目标程序生成的数据集,以备将来分析。本例不使用数据归档。看到配置目标程序信号数据的主机存档

  2. 点击信号与触发按钮,打开外部信号和触发对话框。默认配置选择所有用于监控的信号,并设置信号监控在主机和目标程序连接后开始。

  3. 确保“外部信号和触发”对话框选项设置为以下默认值:

    • 选择所有选中复选框。信号信号的选择列表用X选择列。

    • 触发选项:

      • 手册

      • 模式正常的

      • 持续时间1000

      • 延迟0

      • 手臂连接到目标时:选择

    关闭“外部信号和触发”对话框,单击好吧.然后,关闭外部模式控制面板。

    有关“外部信号和触发”对话框参数的说明,请参见配置目标程序信号数据的主机监控

  4. 要运行目标程序,打开一个操作系统命令窗口(在UNIX上)®系统,一个终端模拟器窗口)。在命令提示符下,使用cd要导航到ext_mode_example生成目标程序可执行文件的文件夹。

    输入如下命令:

    ex_extModeExample -tf inf -w . ex_extModeExample

    请注意

    或者,您可以使用以下语法从MATLAB命令窗口运行目标程序。

    ex_extModeExample -tf inf -w &

    目标程序开始执行,并进入等待状态。

    - tfswitch将覆盖Simulink中为模型设置的停止时间。万博1manbetx的Value指示模型无限期地运行。模型代码一直运行,直到目标程序接收到来自Simulink的停止消息。万博1manbetx

    - wSwitch指示目标程序进入等待状态,直到它接收到开始实时代码来自主机的消息。如果您希望从目标程序执行的时间步骤0开始查看数据,或者如果您希望在目标程序开始执行模型代码之前修改参数,则需要此开关。

  5. 打开模型中的Scope块。信号在瞄准镜上看不见。当您将Simulink连接到目标程万博1manbetx序并开始模型执行时,目标程序生成的信号将在作用域显示器上可见。

  6. 在模型和目标程序之间的通信可以开始之前,模型必须处于外部模式。要启用外部模式,请从模拟>模式菜单中,选择外部

  7. 重新打开外部模式控制面板(可在代码菜单),并按连接.此操作在Simulink和目标程序之间发起握手。万博1manbetx当Simu万博1manbetxlink与目标连接时,将开始实时代码控件的标签连接按钮更改为断开连接

  8. 点击开始实时代码.增益块A和B的输出显示在模型中的两个作用域上。

您已经在Simulink和正在运行的目标程序之间建立了通信。万博1manbetx现在您可以在Simulink中优化块参数,并观察参数更改对目标程序的影响。万博1manbetx

调整参数

你可以通过给变量赋一个新值来改变增益块的增益因子一个B在MATLAB工作空间中。在模拟期间更改工作区中的块参数值时,必须使用这些更改显式地更新块关系图。当您更新框图时,新的值将被下载到目标程序中。

在某些条件下,还可以调优用于指定块参数值的表达式。要在模拟过程中更改表达式,请打开块对话框。

  1. 在命令提示符中,为两个变量赋新值,例如:

    A = 0.5;B = 3.5;
  2. 打开ex_extModeExample模式窗口。从模拟菜单中,选择更新图.一旦Simulink更万博1manbetx新了块参数,新的增益值就会下载到目标程序中,并且范围会因为增益的变化而改变。

  3. 正弦波块对话框,设置振幅0.5.点击应用好吧

    当你点击应用好吧时,模拟将新的块参数值下载到目标程序。的范围块显示变化,以反映新的振幅值。

  4. 要同时断开主机/目标程序的通信并结束目标程序的执行,请从模拟菜单中,选择停止.或者,在“外部模式控制面板”中,单击停止实时代码

在模拟过程中不能更改正弦波块的采样时间。块采样时间是模型结构定义的一部分,也是生成代码的一部分。因此,如果要更改块的采样时间,必须停止外部模式模拟,重置块的采样时间,并重新构建可执行文件。

外部模式模拟期间的块参数可调性取决于生成的代码表示块参数的方式。

例如,在获得一个块对话框中,无法更改表达式一个获得参数。相反,您必须更改变量的值一个在基本工作区中。表达式不能更改,因为生成的代码不会在内存中为获得参数。相反,代码创建了一个字段一个在结构中:

/*参数(自动存储)*/ struct P_ex_extModeExample_T_ {real_T A;/*变量:A */ real_T B;/*变量:B */ real_T SineWave_Amp;/*表达式:1 */ real_T SineWave_Bias;/*表达式:0 */ real_T SineWave_Freq;/*表达式:1 */ real_T SineWave_Phase;/*表达式:0 */};

生成的代码算法在表示块的代码中使用该字段获得一个.在本例中,是全局结构变量ex_extModeExample_P使用类型P_ex_extModeExample_T_

ex_extModeExample_B。获得一个= ex_extModeExample_P.A * rtb_SineWave;

当你改变的值一个在基本工作空间中,模拟将新值下载到字段一个在目标程序中。

中的表达式可以更改正弦波在模拟过程中阻塞参数,因为生成的代码在全局结构中创建一个字段ex_extModeExample_P表示块中的每个参数。在块对话框中更改表达式时,模拟首先计算新表达式。然后模拟将得到的数值下载到目标程序中相应的结构字段。

看到在生成的代码中创建可调校准参数

控制目标中通信缓冲区的内存分配

如果您选择代码生成>接口>静态内存分配复选框(对于GRT和ERT目标),代码生成器为仅使用静态内存分配的外部模式生成代码(“无malloc”代码)。选择静态内存分配使静态内存缓冲区大小参数。使用此参数指定外部模式静态内存缓冲区的大小。缺省值是1,000,000字节。如果为程序输入的值太小,外部模式在尝试分配超过允许的内存时将发出内存不足错误。的值静态内存缓冲区大小字段并重新生成代码。

要确定要分配多少内存,请在目标上启用详细模式(通过包含选择= " -DVERBOSE "使命令行)。当它执行时,外部模式显示它尝试分配的内存量,以及每次尝试分配时可用的内存量。如果分配失败,则可以使用此控制台日志调整静态内存缓冲区大小字段。

纯整数码与外部模式

对于ERT目标,如果你清除代码生成>接口>万博1manbetx支持:浮点数复选框,则可以生成没有双精度和浮点数的纯整数代码。有关更多信息,请参见型号配置参数:代码生成接口

如果您打算生成纯整数代码与外部模式选中后,请注意以下需求:

  • 触发信号必须为数据类型int32.如果需要,使用数据类型转换块。

  • 方法中指定的模拟停止时间解算器Options被忽略。要指定停止时间,请从MATLAB命令行运行目标程序并使用- tf选择。看到运行外部程序.如果不指定此选项,程序将无限期地执行(就像停止时间为).

    方法指定的停止时间- tf命令行选项被解释为要执行的基本速率节拍数,而不是以秒为单位的流逝时间。刻度数计算为

    停止时间(秒)/基本速率步长(秒)

通过编辑器工具栏控制外部模式模拟

此表提供了可用于控制外部模式模拟的万博1manbetxSimulink Editor功能。

外部模式动作 工具栏控件 菜单控件 外部模式控制面板按钮
将模型的模拟模式设置为外部模式 在仿真模式下拉列表中选择外部 模拟>
模式
>外部
连接(如果尚未设置模型仿真模式,则将仿真模式设置为外部模式)
将您的模型连接到等待或运行的目标程序 连接到目标按钮 模拟>
连接到目标
连接
开始在目标环境中运行实时代码 运行按钮 模拟>运行(键盘快捷键Ctrl + T 开始实时代码
断开模型与目标环境的连接(不会停止运行实时代码) 从目标断开连接按钮 模拟>
从目标断开连接
断开连接
停止目标程序执行并断开模型与目标环境的连接 停止按钮 模拟>停止(键盘快捷键Ctrl + Shift + T 停止实时代码

通过外部模式控制面板控制外部模式仿真

外部模式控制面板提供外部模式操作的集中控制,包括:

若要打开外部模式控制面板对话框,请在模型窗口中选择代码>外部模式控制面板

连接、启动和停止

外部模式控制面板执行与中相同的连接/断开和启动/停止功能模拟菜单和Simulink工具万博1manbetx栏(请参见通过编辑器工具栏控制外部模式模拟).

单击连接按钮将您的模型连接到等待或运行的目标程序。当您连接时,按钮更改为断开连接按钮。断开连接断开模型与目标环境的连接,但不会停止在目标环境中运行的实时代码。

连接将模型仿真模式设置为外部模式。

单击开始实时代码按钮命令目标开始运行实时代码。当实时代码在目标环境中运行时,按钮更改为停止实时代码按钮。停止实时代码停止目标程序执行,并断开模型与目标环境的连接。

将目标程序信号数据上传到主机

通过外部模式控制面板,可以触发和取消数据上传到主机。上载数据的目标可以是作用域块、显示块、到工作区块或中列出的另一个块或子系统与外部模式兼容的块和子系统

手臂触发而且取消触发按钮提供手动控制数据上传到兼容的块或子系统,浮动作用域除外。(对于浮动作用域,使用浮动范围部分的外部模式控制面板。)

  • 要触发数据上传到兼容的块或子系统,请单击手臂触发按钮。按钮变为取消触发

  • 如需取消数据上传,请单击取消触发按钮。按钮返回手臂触发

可手动触发数据上传或自动触发数据上传。若要配置数据上传的信号和触发器,请参见配置目标程序信号数据的主机监控

外部模式兼容块的子集,包括Scope、Time Scope和To Workspace,允许您将上传的数据记录到磁盘。若要配置数据归档,请参见配置目标程序信号数据的主机存档

浮动范围部分的外部模式控制面板控制数据何时上传到浮动作用域块以及上传多长时间。当在外部模式下使用时,浮动作用域:

  • 不会出现在“外部信号和触发”对话框中。

  • 不要将数据记录到外部模式存档。

  • 万博1manbetx仅支持手动触发。

浮动范围节包含以下参数:

  • 启用数据上传选项,其功能为手臂触发浮动作用域按钮。当目标断开连接时,该选项控制在连接浮动作用域时是否武装触发器。当连接目标时,该选项作为一个切换按钮来武装或取消触发器。

    • 若要触发数据上传到浮动作用域,请选择启用数据上传

    • 取消向浮动作用域上传数据,清除启用数据上传

  • 持续时间编辑字段,该字段指定外部模式在触发事件后记录浮动作用域数据的基本速率步骤数。缺省情况下,为汽车,这将导致使用“外部信号和触发”对话框中设置的持续时间值。默认的持续时间值是1000个基本速率步骤。

下载参数到目标程序

批量下载外部模式控制面板上的选项启用或禁用批量参数更改。

缺省情况下,批量下载功能处于关闭状态。如果禁用批量下载,当单击好吧应用,通过编辑块参数对话框直接对块参数所做的更改被发送到目标。当你执行更新图,发送对MATLAB工作区变量的更改。

如果您选择批量下载,下载按钮已启用。直到你点击下载,对块参数的更改存储在本地。当你点击下载时,更改将在一次传输中发送。

当参数更改等待批量下载时,外部模式控制面板将显示消息参数更改挂起…在右边下载按钮。在Simulink引擎接收到新参数已安装到目标系统的参数向量的通知之前,此消息万博1manbetx一直可见。

控件显示了外部模式控制面板批量下载选项激活,参数更改挂起。

配置目标程序信号数据的主机监控

触发器在信号数据上传中的作用

在外部模式下,将目标程序信号数据上传到主机依赖于触发.触发器是开始上传数据时必须满足的一组条件。触发器可以武装,也可以不武装。

  • 当触发器被武装时,软件检查允许数据上传开始的触发条件。

  • 如果触发器未武装,则软件不会检查触发器条件,数据上传无法开始。

  • 触发器可以在主机连接到目标时自动启动,也可以通过单击按钮手动启动手臂触发按钮在外部模式控制面板上。

当触发器处于武装状态且满足触发条件时,触发器触发并开始上传数据。

当数据收集完成后,触发器事件将完成,数据上传将停止。然后扳机可以重新武装,或保持非武装,直到你点击手臂触发按钮。

若要选择要上传的目标程序信号并配置如何触发上传,请参见配置信号数据上传

配置信号数据上传

单击信号与触发“外部模式控制面板”按钮将打开“外部信号与触发”对话框。

“外部信号和触发”对话框显示了模型中支持外部模式信号上传的块和子系统的列表。万博1manbetx有关哪些类型的块是外部模式兼容的信息,请参见与外部模式兼容的块和子系统

在“外部信号及触发”对话框中,您可以选择从目标系统收集并以外部模式查看的信号。您也可以选择触发信号,在满足一定信号条件的情况下触发数据上传,并定义触发条件。

默认触发选项

上图为“外部信号与触发”对话框的默认设置。外部信号和触发对话框的默认操作简化了对目标程序的监视。如果使用默认设置,则不需要预配置信号和触发器。您启动目标程序并将Simulink引擎连接到它。万博1manbetx选择外部模式兼容的块,并武装触发器。信号上传在连接到目标程序时立即开始。

触发器选项的默认配置为:

  • 选择所有:在

  • :手动

  • 模式:正常

  • 持续时间: 1000

  • 延迟: 0

  • 手臂连接到目标时:在

选择要上传的信号

模型中的外部模式兼容块将出现在信号的选择外部信号和触发对话框列表。您可以使用此列表选择要查看的信号。在选择列,一个X为每个选定的块显示。

选择所有复选框选中所有信号。默认情况下,选择所有被选中。

如果选择所有已清除时,您可以使用而且选项。若要选择一个信号,请单击其列表项并选择选择。若要清除信号,请单击其列表项并选择选择。

清除所有按钮清除所有信号。

配置触发选项

如在触发器在信号数据上传中的作用,信号数据上传依赖于触发器。触发器定义了开始上传时必须满足的条件。此外,必须启动触发器才能开始上传数据。当触发器被武装并且满足触发条件时,触发器触发并开始上传。当数据收集完成后,触发器事件将完成,数据上传将停止。

若要控制何时以及如何从目标系统收集(上传)信号数据,请配置以下内容触发选项在“外部信号与触发”对话框中。

  • 手册信号.控制是否有按钮或信号触发数据上传。

    选择手册对象的外部模式手臂触发按钮作为开始上传数据的触发器。当你点击手臂触发,开始上传数据。

    选择信号指示外部模式使用触发信号作为开始上传数据的触发器。当触发信号满足触发条件(即信号在指定方向上越过触发电平)时,a触发事件发生。中指定触发条件触发信号部分。)如果触发点是武装,外部模式监视触发事件的发生。当触发事件发生时,数据开始上传。

  • 模式正常的只有一次的.控制触发器在触发器事件完成后是否重新启动。

    正常的模式,外部模式在每个触发事件后自动重新武装触发器。触发器触发时开始下一次数据上传。

    只有一次的模式,外部模式只收集一个缓冲区的数据每次你武装触发器。

    有关的更多信息模式设置,请参阅配置目标程序信号数据的主机存档

  • 持续时间:指定外部模式在触发事件后上传数据的基本速率步数(默认为1000)。例如,如果持续时间设置为1000,模型的基础(最快)速率为1秒:

    • 对于以基本速率(1秒(1.0 Hz))采样的信号,外部模式在触发事件期间收集1000个连续样本。

    • 对于2秒采样的信号(0.5 Hz),外部模式在触发事件期间收集500个样本。

  • 延迟:数据采集的延迟时间。延迟表示从触发事件到开始数据收集之间所经过的时间。延迟用基本速率步长表示。它可以为正或负(默认为0)。负延迟对应于预触发。当延迟为负时,将收集并上传触发事件之前的数据。

  • 手臂连接到目标时:选中或清除。按钮或信号是否触发数据上传(定义为),则必须激活触发器,才能开始上载资料。

    如果您选择此选项,则连接到目标臂上的触发器。

    • 如果触发手册,数据立即开始上传。

    • 如果触发信号,立即开始监测触发信号。当触发信号满足触发条件(定义在触发信号部分)。

    如果你清除了手臂连接到目标时,手动按下扳机手臂触发按钮在外部模式控制面板上。

在外部模式下进行模拟时,模型中的每个速率都会在目标上创建缓冲区。缓冲区中的每个条目都足够大,可以容纳该速率下每个信号在一个时间步长的所有数据(时间+数据+标识信号的外部模式索引)。循环缓冲区中的条目数量由外部模式触发器决定持续时间参数(ExtModeTrigDuration).分配在目标上用于缓冲信号的内存与持续时间以及信号上传的数量。的持续时间还提供在外部模式下触发事件后使用日志数据的基准速率步数的指示。

持续时间Value指定在每个数据缓冲区中要收集的连续数据点的数量。你应输入持续时间值等于需要收集的连续采样点的数量,而不是依赖于一系列缓冲区来实现连续。如果输入的值小于采样点总数,则在将值从数据缓冲区传输到MATLAB工作空间所花费的时间内可能会丢失采样点。Simu万博1manbetxlink软件仅在一个缓冲区内保持点连续性。在缓冲区之间,由于传输时间的原因,一些样本可能会被省略。

持续时间价值会影响最后限制数据点的价值范围而且到工作空间块。块保存到MATLAB工作空间的样本点的数量是两个值中较小的。若要设置块保存的样本点数量,请清除最后限制数据点.然后,用持续时间指定保存的样本点的数量。

选择触发信号

你可以指定一个信号作为触发信号。要选择触发信号,请从菜单中的触发选项部分中,选择信号.属性中的参数触发信号部分。然后,选择一个信号信号的选择列表,并单击触发信号按钮。

当你选择一个信号作为触发器时,一个T出现在触发的列信号的选择列表。在下一个图中,是一个范围信号就是导火索。B范围也已选择以供查看,如X选择列。

选择触发信号后,可以使用触发信号节定义触发条件并设置触发信号港口而且元素参数。

设置触发条件

使用触发信号部分的“外部信号和触发”对话框中设置触发条件和属性。触发信号参数仅当触发参数时启用设置为信号触发选项部分。

默认情况下,指定触发器块的第一个输入端口的任何元素都可以触发触发器(即端口1,任何元素)。属性可以修改此行为港口而且元素中的值触发信号部分。的港口字段接受一个数字或关键字最后的.的元素字段接受一个数字或关键字任何最后的

触发信号节中,还定义触发事件发生的条件。

  • 方向不断上升的下降,或要么.当信号超过阈值时,信号必须传播的方向。默认为不断上升的

  • 水平:表示信号在指定方向上必须通过的阈值,以触发触发器。缺省情况下,级别为0。

  • 不接近:只适用于正常的模式。用基准速率步长表示,不接近是终止一个触发事件和重新武装触发器之间的时间。

在连接时修改信号和触发选项

在配置信号数据上传并将Simulink连接到正在运行的目标可执行文件之后,您可以在不断开目标连接的情况下修改信万博1manbetx号和触发选项。

如果触发器是武装的(例如,如果触发器选项手臂连接到目标时),则“外部信号及触发”对话框不可修改。修改信号和触发选项:

  1. 打开外部模式控制面板。

  2. 点击取消触发.触发和显示上传的数据停止。

  3. 打开外部信号和触发对话框,根据需要修改信号和触发选项。例如,在信号的选择部分中,可以启用或禁用范围,并且在触发选项科,换扳机模式,例如,从正常的只有一次的

  4. 点击手臂触发.触发和显示上传的数据简历,与您的修改。

配置目标程序信号数据的主机存档

在外部模式下,可以使用Simulink作用域和To Workspac万博1manbetxe块将数据归档到磁盘。

要理解归档特性是如何工作的,请考虑在未启用归档时对数据的处理。有两种情况,一次射击模式和正常模式。

  • 在一次性模式下,触发器事件发生后,每个所选块将其数据写入工作空间,就像在模拟结束时一样。如果触发了另一个一次性操作,则会覆盖现有的工作区数据。

  • 在正常模式下,外部模式在每次触发事件后自动重新武装触发器。因此,您可以将普通模式视为一系列一次性镜头。在这个系列中,除了最后一个外,每一个都被称为一个中间结果.因为触发器可以在任何时候触发,所以将中间结果写入工作空间可能导致不可预知的工作空间变量覆盖。因此,默认的行为是只将最后一次测试的结果写入工作区。中间结果被丢弃。类型的触发器之间存在足够的时间来检查中间结果,则可以覆盖默认行为将中间结果写入工作区选择。此选项不能保护工作区数据不被后续触发器覆盖。

如果使用Simulink作万博1manbetx用域块将数据归档到磁盘,请打开作用域参数对话框并选择该选项将数据记录到工作空间.需要该选项的原因如下:

  • 数据首先从作用域数据缓冲区传输到MATLAB工作空间,然后再写入mat文件。

  • 变量名在作用域参数对话框中输入的参数与MATLAB工作区和mat文件中的相同。启用要保存的数据将启用名称为变量名参数被保存到一个mat文件。

请注意

如果不选择作用域块选项将数据记录到工作空间时,创建了用于数据记录的mat文件,但它们为空。

“启用数据归档”对话框支持:万博1manbetx

  • 文件夹的笔记

  • 文件记录

  • 自动数据归档

在“外部模式控制面板”上,单击数据归档按钮,打开“启用数据归档”对话框。如果您的模型连接到目标环境,那么在配置数据归档时断开它。若要启用对话框中的其他控件,请选择启用归档

“启用数据归档”对话框支持上述操作。万博1manbetx

文件夹的笔记

若要为文件夹中的相关数据文件集合添加注释,请在“启用数据归档”对话框中单击编辑目录说明.打开MATLAB编辑器。将要保存到此窗口中指定文件夹中的文件中的注释放置。默认情况下,注释保存到数据归档最后写入的文件夹中。

文件记录

若要为单个数据文件添加注释,请在“启用数据归档”对话框中单击编辑文件.打开一个文件查找器窗口,该窗口默认设置为您写入的最后一个文件。选择mat文件将打开一个编辑窗口。在此窗口中,添加或编辑要保存在单个mat文件中的注释。

自动数据存档

若要配置将日志记录结果自动写入磁盘(可选地包括中间结果),请使用启用归档选项及其启用的控件。对话框提供如下相关控件:

  • 目录:数据存放的文件夹。如果您选择触发时增加目录,外部模式附加后缀。

  • 文件:保存数据的文件名。如果您选择在一次拍摄后增加文件,外部模式附加后缀。

  • 触发时增加目录:每次单击手臂触发按钮,外部模式使用不同的文件夹写入日志文件。文件夹的命名是递增的,例如,dirname1dirname2等等。

  • 在一次拍摄后增加文件:新的数据缓冲区以增量文件形式保存:filename1filename2等等。文件增量在正常模式下自动发生。

  • 将文件后缀附加到变量名:每当外部模式增加文件名时,每个文件都包含同名的变量。选择将文件后缀附加到变量名结果在每个文件中包含唯一的变量名。例如,外部模式保存名为xdata在增量文件中(file_1file_2,等等)xdata_1xdata_2等等。这种方法支持将mat文件加载万博1manbetx到工作区中,并在MATLAB命令提示符下比较变量。的每个实例如果没有唯一的名称xdata将覆盖MATLAB工作区中的前一个。

  • 将中间结果写入工作区:如果你想要万博1manbetx仿真软件编码器将中间结果写入工作区的软件,请选择此选项。

与外部模式兼容的块和子系统

兼容的块

在外部模式下,您可以使用以下类型的块来接收和查看从目标程序上传的信号:

  • 浮动范围和范围块

  • 来自DSP系统工具箱™产品的频谱分析仪和时间范围块

  • 显示模块

  • 到工作区块

  • 用户编写的S-Function块

    s函数API中内置了一个外部模式方法。该方法允许用户编写的块支持外部模式。万博1manbetx看到matlabroot/万博1manbetx模型/ include /simstruc.h

  • XY图

您可以将某些子系统指定为信号查看子系统,并使用它们来接收和查看从目标程序上传的信号。看到信号观察子系统获取更多信息。

您可以选择外部模式兼容的块和子系统,并通过使用外部信号和触发对话框来武装触发器。默认情况下,模型中的这些块被选中,当连接到目标程序时,手动触发器被设置为武装。

信号观察子系统

信号查看子系统是一个原子子系统,它封装了从目标系统接收到的信号的处理和查看。信号查看子系统只在主机上运行,不会在目标系统中生成代码。信号观察子系统有正常模式、加速模式、快速加速模式和外部仿真模式。

请注意

如果将信号观察子系统置于SIL或PIL组件中,例如处于SIL或PIL模式的顶模,则信号观察子系统是不活动的模型SIL或PIL模式块,或SIL或PIL块。然而,SIL或PIL组件可以为运行在受支持模式下的信号查看子系统提供支持。万博1manbetx

如果您希望在查看或记录信号之前处理或调整信号,但不想在目标系统上执行这些任务,则信号查看子系统非常有用。通过使用信号查看子系统,您可以在目标系统上生成更小、更高效的代码。

像其他外部模式兼容块一样,信号查看子系统显示在“外部信号和触发”对话框中。

声明一个子系统为信号查看子系统:

  1. 在“块参数”对话框中,选择将其视为原子单位选择。

    有关原子子系统的更多信息,请参见子系统功能的控制生成

  2. 要打开SimViewingDevice属性,请使用set_param命令:

    set_param(“blockname”、“SimViewingDevice”,“上”)

    “blockname”子系统的名称。

  3. 确保子系统满足以下要求:

    • 它必须是一个纯Sink块。也就是说,它不能包含Outport块或数据存储块。它可以包含转到仅当对应时阻塞块包含在子系统边界内。

    • 它不能有连续的状态。

下面这个模型,sink_examp,包含一个原子子系统,theSink

子系统theSink对其输入信号应用增益和偏移量,并在作用域块上显示。

如果theSink声明为一个信号观察子系统,生成的目标程序只包括正弦波块的代码。如果theSink在“外部信号和触发”对话框中选择并武装,目标程序将正弦波信号上传到theSink在模拟。然后,您可以修改其中块的参数theSink观察上传信号。

如果theSink如果没有声明为信号观察子系统,则其增益、常量和和块将作为子系统代码在目标系统上运行。正弦波信号将被这些模块处理后上传到Simulink引擎,并在上面进行查看万博1manbetxsink_examp / theSink / Scope2.对目标系统的处理要求会由于额外的信号处理和从主机下载块参数的变化而增加。

万博1manbetx支持的数据归档块

在外部模式下,可以使用以下类型的块将数据归档到磁盘:

  • 范围块

  • 到工作区块

您可以使用“启用数据存档”对话框配置数据存档,如中所示配置目标程序信号数据的主机存档

下载可调参数的外部模式机制

的设置默认参数行为选项生成目标程序时,处理参数更新的方式存在差异。下载机制描述了与外部模式通信的操作默认参数行为设置为可调内联和可调参数描述了外部模式下的操作默认参数行为设置为内联

下载机制

在外部模式下,Simulink引擎不模拟框图万博1manbetx所表示的系统。缺省情况下,当启用外部模式时,Simulink引擎将参数下载到目标系统。万博1manbetx在初始下载之后,引擎将保持等待模式,直到您更改框图中的参数,或者直到引擎从目标接收到数据。

当您更改框图中的参数时,Simulink引擎将调用外部接口mexo文件,将新的参数值(以及其他信息)作为参数万博1manbetx传递。外部接口MEX-file包含实现进程间通信(IPC)通道一侧的代码。该通道将Simulink进程(墨西哥文件在此执行)连万博1manbetx接到正在执行外部程序的进程。mexico文件通过使用此通道将新的参数值传输到外部程序。

通信信道的另一端是在外部程序内实现的。这一端将新的参数值写入目标的参数结构(模型_P).

Simu万博1manbetxlink端通过向外部程序发送包含参数信息的消息来启动参数下载操作。在客户机/服务器计算的术语中,Simulink端是客户机,外部程序是服务器。万博1manbetx这两个进程可以是远程的,也可以是本地的。如果客户端和服务器是远程的,则使用TCP/IP等协议来传输数据。在客户端和服务器是本地的情况下,可以使用串行连接或共享内存来传输数据。

下一张图显示了这种关系。每当您更万博1manbetx改框图中的参数时,Simulink引擎都会调用外部接口mexo文件。然后,墨西哥文件通过使用通信通道将参数下载到外部程序。

外部模式架构

内联和可调参数

默认情况下,参数(除了在TCP/IP和串行外部模式限制)在外部模式程序中是可调的;也就是说,您可以通过使用本节中描述的下载机制来更改它们。

如果你设置默认参数行为内联(在优化窗格中的“配置参数”对话框),则万博1manbetx仿真软件编码器代码生成器在生成的代码中嵌入模型参数(常量)的数值,而不是符号参数名。内联参数生成更小、更高效的代码。但是,由于内联参数实际上变成了常数,所以它们是不可调的。

万博1manbetx仿真软件编码器软件允许您通过内联大多数参数来提高总体效率,同时保留对应用程序重要的选定参数进行运行时调优的灵活性。当您内联参数时,可以使用万博1manbetx仿真软件。参数对象从内联中删除个别参数并将它们声明为可调的。此外,您可以使用这些对象来控制参数在生成的代码中的表示方式。

有关可调参数的更多信息,请参见在生成的代码中创建可调校准参数

主机/目标器连接时自动上传参数。每次Simulink引擎连接万博1manbetx到生成的目标程序时默认参数行为设置为内联时,目标程序将其可调参数的当前值上传到主机。这些值被分配给相应的MATLAB工作空间变量。这个过程根据参数值同步主机和目标。

模型所需的工作区变量必须在主机/目标连接时初始化。否则上传将无法进行,并导致错误。一旦建立连接,这些变量将被更新以反映目标系统上的当前参数值。

自动参数上传只发生在目标程序生成时默认参数行为设置为内联下载机制描述了与外部模式通信的操作默认参数行为设置为可调

选择客户端和服务器的通信协议

简介

万博1manbetx仿真软件编码器product提供了使用TCP/IP或串行协议实现外部模式通信的客户端和服务器端的代码。类提供的基于套接字的外部模式实现万博1manbetx仿真软件编码器如果您的目标系统支持TCP/IP,则使用生成的代码生成产品。万博1manbetx如果不是,请使用或自定义提供的串行传输层选项。

一个低级传输层处理消息的物理传输。Simulink引万博1manbetx擎和模型代码都独立于这一层。传输层和直接连接到传输层的代码都被隔离在单独的模块中,这些模块格式化、传输和接收消息和数据包。

使用TCP/IP实现

您可以在Open Group UNIX或PC系统上使用基于TCP/ ip的客户端/服务器实现外部模式的实时程序。有关自定义外部模式传输层的帮助,请参见为TCP/IP或串行外部模式通信创建传输层

在TCP/IP万博1manbetx上使用Simulink外部模式:

  • 确保指定了目标TCP/IP传输的外部接口mexo文件。

    由MathWorks提供的目标®中指定外部接口mexo文件的名称matlabroot/工具/模型/模型万博1manbetx/ extmode_transports.m.控件中的接口名称显示为不可编辑的文本外部模式配置部份接口窗格中的“配置参数”对话框。TCP/IP默认为ext_comm

    要为自定义目标指定TCP/IP传输,必须将以下表单的项添加到sl_customization.mMATLAB路径下的文件:

    函数sl_customization(cm) cm. extmodetransport .add('月31.tlc”、“运输”、“mexfile”、“使”);%结束功能
    • 月31.tlc要为其注册传输的系统目标文件的名称(例如,“mytarget.tlc”

    • 运输传输名称是否显示在传输层菜单上的接口窗格的“配置参数”对话框(例如,“tcpip”

    • mexfile是传输相关的外部接口mexo文件的名称(例如,“ext_comm”

    您可以指定多个目标和/或附加传输cm.ExtModeTransports.add行,例如:

    函数sl_customization(cm) cm. extmodetransport .add('mytarget. txt ')tlc', 'tcpip', 'ext_comm', 'Level1');cm.ExtModeTransports.add(“mytarget。Tlc ', 'serial',…“ext_serial_win32_comm”、“使”);%结束功能
  • 确保模板makefile配置为链接TCP/IP服务器代码的源文件,并在构建生成的代码时定义编译器标志。

  • 构建外部程序。

  • 运行外部程序。

  • 将Simulin万博1manbetxk模型设置为外部模式并连接到目标。

下一个图显示了基于TCP/ ip的实现的结构。

基于TCP/ ip的客户端/服务器外部模式实现

mexo - file TCP/IP传输可选参数。在“外部目标接口”对话框中,可以指定传递给外部模式接口mexo文件的可选参数,用于与正在执行的目标通信。

  • 目标网络名称:运行外部程序的计算机的网络名称。默认情况下,这是运行Simulink产品的计算机,例如,万博1manbetx“myComputer”.您也可以使用IP地址,例如:“148.27.151.12”

  • 详细级别:控制在数据传输过程中显示的信息的详细级别。取值为01并具有以下含义:

    0-没有资料
    1
    -详细信息

  • TCP/IP服务器端口号:默认为17725.您可以将端口号更改为之间的值256而且65535避免端口冲突。

参数是位置的,必须按照以下顺序指定:

  

例如,如果希望指定详细级别(第二个参数),那么还必须指定目标网络名称(第一个参数)。参数可以用空格或逗号分隔。例如:

'148.27.151.12' 1 30000

您可以在启动外部程序时指定命令行选项。看到运行外部程序

使用串行实现

在串行通道上控制主机/目标器通信类似于在TCP/IP通道上控制主机/目标器通信。

要通过串行通道万博1manbetx使用Simulink外部模式,您必须:

  • 确保指定了目标串行传输的外部接口mexo文件。

    MathWorks提供的目标指定外部接口mexo文件的名称matlabroot/工具/模型/模型万博1manbetx/ extmode_transports.m.控件中的接口名称显示为不可编辑的文本外部模式配置部份接口窗格中的“配置参数”对话框。默认序列号为串行

    若要为自定义目标指定串行传输,必须将以下表单的项添加到sl_customization.mMATLAB路径下的文件:

    函数sl_customization(cm) cm. extmodetransport .add('月31.tlc”、“运输”、“mexfile”、“使”);%结束功能
    • 月31.tlc要为其注册传输的系统目标文件的名称(例如,“mytarget.tlc”

    • 运输传输名称是否显示在传输层菜单上的接口窗格的“配置参数”对话框(例如,“串行”

    • mexfile是传输相关的外部接口mexo文件的名称(例如,“ext_serial_win32_comm”

    您可以指定多个目标和/或附加传输cm.ExtModeTransports.add行,例如:

    函数sl_customization(cm) cm. extmodetransport .add('mytarget. txt ')tlc', 'tcpip', 'ext_comm', 'Level1');cm.ExtModeTransports.add(“mytarget。Tlc ', 'serial',…“ext_serial_win32_comm”、“使”);%结束功能
  • 确保模板makefile配置为链接串行服务器代码的源文件,并在构建生成的代码时定义编译器标志。

  • 构建外部程序。

  • 运行外部程序。

  • 将Simulin万博1manbetxk模型设置为外部模式并连接到目标。

mexo - file串行传输可选参数。MEX-file参数字段接口窗格的配置参数对话框,您可以指定参数传递给外部模式接口墨文件,以与执行目标通信。对于串行传输,可选参数为ext_serial_win32_comm分别如下:

  • 详细级别:此参数控制在数据传输期间显示的信息的详细级别。这个参数的值是:

    • 0(没有信息),或者

    • 1(详细信息)

  • 串口ID:主机的端口ID,以整数或字符向量指定。例如,指定USB到串口转换器的端口号为“/ dev / ttyusb0”万博1manbetx仿真软件编码器前缀整数端口id\ \ \ COM在Windows上®并通过/dev/ttyS在Unix。

    当您使用串行连接启动目标程序时,必须指定用于将其连接到主机的端口ID。通过包含- port命令行选项。例如:

    Mytarget.exe -port 2 -w
  • 波特率:输入整数值。默认值为57600

mexico -file options参数是位置参数,必须按照以下顺序指定:

  

例如,如果要指定串行端口ID(第二个参数),那么还必须指定详细级别(第一个参数)。参数可以用空格或逗号分隔。例如:

1 '/dev/ttyusb0' 57600

当启动外部程序时,可以指定命令行选项。

运行外部程序

在以外部模式使用Simulink产品之前,外部万博1manbetx程序必须正在运行。

如果目标程序与主机在同一台机器上执行,并且通过环回串口电缆进行通信,则目标程序的端口ID必须与主机的端口ID不同(如中所述)MEX-file参数编辑字段)。

要运行外部程序,键入如下表单的命令:

模型-opt1...-optN

模型外部程序的名称和-opt1...-optN是选择。(见外部程序的命令行选项)。在本节的示例中,外部程序的名称为ext_example

中运行外部程序窗户环境。在Windows环境下,可以通过以下两种方式运行外部程序:

  • 打开命令提示符窗口。在命令提示符下,输入目标可执行文件的名称,后面跟着可能的选项,例如:

    Ext_example -tf inf -w
  • 或者,您可以从MATLAB命令窗口启动目标可执行文件。命令前必须加一个感叹号(),然后跟一个&号(),如下例所示:

    ext_example -tf inf -w &

    &号()导致操作系统产生另一个进程来运行目标可执行文件。如果不包含&号,程序仍将运行,但不能在MATLAB命令提示符下输入命令或手动终止可执行文件。

中运行外部程序UNIX环境。在UNIX环境下,可以通过以下两种方式运行外部程序:

  • 打开一个Xterm窗口。在命令提示符下,输入目标可执行文件的名称,后面跟着可能的选项,例如:

    ./ext_example -tf inf -w
  • 或者,您可以从MATLAB命令窗口启动目标可执行文件。您必须在后台运行它,以便仍然可以访问Simulink环境。万博1manbetx命令前必须加一个感叹号(),点/(。/表示当前目录),后面跟着一个&号(),如下例所示:

    !./ext_example -tf inf -w &

    &号()导致操作系统产生另一个进程来运行目标可执行文件。

外部程序的命令行选项。类生成的外部模式目标可执行文件万博1manbetx仿真软件编码器代码生成器支持以下命令行选项:万博1manbetx

  • - tf n

    - tf选项将覆盖Simulink模型中设置的停止时间。万博1manbetx这个论点n指定程序运行的秒数。的值指示模型无限期地运行。在这种情况下,模型代码一直运行,直到目标程序接收到来自Simulink引擎的停止消息。万博1manbetx

    下面的示例将停止时间设置为10秒。

    Ext_example -tf

在外部模式下构建并执行纯整数ERT目标时,停止时间参数(- tf)被目标解释为基本速率节拍的数量,而不是执行的秒数。

  • - w

    指示目标程序进入等待状态,直到它接收到来自主机的消息。此时,目标正在运行,但没有执行模型代码。当您选择时,将发送开始消息开始实时代码模拟菜单或按开始实时代码按钮在外部模式控制面板。

    使用- w选项,如果您希望查看目标程序执行的时间步骤0开始的数据,或者您希望在目标程序开始执行模型代码之前修改参数。

  • n - port

    TCP/IP端口号或串口ID,n,为目标程序。目标程序的端口号必须与用于TCP/IP传输的主机的端口号匹配。端口号取决于传输的类型。

    • TCP/IP传输:端口号为之间的整数256而且65535,默认值为17725

    • 串行传输时:端口号为整数或字符向量。例如,指定USB到串口转换器的端口号为“/ dev / ttyusb0”

  • 波特r

    指定为整数时,此选项仅可用于串行传输。

实现一个外部模式协议层

类所提供的某些代码模块,如果要实现自己的传输层进行外部模式通信,则必须修改万博1manbetx仿真软件编码器并创建一个新的外部接口mexo文件。看到为TCP/IP或串行外部模式通信创建传输层

以编程方式使用外部模式

您可以从MATLAB命令行或在脚本中以编程方式运行外部模式模拟。使用get_param而且set_param检索和设置模型仿真命令行参数值的命令,例如SimulationMode而且SimulationCommand,以及外部模式命令行参数,例如ExtModeCommand而且ExtModeTrigType

下面的模型仿真命令假设一个Simulink模型是打开的,并且您已经加载了一个目标程序,该模型将使用外部模式连万博1manbetx接到该目标程序。

  1. 将Simulink模型万博1manbetx更改为外部模式:

    set_param (gcs、“SimulationMode”,“外部”)
  2. 将开放模型连接到加载的目标程序:

    set_param (gcs、“SimulationCommand”,“连接”)
  3. 开始运行目标程序:

    set_param (gcs,‘SimulationCommand’,‘开始’)
  4. 停止运行目标程序:

    set_param (gcs、“SimulationCommand”,“停止”)
  5. 断开目标程序与模型的连接:

    set_param (gcs,‘SimulationCommand’,‘断开’)

要调优工作空间参数,请在命令提示符处更改其值。如果workspace参数为a万博1manbetx仿真软件。参数对象时,将新值赋给价值财产。

myVariable = 5.23;myParamObj。价值= 5.23;

要在外部模式下下载工作区参数,您需要更新模型图。下面的模型仿真命令启动一个模型更新:

set_param (gcs、“SimulationCommand”,“更新”)

要触发或取消向作用域上传数据,请使用ExtModeCommandarmFloating而且cancelFloating,或armWired而且cancelWired.例如,触发然后取消数据上传到有线(非浮动)作用域:

set_param (gcs ExtModeCommand, armWired) set_param (gcs,‘ExtModeCommand’,‘cancelWired’)

下一个表列出了可以使用的外部模式命令行参数get_param而且set_param命令。该表提供了简短的描述、有效值(粗体突出显示默认值)以及到外部模式对话框等值的映射。对于外部模式参数,等效于接口窗格选项,请参见型号配置参数:代码生成接口

外部模式命令行参数

参数和值 对话框等效 描述
ExtModeAddSuffixToVar
启用数据存档:将文件后缀附加到变量名复选框 为每个递增的文件名递增变量名。
ExtModeArchiveDirName
特征向量
启用数据存档:目录文本字段 将数据保存到指定文件夹。
ExtModeArchiveFileName
特征向量
启用数据存档:文件文本字段 将数据保存在指定文件中。
ExtModeArchiveMode
特征向量-
启用数据存档:启用归档复选框 激活自动数据归档功能。
ExtModeArmWhenConnect
外部信号及触发:手臂连接到目标时复选框 马上扣上扳机万博1manbetx仿真软件编码器软件连接到目标。
ExtModeAutoIncOneShot
启用数据存档:在一次拍摄后增加文件复选框 在增量文件中保存新的数据缓冲区。
ExtModeAutoUpdateStatusClock(微软®仅限Windows平台)
不可用 在模型窗口状态栏上连续上传并显示目标时间。
ExtModeBatchMode
外部模式控制面板:批量下载复选框 启用或禁用批处理模式下的参数下载。
ExtModeChangesPending
不可用 ExtModeBatchMode启用时,指示参数是否保留在要下载到目标的参数队列中。
ExtModeCommand
特征向量-armFloatingarmWiredcancelFloatingcancelWired
  • armFloating而且cancelFloating是否等同于选中并清除外部模式控制面板复选框浮动范围>启用数据上传

  • armWired而且cancelWired是否等同于外部模式控制面板按钮手臂触发而且取消触发

向目标程序发出一个外部模式命令。
ExtModeConnected
外部模式控制面板:连接/断开连接按钮 指示与目标程序的连接状态。
ExtModeEnableFloating
外部模式控制面板:启用数据上传复选框 当使用浮动作用域建立连接时,启用或禁用激活和取消触发器。
ExtModeIncDirWhenArm
启用数据存档:触发时增加目录复选框 每次触发时,将日志文件写入增量文件夹。
ExtModeLogAll
外部信号及触发:选择所有复选框 从目标器上传可用信号到主机。
ExtModeParamChangesPending
不可用 万博1manbetx仿真软件编码器软件连接到目标和ExtModeBatchMode启用时,指示参数是否保留在要下载到目标的参数队列中。更有效率ExtModeChangesPending,因为它检查到目标的连接。
ExtModeSkipDownloadWhenConnect
不可用 连接到目标程序,无需下载参数。
ExtModeTrigDelay
整数0
外部信号及触发:延迟文本字段 指定从触发器发生到开始数据收集之间所经过的时间量(以基本速率步长表示)。
ExtModeTrigDirection
特征向量-不断上升的下降要么
外部信号及触发:方向菜单 指定信号在超过阈值时必须传播的方向。
ExtModeTrigDuration
整数1000
外部信号及触发:持续时间文本字段 指定外部模式在触发事件后记录数据的基本速率步数。
ExtModeTrigDurationFloating
特征向量-整数汽车
外部模式控制面板:持续时间文本字段 指定浮动作用域的持续时间。如果汽车时,ExtModeTrigDuration使用。
ExtModeTrigElement
特征向量-整数任何最后的
外部信号及触发:元素文本字段 指定可以触发触发器的指定触发器块的输入端口的元素。
ExtModeTrigHoldOff
整数0
外部信号及触发:不接近文本字段 指定触发器事件终止到触发器重新武装之间的基本速率步长。
ExtModeTrigLevel
整数0
外部信号及触发:水平文本字段 指定触发信号必须通过的阈值以触发触发器。
ExtModeTrigMode
特征向量-正常的一次通过
外部信号及触发:模式菜单 指定触发器是在每次触发事件后自动重新武装,还是每次武装触发器时只收集一个数据缓冲区。
ExtModeTrigPort
特征向量-整数1),最后的
外部信号及触发:港口文本字段 指定指定触发器块的输入端口,其中的元素可以触发触发器。
ExtModeTrigType
特征向量-手册信号
外部信号及触发:菜单 指定是在触发器启动时开始记录数据,还是当指定的触发器信号满足触发条件时开始记录数据。
ExtModeUploadStatus
特征向量-不活跃的武装上传
不可用 返回外部模式上传机制的状态—非激活、武装或上传。
ExtModeWriteAllDataToWs
启用数据存档:将中间结果写入工作区复选框 将中间结果写入工作区。

动画Stateflow外部模式图表

如果你有状态流®,您可以在外部模式下使图表动画化。在外部模式下,您可以将图表中的状态动画化,并在浮动范围或信号查看器中查看测试点信号。

在外部模式模拟时的动画状态

在外部模式下使图表中的状态动画化:

  1. 将要制作动画的图表加载到目标机器。

  2. 打开“模型配置参数”对话框。

  3. 在左侧的Select窗格中,选择代码生成>接口

  4. 数据交换接口部分中,选择外部模式并点击好吧

  5. 在Simuli万博1manbetxnk编辑器中,选择代码>外部模式控制面板

  6. 在“外部模式控制面板”对话框中,单击信号与触发

  7. 在“外部信号与触发”对话框中设置这些参数。

    : 选择:
    信号选择面板 你想要动画的图表
    触发窗格 手臂连接到目标时复选框
    触发窗格 正常的从下拉菜单模式
  8. 构建模型以生成可执行文件。

  9. 在后台启动目标。在MATLAB提示符下,输入:

    model_name.exe -w &

    例如,如果模型的名称为my_control_sys,输入如下命令:

    my_control_sys.exe -w &

    - w允许目标代码等待Simulink模型连接。万博1manbetx

  10. 在模型编辑器中,选择模拟>模式>外部,然后选择模拟>连接到目标

  11. 开始仿真。图表突出显示了它们执行时的状态。

在浮动范围和信号查看器中查看测试点数据

在外部模式下模拟图表时,可以将局部作用域的图表数据指定为测试点,并在浮动作用域和信号查看器中查看测试点数据。

在外部模式下查看模拟过程中的测试点数据:

  1. 打开模型资源管理器,对于您想要查看的每个数据,按照以下步骤执行:

    1. 在中间内容窗格中,选择感兴趣的州或本地数据。

    2. 在右边对话框窗格中,选择日志记录选项卡,选择测试点复选框。

  2. 在浮动范围或信号查看器中,单击信号选择按钮:

    打开“信号选择器”对话框。

  3. 在信号选择器中模型层次结构窗格中,选择图表。

  4. 在信号选择器中列表内容菜单中,选择仅测试/记录信号然后选择你想看的信号。

  5. 在外部模式下模拟模型,如在外部模式模拟时的动画状态

    作用域或查看器在模拟运行时显示测试点信号的值。

有关更多信息,请参见使用快速加速模式的瞄准镜和查看器的行为(万博1manbetx模型)。

TCP/IP和串行外部模式限制

更改参数

通常,如果更改参数会导致模型结构的更改,则不能更改参数。例如,你不能改变

  • 块的状态、输入或输出的数量

  • 采样时间或采样次数

  • 连续系统的积分算法

  • 模型或块的名称

  • 的参数Fcn

如果您对框图进行了这些更改,那么您必须使用新生成的代码重新构建程序。

你可以用特定的方式改变传递函数和状态空间表示块中的参数:

  • 的参数(分子和分母多项式)转移Fcn(连续和离散)和离散滤波器块可以被改变(只要状态的数量不变)。

  • 一旦外部模拟启动,用户指定或计算参数(即通过零极到状态空间转换获得的A、B、C和D矩阵)中的状态空间和零极(连续和离散)块中的零项就不能更改。

  • 在状态空间块中,如果指定可控规范实现中的矩阵,则允许对A、B、C、D矩阵的所有更改以保留该实现和矩阵的维数。

如果Simul万博1manbetxink框图与外部程序不匹配,Simulink将产生一个错误,说明校验和不匹配。校验和考虑顶级模型,但不考虑引用模型。使用更新后的框图重新构建目标程序。

混合32位和64位架构

当使用外部模式时,运行Simulink产品的机器和运行目标可执行文件的机器必须具有匹配的位体系结构,32万博1manbetx位或64位。的万博1manbetx仿真软件编码器软件根据模型是配置为32位平台还是64位平台而改变模型的校验和。

如果试图从32位计算机连接到64位计算机,或者反之亦然,则外部模式连接将失败。

上传数据

外部模式不支持将定点或枚举类型的数据值上传到工万博1manbetx作空间参数中。

上传可变大小的信号

外部模式不支持以下目标的可变大小信号上传:万博1manbetx

  • 万博1manbetx仿真软件实时™

  • 德州仪器™C2000™

信号数值仿真显示

外部模式不支持图形化显示模型中的信号值(在万博1manbetx在模型图中显示信号值(万博1manbetx模型))。例如,不能使用仿真中的数据显示菜单选择悬停时显示值标签单击时切换值标签,显示所选端口的值标签

结构参数可调

外部模式不支持上传或下载可调结构参数。万博1manbetx

归档数据

外部模式支持将数据归档到磁盘万博1manbetx的作用域和到工作区块。但是,外部模式不支持用于归档数据的Scope块以外的作用域。万博1manbetx例如,不能使用浮动作用域块或信号和作用域管理器查看器对象以外部模式归档数据。

参考模型中的作用域

在模型层次结构中,如果顶部模型在外部模式下模拟,而引用模型在正常或加速模式下模拟,则引用模型中的作用域不会显示。

但是,如果将顶部模型更改为在正常模式下模拟,则参考模型中的作用域的行为在正常模式和加速模式之间是不同的。在正常模式下进行模拟的参考模型的作用域将显示出来,而在加速模式下进行模拟的参考模型的作用域不显示出来。

模拟开始时间

外部模式不支持非零模拟开始时间。万博1manbetx在“配置参数”对话框中,解算器窗格中,离开开始时间设置为的默认值0.0

File-Scoped数据

外部模式不支持文件作用域的数据,例如应用内置自万博1manbetx定义存储类的数据项FileScope.文件范围的数据不能从外部访问。

使用printf语句

支持外部模式模拟的使用万博1manbetxprintf调用来显示来自目标程序的错误和信息消息。对于某些目标硬件,使用printf语句可以增加外部模式二进制文件的大小。禁用printf调用,指定预处理器宏定义EXTMODE_DISABLEPRINTF用于目标程序编译器。

命令行参数

外部模式模拟支持使用命令行参数来运行目标程序。万博1manbetx这些限制适用于:

  • 命令行参数的解析需要sscanf函数,该函数将增加某些目标硬件的程序大小。

  • 一些目标程序不接受命令行参数。

若要禁用命令行参数的处理,请指定预处理器宏定义EXTMODE_DISABLE_ARGS_PROCESSING = 1用于目标程序编译器。

行-主要代码生成

外部模式模拟不支持行主格式生成的代码。万博1manbetx

相关的话题

这个话题有用吗?