FPGA搞SVPWM+VVVF,略囧
本帖最后由 yanli12321 于 2014-4-20 20:35 编辑

看到张静茹童鞋用STM32搞电机控制,我也心动了........按照我的习惯,理论推导是必须要走一遍滴,于是乎..............
216624

床铺党的胜利[s:125]

推了好几天,终于把SVPWM的算法推出来了,接下来就是写程序,在此为大家强烈推荐c4droid——安卓下的C编译器........程序猿居家旅行杀人灭口必备啊
216620


手机敲代码略慢.......但还是把SVPWM程序搞出来了.......其中结合了我之前搞得快速正弦表计算算法(详情参见https://www.kechuang.org/t/63198),计算压力小多了
216642


表示c4droid的界面很欢乐

SVPWM  C代码如下




216641

仿真输出......这个是输出占空比,人肉逻辑分析仪表示应该是SVPWM的龙猫波了[s:98]

感谢静茹姐姐帮忙分析数据..........看来一切正常
216644


程序搞出来了..........但问题是.........手头最好的MCU是一片ATMEGA16............用这货搞浮点计算简直就是个joke..........

头疼了好久,突然想起来之前买的一块FPGA开发板还没动过呢.........EP2C8 至少比AVR强吧[s:105]
新问题又来了.........之前只用verilog HDL给CPLD编过一些简单的程序.......正弦计算神马的压力山大,直到我得知FPGA可以用mif文件来初始化它的RAM,然后,一个邪恶的想法诞生了......
我把SVPWM程序稍稍修改了一下,按照mif文件的格式输出数据,出来是这样滴:
216671

这个只输出了一相SVPWM数据,采用分时复用的方式输出三相信号

然后利用quartus II自带的IP核定义了一个RAM块,再用前面的mif文件初始化这个RAM.......SVPWM计算环节就这么被我大大咧咧地略过了

接下来试验了一下PWM输出三相SVPWM,8位分辨率,因为示波器要用一个通道触发.....所以只能看一相的波形了.......
216625

貌似很不错的样纸

接下来是VVVF(变压变频).........头一次看到这个概念还以为是神马高大上的东东,买来两本电力拖动研究了好久,在一大堆公式后面,我只看到了这么一句话:在转速低于额定转速时,保持V/F为恒指(不考虑绕组内阻);在转速高于额定转速时,采用恒压变频驱动。
坑爹啊!!!
接下来就好办了,还是用IP核生成除法器,由一个外部信号控制输出频率和电压,同时保持恒压频比。然后顺手找来了开发板自带的ADC驱动,拧电位器控制吧[s:101]
测试视频:
点击此处查看视频

恩,完全正常,下一步就是驱动电机咯

问题再一次来了.........手头没有三相感应电机,想来想去,找了个旧硬盘,用上面的无刷凑合吧[s:108]

测试环境:
216692


面包板上是顺手的搭的TC4420屌丝牌三相全桥[s:116]

因为是开环的,所以电机启动略麻烦,需要把转速调低然后手动拨一下才能转起来[s:247]
视频在此
点击此处查看视频

因为无刷电机气息磁场不是按正弦分布的........所以转起来有些抖动

实验目前就做到这里........打算等到暑假用DSP搞搞FOC,再带个PMSM。恩,大学还没上毕业设计就搞出来了[s:256]
最后附上所有的项目文件,程序全部采用verilog HDL编写
FPGA SVPWM.zip8.12M96次

216621

216622

216628

+100  科创币    金坷居士   2014-04-20   高端玩家
+1000  科创币    虎哥   2014-04-21   不错啊
来自 软件综合
 
2014-4-20 19:33:50
1楼
单片机渣渣前来膜拜大神
折叠评论
加载评论中,请稍候...
折叠评论
2楼
为什么你的示波器要单独占用一个通道去触发?我的示波器通道1设置为上升沿触发,调一下触发电平,只要CH1和CH2测试的信号同频就可以正常显示了
折叠评论
加载评论中,请稍候...
折叠评论
yanli12321(作者)
3楼
张静茹 发表于 2014-4-20 19:45
为什么你的示波器要单独占用一个通道去触发?我的示波器通道1设置为上升沿触发,调一下触发电平,只要CH1和 ...


额,这次示波器比较鬼畜,SVPWM波死活不给触发,只好让FPGA另外输出一路方波触发......
折叠评论
加载评论中,请稍候...
折叠评论
4楼
yanli12321 发表于 2014-4-20 20:16
额,这次示波器比较鬼畜,SVPWM波死活不给触发,只好让FPGA另外输出一路方波触发......


你的占空比没RC滤波吗?
折叠评论
加载评论中,请稍候...
折叠评论
yanli12321(作者)
5楼
张静茹 发表于 2014-4-20 20:24
你的占空比没RC滤波吗?


一直习惯用示波器数字滤波,如果RC滤波的话应该就能正常触发了
折叠评论
加载评论中,请稍候...
折叠评论
6楼
yanli12321 发表于 2014-4-20 20:34
一直习惯用示波器数字滤波,如果RC滤波的话应该就能正常触发了


原来如此
折叠评论
加载评论中,请稍候...
折叠评论
7楼
虽然觉得FPGA弄这个略浪费,还是DSP比较合适。当然FPGA还是很万能的,用用练练Verilog还是不错的
折叠评论
加载评论中,请稍候...
折叠评论
2014-4-21 09:05:35
8楼
大神
折叠评论
加载评论中,请稍候...
折叠评论
9楼
大神
折叠评论
加载评论中,请稍候...
折叠评论
10楼
谢谢大神,菜鸟前来学习学习
折叠评论
加载评论中,请稍候...
折叠评论
2014-4-22 18:57:45
2014-4-22 18:57:45
11楼
偶在等你的推导...........
+10  科创币    yanli12321   2014-04-23   老眼昏花差点看错...............
折叠评论
加载评论中,请稍候...
折叠评论
2015-4-16 13:23:29
2015-4-16 13:23:29
12楼
这个必须顶啊~~~~~~~~~~~
折叠评论
加载评论中,请稍候...
折叠评论
2015-4-30 12:01:25
2015-4-30 12:01:25
13楼
我是来看看的,哈哈哈~~~~~~~~~~~~~
折叠评论
加载评论中,请稍候...
折叠评论
14楼
太强了
折叠评论
加载评论中,请稍候...
折叠评论
2015-9-17 15:24:33
2015-9-17 15:24:33
15楼
你好,在斩波调节时,{counter0[13:0],clk1} 的波形是锯齿波,不是三角波吧。理论上调制波应该是三角波才是。是这个样子吗?请指教~!
折叠评论
加载评论中,请稍候...
折叠评论
2015-9-18 20:10:35
2015-9-18 20:10:35
16楼
好像很牛逼的样子,数学渣前来膜拜,,,,,
我想问个问题,步进电机的启动加速和减速的频率曲线有没有接触过,,,步进电机得在合适的启动频率慢慢调整加速频率才能做到平顺起步,,,但我是个学渣看了好多文章都不知道在讲什么鬼,一直没有写出合适的程序,,,感觉你搞的这个应该懂,,,
折叠评论
加载评论中,请稍候...
折叠评论
2016-5-30 16:17:18
2016-5-30 16:17:18
17楼

这个图是用什么显示的?
折叠评论
加载评论中,请稍候...
折叠评论
2016-5-31 20:24:51
2016-5-31 20:24:51
18楼
买个电源吧
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png