常广晖,李雁飞 ,刘树勇
(海军工程大学 动力工程学院, 湖北 武汉 430033)
随着现代控制技术的发展,变频恒压供水技术在新型舰船上获得广泛应用,其主要优点:装置高效节能,质量小,体积小;供水压力稳定;自动化程度高等[1-2].由于进口PLC功能完善、配套齐全,舰船上变频恒压供水装置普遍采用进口PLC作为其控制器,目前在复杂的国际环境下,为了立足自主保障,研制完全具有自主知识产权的变频恒压供水控制系统势在必行.通过基于模型设计(MDB)方法进行嵌入式控制系统设计开发是解决以上问题的一条重要途径,其优势在于控制策略的图形化设计、高质量的代码自动生成、灵活的嵌入式硬件部署.
基于可靠性考虑,一般舰船变频恒压供水机组采用多台变频泵并联结构[2],变频器同一时刻只驱动1台变频泵,用户的用水量决定了机组工作泵的数量,工作泵的每种组合就构成机组的一种工况,泵数量越多机组工况就越复杂.所以变频恒压供水装置的控制除了考虑压力的闭环控制还涉及复杂的工况切换逻辑控制.不同工况下泵组特性发生变化,给压力稳定控制也带来一定难度,随着计算机仿真技术的进步,辨识不同工况下变频泵组模型成为可能,这有助于通过仿真分析系统,在开展物理实验之前就能设计出符合要求的控制系统.
本文提出了一种应用于变频恒压供水嵌入式控制的MBD设计实现方法.首先,通过实验辨识的方式辨识出系统模型,该模型可以模拟不同工况下、不同出口开度的泵组特性.遵循MBD方法,根据系统模型设计了Stateflow有限状态工况切换逻辑控制器和模糊自适应PID压力控制器,并在Simulink仿真环境下动态模拟了基于阀门开度变化的全流量下的恒压控制效果.最后,通过自动代码生成和软件集成将设计好的控制算法部署在自行设计开发的嵌入式控制电路板上.通过实际供水装置测试实验,证明了变频恒压供水控制MBD设计方法的有效性和便捷性.
某型船用变频恒压供水装置(以下简称泵组)采用3台变频泵并联结构,为全船提供洗涤、生活用水.基于可靠性,设计3台泵,正常工作情况下2用1备,工作原理如图1所示.
由图2所示的一般水泵特性曲线[3]可知,在工作点附近可以将泵组模型线性化,管阻ν阻不变时,水泵出口压力近似水泵转速成正比;泵转速n不变时,水泵出口压力与管阻近似成反比.不同的出口阀门开度对应不同的管阻特性,阀门开度越小管阻越大.选取阀门开度50%对应的管阻特性曲线为工作曲线.在某恒定工况下,出口阀门开度50%保持不变,以控制器输出频率(与水泵转速成正比)为输入信号,管网压力为输出信号,供水装置的数学模型可近似成一个带纯滞后的一阶惯性环节,即
式中,G(s)为传递函数,s为拉氏变换算子,K为系统的总增益,tg为泵组的惯性时间常数,t为系统推迟时间.
图1 某型恒压供水装置工作原理Fig.1 Working principle diagram of a constant pressure water supply device
图2 水泵扬程及管阻特性曲线Fig.2 Characteristic curve of pump head and pipe resistance
该机组有3台变频泵可以选择,共有6种工况,通过泵组性能测试系统对各工况进行飞升曲线测试,根据实验数据进行系统辨识得到各工况下系统模型参数如表1所示.
根据以上辨识的结果在Simulink环境下建立的供水装置数学模型如图3所示.
表1 各工况下系统模型参数Tab.1 Parameters of system model under various working conditions
图3 供水装置数学模型Fig.3 Mathematical model of water supply device
由于该泵组由3台变频泵组成所以控制系统任务除了要保持管网压力稳定的同时,还要根据不同用户负载平滑地进行工况切换(加减泵).供水系统设有3种工作模式分别是:自动模式、检修模式、手动模式.自动模式下,泵选择开关选定的泵为值班泵,3台泵在控制器的控制下按序实现3泵轮流变频运行.具体工作过程如下:当需要供水时,按下启动开关后首先由旋转开关选定的值班泵变频启动,闭环控制器按控制策略调节变频器输出频率,从而保持供水压力恒定.当用水量增加,输出频率逐渐增大到工频后,控制器将值班泵自动切换到工频运行,同时变频启动第2台泵运行.当供水量仍显不足时,第2台泵的频率继续增高至工频,控制器将第2台泵切换到工频,同时增加第3台泵自动变频启动运行.当用水达到极限,压力达不到设定值时3台泵全部工频运行.当用水量减少时,控制器则按增加泵功能模式相反的顺序减少运行泵的数量,直到系统停机休眠.检修模式下,泵选择开关选定的泵为待检修泵,该泵不参加工作,剩余的2台泵在控制器的控制下按序实现双泵轮流变频运行,运行过程同自动工况.手动模式下通过泵选择开关选择值班泵单泵工频工作,泵的起停通过压力继电器控制,类似压力水柜模式.除了以上3种模式外,系统还设有休眠控制、唤醒控制、故障报警等功能.在用水低谷或夜间不用水时,管网压力达到压力休眠值,控制器使装置自动停机休眠,目的是节能和延长使用寿命;当装置处于休眠时,一旦有用户用水使管网压力低于压力唤醒值时,控制器自动启动装置开始变频供水;当水泵电机过载导致热继电器工作时,控制器自动进行声光报警.
从以上控制任务分析可以看出控制功能可以划分为压力的闭环控制和工况切换的逻辑控制2大部分.考虑到不同工况下机组特性不同,压力闭环控制采用模糊自适应PID控制实现.工况切换的逻辑控制可以通过Stateflow有限状态层次化建模方法实现.
图4 自适应PID控制系统结构Fig.4 Structure of adaptive PID control system
模糊自适应PID控制基本思路为采用模糊推理的方法确定PID的3个参数KP、KI、KD与e和ec之间的模糊关系[4],在运行中通过不断检测e和ec之间的关系,利用模糊控制规则在线对PID参数进行整定,使设计的控制器具有良好的自适应性能.模糊控制器的输入为压力差e和压力差变化率ec.压力差和压力变化率的物理论域为[-10,10]和[-0.05,0.05],通过仿真选取量化因子使控制器的物理论域映射到模糊论域{-3,-2,-1,0,1,2,3}上,隶属函数采用Mamdani型函数.综上设计变频恒压供水系统模糊自适应PID控制器的结构如图4所示.
通过Stateflow图形开发环境可以方便地实现工况切换的逻辑控制.每种工况都可以看成一个状态,泵组所有工况就对应一个有限状态系统.创建泵组的有限状态模型的基础是建立层次化的模型[7],首先泵组的起、停对应2个父状态,起动情况下每种工况都可以看成其子状态.子状态之间的转移条件主要受变频器输出频率和出口压力所决定.变频泵的变频范围为30~50 Hz,当某泵运行频率小于30.5 Hz时认为达到频率下限,作为该泵停止的条件.当频率大于49.5 Hz时认为达到频率上限,作为该泵由变频转为工频运行的条件,以上频率的判断可以通过创建Freq状态来实现.泵组设定压力为0.35 MPa,当压力小于0.25 MPa时认为压力低作为泵组从休眠到唤醒的转换条件,当压力大于0.38 MPa时,认为压力高,作为从3泵工频到2工1变状态的转换条件,当压力大于0.4 MPa时认为压力保护,此时立即转换到休眠状态.以上压力的判断可以通过创建Pressure状态来实现.机组在工作时需要判断泵的好坏,泵被操作者通过选择开关选为检修泵或者驱动该泵电机的热继电器动作则认为该泵故障需要停止工作,否则认为正常可以工作,这个判断可以通过创建Pump状态来实现.RUN子状态之间的切换主要是通过Freq、Pressure和Pump 3个状态的判断结果实现转换.由于频率、压力、泵状态的判断和工况切换是需要实时进行的,所以RUN、Freq、Pressure和Pump 4个子状态是同时活动的,需要设为并行的解析关系.最终建立的层次化有限状态如表2所示.
表2 泵组逻辑控制层次化有限状态表Tab.2 Hierarchical finite state table of pump unit logic control
将Stateflow工况切换逻辑控制器、自适应PID控制器和泵组模型组合在一起,通过变量模拟工作模式选择开关、泵选择开关、启动、停止按钮的输入动作和出口阀门开度调节,在Matlab 2018b环境下构成完整的系统仿真模型如图5所示.
图5 变频恒压供水系统仿真模型Fig.5 Simulation model of variable frequency constant pressure water supply system
通过改变出口阀门开度,改变用水量,模拟实际用水情况.仿真设定如下:出口开度从15%经过400 s逐渐增大到65%,然后再通过400 s逐渐减少到15%,如图6所示.得到的全流量下仿真曲线如图7所示.从仿真结果来看Stateflow有限状态逻辑控制器实现了预设的控制效果,当变频器输出频率大于49.5 Hz时,实现了加泵工况切换,频率小于30.5 Hz时实现了减泵工况切换,同时在PID控制器的作用下出口压力总体保持稳定,在加、减泵工况切换瞬间压力波动较大误差主要是因为泵由变频运行转换为工频中间存在延时,同时也与泵组辨识模型线性化有关,其他时刻压力波动不超过7%符合设计要求,总体达到了预定的控制效果.
图6 阀门开度仿真设定Fig.6 Valve opening simulation setting
图7 系统全流量下仿真结果Fig.7 Simulation results under full flow
泵组的嵌入式控制电路板采用核心板加底板结构的模块化设计方案.核心板采用ST公司的Cortex-M3内核ARM STM32F103ZET6作为MCU,在此基础上集成DM9000BI以太网通信电路和FLASH存储电路等.以太网接口主要用于通过MODBUS/TCP协议和触摸屏进行数据通讯.
底板主要由电源电路、电流输入、输出通道、开关量输入、输出通道等构成.电流输入通道ADC选用CS5532,它是一款低功耗、低噪声24位Σ-ΔADC,STM32通过SPI1总线和CS5532相连接,用于采集泵组出口压力传感器的电流信号;电流输出通道以12位的DAC MAX5306为核心,通过SPI2总线和STM32连接,经TLV2254运放、达林顿管BCV47构成的电流反馈回路精确输出4~20 mA电流用于控制变频器的频率输出;数字输入通道通过光耦隔离后经74HC165芯片并串转换向STM32串行传递信息,用于采集控制柜面板转换开关和启动、停止按钮的输入;继电器输出通道主要是用于驱动各个泵的工频和变频接触器线圈.
自动生成的控制代码同底层驱动代码数据交互采用全局变量的方式实现,将控制器同底层设备交互的输入输出信号置为Test Point,储存类型设置为Exported Global,这样在驱动程序中就可以方便的调用这些全局变量了.接下来在Simulink配置对话框中,选用ert.tlc系统目标文件,硬件类型选择ARM Cortex类型[6],选择定步长仿真,仿真步长为0.01 s.设置好之后使用build命令利用Embedded Coder将控制模块生成高效率的嵌入式C代码.
泵组的控制软件采用实时操作系统uCOS-II进行集成设计,核心是线程设计.除了上述逻辑及稳压控制自动代码外控制软件应实现选择开关、启动、停止按钮等开关量采集,和电流形式的压力测量、电流形式的变频控制信号输出等功能.因此控制软件应包含4个线程分别是:开关量采集线程、压力测量线程、频率输出线程、逻辑及稳压控制线程.为了实现自动代码和控制软件的集成,将上节自动生成的代码中的Controller_pumps_step()函数在逻辑及稳压控制线程函数中进行调用,并将线程的任务延时设定为10 ms(与仿真步长一致),这样就实现了变频泵的实时控制.开关信号、出口压力、变频频率等信号需要在上述4个线程之间共享,为了防止出现冲突,4个线程通过互斥信号量来防止共享冲突.
为了验证上述基于模型设计的有效性,将集成后的软件通过keil5编译后下载到泵组嵌入式控制器中进行了测试实验,实验台架如图8所示.为了验证控制效果通过LabVIEW和NI采集模块构建了测试系统,测试系统可以实时采集机组出口压力、出口流量、泵组功率等参数.通过手动改变出口阀门开度从0依次增大到65%后再依次减小到0,过程持续时间为4 300 s,考察机组在全流量变化情况下的泵组切换和压力控制效果.实验测试曲线如图9所示.实验结果表明,采用基于模型设计通过自动代码生成的控制算法直接移植到嵌入式控制器,取得了预期控制效果,随开度变化机组能够适时进行加泵、减泵切换,压力波动较小,不超过设定压力的5%,在工况切换点压力波动较大,最大不超过设定压力的10%.
图8 变频恒压供水装置实验台架Fig.8 Experimental bench of frequency conversion constant pressure water supply device
图9 泵组全流量变化下试验测试曲线Fig.9 Test curve of pump set under full flow variation
本文提出了变频恒压供水装置控制器的MBD设计方法,实现了某舰用3泵变频供水装置的工况切换逻辑控制和稳压控制.首先,通过实验辨识得到了泵组各工况下的数学模型,通过模型Simulink环境下设计基于模糊自适应PID稳压控制器和基于stateflow有限状态工况切换逻辑控制器.然后基于STM32F103ZET6设计了机组嵌入式控制电路板.设计完成后通过embedded coder将控制器生成高效率的嵌入式C代码与底层驱动代码以实时操作系统多线程的方式进行集成并最终部署于嵌入式控制电路板中.通过实际机组全流量变化下稳压控制试验,验证了使用MBD方法简化了嵌入式控制器的设计过程,减少了设计失败的风险,相比通过手动编写代码设计控制器而言,缩短了设计时间提高了设计效率[8].该MBD方法流程为其他复杂动力系统控制器的设计提供了很好的借鉴.