这个例子展示了如何使用MathWorks®软件和基于模型的开发过程中,从概念到实施用于汽车的电动车窗系统。
在这个例子中,考虑一辆汽车的副驾驶侧电动车窗系统。注:该系统的一个关键方面是,在关闭窗口时,不能对物体施加超过100 N的力,例如:
当模型检测到这样一个物体时,它必须将窗户降低大约10厘米。
参阅有关设计要求的更多信息看到电动车窗控制器文档
本示例使用基于模型的设计和大规模建模技术,例如,
模型块在层次结构分成不同的模型。
变体子系统模块在不同的设计选择之间建模和切换。
图书馆为在变异子系统重用捕获算法。
万博1manbetx的Simulink项目以管理为系统开发所需的文件。
运行以下命令为本示例创建并打开项目文件的工作副本。
通过对项目的可视化检查,您可以看到来自Simulink项目的用于组织示例的特性。万博1manbetx这些特性是
文件夹
文件分类
快捷键
文件夹
项目被组织成以下文件夹:
configureModel-包含控制主要系统模型变体配置的MATLAB®文件。
数据- 包含项目中所需要的图像。
人机界面-包含动画电源窗口响应的文件。
模型- 包含了主要的系统模型,控制器模型,支持这些模型模型测试控制器,和图书馆。万博1manbetx
任务- 包含模拟了不同型号的配置模型,并为控制器覆盖报告的MATLAB文件。
公用事业- 包含了MATLAB文件来初始化模式,生成电子表格输入,将数据添加到电子表格生成,并在启动和关闭,以管理项目的环境。
文件分类
在Simulink万博1manbetx项目中的文件在标签窗格中可以看到不同的分类。每个标签描述文件在项目主体中扮演的特定角色。在这个项目中,增加了新的分类,包括:
配置- 即配置项目或模型的文件。
PrjConfig-配置项目的文件,在启动时添加它的文件到路径,并在关闭时删除它们。
DesignConfig- 用于确定哪些模型配置是活动的在给定时间的文件。
设计-主系统模型及其参考控制模型。
Design万博1manbetxSupport-文件,如库、数据和模型模拟。
模拟-为特定配置模拟模型的文件。
测试- 控制范围,控制的相互作用,以及测试工具模型。
可视化- 该文件动画电动车窗的动作。
快捷键
项目的快捷方式来获得快速访问预计,是最常用的文件。一些快捷方式包含常规任务,如在启动时加入该项目的路径,并在关机时清除它。此外,项目组的快捷方式帮助组织的快捷方式。新的快捷方式组是
交互式测试-包含用于控制器交互测试的文件。
主要型号- 包含顶层Simulink模型文件。万博1manbetx
模型覆盖- 包含用于控制器的模型覆盖文件。
模拟- 包含用于模型结构的变形的仿真文件。
该项目的万博1manbetxSimulink模型位于模型文件夹。感兴趣的模型
主系统模型
模型测试
主系统模型
在该模型中文件夹下该例子中,主系统模型是slexPowerWindowExample
。该模型由驾驶员和乘客开关块,其产生输入到该系统。这些输入然后再通过控制系统模型,验证的乘客和驾驶员的输入状态。该控制系统块还确定是否存在阻塞窗口的路径的障碍物。所引用的控制器产生发送到窗口系统的活性变体的窗口运动命令信号。窗口系统输出是反馈到控制系统块。
为了可视化仿真结果,仿真数据检查(SDI)记录的输出数据和Simulink 3D动画™动画窗口的议案。万博1manbetx
模型变量
在这个项目的主要系统模型使用变体子系统
块,以允许在一个子系统中实现多个。可以在模拟之前以编程方式更改活动实现。在主模型中,有四个变量子系统块,每个变量块都有可以编程修改的变量选择。这四个不同的子系统是:
slexPowerWindowExample / driver_switch
slexPowerWindowExample / passenger_switch
slexPowerWindowExample / window_system
slexPowerWindowExample / power_window_control_system / detect_obstacle_endstop
各变体的选择是具有变异控制相关联。变体的选择是积极的,当它的变形控制计算结果为真正
。
由于在主模型4个编程修改变体子系统块,有MATLAB文件来控制的变体的选择的组合,以创建其以发现模型变体配置DesignConfig
分类。可用的模型结构的变形是
电动车窗控制器的混合动力系统模型
电动车窗控制器和详细的工厂模型
电动车窗控制器具有数据采集的影响
电动车窗控制器,支持控制器区域网络(CAN)通信
电动车窗控制器的混合动力系统模型
该模型的变体使用Stateflow®和Simulink到两个离散事件的反应行为万博1manbetx和连续时间行为进行建模。它采用低阶工厂模型验证,卷绕式和滚下来的行为。您可以使用模拟这个变量配置SimHybridPlantLowOrder
快捷方式。此快捷方式仅激活对应于该模型构造变体子系统。由于该模型没有考虑到权力效应,唯一的输出记录是位置。模拟数据查验(SDI)显示所记录的位置数据。
电动车窗控制器和详细的工厂模型
该模型的变体示出了包括在电气和机械结构域功率效应的更详细的植物模型,用于验证由窗口捕获的物体上所施加的力不会超过100N。该模型的变体需要的Simscape™多体™及的Simscape电源要安装系统™产品。s manbetx 845您可以使用模拟这个变量配置SimHybridPlantPowerEffects
快捷方式。不像以前的变种模型,这个变种的配置考虑到权力的影响。SDI显示电枢电流、位置和电源窗口施加的力的记录数据。
电动车窗控制器具有数据采集的影响
这种模式的变体表明,影响控制附加效果由于实现。包括的现象是信号调节为测量所述测量的电枢电流和量化。这种模式的变体需要的Simscape多体,的Simscape电力系统,DSP系统工具箱™和定点设计™产品进行安装。s manbetx 845您可以使用模拟这个变量配置SimHybridPlantPowerEffects + ControlDAQEffects
快捷方式。与上一个模型一样,SDI显示电枢电流、位置和电源窗口施加的力的记录数据。
电动车窗控制器通过CAN通讯
该模型的变体示出了使用一个CAN的通信的命令来控制窗口的移动。可位于在车辆的中央控制台和产生的命令的开关被包含在该模型中的变体。这种模式的变体需要的Simscape多体,的Simscape电力系统,DSP系统工具箱和定点设计的产品进行安装。s manbetx 845您可以在计算机上模拟该变种运行配置使用windows操作系统| SimCANCommunication |捷径。
模型测试
为了测试状态机控制电动车窗,你可以运行测试项目的快捷方式。测试控制器可用模式快捷键
InteractiveExample
CoverageExample
IncreaseCoverageExample
InteractiveExample
这个模型快捷方式打开模型,slexpowerwindowcntlinteraction。该模型包含一个状态机——power window控制器。这个模型还包含了通过手动开关块选择的控制器的输入。
电动车窗控制器具有四个外部输入:
乘客输入
司机输入
窗框终点挡块
目前的障碍
乘客输入
该输入包括一个具有三个元件的载体的:
中性
:乘客控制开关未按下
向上
:乘客控制开关产生up信号
下来
:乘客控制开关产生下降信号
司机输入
该输入包括一个具有三个元件的载体的:
中性
:驱动器控制开关未按下
向上
:驱动器控制开关产生上升信号
下来
:驱动器控制开关产生下降信号
窗框终点挡块
此输入由具有两个元件的载体的:
0
:窗口顶部或底部之间自由移动
1
:窗口停留在顶部或底部,由于物理限制
目前的障碍
此输入由具有两个元件的载体的:
0
:窗口顶部或底部之间自由移动
1
:窗口有帧内障碍物
可以通过模拟模型,并通过手动开关块选择输入的所希望的组合交互测试控制器。使输入的选择之后,可以验证针对所期望的结果的内部控制器状态和控制器输出用于该特定组输入。
CoverageExample
这种模式的快捷方式打开模型,slexPowerWindowCntlCoverage。该模型包含一个状态机——power window控制器。此模型还包含输入到所述控制器被重复序列块。
您可以使用Simulink的覆盖万博1manbetx(TM)模型覆盖工具来验证窗口的离散事件控制。模型覆盖工具帮助确定模型测试用例执行控制器的条件分支的范围。它还有助于评估是否在离散事件控制的所有过渡采取给我们运行测试用例。它还在评估的条件的所有条款,允许特定的转换是否已经成为现实。一个转变可以由多个子句被启用,例如,当任一100只蜱已经发生或到达终点挡块时,会发生从紧急回中性的过渡。
IncreaseCoverageExample
这种模式的快捷方式打开模型,slexPowerWindowCntlCoverageIncrease。该模型包含了电动车窗控制器是一个状态机。这个模型也包含来自电子模块,它提供多组输入到控制器。这些输入集组合与所述一个从CoverageExample模型行使多个逻辑的电动车窗控制器。
这些输入集是:
记录
:从CoverageExample记录。
LoggedObstacleOffEndStopOn
:从能力命中挡块的CoverageExample记录。
LoggedObstacleOnEndStopOff
:从窗口障碍CoverageExample记录。
LoggedObstacleOnEndStopOn
:从覆盖示例中登录,在窗口中有障碍,并能够点击结束停止。
DriverLoggedPassengerNeutral
:从CoverageExample登录的只有司机。乘客不采取任何行动。
DriverDownPassengerNeutral
:驱动降低窗口。乘客不采取任何行动。
DriverUpPassengerNeutral
:驱动程序提升窗口。乘客不采取任何行动。
DriverAutoDownPassengerNeutral
:驱动降低窗口1秒(自动向下)。乘客不采取任何行动。
DriverAutoUpPassengerNeutral
:驱动程序提升窗口1秒(自动时)。乘客不采取任何行动。
PassengerAutoDownDriverNeutral
:乘客降落窗口1秒(自动降落)。司机不采取行动。
PassengerAutoUpDriverNeutral
:乘客上升窗口1秒(自动上升)。司机不采取行动。
模型覆盖快捷方式generateaddedcoverage使用Simulink覆盖模型覆盖工具的多个输入集来验证窗口的离散事件控制,并为多个输入集生成一个覆盖报告。万博1manbetx模型覆盖工具帮助确定模型测试用例执行控制器的条件分支的范围。在给定我们运行的输入集的情况下,它还可以帮助评估是否已经考虑了离散事件控制中的所有转换。