主要内容

使用外部模式参数调谐和信号监控

您可以使用外部模式模拟进行快速原型设计。外部模式仿真在Simulink之间建立了一个通信信道金宝app®在您的开发计算机(主机)和运行由代码生成和构建过程创建的可执行文件的目标硬件。

通过通信频道,您可以:

  • 实时修改或调整块参数。在模型中更改参数时,Simulink将新值下载到执行目标应用程序。金宝app

  • 从执行目标应用程序监视和保存信号数据。

通道的低级传输层处理消息的传输。金宝appSimulink和生成的模型代码与此图层无关。传输层及其接口代码在不同的模块中被隔离,该模块格式化,传输和接收消息和数据包。

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

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

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

  3. 运行目标应用程序。

  4. 调谐参数。

示例:Mandelbrot Set

描述

Mandelbrot Set是由值组成的复平面中的区域Z.0.由此等式定义的轨迹仍然有界限k→∞

Z. K. + 1 = Z. K. 2 + Z. 0. K. = 0. 1 ......

Mandelbrot集的整体几何形状如图所示。此视图没有分辨率,以显示在集合边界之外的条纹的丰富详细结构。在增加的放大率下,Mandelbrot集合呈现出逐渐呈现更精细的递归细节的详细边界。

Mandelbrot Set的几何形状

算法

对于本教程,请选择一组限制,该限制指定在主心形和主题之间的谷中的高度缩放部分的曼德布特。P / Q.灯泡到左边。1000×1000个真实部件网格(X)和虚部(y)在这两个限制之间创建。然后在每个网格位置迭代Mandelbrot算法。迭代500的迭代号以完​​整分辨率呈现图像。

最大= 500;gridsize = 1000;XLIM = [-0.748766713922161,-0.7487667077771757];ylim = [0.12364084894862,0.123640851045266];

本教程使用标准MATLAB使用Mandelbrot设置的实现®CPU上运行的命令。将该计算化为view,使得每个位置同时更新。

创建Mandelbrot模型

  1. 创建Simulin金宝appk模型并插入一个Matlab功能街区来自用户定义的函数图书馆。

  2. 双击Matlab功能堵塞。将显示默认函数签名Matlab功能块编辑器。

  3. 定义一个调用的函数mandelbrot_count.,它实现了mandelbrot算法。函数头声明最大Xgrid., 和ygrid.作为一个争论mandelbrot_count.功能,有数数作为返回值。

    功能count = mandelbrot_count(maxIrtations,xgrid,ygrid)%mandelbrot计算z0 = xgrid + 1i * ygrid;count = =(大小(z0));%将计算到GPUcoder.gpu.kernelfun;z = z0;为了n = 0:maxIterations z = z。* z + z0;内部= abs(z)<= 2;count =内部计数+;结尾count = log(count);

  4. 打开块参数Matlab功能堵塞。在这一点代码生成选项卡,选择可重复使用的功能为了功能包装范围。

    如果是功能包装参数设置为任何其他值,cuda®内核可能不会生成。

  5. 添加inport.(金宝appSimulink)块和外港(金宝appSimulink)街区来自来源下沉图书馆。

  6. 连接这些块,如图所示。保存模型mandelbrot_top.slx.

    金宝appSimulink模型显示块之间的连接。

构建目标可执行文件

设置外部模式目标应用程序所需的模型和代码生成参数。然后,生成代码并构建目标应用程序。

  1. 来自应用在Simulink T金宝appoolStrip上的选项卡设置以在硬件上运行部分,点击在硬件板上运行

  2. 在里面硬件板部分,来自硬件板列表,选择nvidia jetson.

  3. 在里面准备部分,点击硬件设置.将打开配置参数对话框,显示硬件实现由所选板确定的设置。

  4. 在这一点求解器窗格:

    1. 在里面类型字段,选择固定步骤

    2. 在里面求解器字段,选择离散(没有连续的状态)

    3. 点击求解器详细信息.在里面固定阶梯字段,指定0.1.(否则,当您生成代码时,GPU编码器™构建过程会产生一个警告并提供值。)

    4. 点击申请

  5. 在这一点数据导入/导出窗格,清除时间输出复选框。在本例中,数据没有记录到工作区或mat文件中。点击申请

  6. 在这一点代码生成>优化窗格,确保默认参数行为被设置为调节.如果您进行了更改,请单击申请

  7. 在这一点代码生成>界面窗格,在数据交换界面部分,选择外部模式

  8. 在里面外部模式配置部分,确保选择默认值tcpip.为了运输层范围。

    MEX-FILE名称指定实现主机目标通信的MEX文件的名称。TCP / IP的默认是ext_comm.,一个提供的mex文件金宝appSimulink Coder™软件。

    MEX文件参数字段使您可以指定参数,例如TCP / IP服务器端口号,以传递给外部接口程序。这些参数特定于您使用的外部接口。

    本教程使用默认参数。离开MEX文件参数字段空白。

    静态内存分配复选框控制针对目标中的外部模式通信缓冲区的分配如何分配内存。对于本教程,请勿选中复选框。

  9. 点击申请保存外部模式设置。

  10. 保存模型。

  11. 选择代码生成窗格。确保仅生成代码被清除了。

  12. 要生成代码并创建目标应用程序,请在模型窗口中,按Ctrl + B..或者,在硬件标签,在在硬件上运行部分,点击监控和曲调.然后,下面逐步命令, 点击建立监控

    该软件创建了mandelbrot_top.工作文件夹中的可执行文件。

运行目标应用程序

跑过mandelbrot_top.目标可执行文件并使用Simulink作为运行目标应用金宝app程序的交互式前端。可执行文件位于工作文件夹中。运行目标应用程序并在Simulink和目标之间建立通信。金宝app

要运行目标应用程序:

  1. 在这一点硬件标签,在在硬件上运行部分:

    1. 在里面停止时间字段,指定INF.,这使得模型运行,直到目标应用程序从Simulink接收停止消息金宝app

    2. 点击监控和曲调.然后,下面逐步命令, 点击部署

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

  2. 在这一点硬件标签,在在硬件上运行部分,点击监控和曲调.然后,下面逐步命令, 点击连接.当Simu金宝applink和目标连接时,连接按钮更改断开

  3. 在里面在硬件上运行部分,点击,开始执行生成的模型代码。

您已经建立了Simulink和运行目标应用程序之间的通信。金宝app

笔记

在在包含深度学习网络的Simulink模型执行外部模式仿真时,在目标上的模型初始化期间可金宝app能发生超时错误。此超时可能是因为可执行文件的初始化时间超过300秒的默认最大加载时间。您可以使用使用的超时nvidia_xcp_extmode_init_time.环境变量。例如,在MATLAB命令窗口中,输入:

setenv('nvidia_xcp_extmode_init_time''500');

停止目标应用程序

要同时断开Simulink从主机/目标通信和目标应用程序的金宝app结束执行,请执行硬件标签,在在硬件上运行部分,点击停止

也可以看看

功能

相关的话题