HPAC是华中科技大学数控中心的IEC61131-3编程系统,可将工控标准模型化代码编译下载到H842、H812等系列国产总线型PAC控制器上,满足工业现场在逻辑、运动、安全、HMI、信息化等方面的综合控制需求。
MWorks.Sysplorer是同元软控完全自主研发的系统仿真验证软件,可用Modelica语言对机械、电气、液压、控制、热、磁等多领域物理系统进行建模仿真计算。
IEC61131-3和Modelica分别是工控领域和工程学领域的国际标准,可以说没有IEC61131-3控制不了的设备,没有Modelica构建不了的物理系统,两者的有效结合可为工学带来巨大变革。
本文利用HPAC调用MWorks.Sysplorer的远程函数接口(用MWorks.Sysplorer模拟铁芯磁通量变化产生感应电流的物理过程,通过HPAC控制电源参数并获得MWorks.Sysplorer计算的感应电流),实现了二者的联合仿真。
1.目的
验证HPAC和MWorks.Sysplorer的联合仿真技术方案:在MWorks.Sysplorer中搭建仿真模型,在HPAC中通过外部函数控制仿真模型的部分参数并可以获取到MWorks.Sysplorer仿真运行的结果,通过实验验证该方案的可行性和稳定性。
2.思路
借鉴电磁转换的案例,在MWorks.Sysplorer中电压源模型采用正弦信号源。在HPAC中采用RBUF_READ和RBUF_WRITE功能块来进行数据的读取和写入。在MWorks.Sysplorer中此正弦信号源的参数(频率、相位和振幅)通过RBUF_READ获取HPAC数据,并将仿真结果数据通过RBUF_WRITE功能块写入到HPAC中。在HPAC中正好相反,是将此正弦信号源的参数(频率、相位和振幅)通过RBUF_WRITE写入到MWorks.Sysplorer中,并将仿真结果数据通过RBUF_READ功能块读取到HPAC中。
HPAC → MWorks.Sysplorer |
MWorks.Sysplorer→ HPAC |
||
参数 |
地址 |
参数 |
地址 |
正弦信号频率 |
10 |
信号电源电压 |
97 |
正弦信号相位 |
11 |
电磁仿真后感应电压 |
98 |
正弦信号振幅 |
12 |
电磁仿真后感应电流 |
99 |
本方案引用标准模型库中的电磁模型SaturatedInductor,该模型所采用的电磁转换原理可在MWorks.Sysplorer中左侧模型浏览器查阅,即找到“Modelica.Magnetic.FluxTubes.Examples.SaturatedInductor”并选中,右击 “→” 查看文档,本案例在原有模型基础上进行删减,右侧只留一个恒定磁阻。
3.效果
在HPAC中将正弦信号的频率、相位和振幅传输给MWorks.Sysplorer,MWorks.Sys-plorer根据接收到的信息产生相应的正弦信号,并以此作为电源参数进行电磁仿真。此时,可以在HPAC中看到电磁转换后的感应电压、感应电流等。
当在HPAC中更改参数值时,由这些参数所确定的正弦交变电流幅值/频率也随之发生变化(即电动势u1、闭合电路中的电流i1、铁芯线圈磁通量发生变化),从而引起右侧线圈的磁通量Φ发生变化,产生感应电动势,并在右侧电路中产生感应电流i2。例如,在HPAC中将频率由1Hz改到2Hz,我们可以在MWorks.Sysplorer中看到电源信号频率随之改变,导致磁通量变化,从而引起感应电压和感应电流频率改变。
本方案整体运行流程如下:
本方案分为HPAC工程和MWorks.Sysplorer工程两部分。首先,在HPAC工程中增加关于MWorks.Sysplorer仿真源参数,添加三个输入变量(如图中1框所示)和三个输出变量(如图中2框所示),在main_fbd中分别为电源的频率、相位和振幅;接着,将三个参数分别对应RBUF_WRITE的地址10、11、12中;增加三个从MWorks.Sysplorer读取的变量电源电压、线圈感应电压和线圈感应电流,分别对应RBUF_READ的地址97、98、99。
其次MWorks.Sysplorer工程在《HZPAC-MWorks.Sysplorer(Windows)数据交互》文档中的案例基础上补充修改。(MWorks.Sysplorer建模步骤参考工具→帮助→建模)
该文档介绍了关于ExternFunc包下ReadRbuf、WriteRbuf、ReadN、WriteN函数的作用及使用方法。其中,ReadRbuf函数用于从内存中一次读取数组,ReadN函数用于读取数组单个元素,WriteRbuf函数用于写入数组到内存中,WriteN函数用于数组单个元素的写入。文档中的案例模型直接打开“TestExternFuncUseDll”,文本视图显示如下:
本方案在上述案例中补充电磁仿真部分:打开MWorks.Sysplorer中的电磁转换案例,在 Modelica > Magnetic > FluxTubes > Examples > SaturatedInductor 打开模型案例,切换到图形视图,将图形全选并复制。
打开模型TestExternFuncUseDll,切换到图形视图,将上述复制的图形粘贴。
将模型右侧删减,只用一个磁阻形成闭合回路,删减后模型如下:
切换到文本视图,保存后单击检查,在输出框中看到模型中存在的错误位置和类型,将所需内容导入该模型中。
例如,提示在模型文本的13行存在组件引用pi查找不到的错误,在模型浏览器中搜索pi,用import将其导入模型中,保存后再次检查确认错误消除。
原电磁仿真案例中所采用的是正弦电压源,为实现由外部函数传输的功能,将原案例中的正弦电压源替换为信号电源SignalVoltage,该信号电源可以调用正弦信号,正弦信号的参数可通过外部函数传输来的变量进行控制。
具体方法如下:
打开MWorks.Sysplorer中的电磁转换案例,将其中正弦电源切换为
“Modelica.Electrical.Analog.Sources.SignalVoltage”信号电源,便于输入信号的设定。
菜单栏建模→快速新建→block新建一个正弦信号发生器sineSig,填写模型、描述等,插入到文件夹的根目录。
将Modelica.Blocks.Sources.Sine的图形或文本全部内容复制进sineSig中,利用已有的框架进行编辑。
将模型TestExternFuncUseDll中关于读数据的部分复制到sineSig中,并添加读取外部函数部分,从外部函数读取电压源信号的频率、相位和振幅。
信号源输出y(x)函数中,将从外部读取的三个变量频率、相位和振幅readfreqHz、readphase和readamplitude替代原等式中的freqHz、phase和amplitude,从而实现外部函数读取的变量控制仿真电源信号。
打开模型TestExternFunUseDll,并切换到编辑→图形视图,从左侧用户模型窗口中将刚建立的电源信号sineSig鼠标左键按下并拖入图形视图,并将其输出与SignalVoltage的输入连接,检查模型,消除提示的错误。
线圈感应电流与电压在模型组件的coil下,将这两个数据传输到HPAC中。在模型中以下位置分别给地址97、98和99写入SignalVoltage.v、coil.v和coil.i参数值,也可将仿真完成后的其他参数传输给一个地址。在MWorks.Sysplorer模型的文本视图中参数回传部分编写如下:
在仿真→仿真设置→模式中选择实时同步仿真,在常规中设置仿真开始时间、结束时间、步长。
测试
在HPAC中点击构建→连接→传输→运行,接着在MWorks.Sysplorer中点击仿真→仿真(参考工具→帮助→仿真,如下图1框所示),点击曲线按钮(如下图2框所示),并在左侧仿真浏览器中选择SignalVoltage下的v(如下图3框所示);再单击曲线按钮,弹出新的曲线窗口,在模型浏览器中选择coil.v和coil.i(如下图4、5框所示),即可观测由电源电压、电源电压频率变化引起的磁通变化而产生的感应电压、感应电流变化曲线。
如图,横坐标在67s左右时,HPAC端频率从1Hz变为2Hz,后续的电源电压、感应电压、感应电流的幅值、频率等也随之发生变化。
在HPAC中RBUF_READ对应的97、98、99地址的输出分别双击可观测变量曲线。在RBUF_WRITE对应的地址10的变量频率freqHz的值由原来的1Hz修改为2Hz后,可观测到电源电压、感应电压和感应电流的频率幅值等也随之改变。
基于模型的开发(MBD)或V流程是汽车电控等复杂控制软件的常规流程,具体包括以下几个步骤:
1.将复杂控制问题转换为可视化的控制模型,通过模型在环(MIL)测试;
2.将模型生成C语言的控制系统软件并下载到控制器中,通过软件在环(SIL)测试;
3.在试验台架上将控制器组成控制系统驱动实际被控对象,通过硬件在环(HIL)测试;
4.控制系统加固和产品化完成产品集成测试。
经研究,HPAC和MWorks.Sysplorer可以构建一套完整的、普遍适用的工业MBD环境。本案例详细介绍了模型在环(MIL)测试的整个过程。在后续的研究中,还可以通过HPAC将开发好的控制模型直接生成控制代码并下载到控制器主站IPC上,通过网络通信与MWorks.Sysplorer进行联合仿真,从而实现软件在环(SIL)测试。最终,IPC通过EtherCAT带上其他的数字模拟脉冲形成的控制系统,驱动试验台架,这就实现了硬件在环(HIL)测试。
综上所述,基于HPAC和MWorks.Sysplorer实现的联合仿真为复杂控制系统的MBD开发提供了国产化解决方案。
感兴趣的小伙伴可关注“同元软控”公众号,私信备注“HPAC-MWorks.Sysplorer联合仿真”及邮箱信息,小编会将本文相关资料发送至邮箱。
* 本篇文章由华中科技大学数控中心王晓宇老师团队供稿,特此鸣谢。