在外部模式模拟中,您可以实时调整参数并监视目标应用程序信号。使用“在自定义硬件上运行”应用程序,您可以设置并在开发计算机或自定义硬件上运行外部模式模拟使用XCP通信信道的。
对于外部模式模拟,您可以:
在开发计算机上构建目标应用程序。
将目标应用程序部署到目标硬件。
连接模型万博1manbetx®到在目标硬件上运行的目标应用程序。
在目标硬件上开始执行生成的代码。
配置并运行外部模式仿真使用XCP通信协议的。在仿真:
使用范围块、仪表板块和模拟数据检查器监视信号。
使用仪表板块调整参数。
为此示例创建一个文件夹。
mkdirext_模式xcp_示例光盘ext_模式xcp_示例
打开Sim万博1manbetxulink并创建一个简单模型,例如
,它包含以下区块:
正弦波
获得
范围
一半计
旋钮
双击正弦波块设置样品时间设置为0.1,然后单击好啊.
双击获得块设置获得将其设置为2,然后单击好啊.
连接正弦波封锁获得阻塞并命名连接,例如,测试信号
.
连接获得封锁范围阻塞并命名连接,例如,输出信号
.
配置测试信号
日志记录:
选择测试信号
.
上信号选项卡,在班长部分中,选择测井信号.
如果不启用信号记录,则无法流式传输测试信号
到模拟数据检查器。
配置一半计块来监视测试信号
:
双击一半计块
在Simuli万博1manbetxnk编辑器中,选择测试信号
.
在“块参数”对话框中:
将块连接到测试信号
.
在最大字段,输入一个值,例如,1.
.
点击好啊.
配置旋钮块来调整振幅参数正弦波区块:
双击旋钮块
在Simuli万博1manbetxnk编辑器中,选择正弦波块
在“块参数”对话框中:
将块连接到振幅参数正弦波块
在最低限度和最大字段中,分别输入值,例如0.1和1。
点击好啊.
将模型另存为例如
.
从应用程序在Simulink t万博1manbetxoolstrip上的设置为在硬件上运行部分,单击在自定义硬件上运行.在“在自定义硬件上运行”对话框中,单击完成.
在硬件节,指定系统目标文件。对于本例,使用默认值,grt.tlc
.如果你有嵌入式编码器®,你可以指定ert.tlc
.
在准备画廊,下模型配置,点击硬件设置.打开“配置参数”对话框,显示如下信息硬件实现由系统目标文件确定的设置。
上解算器面板:
在类型字段,指定固定步长
.
在下面解算器详细信息,在固定的大小字段中,指定一个值,例如0.1。
上代码生成>优化窗格,集合默认参数的行为来可调
.
上代码生成>界面窗格中,选择外部模式复选框。
设置传输层来的XCP TCP / IP
,它指定外部xcp
对于MEX-file名字.
您不能禁用静态内存分配复选框。该静态内存缓冲区大小value指定分配给信号记录的XCP从内存的大小。对于本例,使用默认值。
如果系统目标文件是ert.tlc
,在代码生成>模板面板:
选择生成一个示例主程序复选框。
设置目标操作系统来赤裸裸的例子
.
使用中提供的外部模式抽象层的文档化API
,代码生成器创建了一个示例,演示如何为不运行操作系统的裸板提供XCP外部模式目标连接。草根
\工具箱\编码器\ xcp \ src \ \ ext_mode \ \ ext_mode.h包括目标
点击好啊. 然后保存模型。
在在硬件上运行第节:
要为模拟停止时间指定非默认值,请在停止时间字段,指定您的值,例如,正
.
点击. 软件:
生成目标应用程序:
在窗户里®,构建过程创建:
xcpExample.exe
–可执行文件。
xcpExample.pdb
——用于信号和参数的调试符号文件。
在Linux中®,构建过程将DWARF格式调试信息放置在创建的ELF可执行文件中,例如
.
在开发计算机上作为单独的进程运行目标应用程序。
将Simulink万博1manbetx连接到目标应用程序。
运行生成的模型代码。
要单独执行这些步骤,请单击监视和调谐在下面逐步命令,点击:
构建监测
部署
连接
开始
你可以监视测试信号
通过:
范围block——双击该块。
模拟数据检查器–单击模拟数据检查器按钮。当模拟数据检查器打开时,选择测试信号复选框,显示流式数据。
半规块
要改变正弦波的振幅,旋转指针在旋钮将块设置为所需的值。
此表介绍了更多的调整方法可调模拟过程中的块参数。
方法 | 细节 |
---|---|
模型数据编辑器 |
要通过模型数据编辑器调整参数,请执行以下操作:
有关更多信息,请参见模型数据编辑器. |
块参数对话框 |
通过“块参数”对话框调整参数:
|
MATLAB®工作空间 |
如果块参数是MATLAB工作空间变量:
有关更多信息,请参见创建和编辑变量. |
有关使用生成的代码进行参数调整的更多信息,请参阅外部模式模拟与TCP/IP或串行通信和在生成的代码中创建可调校准参数(嵌入式编码器).
如果您的模型包含状态流®图表,您可以查看状态活动。有关更多信息,请参见动画Stateflow图表(状态流).
在执行之前停止执行生成的模型代码结束时刻
,并断开目标应用程序,在Simulink Editor工具栏上,单击Stop按钮万博1manbetx.
如果希望在不停止代码执行的情况下断开目标应用程序与Simulink的连接,请单击万博1manbetx.然后,在逐步命令,点击断开连接.
对于XCP外部模式模拟,您可以配置一个触发器,用于开始上传目标应用程序数据,以便在Simulink中进行信号监控。万博1manbetx
在Simuli万博1manbetxnk Editor中,通过右键单击每个信号然后选择,配置这些信号以进行日志记录记录所选信号:
test_signal
测试载体
test_output
cmp_output
从应用程序在Simulink t万博1manbetxoolstrip上的设置为在硬件上运行部分,单击在自定义硬件上运行.在“在自定义硬件上运行”对话框中,单击完成.
在准备画廊,下模型配置,点击硬件设置.
上解算器窗格中,在类型字段,指定固定步长
.
上代码生成>界面窗格中,选择外部模式复选框。
设置传输层来的XCP TCP / IP
,它指定外部xcp
对于MEX-file名字.
点击好啊. 然后保存模型。
要打开“外部信号和触发”对话框,请从准备画廊,下信号监测与跟踪,点击控制面板.
在配置部分,单击触发信号,打开“外部信号和触发”对话框。
通过此对话框,您可以选择用于监视的信号,并配置用于从目标应用程序上载数据的触发器。对于本例,请使用默认设置。例如:
这个全选选中复选框-该对话框将显示X
在每一行挑选出来的列。您可以在模拟期间监控所有记录的信号。
源被设置为手册–外部模式控制面板提供数据上传的手动控制,例如手臂触发按钮
这个连接到目标时使用手臂选中复选框-将Simulink连接到目标应用程序时,触发器处于待命状态。万博1manbetx
点击好啊.
从硬件选项卡中的万博1manbetx在硬件上运行第节:
在停止时间字段,指定您的值,例如,正
.
保存模型。
点击. 软件:
生成目标应用程序:
在开发计算机上作为单独的进程运行目标应用程序。
将Simulink万博1manbetx连接到目标应用程序。
运行生成的模型代码。
要查看显示的范围,双击ScopeA
和ScopeB
.
要在模拟数据检查器中监视信号,请在审查结果节中,单击数据检查按钮
从外部模式控制面板,您可以暂停或恢复信号记录和监控。在连接和触发部分,单击取消触发或手臂触发分别地
要停止目标应用程序的执行并断开Simulink与目标环境的连接,请单击万博1manbetx停止实时代码.
有关信号监测和触发选项的信息,请参阅XCP外部模式控制面板和XCP外部信号和触发对话框.
您可以使用命令运行XCP外部模式模拟。要检索和设置模型参数的值,请使用获取参数
和u参数集
命令。
要运行这些命令,必须打开Simulink模型并运行目标应用程序。万博1manbetx
将模型模拟模式设置为外部模式。
设置参数(地面军事系统,“模拟模式”,“外部”);
将Simulin万博1manbetxk连接到目标应用程序。
设置参数(地面军事系统,“SimulationCommand”,“连接”)
运行生成的模型代码。
设置参数(地面军事系统,“SimulationCommand”,“开始”);
要优化参数,请通过行命令更改其工作区变量值。例如,如果块参数值指定为万博1manbetxSimulink.参数
对象,将新值指定给价值
所有物
myParamObj。价值= 5.23;
要将新值下载到目标应用程序,请更新模型。
设置参数(地面军事系统,“SimulationCommand”,“更新”);
停止目标应用程序并断开Simulink与目标环境的连接。万博1manbetx
设置参数(地面军事系统,“SimulationCommand”,“停下来”);
要在不停止执行生成代码的情况万博1manbetx下断开Simulink与目标应用程序的连接,请使用以下命令:
设置参数(地面军事系统,“SimulationCommand”,“断开连接”);
这个u参数集
使用“SimulationCommand”
参数是异步的。如果从脚本连续运行命令,则每个命令都会启动,而无需等待上一个命令完成。要检查每个命令是否完成,请在脚本中使用获取参数
命令“模拟状态”
参数。例如,对于步骤1到3,请在脚本中指定以下命令:
设置参数(地面军事系统,“模拟模式”,“外部”); 设置参数(地面军事系统,“SimulationCommand”,“连接”); isExternalSimulationActive=false;虽然~isExternalSimulationActive simStatus=获取参数(gcs,“模拟状态”); isExternalSimulationActive=strcmp(模拟状态,“外部”);终止设置参数(地面军事系统,“SimulationCommand”,“开始”);
有关更多信息,请参见以编程方式运行模拟.
诊断查看器显示诊断程序生成的错误消息获取参数
和u参数集
命令。
可以使用可选参数运行目标应用程序。您可以通过自定义启动器实现将可选参数传递给目标应用程序。
论点 | 描述 |
---|---|
-w |
指定目标应用程序进入并保持等待状态,直到接收到来自Simulink的消息。万博1manbetx 如果您没有指定 |
- tf |
替代模型参数 指定
|
对于基于主机的外部模式模拟,您可以指定额外的rtiostream(嵌入式编码器)
参数。
论点 | 描述 |
---|---|
|
指定详细级别:
|
|
对于 对于 在Windows上, 在Linux上, |
|
对于 |
此表描述了适用于使用XCP通信的外部模式模拟的限制。
特色 | 细节 | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
更改模型结构的参数更新 |
您不能更改:
如果进行更改模型结构的参数更新,则必须重新生成目标应用程序。 你可以改变分子和分母的多项式参数传递函数,离散传递函数和离散滤波器如果状态数不变,则会阻止。 中不能修改零项状态方程,零极点和离散Zero-Pole块,即由零极点到状态空间变换得到的A, B, C, D矩阵。 在状态方程块中,如果指定可控规范实现中的矩阵,则允许更改保持此实现的A、B、C和D矩阵以及矩阵的维数。 如果Simul万博1manbetxink块图与目标应用程序不匹配,则Simulink产生一个错误,说明校验和不匹配。校验和考虑的是顶级模型,而不是引用模型。要重建目标应用程序,请使用更新后的框图。 |
||||||||||||||||||||||||||||||||||||||||||
信号值显示 |
不支持模拟期间信号值的图形显示。例如,您不能使用万博1manbetx仿真中的数据显示菜单项悬停时显示值标签,单击时切换值标签和显示所选端口的值标签。有关详细信息,请参阅在模型图中显示信号值. |
||||||||||||||||||||||||||||||||||||||||||
数据归档 |
数据归档上提供的功能外部模式控制面板不受支持。万博1manbetx您可以使用Simulation Data Inspector来收集和导出数据。 |
||||||||||||||||||||||||||||||||||||||||||
覆盖信号记录设置 | 如果你使用信号记录选择器要覆盖信号记录设置,请使用控件覆盖大量毁灭和限制数据点不支持设置。万博1manbetx |
||||||||||||||||||||||||||||||||||||||||||
子系统信号记录 |
对于外部模态模拟,信号记录发生在响应事件在目标硬件上。目前,唯一支持的日志记录事件是新的采样时间刻度。一些子系统通过控制信号启用万博1manbetx或禁用。对于这些子系统,即使子系统的控制信号未启用,软件也会记录信号值。 例如,如果启用子系统块配置为记录,即使子系统的控制信号不大于零,软件也会记录信号值。在这种情况下,记录的值是控制信号上次大于零时信号的值。 有关适用此限制的子系统的更多信息,请参见万博1manbetx仿真软件子系统的语义. |
||||||||||||||||||||||||||||||||||||||||||
编译器调试符号格式 |
您的工具链必须以以下格式之一生成调试信息:
|
||||||||||||||||||||||||||||||||||||||||||
全局变量 |
信号、参数和状态必须指定为全局变量。存储变量的目标内存位置必须在0 - 4294967295范围内。 |
||||||||||||||||||||||||||||||||||||||||||
参数结构 |
不能对结构参数进行调优。 |
||||||||||||||||||||||||||||||||||||||||||
纯整数码 |
支持纯整数代码。对于代码生成,如果万博1manbetx 如果您没有指定 如果您指定
|
||||||||||||||||||||||||||||||||||||||||||
适应信号 |
不支持上载可变大小的信号。万博1manbetx |
||||||||||||||||||||||||||||||||||||||||||
编译器支持万博1manbetx |
|
||||||||||||||||||||||||||||||||||||||||||
地址的粒度 |
不支持使用字地址的目标硬件。万博1manbetx |
||||||||||||||||||||||||||||||||||||||||||
可移植字号 |
当生产目标硬件可字寻址时,不支持使用可移植字大小生成基于主机的目标应用程序。生产目标硬件必须支持8位、16位和32位本机数据类型。万博1manbetx |
||||||||||||||||||||||||||||||||||||||||||
范围和浮动范围块和范围查看器 |
不支持某些信号数据类型。万博1manbetx模拟产生一个警告。 |
||||||||||||||||||||||||||||||||||||||||||
浮动范围块和范围查看器 | 你不能使用浮动范围块和范围查看器,用于在外部模式模拟期间监控参考模型中的信号。要监视参考模型信号,请启用信号记录并使用仿真数据检查器。 | ||||||||||||||||||||||||||||||||||||||||||
引用模型中的作用域 |
在模型层次结构中,如果顶层模型以外部模式运行,则不显示引用模型中的作用域。若要监视引用模型中的信号,请启用信号记录并使用模拟数据检查器。 |
||||||||||||||||||||||||||||||||||||||||||
非零模拟开始时间 |
不支持非零的模拟启动时间。万博1manbetx使用默认值解算器>开始时间, |
||||||||||||||||||||||||||||||||||||||||||
中间阶跃值 |
某些Sim万博1manbetxulink块可以在模拟时间步长中生成多个值。例如:
对于外部模式模拟中的每个时间步,Simulink仅从目标应用程序上载此类块的最终值。Simulink不万博1manbetx会上载步骤中生成的中间值。 |
||||||||||||||||||||||||||||||||||||||||||
File-scoped数据 |
不支持文件范围的数据。万博1manbetx例如,对其应用内置自定义存储类的数据项 有关的更多信息 |
||||||||||||||||||||||||||||||||||||||||||
行代码生成 |
不支持使用行主格式生成的代码。万博1manbetx |
||||||||||||||||||||||||||||||||||||||||||
并行执行 |
在Windows和Linux计算机上,并发执行支持。万博1manbetx 在…上雨衣在计算机上,不支持使用本机线程示例并发执行。如果万博1manbetx外部模式和允许任务在目标上并发执行选中复选框后,除非使用支持外部模式模拟并发执行的目标硬件支持包,否则无法构建目标应用程序。万博1manbetx 在Windows计算机上,在运行时,目标应用程序中的基本采样时间被量化为系统计时器中断间隔的最近倍数(通常为15.625 ms)。采样子速率是基本采样速率的预期倍数。模拟数据检查器(SDI)中记录的时间戳对应于模拟时间而非挂钟时间。例如,此表显示了基本采样时间为10 ms、子速率采样时间为20 ms的Simulink模型的步长时间。万博1manbetx
|
||||||||||||||||||||||||||||||||||||||||||
VxWorks®实例 |
如果系统目标文件是 |
||||||||||||||||||||||||||||||||||||||||||
将模拟输出保存为单个对象 | 不支持将XCP外部模式模拟输出保存为单个对象。模拟将生成一个警告。万博1manbetx | ||||||||||||||||||||||||||||||||||||||||||
结构填充和对齐 | 对于C结构的打包和对齐,编译器必须支持万博1manbetx# pragma包 预处理器指令。否则,目标应用程序可能会产生未定义的行为。 |