从系列中:运行时软件建模
特蕾莎·哈布舍尔·杨格,MathWorks
使用导出函数建模样式对模型进行分区和调度,以便将函数轻松集成到您的软件环境中,并具有从模型到代码的清晰映射。这种样式与基于速率的建模形成对比。
使用导出函数,代码可以分离为可以集成到更大系统中的函数。将模型划分为调度和更容易的代码集成是使用这些函数进行运行时软件建模的两个主要原因。
导出函数建模样式允许您轻松地将模型中的函数集成到软件环境中,并提供从模型到代码的清晰映射。
为了说明这是如何工作的,我将从油门控制系统的模型开始,在该模型中,所需的软件功能已经使用子系统进行了建模。
在这个模型中,我们模拟了进入油门控制的踏板输入,然后由作为设备的油门体模型进行模拟。在油门控制子系统中,我们有传感器和传感器管理功能,包括一个用于主油门和二次油门传感器的功能,以及传感器监视器。我们还有一个控制器和执行器。
为了理解导出函数建模的必要性,让我们生成此模型的默认代码。虽然我已经用子系统对所需函数进行了建模,但Simulink优化了代码并使其与函数对齐。此外,函数执行顺序由Simulink的内置调度程序确定。因此,代码不反映功能的接口,不提供控制执行顺序的能力。这可能与软件体系结构的需要不匹配。万博1manbetx
让我们看看导出函数建模版本。该模型现在的架构有所不同。首先,油门控制器子系统现在是带有固定步长离散解算器的模型块,而不是可变步长解算器,因为它用于软件和集成。
在模型块中,它们位于函数调用子系统中。导出函数允许您对接口建模,其中要集成到体系结构中的函数表示为函数触发器端口。如果我们查看函数调用的采样时间,可以看到它们每5毫秒采样一次,除了油门位置传感器主传感器(每10毫秒采样一次)和加速踏板位置传感器(运行时会触发事件)之外。
使用导出功能,不需要假定固有的调度程序,从而允许您更灵活地集成到自定义环境中。您可以选择通过端口或明细表编辑器进行明细表,以制作简单的测试线束。出于模拟目的,在本例中,软件计划程序是计划编辑器。
根据需要调用函数调用的时间,Schedule Editor每隔5或10毫秒向不同的函数调用发送一个事件。加速踏板位置传感器是一个显式的非周期分区,具有计划的命中时间。如果使用Stateflow进行运行时软件建模的计划,则可以使用逻辑CON根据不同情况调用组件时要更改的卡车。
可以使用Simulink测试产品设置更广泛的控制器单元测试线束。万博1manbetx
当我们为模型块生成代码时,我们会得到分离函数的代码,这些函数是从函数调用端口的名称中提取的,从而使软件更易于构建。我们使用导出函数进行实时软件建模的两个主要原因是更真实的调度建模和更容易的代码集成。
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。