常书平,李昆鹏,姚丁元,罗东宏
(1.中国人民解放军63983部队,江苏无锡214035;2.广州船舶及海洋工程设计研究院,广东广州510250)
喷水推进在船舶推进领域应用日益广泛,但在一些复杂机动操纵时,喷泵易进入气蚀异常工作区,导致推力下降、叶片剥蚀、船体和泵体振动加剧等[1]。如何合理控制喷水推进船的操纵,使在加速、减速、回转、倒车等复杂工况下,有效避免喷泵长时间在空化异常区运行,是需解决的关键问题。国内已有文献对该问题进行了研究,得到了许多有用的结论[2–5],但较少阐述在操纵运动时防止喷泵空化的控制方法。本文将Simulink与MFC(Microsoft Foundation Class)混合编程的方法应用于解决该问题,取得了较好效果。
以某“四机-四泵”喷水推进船为研究对象,其仿真模型主要分为调速器、柴油机、喷水推进器、船体动力学模型等4部分,如图1所示。由于4套推进器是相同的,故图中只列出1套,其他3套推进器的仿真模型与第1套相似。
以柴油机的设定转速和柴油机反馈的实际转速作为调速器模型输入,通过一个PID控制器输出供油齿杆的位置[6]。PID控制器的数学描述为:
式中:U(t)为柴油机供油齿杆位置;e(t)为柴油机设定转速与实际转速之间的误差。
通过柴油机外特性数据建模,采用BP神经网络对输入输出进行训练[7–8],以柴油机转速和供油齿杆位置作为输入,以柴油机功率、力矩作为输出。
该模块基于喷泵试验数据建立,采用BP神经网络对输入输出进行训练而得到,以喷泵转速和船体航速作为输入,以喷水推进器产生的推力作为输出。
图1 喷水推进系统模型第1层Fig. 1 The first layer of waterjet propulsion
该模块包括船体直航模型和船体回转模型。其中回转运动模型采用MMG分离模型[3],将船体的水动力特性与喷水推进器的推力特性独自表达,相互干扰由干扰系数决定。喷泵喷出水流的反作用力产生使船前进的推力,操纵喷口的喷射角度可改变推力方向,实现船体回转[9],喷水推进器模块将喷泵推力传递给船体动力学模块。
若喷射角为θ,则船体所受的纵向力Xj为:
船体所受的纵向力Yj为:
回转力矩Nj为:
式中:ρ为水密度;Q为水体积流量;LjG为作用点到船重心的纵向距离。
基于船体水动力和喷泵回转力的分析,建立喷水推进船的回转性模型如下:
式中:m为船质量;R(V)i为直航阻力;Izz为船对Z轴的转动惯量;Xvv,Xvr,Xrr为纵向水动力系数;Yv,Yr,Yv2r,Yvr2,Y|v|v,Y|r|r为 横 向 水 动 力 系 数;Nv,Nv2r,Nvr2,N|v|v,N|r|r为回转水动力系数。
Simulink虽有着强大的仿真功能,但在许多控制程序的设计方面要靠Matlab的用户自定义函数来完成,然而程序设计却并不是M a t l a b的长处,用MFC对Simulink进行二次开发有助于更好的发挥其仿真的功能。MFC对Simulink作二次开发的方法有很多[10],本研究选用RTW工具生成实时代码的方法实现Simulink仿真程序与MFC的集成,主要步骤如图2所示。
图2 Simulink与MFC集成的主要步骤Fig.2 Theapproach of Simulink and MFCintegration
1)在仿真参数中对RTW选项进行相关的配置;
2)设定Simulink模型中需要观测的量(柴油机转速、轴转速和航速),这可以在各条信号线的信号参数设定中配置RTW选项;
3)在RTW中的Generate Code选项中产生模型的C++程序代码;
4)将产生的代码加入到一个空的MFC工程中,在MFC中根据需要编写相应的程序对生成的代码进行驱动和控制,并对计算结果进行实时的监测。
基于RTW(Real Time Workshop)工具,把Simulink模型中的某些变量设置为全局变量,使模型实时代码实现在线参数调整和信号通信,由此可将模型中需要调整、检测的参数或者信号设置为全局变量,主要有柴油机转速、轴转速和航速等,该些变量构成了整个仿真程序中模块间相互交互的桥梁。
模型代码中的Initialize、Terminate和rt_OneStep三个函数分别用于实现模型的初始化、停止和单步运算。在程序设计过程中,Initialize和Terminate函数可以用WM_COMMAND类型的消息驱动;OneStep函数则用WM_TIMER消息驱动。每次在程序中调用一次WM_TIMER消息,计算出一组结果,并且可以在WM_TIMER消息相应函数中对计算结果进行实时的提取。在第4步中有大量的程序设计工作要做,包括人机交互界面的设计、实时仿真数据的提取与显示、运行步长和时间的控制等。
在喷水推进系统中,观测轴转速随航速的变化关系是判断喷泵是否空化的一个重要标准。喷泵的工作区域划分为3个区,如图4所示。区域1是正常区,喷泵可在该区长时间稳定工作;区域2和区域3为异常区,喷泵性能会受空化影响而降低,喷泵在其中的工作时间也受限。将3条区域限制线编译到程序中,将程序计算所得到的航速与轴转速的值与3条限制线数据相比较,由此就可以确定出喷泵的运行状态。
图4 喷泵工作区域图Fig.4 Working area of waterjet propulsion system
WM_TIMER消息响应函数OnTimer的编写是控制程序的主要部分,它可以看作一个定时器,MFC程序每隔特定的时间间隔就会调用该函数。即每隔一定的时间间隔,该函数内部就会进行计算并产生一组计算结果。利用这些结果,可以实时判断,若仿真结果显示喷泵工作在异常工作区,则修改程序设定的初始参数。控制程序的编制步骤如下,控制程序流程如图3所示。
图3 OnTimer函数内部的控制流程Fig.3 The control process of OnTimer function
1)在OnTimer函数中调用Initialize进行参数的初始化;
2)设置相关的初始参数并调用rt_OneStep函数进行计算;
3)提取计算结果中的航速和转速值,判断其是否在给定的区域内,如果不是则返回第1步,并在第2步中改变初始参数继续计算,若果计算结果在给定的区域内,转到第4步;
4)继续循环并输出计算结果。
根据上述集成方法与控制策略,编制喷水推进系统仿真计算软件。该软件有多项功能,此处简要介绍回转运动最大舵角(喷泵的喷射角度)计算和直航最大加速速率计算。
该计算模块的功能是根据输入的初始参数来计算对应工况下回转运动允许的最大舵角。
初始参数包括主机转速、工作的喷泵、船体的负荷、回转泵以及工作区域限制。在计算时为了使舵角的调整朝着一个方向变化,一般将舵角初始值设为最大舵角30°,然后通过控制程序进行实时的调整。这里,模块用于计算四机四泵操作的舵角,该处设定船体负荷为标准负荷,回转运动限制在喷泵工作区域的一区。
表1 给出了四机四泵运行,四泵回转工况下,主机转速由0.73 Nmax(Nmax为柴油机的额定转速)变化到最高转速Nmax对应的最大舵角,实际上主机最低转速还小于0.73 Nmax,但是图中所给泵的工况限制线并没有覆盖整个工作区,故此处最小转速取为0.73 Nmax,标中V表示柴油机转速为0.73 Nmax时的直航稳定航速。
表1 四泵回转条件下最大舵角计算结果Tab.1 The maximal rudder angle of 4-waterjets turning process
为了验证计算结果的准确性,在仿真软件中加入了工况曲线显示模块,并把喷泵工作区域限制线编译到工况曲线中,此处仅对上表计算所得到的第一个结果(转速为Nmax、舵角为8°)进行验证,结果如图5所示。图中的数据已经经过等比例变化,可见图中所示的回转运动稳定点正好在第1区和第2区限制线上,这说明计算出的舵角即为把回转运动限制在喷泵工作区域的一区对应的最大舵角。应用该模块还可以计算多种不同初始工况、不同回转泵、不同运行区域下的最大舵角。
图5 回转运动工况Fig.5 Results of turning process
该计算模块的功能是根据初始设定的参数计算加速过程中,对应喷泵工作区限制条件下的最大主机加速速率。初始参数包括初始主机转速、目标主机转速、工作的喷泵、船体的负荷以及工作区域限制。在计算时为了使加速速率的调整朝着一个方向变化,一般将加速速率的初始值设为目标转速和初始转速之差,即将初始加速速率设定为最快的速率,然后通过控制程序进行实时的调整。利用该模块对四机四泵工作情况下最大加速速率进行计算,该处设定船体负荷为标准负荷,加速运动限制在喷泵工作区域的一区。
设定初始主机转速为0.73 Nmax,目标转速由0.78 Nmax变化至Nmax,计算结果如表2所示。
表2 直航加速条件最大加速速率计算结果Tab.2 The maximal acceleration of 4-waterjets accelerating process
同上,仅对表2计算所得到的最后一个结果(初始转速为0.73 Nmax,目标转速为Nmax,加速速率为0.01 Nmax/s)进行工况曲线验证,结果如图6所示。图中的数据已经经过等比例变化,可见加速过程由加速起始点到加速结束点的工况曲线在初始设定的区域即区域一中,而且加速曲线末端紧贴一区和二区分界线。这说明如果加速速率大于此加速速率0.0 1 Nmax/s,则加速工况曲线必然会越过分界线到达二区。此外,利用该模块还可以计算任意初始转速和目标转速对应的最大加速速率。
本文基于对喷水推进系统组成部件和船体运动学模型的分析,建立了喷水推进系统的Simulink仿真模型,并考虑到MFC在控制程序编制以及在人机交互界面设计方面的优越性,利用Matlab的RTW工具箱将Simulink仿真程序转换为实时C++代码,并与MFC集成开发出了喷水推进系统仿真软件。仿真计算程序可用于在加速、减速、回转、倒车等工况下,制定喷水推进系统合理工作制,避免喷泵进入空化区运行。
主要得到如下结论:
图6 加速运动工况Fig.6 Results of accelerating process
四机四泵全速运行四泵回转时,如要将喷泵控制在一区运行,舵角不能大于8°;四机四泵运行主机转速由0.73 Nmax分别加速至0.92 Nmax和Nmax,如要将喷泵控制在一区运行,加速速率不能大于0.02 Nmax/s和0.01 Nmax/s。