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