全国服务热线:4008-659-881
公告:
公司专业销售,柴油发电机,小型柴油发电机,大型柴油发电机,开架式柴油发电机,拖车式发电机,静音式柴油发电机,防雨罩柴油发电机等等设备,欢迎选购!!!
技术支持当前位置:首页 > 技术支持
柴油发电机组转速控制半物理仿真系统开发添加时间:2018-04-23
柴油发电机组转速控制半物理仿真系统开发

1.引言

电子调速器是柴油机的关键部件之一,当实际柴油机及其负载性能发生变化且与调速器设计参数不匹配时,柴油发电机组就无法正常工作,这时需要修改调速器的控制参数。另外,电子调速器在出厂前和维修后都需要进行性能试验,以设定合适的控制参数满足其调节性能。在柴油机上直接进行电子调速器的参数整定、性能测试、维修后性能恢复,既不安全、又不经济。进行半物理仿真是调速器进行实际配机试验之前不可缺少的环节,其工程思路是建立柴油发电机组全工作范围动态仿真模型,通过输人输出接口电路与电子调速器相连构成一闭环控制系统,从而完成电子调速器性能测试的相关试验。


建立柴油发电机组的仿真模型是Simulink的强项,由于半物理仿真系统需要连接特定的硬件设备,仿真程序需要定制人机界面实现参数设置等功能,这部分功能的实现对于Simulink来讲则难以完成,而这恰恰是Visual C++ (VC)的强项。VC编程环境具有强大的硬件控制功能和灵活丰富的人机界面设计功能,但直接采用VC建立柴油发电机组的仿真模型则难度很大。


针对这一问题本文提出一种从Simulink仿真模型平滑过渡到Visual C++集成开发环境的方法。具体实现是在Simulink中建立柴油发电机组的仿真模型,然后通过Matlab实时工作间(RTW)将Simulink仿真模型转化成可移植的嵌入式C++代码,最后和Visual C++的项目文件进行整合,构成完全独立运行的实时半物理仿真系统。

2.模型的构建及半物理仿真系统结构

柴油机的建模一般有两种途径,一种是数学机理建模,一种是试验辨识建模。数学机理建模主要从柴油机各部件的原始特性和结构参数人手,根据动力学和热力学关系方程建立机理模型,其建模的工作量大,计算复杂而且给模型的求解带来了一定的难度。试验辨识建模是根据柴油机试验台试验数据,采用不同的数学拟合方法建立柴油机的数学模型。对于研究电子调速器参数整定以及配机试验,关心的是柴油机外部性能参数的关系,可以不考虑柴油机内部的热力过程,只要柴油发电机组仿真模型能较真实地模拟柴油机及其负载特性,则测试结果就能较为真实地反映出电子调速器的实际配机性能。因此选用试验辨识建模法,应用BP神经网络建立了柴油机发电机组模型。


本研究所用试验数据均来自主机生产厂家大同616厂的台架试验数据 。


MTU396柴油发电机组Simulink仿真模型见图1;

其半物理仿真系统总体结构见图2。


MTU396柴油发电机组转速控制半物理仿真系统的输入输出信号,主要有三种类型① 脉宽调制(PWM)信号,即执行机构齿条驱动信号;②频率信号,即模拟柴油转速脉冲信号;③开关量信号,即对电子调速器的各种控制信号,如启动、停止、增速减速控制等。本系统选用研华的PCI一1780计数器卡,它提供了8个l6位计数器通道、8路数字量输出和8路数字量输入,可以满足上述需要。


1.引言

3.1 利用RTW 生成可移植的C++模型代码

RTW是MATLAB图形建模和仿真环境Simu—link的一个重要的补充功能模块,简而言之,它是一个基于Simulink的代码自动生成环境,能直接从Simulink的模型中产生优化的、可移植的代码以加速仿真系统开发的过程和降低研发成本。


RTW能把Simulink模型中的某些参数或信号设置为全局变量,模型自动生成的可执行代码在目标系统中运行时,可以方便的与Simulink模型交互,实现在线参数调整和信号通讯。利用RTW 这种功能,可把模型中需要调整、监测的参数或者信号设置为全局变量,这些变量构成后面所述VC仿真程序中模块间交互的桥梁。RTW支持多种目标,所以RTW 自动生成c++模型代码有多种选择,对于VC而言有三种目标可以选择:通用实时(GRT)目标、通用实时Malloc(GRTM)目标、嵌入式目标。通用实时(GRT)目标采用实时代码格式,其内存的分配在编译时被静态声明。通用实Malloc(GRTM)目标采用实时malloc代码格式,它与实时代码格式非常相似,主要的区别在于实时malloc代码格式对内存进行动态声明。嵌入式目标可按嵌入式代码格式生成C++代码,在运行速度、内存使用量和简化等方面都进行了优化,嵌入式代码采用静态内存分配方式。


