找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于FPGA的电涡流缓速器控制系统

[复制链接]
admin 发表于 2013-3-25 22:43:19 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  摘 要
     引言
     电涡流缓速器的工作原理基于电磁感应理论。作为一种辅助制动装置,其减少了主制动装置的机械摩擦,既提高了寿命,又提高了车辆行驶的安全性、经济性和舒适性,越来越受到汽车制造厂家的青睐。但是,由于汽车领域对实时性要求较高,且模糊控制算法涉及到频繁的多字节数据的乘除运算,而FPGA在实现算法方面具有巨大的优势,因此本文将基于FPGA进行设计。另外,本文结合基于FPGA的32位精简指令软核Nios编程,能很好地解决实时性与控制灵活性之间的矛盾。
     节能型电涡流缓速器
     目前大部分电涡流缓速器利用蓄电池或自带发电机来产生励磁电流,这两种方法在缓速时都不能最优化地将车辆所具有的动能转化为刹车能量。
     本系统根据电涡流缓速器制动力矩的大小对自发电机和蓄电池进行调度,电涡流缓速器制动力矩公式如下:
     这里,lg为气隙间距; d为铁心直径;R1为励磁线圈中心点的半径;Np为磁极对数; N为励磁线圈绕组匝数;I为励磁线圈绕组电流;r为转子盘电阻率;mr为转子盘相对磁导率;w为转子角速度。
     当车速较大时,自发电机在一定电压下的输出电流大于I,将一部分电能用于制动,剩下的电能储存到蓄电池;当车速较慢时,自发电机在一定电压下的输出电流小于I,则从蓄电池输出电流到绕组线圈产生励磁电流,从而最大限度地利用能源。
     基于FPGA的电涡流缓速器控制系统
     为了提升系统可靠性和灵活性,本控制器根据功能需求进行模块化设计,主要包括ADC0809控制、NIOS处理器、模糊控制器、电源控制、PWM、LCD显示等模块,系统结构如图1所示。
      2012110704582875215978.jpg
     
     图1 电涡流缓速器控制系统结构
     系统首先由ADC0809控制模块控制ADC进行各种信号,如温度、电压等信号的采集,然后通过Avalon总线把数据传输到模糊控制器、电源控制等模块。电源控制模块根据车速会对蓄电池和自发电机进行能量调度,实现最大限度的节能;模糊控制器模块根据恒速、恒流等控制策略,计算出用于控制PWM占空比的参数,实现励磁电流的调节。
     ADC0809控制模块
     信号采集是系统实现闭环控制的重要环节,它的好坏关系到整个系统的性能。采用FPGA控制ADC的方式能有效降低外界干扰对采样造成的影响,提高可靠性。另外,利用FPGA状态机产生的时序控制ADC时,控制周期短、速度快,能提高整个系统的实时性。
     使用状态机控制ADC0809芯片采样,包括时序控制和数据的读取。首先,状态机输出两路信号先后控制引脚ale和start,一旦start有效,状态信号EOC即变为低电平,表示进入转换状态,状态机通过不断检测ADC0809引脚EOC的电平来判断转换是否结束。若EOC为高电平表示转换结束,状态机输出信号使引脚OE由低电平变为高电平,最后读取转换好的数据,主要Verilog代码如下。
     always @ ( EOC ,state )
     begin case ( state )
     st0 :begin ale &lt;= #1 1'b0; start <= #1 1'b0; OE <= #1 1'b0; state <=#1 st1; end
     st1 :begin ale <= #1 1'b1; start <= #1 1'b0; OE <= #1 1'b0; state <=#1 st2; end
     st2 :begin ale <= #1 1'b0; start <= #1 1'b1; OE <= #1 1'b0; state <=#1 st3; end
     st3 :begin ale <= #1 1'b0; start <= #1 1'b0; OE <= #1 1'b0;
     state<=(EOC==1'b1)? #1 st3:st4; end
     st4 :begin ale <= #1 1'b0; start <= #1 1'b0; OE <= #1 1'b0;
     state<=(EOC==1'b0)? #1 st4:st5; end
     st5 :begin ale <= #1 1'b0; start <= #1 1'b0; OE <= #1 1'b1; state <=#1 st6; end
     st6 :begin ale <= #1 1'b0; start <= #1 1'b0; OE <= #1 1'b1; state <=#1 st0; end
     default : begin ale <= #1 1'b0; start <= #1 1'b0; OE <= #1 1'b0; state <=#1 st0; end
     endcase end
     模糊控制器模块
     电涡流缓速器是一个非线性系统、强耦合、模型较复杂的对象。由于常规PID控制不具备在线调整参数的功能,所以不适于励磁电流与车速呈非线性关系的系统控制。而模糊理论具有很强的非线性建模能力,能完成复杂系统的非线性映射功能,将模糊推理机制引入到测控系统中,实现对电涡流缓速器的最佳控制,以满足实际的行车情况,控制器原理图如图2所示。
      2012110704582878339979.jpg
     
     图2 模糊控制器原理图
     从原理图可以看出,本模糊控制器采用了二维模糊调节的方式,以改善系统的动态性能,即模糊控制器的输入为给定值与测量值偏差e和偏差变化率芿=ek-ek-1所对应的两个模糊控制集,经量化因子量化后,得到对应的量化等级,其量化等级分别表示为{-7、-6、-5、-4、 -3、-2、-1、0、1、2、3、4、5、6、7}。控制决策表是经离线模糊控制推理运算,并结合系统的实际运行进行调整、修改得到的,但它仅反映常规模糊控制的控制规则,不能保证系统的动、静态特性在大范围内最优。因此,为改善模糊控制器的性能,根据系统的误差和误差变化等信息,对控制器实行在线调整,实际输出的控制量为决策表值与比例因子的乘积。比例因子的选取规则如下:当e和芿较大时,系统主要是减少误差,加快动态过程,应取较大值;当e和芿较小时,系统接近稳定值,应取较小值。最后,按此原则并结合实际经验得到比例因子表。
     根据上面的分析,利用Verilog HDL语言设计出aul运算模块和rom存储模块,另外由Quartus II软件的LPM设计乘法器lpm_mult0模块,如图3所示。aul模块首先根据输入值in_a[7..0]和in_b[7..0]进行求差、除法等运算得到e和芿的值,并乘上各自的量化因子得到量化等级E和艵,然后根据E和艵与控制策略表和比例因子表的对应关系得到查表地址;rom模块存储了控制策略表U和比例因子表GU,根据aul模块传递过来的地址查找U和GU表,然后将结果输出到乘法器模块,并计算出PWM的调节增量,从而改变PWM的占空比,实现对励磁电流的调节。
      2012110704582881464980.jpg
     
     图3 模糊控制器顶层模块电路原理图
     基于Nios的主控程序
     Nios处理器是整个系统的中枢,是各控制模块通讯的桥梁。Nios处理器通过Avalon总线将采集进来的各种参数,如车速、ABS、电压等,按需要传递到各控制模块,控制模块再把相关的运算结果返回给主控程序,以实现相关的控制策略,如图4所示。
      2012110704582884589981.jpg
     
     图4 主控程序流程图
     结语
     本课题选用Cyclone II系列中的EP2C5Q208C8芯片,它具有4608个逻辑单元,内部RAM达119808位,内部乘法器可达26单元,最大用户I/O达143个,这些丰富的资源能够满足电涡流缓速器控制器各模块的设计需求,逻辑单元的使用率为65%,RAM使用率为45%。本设计方法提高了系统的集成度和可靠性并且降低了功耗,FPGA的可重构性大大方便了系统将来的升级,而不需要改变原来的电路布线。■
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-28 06:06 , Processed in 0.060045 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表