首页/文章/ 详情

基于GCAir和GCKontrol的半实物仿真

2年前浏览2283
摘要:

本文展示了如何用GCKontrol和GCAir实现半实物仿真。我们首先简单介绍一下半实物仿真或硬件在环HiL (Hardware-in-Loop)的概念和用途。


HiL是一种控制器测试方法。控制器是实物,被控对象是一个实时仿真模型。通过实时仿真机的硬件板卡、I/O接口与被测对象(控制器)连接,对被测对象进行全方面的、系统的测试。从安全性、可行性和合理的成本上考虑,HiL硬件在环仿真测试已经成为开发流程中非常重要的一环。这个技术在航空航天汽车等领域是一个很标准的应用。


本实例将GCKontrol建模、GCAir模型集成、GCAir实时仿真机和硬件板卡相结合,完成了从建模到硬件输出的完整过程,并验证了仿真过程的实时性。工程总体示意图如下:


 
图1:一体化工具链工程总体示意图

其中GCKontrol用于搭建模型,该工程模型可视为一个独立的模块,可以生成FMU运行到GCAir、进行半实物仿真,在实时仿真机上基于工业总线的板卡配置,与被测硬件连接,可进行硬件在环(HiL)测试。


   
 本实例以GCKontrol的涡轴发动机工程为基础,在其中加入PWM方波生成器,使得该系统工程在每个步长运算时会运行一次PWM波。在此基础上将工程模型导出为FMU,将该FMU导入GCAir工程,然后进行硬件端口配置,输出模拟量及数字量。最后在工程运行时,实时仿真机的数字量输出端口与示波器相连,PWM波信号可以在示波器显示,并验证和得到实时性结论。


图2:涡轴发动机工程从GCKontrol到半实物仿真机的硬件输出示意图
该文包括以下六个部分:
1.GCKontrol涡轴发动机模型介绍及PWM生成器模块加入,及导出FMU。
2.将FMU导入GCAir工程,进行参数设定及输出端口配置
3.被测硬件输入端口与硬件板卡绑定
4.用示波器与硬件板卡的端口进行连接,并运行工程
5.在示波器捕捉PWM信号并测量周期。
6.结论:实时性1kHz方波,无延时。

一、GCKontrol涡轴发动机模型介绍及PWM生成器模块加入,及导出FMU


GCKontrol涡轴发动机工程模型,由发动机、负载、控制三部分组成,发动机系统模块、控制系统模块、负载系统模块;同时在该模型中加入PWM生成器,总体工程如下图所示:


图3:GCKontrol涡轴发动机模型及PWM生成器模块加入,及导出FMU

在该模型中有一个输入量,三个输出量,其对应的含义分别为:
输入量:speed_set为发动机的设定转速,该数据在控制模块。
输出量:speed_load为发动机实际转速,该数据在负载模块。
输出量:fuel_flow为发动机燃油量,该数据在控制模块。
输出量:out_pwm为PWM生成器的数据,该数据在PWM方波模块。
注意:在加入PWM生成器模块时,需要把频率和副值设为全局参数,以在后期导入GCAir后能对这两个参数进行调节。
基于以上的GCKontrol工程的输入输出设定,导出工程的FMU。


二、将FMU导入GCAir工程,进行参数设定及输出端口配置


GCAir工程中第一个虚拟子系统用于导入涡轴发动机工程的FMU,第二个虚拟子系统用于设为被测硬件。如下图所示:


图4:GCAir工程示意图

导入该FMU后,有一个输入量和三个输出量如下表所示


In_speed_set设定的飞机发动机目标转速
Out_control_speed飞机发动机输出的实际转速
Out_fuelflow控制系统输出的发动机油耗
Out_PWMPWM生成器生成的方波信号



图5:导入FMU

由于FMU的输入参数是飞机发动机的目标转速,所以该转速需要给定一个固定值,在该GCAir工程中,采用表达式模块设定,此处设为27(rad/s)。如下图所示:


图6:设定飞机发动机目标转速

对FMU的三个输出量做端口配置,以用于和被测硬件进行连接。三个端口配置如下图所示:


图7:对三个输出量做端口配置

对三个输出量与三个输出端口建立连接,如图所示:


图8:输出量与端口进行连接

三、被测硬件输入端口与硬件板卡绑定


被测硬件子系统需要三个输入,才能与系统模型子系统的三个输出端口建立链接。被测硬件的子系统做如下端口配置,然后对各个端口进行硬件端口绑定。如下图所示:


