最近这段时间整理了之前的代码,因为手上没有ADC模块,所以没有对电流进行采样闭环,目前的系统框架如下图所示。
通过按键调整u_d和u_q的给定值,经过park反变换得到u_alpha和u_beta,再经过SVPWM计算得到三路PWM的占空比。发波模块将三路占空比转换为PWM并得到互补PWM,同时插入死区。PWM输入到驱动板驱动电机转动。
FPGA通过SPI读取磁编码器的角度值,并将角度值传递给park反变换参加运算。
计算原理网上有很多,这里就不啰嗦了。
下面是实现的效果:
kaihuan
因为代码比较臃肿,资源使用比较浪费,现在已经快把资源用完了,连逻辑分析仪都加不进去了。
所以后面的计划是优化代码,如果资源够用的话准备加入电流采样和电流闭环。
作为一个FPGA新手,Sipeed 高云GW2A还是很容易上手的,官网提供了很资料可以学习。
开发环境的搭建、代码的烧写、入门例程等写的非常详细。
官方网站上还提供了教学视频,我是第一次学习FPGA,入门过程基本上全靠官方提供的资料。
这块开发板对于学习者还是很友好的。
欢迎留言交流~
|