设为首页 加入收藏

TOP

对自动变速器的控制器建模(一)
2019-08-27 07:34:16 】 浏览:60
Tags:自动 变速器 控制器 建模

此示例说明如何使用 Simulink® 对汽车传动系统建模。Stateflow® 通过表示变速器控制逻辑来增强 Simulink 模型。Simulink 为动态系统和过程的建模和仿真提供了强大的环境。但在许多系统中,更改模式或调用新增益规律等监管功能必须响应可能发生的事件以及随时间发展变化的情况。因此,环境需要一种能够管理这些多重模式和不断发展变化的情况的语言。在以下示例中,Stateflow 通过在自动变速中执行挡位选择功能来展示其在这一能力方面的优势。通过在 Simulink 模块图中合并 Stateflow 模块,此功能与传动系统动态自然且直观地结合在一起。

分析和物理原理

图 1 显示了典型汽车传动系统中的功率流。几个非线性常微分方程对发动机、四速自动变速器和车辆进行建模。此示例中讨论的模型直接将图 1 中的模块实现为模块化 Simulink 子系统。另一方面,变速器控制单元 (TCU) 中的逻辑和决策不适合用广为接受的方程表示。TCU 更适用于 Stateflow 表示。Stateflow 监视与系统中的重要关系相对应的事件,并在事件发生时采取适当的措施。

 

 

图 1:传动系统的通用模块图

节气门开度是发动机的输入之一。发动机与液力变矩器的泵轮相联,并通过液力变矩器与变速器耦合(参见方程 1)。

方程 1

液力变矩器的输入-输出特征可以表示为发动机转速和涡轮转速的函数。在此示例中,功率流的方向始终假定为从泵轮到涡轮(参见方程 2)。

方程 2

变速器模型通过静态齿轮比实现(假定换挡时间短)(参见方程 3)。

方程 3

主减速比、转动惯量和动态变化的负载,共同构建了整车动力学模型。(参见方程 4)

方程 4

负载扭矩包括道路负载和制动扭矩。道路负载是摩擦损失和空气动力损失之和(参见方程 5)。

方程 5

模型根据图 2 所示的规律设定变速器的换挡点。对于给定挡位下的给定节气门,升挡时具有唯一的车辆速度。降挡时类似。

 

 

图 2:换挡规律

建模

打开此模型,请在 MATLAB® 终端中键入 sldemo_autotrans。初始条件在模型工作区中设置。

该模型的顶层图如图 3 所示。要运行仿真,请按模型窗口中的工具栏上的 Play 按钮。请注意,模型将相关数据以名为 sldemo_autotrans_output 的数据结构体记录到 MATLAB 工作区中。记录的信号具有蓝色指示标记(参见图 3)。在运行仿真后,您可以通过在 MATLAB 命令行窗口中输入 sldemo_autotrans_output 来查看数据结构体的组成。另请注意,单位显示在子系统图标和信号线上。要了解有关 Simulink 中的单位的详细信息,请参阅 Simulink 单位

图 3:模型图和采样仿真结果(超车动作)

建模

图 3 所示的 Simulink 模型由代表发动机、变速器和车辆的模块组成,并且额外有一个换挡逻辑模块,用于控制变速器的传动比。模型的用户输入由节气门(以百分比给出)和制动扭矩(以 ft-lb 为单位给出)组成,通过 ManeuversGUI 界面可以输入节气门和制动扭矩。

Engine 子系统包含一个二维表,该二维表对发动机扭矩与节气门和发动机转速的关系进行插值。图 4 显示了复合的 Engine 子系统。在模型中双击此子系统可查看其结构。

图 4:Engine 子系统

TorqueConverter 和 TransmissionRatio 模块构成了 Transmission 子系统,如图 5 所示。在模型窗口中双击 Transmission 子系统可查看其组件。

图 5:Transmission 子系统

TorqueConverter 是一个封装子系统,它实现了方程 2。要打开此子系统,请右键点击它,然后从下拉菜单中选择 Mask > Look Under Mask。封装需要速度比 (Nin/Ne) 向量以及 K 系数 (f2) 和扭矩比 (f3) 的向量。图 6 显示了 TorqueConverter 子系统的实现。

图 6:液力变矩器子系统

变速器速比模块根据表 1 确定传动比,并根据方程 3 计算出变速器的输出扭矩和输入转速,如图 7 所示的子系统模型在扭矩和转速方面体现了传动比。

表 1:变速器齿轮比

gear     Rtr = Nin/Ne
 1         2.393
 2         1.450
 3         1.000
 4         0.677

图 7:变速器齿轮比子系统

标记为 ShiftLogic 的 Stateflow 模块实现变速器的挡位选择。在模型窗口中双击 ShiftLogic 可打开 Stateflow 图。利用 Model Explorer 将输入定义为节气门和车辆速度,将输出定义为所需的挡位数。两个用虚线围起来的 AND 状态跟踪挡位状态和挡位选择过程的状态。整体图作为一个离散时间系统执行,每 40 毫秒采样一次。图 8 所示的 Stateflow 图展示了模块的功能。

图 8:变速器换挡逻辑的 Stateflow 图

可以在仿真期间通过启用 Stateflow 调试器中的动画来观察换挡逻辑行为。selection_state(始终处于活动状态)通过执行其 during 函数所示的计算来开始。该模型根据挡位和节气门的瞬时值计算升挡和降挡速度阈值。在处于 steady_state 时,模型将这些值与当前车辆速度进行比较以确定是否需要换挡。如果需要,它将进入确认状态之一(upshifting 或 downshifting),该状态会记录进入该状态的时间。

如果车辆速度不再满足换挡条件,当处于确认状态时,模型将忽略换挡并转移回 steady_state。这样可以防止外部噪声情况导致的换挡。如果换挡条件在 TWAIT 个时刻的持续时间内保持有效,模型将通过下联接点转移,并且根据当前挡位,将广播换挡事件。随后,模型在通过一个中央联接点转移后再次激活 steady_state。广播到 gear_selection 状态的换挡事件将激活到适当新挡位的转移。

例如,如果车辆以 25% 的节气门开度在第二挡行进,状态 second 在 gear_state 内处于活动状态,steady_state 在 selection_state 中处于活动状态。后者的 during 函数会发现应在车辆超过 30 mph 时升挡。在满足此条件的时刻,模型进入 upshifting 状态。在此状态下,如果车辆速度在 TWAIT 个时刻内保持 30 mph 以上,模型将满足引至右下联接点的转移条件。这也满足在从这里转移至 steady_state 时的条件 [|gear == 2|],因此模型此时会从 upshifting&nb

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇嵌入式C语言自我修养 02:Linux .. 下一篇Fixed-Point Designer(设计、仿..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目