学生休息室

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

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

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

- - - - - -

简介

近年来,我们发现运行模拟和构建控制系统对于任何获得FSAE冠军的赛车来说都变得越来越重要,但对我们的团队来说,这些项目似乎还不明确。从简单的开始,我们花了过去一年的时间研究和设计了一些基本的控制系统和模拟我们的后轮驱动车辆,我们可以在Simulink中构建和运行;万博1manbetx我们建立了一个点质量车辆模型,一个纵向牵引力控制系统,一个大腿模拟,和一个四分之一的汽车乘坐模型。虽然我们团队今年的目标是生产一辆可靠、可使用的轻型汽车,但我们的额外控制/车辆动力学目标是专注于适应我们正在为比赛和下一年做准备的Simulink系统。万博1manbetx有了这些,我们在FSAE林肯车展上获得了第一名,我们很高兴能在明年为我们的新四轮驱动汽车编写扭矩矢量算法、双轨车辆模型和全驾模型。

牵引控制器设计

汽车模型

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

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

制作车辆模型最困难的部分是整合轮胎模型。我们最终使用了MFeval,这是一个在MATLAB文件交换上可用的免费库,可以做到这一点。MFeval包含从TIR文件评估魔法公式模型的必要方程。

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

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

牵引控制器

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

状态估计器计算轴速和目标和实际滑移比之间的delta (dslip);输出输入正向转矩控制器

正向转矩控制器计算出司机所要求的扭矩和所得到的扭矩
为了保持dslip小于等于0,应该减小哪个

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

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

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

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

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

有了这个简单的Simulink模型万博1manbetx,我们在林肯赛道上的加速时间就缩短了近半秒!为了说明这一点,下面是我们在林肯赛道上进行的两次加速测试,一次使用牵引力控制,一次不使用牵引力控制。

没有牵引力控制的林肯加速跑,4.16秒

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

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

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

圈速模拟

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

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

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

  1. 以正常配置运行汽车
  2. 加5公斤压载水运行
  3. 无气动运行(或低阻力配置)

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

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

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

最初的目标是在Simulink中获得一个7DOF的全程行驶模型,并输入赛道数据来模拟整个电路。万博1manbetx考虑到这个模型是团队优先的,它太雄心勃勃了,我们意识到要想成功,我们需要完全理解我们的基本原理。我们缩小到四分之一的汽车模型,验证它,用它来证明我们明年的部分设计是正确的,现在在重新接近全乘模型之前,我们正在为半乘模型构建它。

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

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

对我们来说,这是一个重要的学习年,但Simulink为我们在林肯的胜利提供了巨大的万博1manbetx帮助;如果你正在考虑转向更复杂的车辆动力学和控制系统,我想我们整个团队都会说:“迈出这一步吧!”“这将是一个成长的一年,但是Simulink可以让你专注于设计,万博1manbetx这样你就可以准备好在comp上展示你的作品,并在来年迈出更大的一步!”

干杯!

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

|

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。