森木磊石数字电源技术
直播中

CC_Tasya

2年用户 377经验值
私信 关注
[讨论]

快速控制原型/实时仿真/硬件在环?到底是个啥?

最近,看到好多做宽恕控制原型的朋友都在纠结,怎么一会儿叫实时仿真,一会儿叫硬件在环,快速控制原型的,这些都有什么区别呢。
嗯,遇到事情不要慌,拿出手机,发个朋友圈。。。。。好了,言归正传,今天,我们就来说一说快速控制原型产品的前世今生,避免韭菜们继续被收割交智商税(狗头保命)。
【概念傻傻分不清楚】
说到快速控制原型,我们就先梳理一下什么实时仿真,硬件在环,快速控制原型的这些近似的名词概念。
首先,我们先简单说一下仿真。一个系统的仿真一般会分成两个部分,Plant和 Controller,也就是被控对象和控制器。如下图所示,这是一个直流微电网的Simulink模型,模型里面大致可以分成两部分,一部分是直流微电网主电路组成的Plant,一部分是它对应的控制系统Controller。
图片21.png
Plant和Controller的区别在哪呢?Controller一般的表征就是一些逻辑,计算函数与数学方程等,这些通过编译器直接就可以对应的C代码,而Plant一般来说表征的是具体行业的应用系统,比如说电力,机械等;它呈现给用户的更多的是它的物理表现,比如说电力的发电机,负载,开关管,机械里面的管道,阀门,通过连接的方式形成一个物理系统,要想仿真他们,得先建立起他们的数学物理方程,转化成数学问题之后再计算。所以Plant比Controller 要复杂一些,需要中间有一个将物理形态呈现转化成数学方程的过程,如下图,就是异步电机元件的解析过程。这个小编暂且叫它解算器吧,各个领域应该都有各自领域的解算器,比如simulink里面的Powergui,就是针对Powersystem的解算。
当然,事无绝对,小编也见过不少牛人不屑于商用软件提供的这样的物理系统的元件库,自己用方程来搭建,也就是自己已经把解析成数学方程或者函数的过程给实现了,不过大部分小系统还行,复杂系统自己来些就有些费时了。
图片22.png
再回到实时仿真,当系统的仿真变成在实时系统进行的时候,也就是和真实物理世界的时间尺度一致的时候,我们就称为实时仿真了。既然已经和真实物理世界的时间尺度一致了,那就可以和实物对接来进行更贴近真实情况的测试了。结合上面的解释来看,实时仿真可以分为三类。
1, 实时仿真的Plant+ 实时仿真的Controller
2, 实时仿真的Plant+真实的控制器
3, 真实的Plant+实时仿真的控制器
所以概念是不是很清晰了。第1种呢,那就是纯数字的实时仿真,当然,你可以放在一个实时仿真系统里面,也可以拆分成两个实时仿真系统,有时候我们也叫它模型在环系统。(MIL, Model in the loop)。
图片23.png
2种和第3种,把其中一部分的实时仿真系统换成了实物系统,叫半实物仿真(一半换成了实物嘛,所以叫半实物),或者叫硬件在环系统(HILhardware in the loop),而这其中的第3种实时仿真形式,才是快速控制原型(RCP, Rapid Control Prototype)。
图片24.png
所以呢,那些混淆各种概念的来卖产品的厂家,宣传这块就是拿捏得死死的,具体目的嘛,你品,你细品。

