学生休息室

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

为什么要用基于模型的设计来建造你的赛车

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

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

建模

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

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

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

仿真软件

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

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

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

建模类型

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

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

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

  • 创建和模拟模型比构建和测试硬件原型成本更低。
  • 使用模拟软件可以让他们在硬件构建之前测试不同的设计。
  • 将仿真软件与硬件连接起来,可以测试完整设计的集成。

基于模型的设计

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

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

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

控制系统与反馈回路

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

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

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

开发流程v图

显示系统开发过程的一种传统方法是v图。该过程从左上角的系统需求和规范开始,然后沿着左边的分支向下移动,将系统分解为子系统,这些子系统首先被设计,然后在v的底部实现。然后向上移动到右边,有一系列的集成和测试步骤,首先是在单元级别,最后是在汽车中,称为系统级测试。

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

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

对于电机控制问题,您可以从动力传动系统控制概念(需求)的草稿开始。这甚至可以在不使用电脑的情况下实现,只需要笔和纸。然后,您可以使用建模工具,例如Simulink,为您所设想的第一个模型(系统和组件设计金宝app)。在这个级别上,所有事情都发生在您的计算机上。

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

你可以考虑“爬”上V形的右侧分支,把越来越多的算法带到你的汽车上,并同步测试它们。首先,您将在ECU上运行代码,您的计算机将充当汽车模型(子系统测试)。您将逐渐远离计算机,并进行硬件在环测试(HIL),这意味着在强大的实时机器上运行汽车模型模拟。最后,你在ECU上运行的控制器将不再与你的PC通信,但它实际上会让你的汽车移动。请注意,在V的左分支和右分支之间切换的速度越快,就可以越快地将模型上的更改合并到赛道上的赛车中。

观看我们的“代码生成基础知识”视频,并阅读DUT(代尔夫特理工大学赛车队)的用户故事以获得更多信息。

结论

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

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。