学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#studentsuccess万博1manbetx

如何使用Simulink赢得SAE方程式赛车万博1manbetx

今天的客座博主是艾琳马特katt格雷格,安德鲁麦吉尔方程式电动车队在加拿大蒙特利尔的麦吉尔大学。他们将解释他们的成功故事以及为什么模拟是他们成功的关键。也要从他们身上学习为什么奋斗、跌倒然后再爬起来是件好事。遵循伟大的社区精神在方程式学生,艾琳和团队还开放了他们的大部分工作,找到它MATLAB中央文件交换并在这里链接。

- - - - - -

简介

近年来,我们已经看到运行模拟和构建控制系统对任何赢得FSAE冠军的赛车变得越来越重要,但对我们的团队来说,这些项目似乎没有明确的定义。首先,我们花了去年的时间研究和设计了一些基本的控制系统,并为我们的后轮驱动车辆进行了仿真,我们可以在Simulink中构建和运行这些系统;万博1manbetx我们建立了一个点质量车辆模型,一个纵向牵引力控制系统,一个单圈模拟,和一个四分之一的汽车驾驶模型。虽然我们团队今年的目标是生产一款可靠、耐用、轻便的汽车,但我们额外的控制/车辆动力学目标是专注于使用我们正在构建的Simulink系统,为比赛和来年做准备。万博1manbetx有了这些,我们带回了第一名在FSAE林肯,并兴奋地编写扭矩矢量算法,一个双轨道车辆模型,并在来年为我们的新四轮驱动汽车的全乘模型。

牵引控制器设计

汽车模型

我们为车辆模型选择了一种设计方法,它可以提供足够的仿真精度,而不会占用太多的设计资源。我们意识到,通过从一个简单的点质量模型开始,加上已知的效率和损失,我们可以非常接近我们在轨道上观察到的结果。

我们的模型由车身和动力传动系统组成。车身代表点质量,包含载荷传递和气动计算。传动系统包括我们的电机,传动装置,差速器和轮胎模型。许多组件最初只需要简单的物理就能得到结果。一旦基础工作起作用,就可以根据需要添加效率、损耗和更高级的建模,以使模拟与测试数据匹配。

制作汽车模型最困难的部分是轮胎模型的整合。我们最终使用了MFeval,这是MATLAB文件交换上的一个免费库。MFeval包含了从TIR文件中计算魔术公式模型的必要方程。

最后,我们需要验证模型,以便它可以可靠地用于调优牵引力控制。我们使用过去几年的测试数据来确定我们的模型的加速度、车轮速度和滑移响应是否与真实的加速测试相匹配。我们将记录的油门输入输入输入模型,并分析其输出如何与记录的车辆响应匹配。经过一些调整和修正值,我们有一个模型,接近我们的汽车纵向行为。

MATLAB图形显示的比较后轮速度从实际加速运行(橙色)和模型的输出蓝色。加速、最高速度和滑移特性都非常匹配。

牵引控制器

然后,我们的纵向牵引力控制系统被构建、调试,并使用Simulink部署到我们的定制车辆控制器上。万博1manbetx它由一个计算轴速的车辆状态估计器和一个防止车辆打滑以提高加速时间的前向转矩控制器组成。

状态估计器计算轴的速度和目标和真实滑移率之间的三角洲(dslip);输出输入正向转矩控制器

正向转矩控制器计算驾驶员所需扭矩和扭矩
为了使dslip小于等于0,它应该减小哪一个

为了简化赛道测试,我们使用车辆模型来调整不同的牵引力控制“模式”,然后通过仪表盘上的按钮进行切换(并将不同的增益输入到牵引力控制器中)。为了找到这10种模式,我们将PID控制器连接到车辆模型上,并针对从保守到激进的不同响应进行调整。然后我们可以通过切换仪表盘上的模式并离线调整它们来快速测试这些,所有这些都有助于提高在赛道上的时间效率。

一旦我们建立了模型,我们就必须让它在汽车上运行。起初,网上关于这一过程似乎有很多相互矛盾的信息。我们遵循了关于模型c代码生成的MATLAB文档它使得从我们的Simulink模型生成代码变得非常简单。万博1manbetx

在获得C文件后,我们必须想出如何将它们整合到我们的车辆控制器代码中;我们在汽车控制器的定制PCB上使用NXP mpc574p MCU。Simulink生成的代码接口报告记录了你需要调用的4个主要a万博1manbetxpi,以便与你的新C '库交互:

  1. 第一个函数基本上是一个构造函数,它为您提供一个用于与模型交互的数据结构。
  2. 第二个函数初始化从第1步获得的数据结构。
  3. 然后,您可以通过在数据结构的“input”字段中设置输入并从其万博1manbetx“outputs”字段中读取输出来与Simulink生成的代码进行交互。每当您想要通过Simulink模型的一个步骤进行迭代时,设置所有适当的输入并调用所提供的“step”函数,万博1manbetx之后您可以从数据结构中检索输出,如前所述。
  4. 当你完成了Simulink模型,调用terminat万博1manbetxe函数,它会为你清理一切。

