扇区判断模块主要程序:
case (N_ST1) S0:begin V=1; if(X==170) N_ST1=S1; else X=X+1; end//扇区Ⅰ偽澀锟攢鴛擋緬铹鈞錠。 S1:begin V=2; if(X==341) N_ST1=S2; else X=X+1; end//扇区Ⅱ 緦徑铫膾龋轿级镗挢廟。 S2:begin V=3; if(X==511) N_ST1=S3; else X=X+1; end//扇区Ⅲ
钶銘侥张礫阵轸蔼。 騅憑S3:begin V=4; if(X==682) N_ST1=S4; else X=X+1; end//扇区Ⅳ疠骐錾农剎貯狱颢幗騮。 S4:begin V=5; if(X==853) N_ST1=S5; else X=X+1; end//扇区Ⅴ镞锊过润启婭澗骆讕瀘。 S5:begin V=6; if(X==1023) N_ST1=S0; else X=X+1; end//扇区Ⅵ榿贰轲誊壟该槛鲻垲赛。 default:N_ST1=N_ST1;
endcase
ROM_CTR模块包含了两种功能:一种是通过电源频率值的输入,将频率转化为斜坡信号然后每一个调制周期都将控制下一个模块运作一次,另外一种则是扇区判断,这里使用了计数器从0计数到1023这个过程所使用的时间来表示一个周期,而将这个周期分为6个时间段,即计数值1023分为6段来一一对应每一个扇区见程序,扇区分布见图3.14。如图3.15,参考电压矢量按Ⅰ—Ⅱ—Ⅲ—Ⅳ—Ⅴ—Ⅵ这样的扇区顺序旋转输出的扇区号同样按这样的顺序呈现周期的阶梯信号。邁茑赚陉宾呗擷鹪讼凑。 u3ⅡⅢu2urefu7ⅣⅤu4u8ⅠⅥu5u6
图3.14扇区分布图
2 8
图3.15扇区判断模块仿真图
3.2 PWM信号发生模块
图3.16 PWM信号发生模块
PWM信号发生模块输入开关导通时间T1、T2,并通过参考矢量所在的扇区号
使用计数器的方法输出相应的PWM六路脉冲信号。嵝硖贪塒廩袞悯倉華糲。
图3.17 PWM信号仿真图
仿真六路PWM如图3.17,在每一个调制周期内六个开关电路都要导通一段时
间参与矢量合成,并且在每一个调制周期内导通时间对称。该栎谖碼戆沖巋鳧薩锭。 3.3 死区模块
图3.18 死区模块
在SVPWM信号投入实际运用当中,逆变器中的开关电路的开关器件并不是理
想的器件,所以开通和关断都会有一定的延时,所以必须增加一个死区环节,以防止器件在导通后原本应该关断的器件可靠地关断。劇妆诨貰攖苹埘呂仑庙。 2 8
图3.19 死区模块仿真图
如图3.19,死区模块的作用是当开关导通的时候延时一段时间再发出导通信
号,而关断的时候则立即发出关断信号,以确保开关电路的可靠工作。臠龍讹驄桠业變墊罗蘄。 3.4 软件总系统
通过将本章所提的所有模块输入输出口连接,得到软件总图见附录,对整个
程序进行仿真得到图3.20中的仿真波形,呈现马鞍波,即我们所需要的波形。当电源频率上升到一定的时候,开关矢量就无法通过线性组合的方式来合成参考矢量,在程序中的反映是两个开关矢量的持续时间之和超出了调制周期的时间,那么在这里,当它超出了调制周期的时间,我们则按比例缩减到时间的允许范围内。图3.21为过调制时的仿真波形。鰻順褛悦漚縫冁屜鸭骞。
图3.20 软件总系统仿真图
图3.21 过调制波形仿真图
4 硬件与调试
本文通过StormⅢ FPGA V1.2开发板进行硬件验证使用的硬件图片见附录3、
2 8
4,其中开发板的核心FPGA芯片为Altera 公司的EP3C10E144C8这一款芯片,其逻辑宏单元个数10320,内存容量42万位左右,完全满足所编写程序所需要的硬件条件。穑釓虚绺滟鳗絲懷紓泺。
其中,将输出的PWM信号接入RC滤波电路后则在不过调制的情况下,用示
波器观察可呈现出马鞍波。其中滤波电路要满足以下公式[12]:隶誆荧鉴獫纲鴣攣駘賽。 RC?
12?f (4.1)
其中电阻与电容的乘积略小即可,本文以R=20Ω,C=1μF来搭建硬件测试
电路,其示波器测得波形如图:
图4.1 15HZ波形图
图4.2 30HZ波形图
图4.1与4.2中分别为15HZ和30HZ时的输出波形图,电源频率由15HZ变
化到30HZ,其周期越来越短的同时,幅值也跟着上升,就满足三相异步电机的在基频以下调速需要保持电压的有效值与频率的比值恒定。浹繢腻叢着駕骠構砀湊。 2 8
图4.3 过调制波形图
见图4.2、4.3示波器所测得的波形图,跟仿真结果一致,算法的实现准确。 见附录5,这里使用了单片机给定频率信号,频率输入到FPGA开发板,经过
SVPWM算法运算后输出出六路PWM信号,并且将这六路信号通过一个驱动电路,来驱动一台小型的三相交流电机。在驱动三相交流电机过程当中,改变单片机发出的给定频率值,可调节电机的转速,说明了算法实现的可靠。鈀燭罚櫝箋礱颼畢韫粝。 5 总结与展望
本文总结了以FPGA作为硬件基础,Verilog HDL 作为软件基础,将SVPWM的理论运算通过软件编程实现,给出了整个运算过程的核心运算公式,并且通过仿真验证,硬件滤波电路搭建的验证,使用硬件驱动一台三相交流电机,说明了整个设计的正确性,将理论上的算法实现到实际当中去。惬執缉蘿绅颀阳灣熗鍵。 但是仍然有缺点,比如硬件资源利用率的提高,虽然通过一些编程技巧减少了一部分的硬件资源的使用,但是仍然占用了较多的硬件资源,所以应该尽量地避开耗费硬件资源的编程内容,比如判断参考电压矢量所在扇区,可直接在角度周期变化中包含这一功能,避开了运算,用FPGA擅长的计数器来完成功能,能有效地减少了硬件资源的使用;在精确度上,由于Verilog HDL当中是没有实数数据类型,数据都以整数来处理,导致精度无法做得很高,在一些高性能要求的场合当中,将无法满足要求,在精度方面有待加强;在实际应用当中,文中的算法程序只经过了简单的硬件验证,想要投入到实际应用场合仍然欠缺调试。所以,在文中所提及的算法实现仍然有很大的改进空间,在以后的工作当中逐渐完善。
贞廈给鏌綞牵鎮獵鎦龐。
2 8