自动变速器控制器建模
这个例子展示了如何用Simulink®对汽车传动系统进行建模。Stateflow®通过传输控制逻辑的表示增强了Simulink模型。Simulink为动态系统和过程的建模和仿真提供了一个强大的环境。然而,在许多系统中,像改变模式或调用新的增益计划这样的监督功能必须对可能发生的事件和随着时间的推移而发展的条件做出响应。因此,环境需要一种能够管理这些多种模式和发展条件的语言。在下面的例子中,Stateflow通过在自动变速器中执行齿轮选择功能显示了它在这方面的实力。通过在Simulink方框图中合并Stateflow块,该功能以自然直观的方式与传动系统动力学相结合。
分析与物理
下图显示了典型汽车传动系统的功率流。非线性常微分方程对发动机、四速自动变速器和车辆进行建模。本例中讨论的模型直接将图中的模块实现为模块化的Simulink子系统。另一方面,在传输控制单元(TCU)中做出的逻辑和决策并不适合于良好的公式。TCU更适合于状态流表示。状态流监视与系统中重要关系对应的事件,并在事件发生时采取适当的操作。
油门开度是发动机的输入之一。发动机与液力变矩器的叶轮相连,液力变矩器的叶轮与变速器相连(见式1)。
方程1
液力变矩器的输入输出特性可以表示为发动机转速和涡轮转速的函数。在本例中,始终假设功率流方向为从叶轮到涡轮(见式2)。
方程2
变速器模型通过静态齿轮比实现,假设换档时间小(见公式3)。
方程3
最终驱动、惯性和动态变化载荷构成车辆动力学(见式4)。
方程4
负载扭矩包括道路载荷和制动扭矩。道路荷载为摩擦损失和气动损失之和(见式5)。
方程5
该模型根据下图所示的时间表对变速器的换挡点进行编程。对于给定档位的给定油门,有一个独特的车辆速度发生上升。对于降档,模拟操作类似。
建模
当您打开模型时,在模型工作区中设置了初始条件。
模型的顶层图如下图所示。若要运行仿真,请在“仿真”选项卡上单击运行.请注意,模型将相关数据记录到MATLAB工作区的数据结构中,该数据结构称为sldemo_autotrans_output
.日志信号显示蓝色指示灯。在运行模拟之后,您可以通过键入来查看数据结构的组件sldemo_autotrans_output
在MATLAB命令窗口中。还要注意,这些单元出现在子系统图标和信号线上。
建模
上图所示的Simulink模型由代表发动机、变速器和车辆的模块组成,另外还有一个变速逻辑块来控制传动比。用户输入到模型的形式是油门(以百分比表示)和制动扭矩(以ft-lb表示)。用户使用操纵性gui界面输入油门和刹车扭矩。
发动机子系统由一个二维表格组成,该表格将发动机扭矩与油门和发动机转速进行插值。下图显示了复合引擎子系统。双击模型中的这个子系统来查看它的结构。
TorqueConverter和TransmissionRatio模块组成变速器子系统,如下图所示。双击模型窗口中的Transmission子系统以查看其组件。
TorqueConverter是一个屏蔽子系统,它实现了公式2。要打开这个子系统,右键单击它并选择面具>面具下看从下拉菜单中。掩模需要一个速度比矢量(Nin /不
)和k因子(f2
)和转矩比(f3
)。此图显示了TorqueConverter子系统的实现。
传动比块确定表1所示的传动比,并计算变速器输出转矩和输入转速,如式3所示。下图显示了实现扭矩和速度比的子系统的框图。
表1:传动齿轮比
齿轮Rtr = n/Ne 1 2.393 2 1.450 3 1.000 4 0.677
标有ShiftLogic的状态流块为传输实现齿轮选择。双击模型窗口中的ShiftLogic以打开状态流图。模型探索者被用来定义输入为油门和车速,输出为所需的齿轮数。两个虚线与状态跟踪齿轮状态和齿轮选择过程的状态。整个图表作为一个离散时间系统执行,每40毫秒采样一次。下面显示的状态流图说明了块的功能。
通过在statflow调试器中启用动画,可以在模拟期间观察移位逻辑行为。的selection_state
(始终处于活动状态)首先执行其中指示的计算在
函数。该模型计算升档和降档速度阈值作为齿轮和油门瞬时值的函数。当处于稳态时,该模型将这些值与当前车辆速度进行比较,以确定是否需要换挡。如果是,则进入确认状态之一(上移
或降低速度
),记录进入的时间。
当车速不再满足换挡条件时,在确认状态下,模型忽略换挡,重新过渡到steady_state
.这可以防止由于噪声条件造成的外来移位。如果移位条件在持续时间内保持有效TWAIT
滴答声,模型通过较低的连接点过渡,并根据当前齿轮,它广播一个换挡事件。随后,模型再次激活steady_state
经过一个中心连接点的过渡。shift事件,它被广播到gear_selection
状态,激活过渡到适当的新齿轮。
例如,如果车辆在二档行驶,25%的油门,状态第二个
在内部是活跃的gear_state
,steady_state
活跃于selection_state
.的在
后者的功能发现,当车辆超过30英里/小时时,应该进行上升换挡。当这成为事实时,模型进入上移
状态。在这种状态下,如果车速保持在每小时30英里以上TWAIT
同时,模型满足过渡条件,向下到达右下交界处。这也满足从这里到的过渡的条件[|gear == 2|]steady_state
,因此该模型现在从上移
来steady_state
并广播事件向上
作为过渡操作。因此,从第二到第三的转变被接受了gear_state
这就完成了转换逻辑。
车辆子系统使用净扭矩计算加速度,并根据公式4和公式5将其积分计算车速。车辆子系统被屏蔽了。要查看Vehicle块的结构,右键单击它并选择面具>面具下看从下拉菜单中。在掩模菜单中输入的参数是最终传动比、阻力摩擦和气动阻力的多项式系数、车轮半径、车辆惯性和初始变速器输出速度。
结果
仿真中使用的发动机扭矩图和变矩器特性如下所示。
获取FactorK(第二行)和TorqueRatio(第三行)vs speeratio(第一行)
第一个模拟(通过机动)使用表2中给出的油门调度(该数据是线性插值的)。
表2:第一次模拟(通过机动)的节流阀时间表
时间(秒)节流阀(%)0 60 14.9 40 15 100 100 0 200 0
第一列对应时间;第二列对应于油门开度的百分比。在这种情况下,没有刹车(刹车扭矩为零)。车速为零,发动机转速为1000转。下图显示了使用默认参数的基线结果图。当驾驶员踩到60%油门时t = 0
,发动机立即做出反应,将速度提高一倍以上。这带来了一个低的速比在整个变矩器,因此,一个大的转矩比。车辆加速很快(没有轮胎打滑的模型),发动机和车辆都获得速度,直到大约T = 2秒
,此时发生1-2次上升。发动机转速骤然下降,然后又恢复加速。2-3和3-4次上升分别发生在大约4秒和8秒。请注意,由于惯性大,车辆速度保持平稳得多。
在t = 15秒
,驾驶员将油门踩到100%,这可能是典型的超车动作。变速器降至三档,发动机从大约2600转/分钟跳到大约3700转/分钟。因此,发动机扭矩有所增加,以及传动的机械优势。在持续加大油门的情况下,车辆加速到每小时100英里左右,然后在大约100英里时转为超速行驶T = 21 SEC
.在余下的模拟过程中,车辆以四档行驶。双击操纵性gui块,并使用图形界面来改变油门和刹车的历史。
运行多个场景并收集覆盖率
您可以在收集覆盖率的同时为所有场景运行模型。要查看为运行sldemo_autotrans的所有场景而保存的设计研究,请打开sldemo_autotrans_design_study.mldatx
在sldemo_autotrans的多重模拟面板。
在打开设计研究之后,在模型设置中启用模型覆盖和累积收集。
set_param('sldemo_autotrans', 'CovEnable', 'on');
set_param('sldemo_autotrans', ' covenablecumcumulative ', 'on');
设置好后,单击全部运行(覆盖)
按钮上的仿真选项卡上的Simulink工具条。然后检查设计用例的模型覆盖率。
关闭模型
关闭模型,清除生成的数据。
结论
您可以以模块化的方式增强这个基本系统,例如,用更复杂的模型替换发动机或变速器。您可以通过逐步细化在这个结构中构建大型系统。Stateflow控制逻辑与Simulink信号处理的无缝集成使构建高效且直观的模型成为可能。