电动窗控制项目
此示例展示了如何使用MathWorks®软件和基于模型的开发过程,将汽车动力窗系统的概念转化为实现。本例使用Simulink®、Simu金宝applink®Coverage™、DSP System Toolbox™、Simscape™Multibody™、定点设计器™、Simscape™Electrical™、Simscape™和Simulink®Real-Time™。
设计要求概述
在这个例子中,考虑一辆汽车的副驾驶侧电动车窗系统。注意,这个系统的一个关键方面是,当关闭窗口时,它对物体施加的力永远不能超过100n,例如:
当模型检测到这样的物体时,它必须将窗口降低约10厘米。
有关设计需求的详细信息,请参见电动窗.
使用基于模型的开发和大规模建模
本例使用基于模型的设计和大规模建模技术,例如:
模型块将层次结构分离为单独的模型。
变体子系统块在不同的设计选择之间建模和切换。
库捕获算法,以便在不同的子系统中重用。
项目管理系统开发所需的文件。
打开电源窗口控制项目
运行以下命令创建并打开本例项目文件的工作副本。
项目探索
在对项目进行可视化检查之后,您可以看到用于组织示例的特性。这些特征是:
文件夹
文件分类
快捷键
文件夹
该项目被组织到以下文件夹中:
configureModelMATLAB®文件控制主要系统模型变量配置
数据—项目所需的图片
人机界面-文件动画的权力窗口响应
模型-主要系统模型、控制器模型、用于测试控制器的模型以及支持这些模型的库金宝app
任务- MATLAB文件,用于模拟不同模型配置的模型,并为控制器生成覆盖率报告
公用事业公司- MATLAB文件,用于初始化模型,生成电子表格输入,向生成的电子表格添加数据,以及在启动和关闭时管理项目环境
文件分类
项目中的文件在标签窗格中有不同的分类。每个标签描述了文件在项目主体中所扮演的特定角色。在这个项目中,增加了新的分类,包括:
配置—配置项目或模型的文件。
PrjConfig-通过在启动时将其文件添加到路径并在关闭时删除它们来配置项目的文件
DesignConfig-确定在给定时间哪个模型配置是活动的文件
设计-主要系统模型及其参考控制模型
Design金宝appSupport—库、数据、模型仿真等文件
模拟—为特定配置模拟模型的文件
测试-控制覆盖范围,控制交互,以及测试线束模型
可视化-文件动画的运动的权力窗口
快捷键
项目快捷方式用于快速访问最常用的项目文件。一些快捷方式包含一些常规任务,比如在启动时将项目添加到路径中,在关闭时将其删除。此外,项目快捷方式组有助于组织快捷方式。新的快捷方式组是
交互式测试—用于控制器交互测试的文件
主要模型-顶级Simulink模型文件金宝app
模型覆盖—用于控制器模型覆盖的文件
模拟-用于模拟模型变体配置的文件
在项目中探索Simu金宝applink模型
这个项目金宝app的Simulink模型位于模型文件夹中。感兴趣的模型是:
主要系统模型
测试模型
主要系统模型
在这个例子中,在模型文件夹下,主要的系统模型是slexPowerWindowExample
.该模型由驾驶员和乘客开关模块组成,它们为系统生成输入。输入然后通过控制系统模型,验证乘客和司机输入的状态。控制系统块还可以确定是否有障碍物挡住了窗口的路径。所述引用控制器产生发送给所述窗口系统的活动变体的窗口运动命令信号。窗口系统输出是对控制系统块的反馈。
为了可视化仿真结果,仿真数据检查器(SDI)记录输出数据,Simulink 3D动画™动画窗口的运动。金宝app
模型变量
本项目的主要系统模型使用不同的子系统
块,以允许在一个子系统内的多个实现。可以在模拟之前以编程方式更改活动实现。在主模型中,有四个变体子系统块,每个都有可以通过编程修改的变体选择。这四个不同的子系统是:
slexPowerWindowExample / driver_switch
slexPowerWindowExample / passenger_switch
slexPowerWindowExample / window_system
slexPowerWindowExample / power_window_control_system / detect_obstacle_endstop
每个变量选择都与一个变量控制相关联。当变量控制计算为时,变量选择是活动的真正的
.
由于在主模型中有四个可编程修改的变体子系统块,因此有MATLAB文件来控制变体选择的组合,以创建模型的变体配置DesignConfig
分类。可用的模型变体配置是
电动窗控制器混合系统模型
电力窗口控制器和详细的工厂模型
具有数据采集效果的电力窗口控制器
电动窗控制器与控制器局域网(CAN)通信
电动窗控制器混合系统模型
该模型变体使用Stateflow®和Simulink对离散事件反应行为和连续时金宝app间行为进行建模。它使用低阶植物模型来验证卷起和卷下行为。方法模拟此变体配置SimHybridPlantLowOrder
快捷方式。此快捷方式仅激活与此模型配置相对应的变体子系统。由于这个模型没有考虑功率效应,唯一记录的输出是位置。模拟数据检查器(SDI)显示记录的位置数据。
电力窗口控制器和详细的工厂模型
该模型变体显示了一个更详细的工厂模型,其中包括电气和机械领域的功率效应,用于验证窗户对被困物体施加的力不会超过100 n。该模型变体需要安装Simscape™Multibody™和Simscape power Systems™产品。下载188bet金宝搏方法模拟此变体配置SimHybridPlantPowerEffects
快捷方式。与以前的改进型不同,这种改进型配置考虑了功率影响。SDI显示电枢电流、位置和功率窗施加的力的记录数据。
具有数据采集效果的电力窗口控制器
此模型变体显示了由于实现而影响控制的附加效果。现象包括测量电枢电流的信号调理和测量的量化。此模型变体需要安装Simscape Multibody、Simscape Power Systems、DSP System Toolbox™和Fixed-Point Designer™产品。下载188bet金宝搏方法模拟此变体配置SimHybridPlantPowerEffects + ControlDAQEffects
快捷方式。与之前的模型一样,SDI显示电枢电流、位置和功率窗施加的力的记录数据。
电源窗口控制器与CAN通信
这个模型变体展示了使用CAN通信命令来控制窗口移动。开关可能位于车辆的中控台中,并产生命令,包括在这一型号的变化。此模型变体需要安装Simscape Multibody、Simscape Power Systems、DSP System Toolbox和Fixed-Point Designer产品。下载188bet金宝搏您可以在运行windows操作系统的机器上使用|SimCANCommunication|快捷方式模拟此变体配置。
测试模型
要测试控制电源窗口的状态机,可以运行项目快捷方式进行测试。可用于测试控制器的模型快捷键有
InteractiveExample
CoverageExample
IncreaseCoverageExample
InteractiveExample
这个模型快捷方式打开模型slexPowerWindowCntlInteract。该模型包含电源窗口控制器,它是一个状态机。该模型还包含控制器的输入,这些输入由手动开关块选择。
电动窗控制器有四个外部输入:
乘客输入
司机输入
窗框端件
障碍存在
乘客输入
这个输入由一个包含三个元素的向量组成:
中性
:副控开关未按下向上
:乘客控制开关产生上信号下来
:乘客控制开关产生down信号
司机输入
这个输入由一个包含三个元素的向量组成:
中性
:驱动控制开关未按下向上
:驱动控制开关产生up信号下来
:驱动控制开关产生down信号
窗框端件
这个输入由一个有两个元素的向量组成:
0
:窗口在顶部或底部之间自由移动1
:由于物理限制,窗口卡在顶部或底部
障碍存在
这个输入由一个有两个元素的向量组成:
0
:窗口在顶部或底部之间自由移动1
:窗户的框内有障碍物
您可以通过模拟模型并通过手动开关块选择所需的输入组合来交互式地测试控制器。在选择输入之后,您可以根据这组特定输入的期望结果验证内部控制器状态和控制器输出。
CoverageExample
这个模型快捷方式打开模型slexPowerWindowCntlCoverage。该模型包含电源窗口控制器,它是一个状态机。该模型还包含对控制器的重复序列块的输入。
您可以使用Simulink Co金宝appverage (TM) Model Coverage工具来验证窗口的离散事件控制。模型覆盖工具帮助确定模型测试用例练习控制器的条件分支的程度。它还有助于评估在给定我们运行的测试用例的情况下,是否采取了离散事件控制中的所有转换。它还评估允许特定转换的条件中的所有子句是否为真。一个转换可以由多个子句启用,例如,当发生100个节拍或到达终停时发生从紧急状态转换回中性状态。
IncreaseCoverageExample
这个模型快捷方式打开模型slexPowerWindowCntlCoverageIncrease。此模型包含电源窗口控制器,该控制器是一个状态机。该模型还包含一个From Spreadsheet块,为控制器提供多组输入。这些输入集与来自CoverageExample模型的输入集相结合,以在功率窗口控制器中执行更多的逻辑。
这些输入集是:
记录
:从CoverageExample中记录。LoggedObstacleOffEndStopOn
:从CoverageExample中登录,具有命中endstop的能力。LoggedObstacleOnEndStopOff
:从窗口中有障碍物的CoverageExample中记录。LoggedObstacleOnEndStopOn
:从CoverageExample中记录,窗口中有障碍物,并且能够命中结束停止。DriverLoggedPassengerNeutral
:仅从驱动程序的CoverageExample记录。乘客没有采取任何行动。DriverDownPassengerNeutral
:驾驶员降低窗口。乘客没有采取任何行动。DriverUpPassengerNeutral
:驾驶员升降窗。乘客没有采取任何行动。DriverAutoDownPassengerNeutral
:驾驶员下降窗口1秒(自动下降)。乘客没有采取任何行动。DriverAutoUpPassengerNeutral
:驱动升窗1秒(自动升窗)。乘客没有采取任何行动。PassengerAutoDownDriverNeutral
:乘客下降窗口1秒(自动下降)。司机没有采取任何行动。PassengerAutoUpDriverNeutral
:乘客上升窗口1秒(自动上升)。司机没有采取任何行动。
模型覆盖快捷方式generateincreedcoverage使用Simulink coverage model coverage工具中的多个输入集来验证窗口的离散事件控制,并为多个输入集金宝app生成覆盖率报告。模型覆盖工具帮助确定模型测试用例练习控制器的条件分支的程度。它还有助于评估离散事件控制中的所有转换是否已经考虑到我们运行的输入集。