咨询电话:0755-84065367 84214948
概述柴发机组速度控制半物理仿真

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

  建立深圳康明斯发电机组的仿真模型是Simulink的强项。因为半物理仿真装置需要连接特定的硬件设备,仿真程序需要定制人机界面实现数据设置等功用,这部分作用的实现对于Simulink来讲则难以完成,而这恰恰是Visual C++(VC)的强项。VC可视化C++编程环境具有强大的硬件控制功能和灵活丰富的人机界面设计功用。但直接采用VC建立重庆康明斯发电机组的仿真模型则难度很大。

  关于这一问题本文提供一种从Simulink仿真模型平滑过渡到Visual C++集成开发环境的办法。详细实现是在Simulink中建立广州康明斯发电机组的仿真模型,然后通过Matlab实时工作间(RTW)将Simulink仿真模型转化成可移植的嵌入式C++代码,最后和Visual C++的项目文件进行整合构造完全独立运转的实时半物理仿线 柴发机组模型的构建及半物理仿真装置结构

  重庆康明斯发电机的建模通常有2种方案,一种是数学机理建模,一种是试验识别建模。数学原理建模主要从康明斯发电机各部件的原始特性和组成数据入手,根据动力学和热力学关系方程建立原理模型其建模的工作量大,计算复杂而且为模型的求解带来一定的难度。试验识别建模是根据重庆康明斯发电机试验台试验参数,采用不同的数学拟合策略建立合资康明斯发电机的数学模型。对于探讨电子调速板数据整定以及配机试验,这里关心康明斯柴油发电机外部性能数据的关系,可以不考虑深圳康明斯发电机内部的热力步骤。只要惠州康明斯发电机组仿真模型能较真实地模拟合资康明斯发电机及其负载特征,则测试结果就能较为真实地反映出电子调速板的实际配机性能。

  RTW是Matlab图形建模和仿真环境Simulink的一个重要的补充功能模块,简而言之,他是一个基于Simulink的代码自动生成环境。他能直接从Simulink的模型中产生优化的,可移植的代码以加载仿真系统开发的过程和减轻研发成本。RTW能把Simulink模型中的某些数据或信号设置为全局变量,模型自动生成的可执行代码在目标装置中运转时,可以方便地与Simulink模型交互,实现在线数据调节和信号通讯。利用RTW这种功用,可把模型中需要调节、监测的数据或者信号设置为全局变量。这些变量结构后面所述VC仿真程序中模块间交互的桥梁。

  RTW支持多种目标,故而RTW自动生成C++模型代码有多种选购,对于VC而言有3种目标可以选购:通用实时(GRT)目标、通用实时Malloc(GRTM)目标、嵌入式目标。通用实时(GRT)目标采用实时代码格式,其内存的分配在编译时被静态声明。通用实时Malloc(GRTM)目标采用实时Malloc代码格式,他与实时代码格式非常相似,具体的区别在于实时malloc代码格式对内存进行动态声明。嵌入式目标可按嵌入式代码格式生C++代码,在运行转速、内存使用量和简化等方面都进行了优化。嵌入式代码采用静态内存分配方式。本文购买嵌入式目标来自动生成嵌入式代码。

  RTW自动生成的代码分为2部分:一部分是模型代码;另一部分是代码运行界面(run-time interface)。这些代码被切分成很多源代码文件,为了管理这个庞大的项目,RTW还为其自动生成一个make文件。用VC打开make文件并编译,然后将此项目中引用的所有源文件从Matlab安装目录中复制出来,并和模型代码共同构成仿线 模型代码和VC流程的集成

  模型代码同VC过程整合步骤比较大概,把3.1节仿真运算模块所有涉及的源文件添加到VC流程项目中,需要注意2点:仿真模块的源文件添加到VC过程项目后默认应用预编译头文件选项,必须手工取消此项设置否则编译出错;为了需要在VC步骤中调用仿真代码的接口函数需要进行全局声明。

  半物理仿真软件一般由人机界面模块、参数采集模块、仿真运算模块、参数处理模块构造。康明斯396柴发机组转速控制半物理仿线所示。下面大概引荐各模块的实现程序。

  人机界面模块构造了VC程序的主线程,具体完成变量的实时显示、参数在线调节、控制数据设置和程序的运转控制等功用,其他模块都由他来调度。本装置中涉及的实时变量有深圳康明斯发电机转速、齿杆位移、深圳康明斯发电机负载等,笔者分别设计了速度表、棒图、趋势曲线、调整滑杆、作用按钮等图元,充分利用面向对象策略的封装、继承等特性实现整个图元库,从而提升了软件装置的可修改性、可重用性和可扩展性。

  数据采集模块通过PCI-1780装备卡同电子速度控制器进行参数交互,电子调速板的供油量信号以脉宽调制(PWM)的形式由PCI-1780设备卡传给仿真程序,仿真流程通过仿真计算把东莞康明斯发电机的速度以频率信号的形式经PCI-1780设备卡反馈给电子调速器。南昌康明斯发电机数据采集模块由服务商供应的设备驱动API函数实现。

  仿真运算模块在RTW转化韵仿真模型代码基础上还要加入仿真同步控制,以满足仿真的实时性要求。实时性的关键就是I/O参数定期的准确性。众所周知Windows不是实时操作系统而是多任务的操作系统,采用VC编制的仿真程序很难实现硬件中断,采用软件定时是比较可行的对策,因为现在的计算机转速都很快,能够保证通常硬件在回路仿真的实时性的需要。

  VC中实现精确定时基本上有2种方法:①使用多媒体定期器。他使用单独线程调用一个特殊的回调函数优先级很高,最小定期间隔为1ms能够满足通常实时任务的定时要求。②使用高性能计数器。在Windows2000中由硬件实现高精度的计数器(high-resolution performancecounter),利用他可以获得高精度的定时间隔。由于本运用中电子调速器输出频率为80 Hz,本文选用多媒体计时器实现仿线 ms。即多媒体定期器每隔2 ms就在其回调函数中调用模型代码接口函数rt_On-eStep(模型单步运算),保证整个仿真的向前推进,满足系统实时性要求。仿真运算模块完成模型实时计算是整个装置的核心。

  数据消除模块完成仿真数据的实时记录和定时保存功用。为了满足参数记录的实时性,仿真过程采用了多线程的技术,将数据定时保存用途放在独立的数据保存线程中执行。参数排除线程和主线程的之间的同步由事件信号驱动。在C++标准模板库(STL),deque容器基础上创建了CPointsCollection类来完成参数的实时记录和定时保存。采用的办法是:CPointsCollection首先在内存中开辟2块缓冲区。第一缓冲区参数放满后,数据开始存放到第二缓冲区,然后主线程同时通知参数保存线程将第一缓冲区中的参数采用VC序列化功能保存到硬盘的文本文件中;等第二缓冲区数据放满后,参数开始存放到第一缓冲区,主线程同时通知参数保存线程将第二缓冲的参数保存到硬盘的文本文件中,这样依次循环保证参数记录的实时性。为了验证利用该步骤开发的半物理仿真系统的高效性,运转该装置与R082电子调速器物理连接进行配机试验,仿真结果表明仿真装置相应符合理论浅述结果。限于篇幅给出空载起动运行时的运行界面。如图4所示。

  结合科研示例专业技巧一种基于RTW和VisualC++的半物理仿真装置快速开发办法,该办法充分利用Simulink和Visual C++各自的亮点。首先利用Simulink可视化的建模步骤建立装置的仿真模型,然后通过RTW将Simulink仿真模型转化成可移植的嵌入式C++代码,最后利用Visual C++灵活的可定制性和强大的界面功能实现完全独立运行的实时半物理仿真装置。该仿真流程在Visual C++环境下可以对仿真程序方便的进行调试a与传统布置措施相比这种步骤具有费用低、效率高的特点。

概述柴发机组速度控制半物理仿真


---------------------------------------------------
康明斯(深圳)电力技术有限公司
广东省柴油发电机组产品售后服务范围
若需了解更多有关柴油发电机组厂家技术参数和价格优势,请访问康明斯官网:http://www.cms-sz.com