主要内容

使用设备驱动程序块进行模拟

外部模式

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

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

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

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

正常模式

在正常模式下,Simulink模型完全在金宝app模拟中运行,C/C++设备驱动程序代码在MATLAB系统块从不执行。但是,Simulink模型通常要求源块在模拟期间生金宝app成人工生成的或先前记录的数据。在将模型部署到硬件板之前,使用模拟数据可以改进算法开发、测试和调试。设备驱动程序接收器块不需要重新进行任何修改,以在正常模式模拟下运行,并假设终结者块相反,设备驱动程序源块需要修改斯捷潘普方法发出运行时生成的或从基础MATLAB检索的数据®模型处于仿真中时的工作空间。

运行时数据生成

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

方法(访问=受保护)...作用STEPIMP(obj,u)%#好的如果isempty(coder.target)%在模拟过程中生成随机数据y=rand>0.5;其他的%调用C函数实现设备输出塞瓦尔编码员(“writeDigitalPin”,9,u);终止终止...终止

这个斯捷潘普方法被修改为在编码目标返回空。空值表示模型未部署到硬件。

MATLAB工作空间中的数据检索

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

要实现此行为,请斯捷潘普方法可以修改为从MATLAB工作区检索数据变量,如下所示:

性质(访问权限=专用)计数=1终止
方法(访问=受保护)...作用STEPIMP(obj,u)%#好的如果isempty(coder.target)%在模拟过程中生成随机数据x=evalin('base','x');y=x(目标计数);对象计数=对象计数+1;如果obj.Count>numel(x)obj.Count=1;终止其他的%调用C函数实现设备输出塞瓦尔编码员(“writeDigitalPin”,9,u);终止终止...终止

其他模拟模式

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

另见

||