图9:被测硬件的端口填加

在编辑硬件连接时,会有半实物仿真机(RTSE)的硬件列表,列出所有硬件及板卡信息。三个输入量中,飞机发动机实际转速和飞机发动机油耗是两个模拟量,PWM生成器的方波信号是数字量(0101010101…)。故选择两个模拟量端口和一个数字量端口。

模拟量的输出量程为设为0~10V电压,故需要将飞机发动机转速和油耗两个物理量转换至0~10V之间,才能在模拟量端口输出。故需要设置增益和偏移,才使模拟量端口输出信号可从示波器观察并被捕捉。


四、用示波器与硬件板卡的端口进行连接,并运行工程,及性能检测对比。


依据被测硬件信息,我们用示波器的正极与数字量输出(DQ)相连,负极接地。在GCAir的2D面板上可以看到涡轴发动机的目标设定转速与实际转速的输出对比,如下图所示:

图10:实时仿真机在GCAir 2D面板输出的涡轴发动机转速(实际值与目标值)实时性能检测与对比:

1.运行在GCAir配套的Linux 实时仿真机(IPC)。
分别设三个调度周期,T=0.01秒,T=0.001秒,T=0.0001秒。

图11:GCAir配套的Linux实时仿真机(T=0.01秒)性能检测

图12:GCAir配套的Linux实时仿真机(T=0.001秒)性能检测


图13:GCAir配套的Linux实时仿真机(T=0.0001秒)性能检测
2.运行在GCAir的PC(Windows)机。
分别设三个调度周期,T=0.01秒,T=0.001秒,T=0.0001秒。


图14:GCAir的PC(Windows)机(T=0.01秒)性能检测

图15:GCAir的PC(Windows)机(T=0.001秒)性能检测

 图16:GCAir的PC(Windows)机(T=0.0001秒)性能检测


由性能检测结果-线程实时曲线(秒)可知,在该工程中设定的调度步长(秒)(图中红线),实际每个步长的调度时间(秒)蓝线,蓝线均在红线之下。

结论1:调度周期从0.01秒,0.001秒到0.0001秒,每个调度周期的实际耗时越来越大。由线程实时曲线(秒)可知:

GCAir在个人电脑PC机的Windows系统运行时,在调度周期为0.01秒(图中红线),每个周期实际耗时(图中蓝线)比设定调度周期小。但在0.001秒和0.0001秒调度周期时,每个周期实际耗时(图中蓝线)均高于设定的调度周期(图中红线)。GCAir在配套的Linux实时仿真机运行时,在调度周期为0.01秒, 0.001秒, 0.0001秒(图11,12,13中红线),每个周期实际耗时(图中蓝线)均比设定调度周期小。

故:以上表明GCAir在配套的Linux实时仿真机运行,符合实时性调度。

结论2:由性能检测结果-FMU操作占用的时间(秒)可知:

GCAir在个人电脑PC机的Windows系统运行时,调度周期为0.01秒,0.001秒,0.0001秒时,工程运行总时长分别为67.5秒,62.5秒,59.6秒,均高于调设定的仿真时长30秒。

     GCAir在配套的Linux实时仿真机运行时,调度周期为0.01秒, 0.001秒, 0.0001秒时,工程运行总时长分别为0.54秒,1.04秒,2.2秒。均远小于设定的仿真时长30秒。

故:以上表明GCAir在配套的Linux实时仿真机运行,符合实时性调度,且更高效。

五、在示波器捕捉PWM信号并进行周期测量


启动GCAir工程,在半实物仿真机运行,并用示波器与PWM信号输出端口相链,可捕捉如图所示的PWM波,占空比为50%和30%的数字信号输出如图,在GCAir 2D面板可实时显示实时仿真机运算的PWM波,占空比为50%和30%。如下图17~图20。将示波器波形进行精度测量,数字信号输出的时间精度在0.1ms之内。


图17. PWM方波的输出捕获(占空比50%)

图18. GCAir 2D面板输出的PWM方波 (占空比50%)

图19. PWM方波的输出捕获(占空比30%)

图20. GCAir 2D面板输出的PWM方波 (占空比30%)

六、结论:GCAir实时性验证


由示波器测量可知:仿真模型、实时仿真机、硬件处理,均满足了实时性精度,实时性<0.1ms(毫秒),该指标满足大多数控制器测试场景。

航空航天汽车UG控制数控
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-29
最近编辑:2年前
世冠科技
国内领先的系统仿真工业软件和数...
获赞 25粉丝 17文章 142课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