学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#studentsuccess金宝app

如何使用simulink在配方sae赢得金宝app

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

-

介绍

近年来,我们看到运行模拟和建筑控制系统对任何奖杯赢得FSAE汽车越来越重要,但对于我们的团队而言,这些项目似乎是未定义的。为了开始简单,我们花了过去的一年的研究和设计我们的后轮驱动车辆的基本控制系统和模拟,我们可以在Simulink中构建和运行;金宝app我们建立了一个点质量车辆模型,纵向牵引力控制系统,搭载SIM卡和四分之一的汽车骑行模型。虽然我们今年的团队目标是生产可靠,可维护和轻型车,但我们的额外控制/车辆动态目标是专注于对我们建造的Simulink系统感到舒适,以便为竞争提供竞争和持续的一年。金宝app有了这些,我们在FSAE林肯带回家的第一名,兴奋地写一个扭矩矢量算法,双轨车型,以及在来年的新全轮车车辆的全面乘车型号。

牵引力控制器设计

汽车模型

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

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

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

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

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

牵引控制器

我们的纵向牵引力控制系统随后使用Simulink构建、调整并部署到我们的定制车辆控制器。它由一个计算轴速度的车辆状态估计器和一个防止车辆打滑以缩短加速时间的前向扭矩控制器组成。金宝app

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

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

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

一旦我们建造了模型,我们就必须在车上跑步。起初,它似乎有很多关于这个过程的冲突信息。我们跟着关于模型C代码生成的MATLAB文档这使得从我们的Simulink模型生成代码变得非常简单。金宝app

获取C文件后,我们必须弄清楚如何将它们纳入我们的车辆控制器的代码;我们在汽车控制器的自定义PCB上使用NXP MPC5744P MCU。Simulink生成的代码界面报告为您需要呼叫的4个主API,金宝app以便与您的新C'库进行交互:'

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

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

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

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

起初我们的结果似乎有点令人惊讶;即使没有应用牵引力,我们也看到司机没有滑倒。考虑到曲目对于我们的加权运行而湿润,我们的主要目标是保持牵引力,我们看着节流阀看看司机在实现这方面的作用。他通过非常仔细地应用油门来控制滑动:看看他达到充分的油门,以及如何小心他的方法是多长时间。但是,我们的下一次运行,我们转过了牵引力的控制,这次驾驶员不必通过仔细限制油门来控制滑动。相反,当我们的Simulink模型休息时,他能够立即达到最大的油门位置。金宝app

林肯加速牵引控制,3.687s:

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

一圈时间模拟

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

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

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

  1. 使汽车按正常配置运行
  2. 运行时加5公斤压舱物
  3. 没有航空运行(或以低拖动配置)

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

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

Ride Model是一种有用的工具,可优化弹簧和阻尼器设置,表征乘坐质量和分析处理。这是我们想要继续改善暂停设置的新项目,并进一步了解我们的汽车动态。

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

四分之一车型,我们在Simulink中使用了一种基于方程的方法,输出到MATLAB。金宝app它由三个子系统组成:道路投入,难以置的质量和涌质。我们通过将我们从步入输入到我们的汽车的线性电位器数据与我们的车辆中的线性电位器数据进行相关来验证我们的模型。

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

这对我们来说是一个很大的学习年度,但Simulink是在林肯中获胜的巨大帮助;金宝appif you’re considering the move to more complicated vehicle dynamics and controls systems I think our entire team would say ‘take the leap!’ It will be a growth year, but Simulink allows you to focus on design so that you can be ready to present your work at comp and to take even bigger steps the following year!

干杯!

Erin,Matt,Kattly,Greg和Andrew

|

评论

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