主要内容

模拟与设备驱动程序块

外部模式

外部模式支持Simulink金宝app®在运行时与硬件板上部署的模型进行通信。它还提供了一种可视化源输出和实时显示接收器块效果的简单方法。

外部模式在主机和硬件板上创建通信服务。这两个服务在Simulink引擎和部署在硬件板上的生成代码之间建立一个通信通道。金宝app通信服务将硬件板上的模型进程与代码以及格式化、传输和接收数据包的传输层隔离开来。上位机上的通信服务通过传输层接收数据包并更新Simulink模型显示。金宝app该图显示了外部模式通信服务在主机上的Simulink与硬件板上部署的代码之间创建的连接。金宝app

通过在外部模式下执行包含设备驱动程序块的简单模型,您可以直接观察硬件板上的数据。

有关外部模式模拟的详细信息,请参见用于参数调谐和信号监测的外部模式模拟(金宝app仿真软件编码器)

正常模式

在正常模式下,Simulink模型完全在金宝app仿真中运行,C/ c++设备驱动程序代码在MATLAB系统块从未执行。然而,在模拟过程中金宝app,Simulink模型通常需要源块来生成人工生成的或先前记录的数据。在将模型部署到硬件板之前,使用模拟数据可以改进算法开发、测试和调试。设备驱动接收器块不需要任何修改,以运行在正常模式模拟和假定行为终结者相反,设备驱动程序源块需要修改stepImpl方法发送运行时生成的或从基本MATLAB检索的数据®模型处于仿真状态时的工作区。

运行时的数据生成

下面的代码显示了如何修改stepImpl方法,以便设备驱动程序块在每个仿真时间步返回一个随机生成的逻辑值。

方法(访问=保护)...作用stepImpl (obj, u)%#好的如果isempty (coder.target)%在模拟过程中生成随机数据Y = rand > 0.5;其他的%调用c函数实现设备输出coder.ceval (“writeDigitalPin”,9,u);结束结束...结束

stepImpl方法被修改为在coder.target返回空。空值表示模型没有部署到硬件。

数据检索MATLAB工作区

在许多情况下,发出随机生成数据的设备驱动程序源块不足以在模拟中准确评估模型。它们需要以前捕获或生成的数据。

为了达到这种行为,stepImpl方法可修改为从MATLAB工作空间中检索数据变量,如下所示:

性质(访问权限=专用)计数=1结束
方法(访问=保护)...作用stepImpl (obj, u)%#好的如果isempty (coder.target)%在模拟过程中生成随机数据x = evalin(“基地”、“x”);y = x (obj.Count);obj。数= obj。数+ 1;如果obj。obj. Count > numel(x) obj. Count > numel(x) obj. Count >数= 1;结束其他的%调用c函数实现设备输出coder.ceval (“writeDigitalPin”,9,u);结束结束...结束

连接I / O

正模模拟通讯与硬件在正常模式模拟使用连接的I/O通过允许Simulink在在硬件上部署模型之前与硬件通信,在仿真和代码生成之间架起了桥梁。金宝app连接I/O使您能够修改模型设计,并在接近实时的环境中使用来自硬件的外围数据监视修改后的设计效果。您不需要在硬件上部署模型来监视修改后的设计的效果,这将加快模拟过程。该仿真软件金宝app(软件)arduino®(硬件)只有在启用连接的I/O时,才能在正常模式模拟中进行交互。

通过在连接的I/O中执行包含设备驱动程序块的简单模型,您可以直接观察硬件板上的数据。当模型处于模拟中时,设备驱动程序块需要修改以接受和输出数据。

有关如何在Connected I/O中执行包含设备驱动程序块的模型的详细信息,请参见在连接I/O中使用设备驱动块测量伺服电机轴角

其他模拟模式

其他可用的模拟模式,如加速模式和快速加速模式,编译并执行设备驱动程序块中包含的C/ c++代码。在这些模拟模式中,必须修改C/ c++头文件以包含空宏。

另请参阅

||