学生休息室

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

为什么要设计基于模型的赛车

今天,让我来分享一下为什么我在设计赛车时要建模和模拟。

底线:它可以节省你的时间和资源,并帮助你测试那些使用硬件原型难以实现的想法。

建模

建模是一种创建包含软件和硬件的真实系统的虚拟表示的方法。如果这个模型的软件组件是由数学关系驱动的,那么您可以在广泛的条件下模拟这个虚拟表示,以查看它的行为。

建模和仿真对于单独使用硬件原型难以再现的测试条件特别有价值,特别是在设计过程的早期阶段,当硬件可能不可用时。在建模和仿真之间的迭代可以在设计过程的早期提高系统设计的质量,从而减少在后期发现的错误数量。

系统模型的常用表示包括框图、原理图和状态图。使用这些表示,你可以建模,例如机电系统,控制软件,信号处理算法和通信系统。

仿真软件

模拟软件帮助您预测系统的行为。汽车公司和学生竞赛的工程师使用模拟软件:

  • 评估新设计
  • 诊断现有设计的问题
  • 在难以重现的条件下测试系统,例如在高速情况下的系统故障

要运行模拟,您需要您的系统的模型。模型可能纯粹基于第一性原理,也就是说,你知道基本的物理原理,并且能够使用方程来表示系统。与此相反,您可能根本不了解系统的行为,即对您来说它是一个黑盒子。实际的例子大多介于两者之间。

建模类型

当条件随时间变化或事件发生时,仿真软件计算模型的行为。仿真软件还包括可视化工具,以帮助在运行时监控仿真。

在这里找到两个MATLAB Simulin金宝appk赛车休息室的视频链接,重点是这个主题的植物建模。

总之,工程师和科学家通常使用模拟是因为:

  • 创建和模拟模型比构建和测试硬件原型要便宜。
  • 使用仿真软件可以让他们在硬件上构建不同的设计之前测试不同的设计。
  • 将仿真软件与硬件连接,可以测试整个设计的集成。

基于模型的设计

学生团队大量使用仿真来设计控制系统的领域,这种方法被称为基于模型的设计。在深入研究基于模型的设计的核心之前,让我们为您的赛车开发创建一个案例。

让我们考虑一个电力动力系统。按下油门踏板会向发动机发送一些信号,汽车就会开始运动。你可以把控制器想象成将踏板位置转换为施加到电机上的电压的对象。这个工厂就是你的汽车(模型),它会对旋转的马达做出反应而加速。这听起来相当简单,但让我问您几个问题,您将认识到包括建模在内的结构化开发方法的好处。

  • 如何确定电机扭矩和汽车重量之间的最佳比例?
  • 你如何确保你开发的控制算法(可能是在Simulink中)在汽车的发动机控制单元(ECU)上的表现与在计算机模拟中相同?金宝app
  • 在每个设计步骤中,你的策略是什么来最小化错误?
  • 在测试当天,在调整了一些控制器设置后,你需要多长时间才能让你的汽车回到正轨?

带有反馈回路的控制系统

基于模型的设计是一种用于开发复杂控制系统的数学和可视化方法。它是在整个开发过程中对模型的系统使用,用于设计、分析、仿真、自动代码生成和验证。它广泛应用于运动控制,工业设备,航空航天和汽车应用。

基于模型的设计可以类似于计算机辅助设计(CAD),它允许机械设计师创建虚拟装配,以了解产品部件是否会在制造之前一起工作。同样,基于模型的设计允许嵌入式软件开发人员创建仿真模型,以便在编写嵌入式代码之前了解算法是否可以工作。它还有助于优化整个系统设计。

通过虚拟样机,系统工程师可以很容易地看到整个系统(机械、电气、液压和气动,以及嵌入式软件)是否能按照预期工作,甚至在硬件制造和可用来测试之前。嵌入式软件开发人员可以从仿真模型中自动生成嵌入式代码。这类似于如何将CAD图自动转换为数控(NC)加工指令。

开发过程V-diagram

显示系统开发过程的一种传统方法是v图。流程从系统需求和规范,在左上角,然后向下移动左分支通过系统分解成子系统,它们的底部设计,然后实现诉然后右边,有一个接一个的集成和测试步骤,首先是单元级测试,最后是汽车级测试,称为系统级测试。

事实上,许多工程组织正在将集成和测试活动从V的右边移到左边,在使用模型的设计过程中做更多的验证。

V是开发过程的2D视图——x轴是时间,而y轴是抽象级别。当你向下移动到V的左边时,你在顶点上的实现为设计添加了越来越多的细节。当您向上移动V的右手边时,您将考虑越来越高的集成级别,并在最后使用最终的工作产品进行测试。下载188bet金宝搏

对于电机控制问题,您可以从您的动力系统控制概念(要求)的草案开始。即使不使用电脑,只使用纸和笔,也可能发生这种情况。然后,您可以使用建模工具,例如Simulink,来建立您所设想的第一个模型(系统和组件金宝app设计)。在这个层面上,所有的事情都在你的电脑上发生。

在确保你的模型做了正确的事情之后,是时候考虑部署了,例如让算法在你的车上运行。通常,ecu是使用C/ c++或HDL代码之类的语言编写的。软件工具允许将您的模型与ecu集成,可以通过完全集成的方法,也可以通过生成的代码,您可以将生成的代码复制到集成开发环境(IDE)中。通常在完成这一步时,您只是在开发的中途。

你可以考虑“爬上”V的右手边分支,将越来越多的算法带到你的汽车上,并同步测试它们。首先,您将在您的ECU上运行代码,您的计算机将作为汽车模型(子系统测试)。您将逐步离开计算机,进行硬件在环测试(HIL),这意味着在一个强大的实时机器上运行您的汽车模型模拟。最后,您的控制器运行在ECU将不再与您的PC通信,但它将实际使您的汽车移动。注意,在V型车的左、右分支之间切换的速度越快,你就能越快地将车型上的变化融入到赛道上的赛车中。

观看我们的“代码生成基础”视频,并阅读来自DUT (TU Delft车队)的用户故事以获得更多信息。

结论

我很想听听你对这篇文章的看法。它适用于你吗?你还缺什么想看的吗?欢迎任何建设性的反馈!

|

评论

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