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