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