基于LabVIEW的自由活塞发电机控制系统设计
2018-04-10杨贤沛王振华朱成玮肖进
杨贤沛,王振华,朱成玮,肖进
(上海交通大学 动力机械与工程教育部重点实验室,上海 200240)
引言
自由活塞发电机(Free Piston Linear Generator, FPLG)是将自由活塞发动机与直线电机串联耦合的动力系统,具有结构简单、热效率高、功率质量比大等优点,可以作为新能源汽车增程器,具有广泛应用前景[1-3]。自由活塞式发动机的上、下止点会随燃烧工况变化,发动机稳定运行对于喷油、点火控制的精确度和优化策略有较高要求[4-5]。近年来处理器和存储技术快速发展,美国国家仪器公司(NI)的嵌入式控制器性能已经可以满足自由活塞发电机的控制需求。LabVIEW作为NI公司开发的软件产品,允许图形编程,编程难度较低。本文运用LabVIEW进行模块化编程,实现对自由活塞发电机的控制[6]。
1 系统需求分析
图1 自由活塞发电机示意图
对置式自由活塞发电机的结构如图1所示,两个对置的二冲程自由活塞发动机位于直线电机两端,连杆通过螺纹将直线电机的动子和两个发动机的活塞串联。启动时电机为驱动状态,电机动子驱动活塞向左运动,控制器采集燃烧室的缸压、动子的位移信号、进气温度信号,计算燃烧所需喷油量、点火时间,在设定位置驱动左侧气缸喷油器、点火线圈。左缸燃烧后,活塞受膨胀力驱动向右运动,电机由驱动状态转换为发电状态,电机动子切割磁感线产生电流。当活塞运动到右侧气缸设定的喷油位置和点火位置时,右缸的喷油器和点火线圈工作使右缸燃烧,驱动活塞向左运动。当喷油或点火控制不精确,喷油或点火与设定位置有较大偏差时,发动机容易失火。而如果直线电机不在设定时刻转换工作状态,发动机可能撞缸或者失火。
2 系统硬件选型与设计
2.1 硬件总体方案
图2 系统硬件总体架构
图3 滤波模块
图4 进气温度传感器外电路
图5 点火线圈驱动电路
如图2所示,系统采用NI公司的cRIO9039作为控制器,通过控制板卡读取数据、输出命令,并存储数据。该控制器包含有1.91 GHz的四核CPU、2 GB运行内存、16 GB闪存和Kintex-7 FPGA,可以使整个程序运行周期短至0.05 ms,实时保存进气温度、进气压力、活塞位置、缸内压力等数据。控制器插槽中有3个C系列模块,其中NI9205数据采集卡读取各个传感器数据,NI9401信号输出卡控制点火和继电器,NI9751驱动喷油器。
2.2 传感器信号处理模块
NI9205信号采集模块可以识别±200 mV到±10 V的电压信号,32个AI端口满足信号处理需求,并且为控制系统功能扩展预留端口。活塞位移信号是两个相隔1/4磁极距的霍尔信号传感器输出的差分信号±sin、±cos,信号范围在2.25到2.75。位移传感器位于直线电机中,由于电机动子运行时振动和环境影响,信号会受到较多干扰,需要将信号经滤波器滤波后,再接入NI9205板卡。Butterworth滤波通带特性平坦,阻带衰减速度快,故采用7阶巴特沃斯无源LC低通滤波器。如图3所示,其中R1=50 Ω,R2=50 Ω,L1=470 nH,L2=820 nH,L3=470 nH,C1=56 pF,C2=267 pF,C3=267 pF,C4=68 pF。
进气温度值与传感器中热敏电阻值相关。如图4所示,将进气传感器与3 kΩ外接电阻串联,接入5 V电源两端。由外接电阻两端电压计算出热敏电阻阻值,查表可得进气温度值。
Kistler 6125C缸压传感器的信号经电荷放大器转换为电压信号,由设定电压与压力比例关系得到缸压值。进气压力传感器直接输出电压信号,查表得进气压力值。
Kistler 6125C缸压传感器的信号经电荷放大器转换为电压信号,由设定电压与压力比例关系得到缸压值。进气压力传感器直接输出电压信号,查表得进气压力值。
2.3 驱动模块
喷油驱动采用NI 9751,该板卡是3通道直喷器驱动模块,可以直接驱动系统的两个直喷喷油器。点火驱动电路如图5所示,采用Fairchild公司的FGBS3040 IGBT模块,控制信号为NI9401输出的5 V TTL信号。当控制信号为高电平时,12 V电源为点火线圈充电,高电平时间达到设定Dwell Time后,控制信号变为低电平,点火线圈通过火花塞释放存储的电能。
图6 电机切换电路
电机状态切换电路由两个三相继电器和一个三相整流桥构成。通过NI9401输出的5 V TTL信号控制继电器开关。当继电器1闭合、继电器2断路时,电机处于驱动状态;当继电器1断路、继电器2闭合时,电机处于发电状态,输出的三相交流电经整流桥整流后转换为直流电,电能通过整流桥后的电阻消耗。电机切换电路执行时间为10 ms,自由活塞发电机的运行频率为15~30 Hz,满足需求。
3 系统软件设计
系统程序分为FPGA程序和Real-Time程序。FPGA程序运行在控制器的FPGA中,直接通过底层逻辑执行,时钟为48 MHz,实时性高,但是FPGA资源有限,所以FPGA程序只是通过与C系列模块的通讯,实现数据I/O,进行简单且重复性高的信号处理。Real-Time程序运行在cRIO的实时控制器中,可调用较多资源,实现信号分析、复杂控制逻辑等功能[7]。
3.1 FPGA程序
FPGA程序主要实现传感器信号的读取和喷油器、点火线圈、继电器信号输出端口的设置。如图7所示,设置模块4(NI9205)的0-7端口为各个传感器信号的输入端口,模块1(NI9401)的3、4端口对应继电器1、继电器2的控制端口。其中继电器1和继电器2的信号为相反关系,使得继电器1闭合时继电器2断开。
图7 FPGA传感器和继电器信号I/O
图8中定时循环程序设置NI9751模块参数的接口,如喷油器通道使能、喷油器类型、喷油电流参数。
图8 喷油驱动设置
图9 点火驱动端口设置
图9的While循环程序设置点火驱动的控制信号端口,当点火使能为True时,NI9401输出一个周期的PWM波形,高电平时间为设定值dwell。
3.2 Real-Time程序
如图10所示,Real-Time程序分为信号处理模块、喷油点火模块和状态切换模块。程序在一个定时循环结构内,处理FPGA传递过来的信号,计算喷油与点火参数,判断电机工作状态,输出命令到FPGA的喷油器、点火线圈和继电器控制端口。
图10 Real-Time程序总框图
图11 信号处理模块程序
图12 位移处理模块
图13 状态切换程序框图
如图11所示,信号处理模块将FPGA程序读取的进气压力、进气温度、缸压、位移电压信号由对应关系转换为信号实际值,并将这些信号传递到状态转换和喷油点火模块。
图12为信号处理中的位移处理模块,位移信号由归一化后的霍尔传感器信号sinθ和cosθ计算得到,其中θ为电气角度。由于该自由活塞发电机的最大行程为83 mm,电机磁极距为71.2 mm,不同磁极距时位移计算方法不同。通过计数值K判断当前磁极距,K的初始值为0,活塞每经过一次磁极距交接点,K值就加1。当K为偶数时,当前磁极距为第一磁极距;位移L计算公式为:
当K为奇数时,当前磁极距为第二磁极距;位移L计算公式为:
图13为状态切换模块,程序分喷油点火启动判断模块、电机力辅助模块、撞缸保护模块。在自由活塞发电机启动过程中,电机处于驱动状态,活塞被驱动压缩做功,当燃烧室内压力达到设定值后,喷油点火启动判断模块启动喷油点火功能,将使能信号传递到喷油点火模块,自由活塞发动机会在下一个循环的喷油点火设定位置喷油点火。撞缸保护模块同样运行在启动过程中,如果电机力过大,活塞会撞到缸盖,为防止撞缸,撞缸保护模块会在设定位置断开电机力。电机力辅助模块会在左缸喷油点火后,选取点火后缸压的峰值,如果峰值大于设定值,则该缸燃烧,电机力断开,电机转换为发电状态;如果缸压峰值小于设定值,则左缸失火,电机力会持续到右缸的点火位置,若右缸点火后缸压达到设定值,则点火成功,电机转换为发电状态,否则电机仍然处于驱动状态,直到发动机点火成功。
图14 喷油点火模块框图
图14为喷油点火模块,由于喷油和点火动作都是在压缩过程中执行的,所以将喷油点火模块放在同一个条件结构下。当状态切换模块的喷油点火使能信号传递过来时,喷油和点火程序同时被使能。
图15为喷油控制模块,该模块负责喷油压力、喷油脉宽、喷油位置的控制。由进气温度和扫气结束压缩开始时刻的缸压计算出喷油量,然后通过喷油量和喷油压力在喷油器特性曲线查表得到对应的喷油脉宽,喷油器在压缩起始位置喷射。当自由活塞发电机需要停机时,停机模块会执行,逐步减小喷油脉宽,直到停机。
图15 喷油控制模块
图16为点火控制模块,控制点火位置和点火能量。点火模块使能后,活塞经过点火位移时,点火控制模块会按照设定的Dwell值,通过NI9401输出PWM波形的点火命令。
图16 点火控制模块
4 控制系统功能验证
a)位移-时间图 b)缸压-时间图图17 FPLG启动过程
在自由活塞发电机上验证设计的控制系统,样机最大行程为84 mm,缸径为50 mm,直线电机启动力为100 N,喷油压力为5 MPa,点火延迟时间为1.5 ms,燃油当量比为0.6,点火位置为33 mm,喷油位置为11.3 mm,失火判断缸压为1.3 MPa。图17为自由活塞发电机启动过程,9.1 ms时左侧缸压达到0.9 MPa,喷油点火模块启动,电机转换为发电状态。活塞向右缸运动过程中,发动机开始喷油点火, 右缸混合气体点燃, 缸压峰值为1.486 MPa,活塞受膨胀力作用,向左运动;左侧气缸喷油点火,左缸点燃,缸压峰值1.45 MPa,活塞向右运动;右侧气缸喷油点火,缸压峰值为0.946 MPa,右缸失火,电机转换为驱动状态,驱动活塞往复运动,直到10 ms后活塞再次向右运动,右缸点燃,电机转换为发电状态。
5 总结
1)利用cRIO9039作为控制器,NI9205、NI9751、NI9751等C系列模块作为控制板卡,基于LabVIEW编程实现了对自由活塞发电机的检测和控制,能够准确、及时地在设定位置喷油、点火以及转换直线电机的工作状态。
2)设计电机力辅助控制策略。根据缸压信号判断气缸失火状态,直线电机会在气缸失火时转换为驱动状态,保证系统的连续运行。
3)控制系统采用模块化设计,可扩展性高,有利于进一步优化控制策略。
参考文献:
[1]Mikalsen R, Roskilly A P. Performance simulation of a spark ignited free-piston engine generator[J].Applied Thermal Engineering, 2008, 28(14):1726-1733.
[2]Xiao J, Li Q, Huang Z. Motion characteristic of a free piston linear engine[J].Applied energy, 2010, 87(4): 1288-1294.
[3]林滨滨, 肖进, 张磊. 基于Simulink和GT-Power的自由活塞发动机仿真[J].内燃机与动力装置, 2017, 34(1):17-23.
[4]张磊, 肖进. 基于Matlab/Simulink的自由活塞式发电机运动仿真分析[J].内燃机与动力装置, 2016, 33(1):59-64.
[5]李庆峰, 刘涛, 肖进,等.基于MC9S12的自由活塞式内燃机电控系统设计[J].内燃机工程, 2011, 32(1):19-23.
[6]陈树学,刘萱. LabVIEW 宝典[M].北京: 电子工业出版社,2011.4-5.
[7]美国国家仪器公司. CompactRIO开发者指南[EB/OL].ftp://ftp.ni.com/pub/branches/china/2012CompactRIODevGuide.pdf. 2012.