主要内容

使用设备驱动程序块进行仿真

外部模式

外部模式启用Simulink金宝app®在您的主机上,在运行时在硬件板上与已部署的模型通信。它还提供了一种可视化源的输出的简单方法,并实时显示水槽块的影响。

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

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

有关外部模式仿真的更详细信息,请参阅用于参数调谐和信号监控的外部模式模拟(金宝appSimulink编码器)

正常模式

在正常模式下,Simulink模型完全在金宝app模拟中运行,以及C / C ++设备驱动程序代码MATLAB系统块永远不会执行。然而,Simuli金宝appnk模型通常需要源块来在模拟期间产生人工生成的或先前记录的数据。模拟数据的使用允许在将模型部署到硬件板之前改进算法开发,测试和调试。设备驱动器宿块不需要任何修改以在正常模式模拟中运行并假设a的行为终结者堵塞。相比之下,设备驱动程序源块需要修改Stepimpl.发出在运行时生成的数据或从基本MATLAB检索的方法®工作区模型在模拟时。

运行时的数据生成

以下代码显示了如何修改的示例Stepimpl.方法使设备驱动程序块在每个模拟时间步骤中返回随机生成的逻辑值。

方法(访问=受保护)......功能Stepimpl(obj,u)%#OK 如果isempty(编码器.Target)%在仿真期间生成随机数据y = rand> 0.5;别的%呼叫C函数实现设备输出Coder.CEVAL('writedigitalpin',9,u);结尾结尾......结尾

Stepimpl.修改方法以执行代码编码器.Target.返回空。空值表示未部署到硬件的模型。

来自MATLAB工作区的数据检索

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

实现这种行为,Stepimpl.可以修改方法以从MATLAB工作区检索数据变量,如下所示:

特性(访问=私有)count = 1结尾
方法(访问=受保护)......功能Stepimpl(obj,u)%#OK 如果isempty(编码器.Target)%在仿真期间生成随机数据x =评价('基础','x');y = x(obj.count);obj.count = obj.count + 1;如果obj.count> numel(x)obj.count = 1;结尾别的%呼叫C函数实现设备输出Coder.CEVAL('writedigitalpin',9,u);结尾结尾......结尾

其他模拟模式

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

也可以看看

||