从在Simulink中运行转矩控制器到在我们的板子上运行它的整个过程可能花了我们大约30分钟来设置,现在如果我们万博1manbetx改变Simulink模型,则需要大约3分钟来更新。

在我们的车上运行这个简单的Simu万博1manbetxlink模型,我们能够在林肯赛道上减少几乎半秒的加速时间!为了证明这一点,下面我们有一些图来自我们在林肯的两个加速运行,一个使用牵引力控制和一个不使用牵引力控制。

林肯加速跑,无牵引力控制,4.16秒

一开始,我们的结果似乎有点令人惊讶;即使没有使用牵引力控制,我们看到司机没有打滑。考虑到赛道是湿的,我们的主要目标是保持牵引力,我们看油门,看看车手做了什么来实现这一点。他通过非常小心地踩油门来控制滑行:看看他要花多长时间才能达到全速行驶的速度,以及他踩油门的方法有多小心。然而,在我们的下一次奔跑中,我们打开了牵引力控制系统,这一次,司机不必通过小心地限制油门来控制滑移。相反,他几乎可以立即达到最大油门位置,而我们的Simulink模型完成了其余的工作。万博1manbetx

林肯加速带牵引力控制,3.687秒:

这次汽车达到最高速度要快得多!因为我们的Simulin万博1manbetxk模型可以比驾驶员在之前的运行中更快地控制滑移,他达到全油门的速度比之前快得多,因此,我们看到有牵引力控制的汽车比没有牵引力控制的汽车加速得快得多。

圈速模拟

创建一个圈时间模拟是非常重要的任何FSAE车队。我们用它来了解不同的车辆参数如何影响汽车在动态事件中的表现。这有助于指导高级设计决策,如电机选择、电池组尺寸、航空目标、齿轮传动比、车辆质量目标等。

以前的赛车休息室视频解释了不同的方法(苏黎世联邦理工学院你慕尼黑),它们都使用了双轨汽车模型,轮胎模型基于TTC或其他机构的测试数据。为了简单起见,我们决定将汽车建模为点质量,并使用恒定的摩擦系数来建模轮胎。这种更简单的方法仍然能让我们深入了解高级参数如何影响汽车。我们的单圈模拟是准稳态的,通过将赛道分成几段,在每个点上加在赛车上的力,再除以质量得到赛车的加速度。然后使用基本的正向欧拉方法求解汽车的速度和位移。这种方法被广泛使用,网上有很多关于它的文档。

与任何模拟一样,验证和修改模型以符合轨道数据是很重要的。为了验证单圈时间模拟,重要的是将单圈时间敏感性与改变参数(如增加5kg后单圈时间的变化)所产生的能量消耗联系起来,并将模型得到的单圈时间与赛道上赛车的数据进行验证。基本的测试计划应该如下所示:

  1. 把车开到正常状态
  2. 加5kg镇流器运行
  3. 无气动运行(或低阻力配置)

要记住的一件事是在验证模型时驱动程序的一致性/技能。圈速模拟是理想的,大多数FSAE车手不是赛车手,所以你需要在验证过程中考虑到这一点。

悬挂设置的四分之一汽车模型

平顺性模型是优化弹簧和阻尼器设置、表征平顺性质量和分析操纵性能的有用工具。这是一个新的项目,我们想要改进我们的悬挂设置,并进一步了解我们的赛车动力学。

最初的目标是在Simulink中得到一个7自由度的全乘模型,并输入轨道数据来模拟一个完整的电路。万博1manbetx考虑到这个模型首先是一个团队,它的野心太大了,我们意识到要想成功,我们需要对我们的基本原理有充分的了解。我们缩小到四分之一的汽车模型,验证它,用它来证明我们明年设计的部分内容,现在在重新接近全乘模型之前,我们正在以它为基础开发半乘汽车模型。

四分之一汽车模型,我们在Simulink中使用基于方程的方法,输出到MATLAB。万博1manbetx它由三个子系统组成:道路输入、非簧载质量和簧载质量。通过将我们从步进输入记录到我们的汽车的线性电位器数据相关联,我们验证了我们的模型。

从Simulink模型得到的底盘位移输出非常接近我们的linpot的实际位移;万博1manbetx在林肯设计时,我们用它来证明阻尼力图的合理性。明年,我们将充分分析我们的悬挂设置与四分之一的汽车模型,并使用它作为基线来建立我们的半车模型。半车模型将使乘坐质量模型,并将帮助我们保持我们的航空目标。

对我们来说,这是学习的一年,但Simulink对我们在林肯的胜利起到了巨大的帮助;万博1manbetx如果你考虑转向更复杂的车辆动力学和控制系统,我想我们整个团队都会说:“大胆尝试!”“这将是成长的一年,但Simulink允许你专注于设计,这样你就万博1manbetx可以准备好在comp上展示你的工作,并在来年取得更大的进步!”

干杯!

艾琳,马特,凯特莉,格雷格和安德鲁

|

コメント

コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。