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