学生休息室

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

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

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

- - - - - -

介绍

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

牵引控制器设计

汽车模型

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

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

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

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

显示后轮速度对比的MATLAB图形从一个真实的加速度运行(橙色)和模型输出的蓝色。加速度、最高速度和滑移特性都非常接近。

牵引控制器

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

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

向前转矩控制器计算驱动器所需扭矩和扭矩
为了保持滑动小于等于0,应该减小哪个

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

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

在获得C文件之后,我们必须弄清楚如何将它们合并到我们的车辆控制器代码中;我们在定制的PCB上使用NXP mpc574p MCU作为我们的车辆控制器。Simulink生成的代码接口报告显示,为了与新的C“库”进行万博1manbetx交互,你需要调用4个主要api:

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

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

通过这个简单的Simulink模型万博1manbetx在我们的车上运行,我们可以将林肯的加速时间缩短近半秒!为了说明这一点,下面我们有一些图来自林肯的两次加速,一个使用牵引力控制,一个不使用牵引力控制。

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

起初,我们的结果似乎有点令人惊讶;尽管没有使用牵引力控制系统,我们看到司机并没有滑倒。考虑到赛道对我们的加速跑来说是湿的,我们的主要目标是保持牵引力,我们查看了油门,看看车手是如何做到的。他通过非常小心地踩油门来控制滑倒:看看他花了多长时间才踩满油门,以及他是多么小心地接近它。然而,在我们的下一次试车中,我们打开了牵引力控制系统,这一次驾驶员不必小心地限制油门来控制打滑。相反地,当我们的Simulink模型完成剩下的工作时,他能够立即达到最大的油门位置。万博1manbetx

林肯加速牵引力控制系统,3.687秒

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

一圈时间模拟

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

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

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

  1. 使汽车按正常配置运行
  2. 运行时加5公斤压舱物
  3. 没有空气动力学(或在低阻力配置)运行

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

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

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

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

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

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

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

干杯!

艾琳,马特,卡特利,格雷格和安德鲁

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。