摘 要:介绍了一种基于FPGA的汽车油改气电控系统的研究与设计,采用自顶向下模块化设计, 依据功能将FPGA划分成几个模块,详细论述了各模块的设计方法和控制流程,给出模块的状态流程图及时序仿真波形。经在MATLAB和Quartus II环境下仿真和实际电路验证,系统可以达到预期效果。
随着资源短缺、环境污染和生态环境的恶化,汽车与环境的相容性研究已经成为汽车发展研究的主题。天然气汽车具有排放污染显著降低、燃料经济性好、安全性高、发动机寿命长等优点,因此被认为是未来有前途的一种汽车燃料。在这种强大的市场需求驱动下,油改气方案势在必行,可以根据汽车外部采集的数据对其进行分析、研究与设计。
1 系统总体结构
本系统以FPGA为中心,主要包括以下部分:(1)信号采集部分:包括一系列的汽车传感器,实时获取发动机各项参数;(2)ECU模块:系统的控制;(3)执行机构:实时执行ECU的控制指令,使发动机正常工作;(4)人机交互界面设计:完成上下位机之间异步串行通信,实时观测系统运行状况。
2 FPGA主要模块实现
根据汽车电控单元的需求,设计选用的FPGA是ACTEL公司基于非易失性Flash技术的A3P250器件(100-VQFP)。器件采用了精细颗粒架构VersaTile,具有250K系统门结构,采用了130 nm的工艺技术,内核电压1.5 V,时钟频率48 MHz。A3P250是反熔丝的,抗辐射、耐高低温、功耗低、速度快,应用较广。FPGA功能模块描述语言主要包括时钟逻辑模块、A/D采样控制模块、模糊控制模块、步进电机控制模块、PWM产生模块、UART通信模块等。
2.1 时钟逻辑模块
该设计中,外部输入的时钟为48 MHz,由于设计中需要多种不同的时钟信号, 所以必须设计一个可根据采集需要任意分频的时钟逻辑模块,且必须准确,才能保证整个系统的正常工作。同时采用同步时序电路,它是基于时钟触发沿设计,对时钟的周期、占空比、延时、抖动提出了更高的要求。分频器是FPGA设计中使用频率非常高的基本单元之一。通过自主设计进行时钟分频的实现方法灵活性好,节省系统硬件资源,而且这种方式只消耗不多的逻辑单元就可以实现对时钟操作的目的。
2.2 采样控制模块
ADC0809转换模块程序流程。数据采集系统的输入信号多数都来源于现场传感器的输出信号,传感器种类不一,致使信号特性也不同。各通道信号的幅度与频率范围有很大的不同,高的、大动态范围的A/D转换芯片使设计更能满足测量的需要, 特别是对宽频带弱信号的采集显得尤其必要。本设计中A/D转换模块选用了ADC0809和AD16 7 4芯片,ADC0809主要用于节气门信号采集,两片AD16 7 4芯片主要用于实际转速信号和设定转速信号的采集。
2.2.1 ADC0809转换控制模块
当FPGA启动数据采集时,扫描时钟便开始工作,同时扫描周期计时器和采样周期计时器开始计时。48 MHz时钟经过FPGA分频得到500 kHz的CLK作为ADC0809的驱动时钟,利用状态机实现对A/D的控制,采集过程完全按照A/D的工作时序。当单次A/D采集完成,便立即更新地址寄存器和数据寄存器。转换完后将按照此次任务规定的采集参数进入A/D芯片前的采集模拟电路建起,等待下次采样周期到来。
2.2.2 AD1*转换控制模块
AD16 7 4是带有内部采样保持的完全12位逐次逼近(SAR)型模/数转换器,支持单极性和双极性输入两种工作方式,转换时间为10 μs。根据实际工作需要,使用了双极性输入方式。AD16 73在FPGA的时钟信号clk、复位信号rst、状态信号status及控制信号cs、k12x8、rc、a0的控制下采集数据。AD16 7 4转换器模块是根据摩尔状态机实现的,完成对实际转速信号的采样,FPGA计算出误差和误差变化率,然后查模糊控制表,将控制量变换到实际控制量上。根据实际工作需要,采用两片AD16 7 4,一片采集汽车发动机实际转速信号,另一片采集汽车设定转速信号。
2.3 模糊控制模块设计
在怠速状况下,尽量使汽车稳定在转速以节省资源并减少排放。设计了一种基于FPGA的汽车ECU的模糊控制器,只需在线修改模糊控制规则表就可以做成不同和不同控制规则的模糊控制器,具有通用性,控制规则实现简单。模糊控制模块由Verilog HDL语言实现,可以随时对系统进行升级和移植,非常灵活和方便。模糊控制模块包含运算模块和模糊控制规则表模块。
运算模块主要是将采集到的汽车设定转速信号g与采集到的汽车发动机转速传感器反馈信号f进行处理,计算出汽车转速误差e和转速误差变化率de。
模糊控制规则表模块的功能是把输入的量进行尺度变换,变换到相应的论域范围;将已变换到论域范围的输入量进行模糊化处理,主要是计算各个输入量的隶属度,为了简化处理,将输入值进行均匀量化。确定模糊控制的原则是必须保证模糊控制器的输出能够使系统输出响应的动静态特性达到,既要迅速消除误差,保证响应的的快速性,又要防止产生超调和振荡,保证系统的稳定性。例如,汽车转速误差为负大(NB)时,若误差变化率为负中(NM),这时汽车转速还有进一步增大的趋势。为了尽快消除已有的负大误差,并抑制误差进一步变大,控制量的变化应取负大(NB),以尽快减小汽车的转速。模糊控制规则表如表1所示。
根据表1,模糊控制规则表用Verilog HDL描述如下:
if ((e==NB)&&(de==NB)) u<=NB;
else if((e==Z)&&(de==Z)) u<=ZE;
……
总共49条控制规则,其中NB、NM、NS、Z、PS、PM、PB分别对应一段输入的误差、误差变化率的范围。还可以对汽车转速误差和转速误差变化率论域进一步细分,得到更的结果。其中,out为输出的控制量,可以看出变化规律与理论上模糊控制规则表一致。
out对应的是步进电机的步数,用于后面生成脉冲信号。步进电机的正反转是基于前端的模糊控制模块输出信号控制的,控制单元实时检测汽车发动机的转速并与设定的目标转速进行比较。当转速低于设定值时,控制步进电机正转,开大旁通气道截面,增加进气量,缸内的可燃混合气增多,转速上升;反之,转速高于设定转速时,控制步进电机反转,旁通气阀关小,缸内混合气减少,转速下降,终使汽车发动机的转速稳定在目标转速附近。步进电机的控制程序是基于状态机设计的,程序流程。正转st0->st1->st2->st3->st0,反转st0->st3->st2->st1->st0。发动机转速传感器采集到实际转速反馈信号,与设定转速信号进行运算,得到误差和误差变化率,再去查模糊控制规则表,从而形成了一个闭环控制系统,可见该系统具有实时跟踪的性能和自我校正的功能。
为了验证系统的效果,在MATLAB中搭建数学模型,进行模拟。
一般情况下工作比较稳定,当系统设定速度的给定值在650 r/min到750 r/min之间,根据无负荷自动变换,系统可以快速跟踪其变化。当有干扰时,加入阶跃分别在100和155,可以看出经过干扰以后,由于负荷的变化,转速突然下降20 r/min,系统经过一段时间调节后,很快就上升到原来的稳定值。仿真结果表明:采用模糊控制方法不仅有效,而且降低转速的波动幅度,进一步提高了运行的稳定性,初步显示了模糊控制的良好效果;同时,系统具有很强的抗干扰能力,为下一步实际应用,改善汽车的排放性,提高燃气利用率打下了良好的基础。该系统能够实时地进行现场控制,具有很强的实用价值。
2.4 PWM产生模块设计
喷气PWM波脉宽产生是根据查表法实现的。FPGA采集的转速信号和节气门开度信号经过计算求出某时刻对应的喷气脉宽对应的地址,输出相应的PWM波。
为了适应各种不同的喷气设备,ECU出来的四路PWM波设计为根据实际情况可以随时调整。特点为:(1)四个缸的工作频率及占空比是一样的,经实际测量,在汽车运行状态下T0为10~35 ms。(2)频率会根据油门的开闭大小变化,不固定。(3)脉冲为-12 V电平。(4)特殊情况,在汽车转速达到4 000转时,波形发生变化,脉冲有交错。根据燃气的使用效果,发现只要把原先的脉宽T1适当缩短,缩短的时间可调,就能达到的效果。不过,脉冲的起始时间不能变;频率是根据气门的变化而变化的。在油改气的时候,频率不能变。
PWM测量和减短仿真,虚线竖条的时间间隔为1.310 75 ms,为了明显起见,固定减去了1.5 ms输出,在实际应用过程中,这个值可以根据需要,通过电位器将电压输入至FPGA器件,根据需要进行调整。
2.5 通信模块以及仿真结果
根据RS232异步串行通信的帧格式,在FPGA发送模块中采用的每一帧格式为:1位开始位+8位数据位+1位停止位,波特率为9 600 b/s。由设置的波特率可以算出分频系数,具体算法为分频系数X=CLK/(BOUND×2)。串行数据通信仿真。
该系统不但实现了数据采集,通过模糊控制为喷气装置产生了包含点火时间以及喷气脉宽的PWM波,实现了系统的稳定性和实时性,同时能够实时采集转速信号和节气门开度信号并通过UART传送到上位机,实时地进行监测和控制。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。