本文选择嵌入式目标来自动生成嵌入式代码。RTW 自动生成的代码分为两部分:一部分是模型代码;另一部分是代码运行界面(mR—time inter—face)。这些代码被切分成很多源代码文件,为了管理这个庞大的项目,RTW还为其自动生成了一个make文件。用VC打开make文件并编译,然后将此项目中引用的所有源文件从Matlab安装目录中复制出来,并和模型代码共同组成仿真模型代码。


3.2 模型代码和VC程序的集成

模型代码同VC程序整合过程比较简单,把3.1节仿真运算模块所有涉及的源文件添加到VC程序项目中,需要注意的有两点:

① 仿真模块的源文件添加到VC程序项目后,默认应用预编译头文件选项,必须手工取消此项设置,否则编译出错。

②为了需要在VC程序中调用仿真代码的接口函数需要进行全局声明。


3.3 VC中仿真系统进一步开发与整合

半物理仿真软件一般由人机界面模块、数据采集模块、仿真运算模块、数据处理模块组成。MTU396柴油发电机组转速控制半物理仿真系统原理如图3所示。下面简单介绍各模块的实现过程。


3.3.1 人机界面模块的实现

人机界面模块构成了VC程序的主线程,主要完成变量的实时显示、参数在线调整、控制参数设置和程序的运行控制等功能,其它模块都由它来调度。本系统中涉及的实时变量有柴油机转速、齿杆位移、柴油机负载等,笔者分别设计了转速表、棒图、趋势曲线、调整滑杆、功能按钮等图元,充分利用面向对象方法的封装、继承等特点实现整个图元库,从而提高了软件系统的可修改性、可重用性和可扩展性。


3.3.2 数据采集模块的实现

数据采集模块通过PCI一1780设备卡同电子调速器进行数据交互,电子调速器的供油量信号以脉宽调制(PWM)的形式由PCI一1780设备卡传给仿真程序,仿真程序通过仿真计算把柴油机的转速以频率信号的形式经PCI一1780设备卡反馈给电子调速器。数据采集模块由厂家提供的设备驱动API函数实现。

3.3.3 仿真运算模块的实现

仿真运算模块在RTW转化的仿真模型代码基

础上还要加入仿真同步控制,以满足仿真的实时性要求。实时性的关键就是I/O数据定时的准确性。众所周知Windows不是实时操作系统而是多任务的操作系统,采用VC编制的仿真程序很难实现硬件中断,采用软件定时是比较可行的方法,因为现在的计算机速度都很快,能够保证一般硬件在回路仿真的实时性的需要。


3.3.4 数据处理模块的实现

数据处理模块完成仿真数据的实时记录和定时保存功能。为了满足数据记录的实时性,仿真程序采用了多线程的技术,将数据定时保存功能放在独立的数据保存线程中执行。数据处理线程和主线程的之间的同步由事件信号驱动。在C++标准模板库(STL),deque容器基础上创建了CPointsCollec.tion类来完成数据的实时记录和定时保存。利用该系统于R082电子调速器物理连接进行配机试验,可以完成对R082的各种性能测试试验,根据测试结果还可以对电子调速器进行故障分析。图4为系统监控面板;图5、图6列举了半物理实时仿真系统对R082电子调速器进行突加负荷和突减负荷的测试试验,实践证明该系统运行良好。


4.结论

本文结合科研实例详细介绍了一种基于RTW和Visual C++的半物理仿真系统快速开发方法,该方法充分利用了Simulink和Visual C++各自的优势。首先利用Simulink可视化的建模方法建立系统的仿真模型,然后通过RTW将Simulink仿真模型转化成可移植的嵌人式C++代码,最后利用Vis.ual C++灵活的可定制性和强大的界面功能实现了完全独立运行的实时半物理仿真系统。该仿真程序在Visual C++环境下可以对仿真程序方便地进行调试,与传统设计方法相比这种方法具有费用低、效率高的特点。