【天下武功,唯快不破】
既然叫做RCP快速控制原型,那特点必然是在“快速”二字上。起初人们设计快速控制原型的目的就是在产品设计初期,能够较快速的在实物上去验证控制算法的有效性,从而使得在后面产品验证阶段规避掉软件算法上的问题,缩短研发周期。
天下武功,唯快不破,这个道理适用在实时仿真产品上,也适合RCP产品。这里的快,不是指仿真速度要快,仿真速度的快慢取决于应用需求,当然,仿真速度越快的产品适用范围越广,因为小于这个仿真速度的都能满足。这里的快速,指的是很快的使用起产品来完成自己的应用需求。如何让RCP产品被用户快速使用达到自己的使用目的,才是RCP的本质存在意义。
目前来说,市面上的RCP的产品种类很多,但是评价会存在一定的误区。这里想和大家分享一些个人的见解。
【误区一】:硬件指标越高越好。
这个观点小编觉得不一定正确。大部分情况下我们可以认为,硬件性能越高,计算力就越强,在满足运行速率的条件下,能够仿真的算法就可以越复杂,满足更多的应用需求。但是不同硬件架构上设计的软件体系不一样,会影响到代码执行的效率,以及运行时的稳定性,比如时间抖动,实时性等问题。需要综合考虑更妥当。可能硬件可靠性反而更加关键,可以保证使用过程中不会因为硬件问题导致工作中断。从小编过往项目经验来说,硬件产品出现问题解决得时间比软件出现问题解决得时间要长得多,这就会大大影响快速完成算法验证的过程。 但谁家产品硬件可靠性更好,就不好评价了,给一个眼神,好好体会吧。
【误区二】:兼容matlab/Simulink才是王道,其他都是弟弟
我们不得不承认,Matlab/Simulink在仿真控制领域有着灭霸一样的统治实力。兼容Simulink可能能满足80%以上的用户的需求。但术业有专攻,例如小编熟悉的电力电子控制领域,也有PLECS ,Psim 这样的仿真软件有着一席之地,如果用户之前一直沿用的就是这些软件,当然是基于这些软件的RCP系统会更加容易继承之前的仿真模型。一味强调只有兼容Matlab/Simulink才是最好的就有失偏颇了。所以选择兼容自己熟悉的仿真平台的RCP系统才是合理的选择。
所以,小编觉得一个好的RCP产品,应该具备以下三个特质:
1, 稳定的硬件平台,稳定的硬件是基础,才能大大加快和实物对接的调试进度。
2, 适合易用的软件平台   人性化的软件平台,能大大降低用户的学习成本,加快项目开发
3, 专业的技术服务     不管是售前还是售后,专业性永远是对用户使用的最大保障。
EasyGo RCP产品篇
EasyGo成立之初,其实寓意就如其名,EasyGo,让实时仿真变得易用高效。不管是RCP,还是HIL产品。为此,除了选择可靠的硬件和提高本身专业的技术能力,我们采纳了许多客户给我们的反馈来改进软件交互体验,力争给用户一个更加方便使用的交互界面。我们采用的也是兼容Matlab/Simulink的方式(对于做控制的用户来说还是最广的,后面可能也会继续增加兼容的仿真软件),然后根据用户使用习惯来不断改进软件使用体验。其中有以下几点可以给大家分享:
1, 嵌入特有的IO工具包
目前来说RCP软件会分为两类, 一类是在仿真软件中嵌入自己的IO库,在仿真软件中对模型直接进行IO的连线配置,然后整体下载至RCP的软件中;另一种是不嵌入库,模型搭建好之后,载入到RCP软件中再进行硬件IO和模型IO的列表配置。 我们通过用户调查,前一种方式可能更受用户的喜欢,符合使用习惯,后者会需要记住模型中端口的物理含义,然后再进行每个端口的配置,当模型的接口数量少的时候可能提现不出来,但当模型比较复杂,IO比较多的时候,列表的显示形式在出错之后不太容易检查出来。
2, 简化环境参数配置
simulink为例,其实在从离线仿真转到RCP中,也会有很多环境需要设置,比如模型初始化参数配置,编译环境的选择,仿真模式的选择,步长的选择诸如此类,我们采用一键编译功能,根据用户选择的模型和硬件,自动选择最合适的配置,减少了各种繁琐的环境配置操作。
3, 提供调试模式与性能模式的选择
RCP软件两个最基本最重要的功能就是在线实时调参以及数据上传显示与存储。这是在RCP系统调试过程中经常需要用到的功能。而当调试完成之后,用户需要对模型代码进行优化,看看是否可以更快的运行达到更好的控制性能,这个时候,可以采用性能模式来优化模型的代码,达到更好的运行效率。实测下来,性能模式下一般会减少20%-25%的代码量,提高模型运行效率。
4, 数据存储成通用格式,方便做后期数据处理分析
目前可以将数据保存成,tdms,CSV, mat 等通用数据格式,方便导入matlab,LabVIEW等软件进行数据处理分析。

更多回帖

发帖
×
20
完善资料,
赚取积分