大家好,我也来回答一下这个问题。第一次在知乎这么正式回答问题。
@冷哲希望大神如果有空瞧一眼,还有没有解释不对的:)
我是在国内学的控制工程理论,学完也不知道具体是咋用的。直到出来读了机械的研究生。补上了他们本科控制的相关课程,这几门课分为理论和实践。理论就是PID控制的设计和分析。实践的部分就是教授带着我们,每人一套dSpace设备在实验室做项目(直流电机转速控制,步进电机转速控制,四位三通液压阀控制,电动车 etc.)。现在终于对这块儿有了一个比较清晰的认识。
背景介绍完毕!
以下是我的一些理解。
首先我想给出一些概念
快速原型有两个!
Rapid Prototyping(Rapid Mechanical Prototyping) : 这个是针对纯硬件领域的快速模型。比如我要新设计一款四缸发动机,那么我可以先在catia里面三维建模一些零件,然后把我的零件模型导入3D打印机(或其他技术,不赘述)打印出来一个Prototype,然后对这个原型进行静态动态分析。因为利用3D打印技术,所以大大降低了零件加工的难度,从而加快了研发进度。这也就是所谓的Rapid
Rapid Control Prototyping:这个是针对所有工业嵌入式控制系统开发而言的快速模型。
open loop control,close loop control,PID Control ,.......(请自行Google)
嵌入式控制系统 embedded control system:
比如我们汽车上的ESP系统,
1 我们有一辆车
2 我们发现车在一些路面轮胎会打滑,打滑导致危险
3 汽车工程师发现,如果可以控制发动机的输出扭矩,刹车钳适当的开闭,从而使轮胎的滑移率总是保持在一个理想的范围内,那么我们开车就安全了!
3.5 汽车工程师选择传感器(压力,转速,加速度.....)和促动器(可调节的液压阀.......)
4 Software汽车工程师设计控制算法(比如很复杂的PID control,State Space,slide model control)
5 Hardware汽车工程师根据算法的要求挑选单片机和电路元器件,然后设计并制造控制PCB板
6 汽车工程师把设计好的软件编写到第5步的PCB板上(这个板就是我们汽车领域所说的ECU)
7 汽车工程师把这个PCB板和发动机和刹车系统连起来
8 well done! 我们的车现在就不会打滑了!
9 给汽车工程师发奖金
示意图如下:
我讲这个是因为,我在查国内的资料的时候发现很多人都认为嵌入式开发就是写C代码,我觉得其实并不是!上述就是一个非常非常粗略的嵌入式系统开发的大概步骤。
总结:何为嵌入式?
粗俗的说,就是我们弄出一个ECU,然后把ECU插到我们要控制的系统里面,对系统进行控制。如果控制的不好或者开发新功能,那么拔下来调试,然后再插回去。这一整套的硬件、软件、系统的开发就是所谓的嵌入式控制系统开发。C编程仅仅只是其中的一部分。最后,由于有了嵌入式控制,我们的系统就变得智能了。(自动停车,电动车,自动驾驶,六轴机械臂·······)
在这个开发过程中使用的最多也是现在最流行的开发方法就是Rapid Control Prototyping
用的最多,也是最好,最贵的软硬件结合的设备就是 dSpace system,对于汽车开发他们公司最出名的产品就是microautobox。
我们的传统开发过程:
困难和问题:
1 一定会有不合适,不合适就要返工,返工就要拖延开发时间!
2 可以看出这是一个跨学科的复杂项目,所以机械、电、计算机程序,硬件,软件综合起来使项目风险变得很高。其实说人话就是,只要一步错就要倒头重来,又要再花钱,贵啊!
3 对于control system的开发要等到二期成果出来以后!
GOOD IDEA
为了减少返工,加快研发时间,能不能在我们的硬件(mechanic and electronic)还没出现的时候就可以进行控制系统的开发?换句话说,控制系统的开发能不能和硬件(mechanic and electronic)开发同时进行?
答案是:能!
解决办法:
那么我们要干控制,就必须首先要有整个系统 (mechanic and electronic) 才行啊,怎么办?
对整个系统建模!最常用的软件当然就是我们大名鼎鼎的Matlab/Simulink,其实对于汽车还有专门的软件IPG Carmaker, 我现在用的就是这个。
上述的就是基于模型设计的Conception!其实随着基于模型的理念发展,这种研发办法已经不限于控制了。
(中文越来越弱了,如有啰嗦的部分请见谅,这么久才回答了题主不到三分之一的问题Orz....)
--------------------------------------------------------------机械切割-----------------------------------------------------------------
那么何为Rapid Control Prototyping(快速原型)?
这就不得不提到牛逼的dSpace盒子
这个就是我在前面提到的microautobox
在硬件出来之前:
对于硬件系统(mechanic and electronic)建模:
1 Matlab/Simulink可完成mechanic 和传感器,促动器的建模
2 microautobox就是electronic硬件,也相当于就是很多ECU的组合,它比汽车单个的ECU功能强大的多。你可以只当一个ECU来用,也可以当多个ECU来用。
3 这个盒子硬件部分可以接传感器,促动器。软件可以接Matlab/Simulink
4 我们在Matlab/Simulink里面设计控制算法,比C更直观容易理解
5 算法自动转码成C Code到这个盒子
6 dspace还有对应软件可以看输出端实时(realtime)响应曲线
等汽车造出来以后
7 电脑--------盒子------CAN BUS------汽车连接起来 (这就是HIL的一种,什么是Hardware In the Loop 就不细说了)
8 一个人开车,一个人坐在副驾驶座上用软件实时的调节各项参数
9 所有都合适之后,生产单个的ECU(发动机ECU,ABS的ECU,ESP的ECU......)
10 FINAL TEST
11 well done!给汽车工程师发奖金
快在哪里?rapid?
同时开发!
无需编程C Code!你知道,编程出错很多的。这也使得工程师可以专心干控制!
电控硬件已获得(microautobox)!
realtime testing !
以上就是快速原型和dSpace的非常非常粗略的介绍,请结合楼上大神们的V model一起服用!
如有不清楚的地方,欢迎留言,私信,加好友!
共同学习,共同进步!
最后,感谢你对本篇扯淡的耐心阅读:)
(如果有时间,我想再举一个详细的电动车例子给大家,以上真的都是很粗略浅显的理论介绍,望见谅!)