2019-03-17 关于SVPWM输出波形的学习

昨天终于输出来想要的波形很开心!

单片机确实不好学。

一个输出错误卡了大半个月,总结一下。

首先,必须要有理论先行,然后是算法的单片机实现。

然后是实际输出。

遇到的问题是,上升沿和下降沿一致,都是上升。于是开始找原因。

首先是怀疑PWM输出并没有开启中心对齐模式。

然后寄存器操作,不行,库函数也不行。再进debug,断点,确实可以,已经初始化了。

排除。

第二是死区时间可能太短,

然后研究死区时间,发现修改并没有太大影响,只是稍微变短了一点。

寄存器和库函数都操作一遍,不行。排除。

然后是怀疑PWM上升沿下降沿是否反了或者和模式有关。

然后库函数继续初始化一遍,不行。排除。

然后怀疑引脚初始化不行,查了一遍九年起操作手册,没问题,排除

然后就是怀疑PWM周期太短,导致都是上升沿,后面又推广到了定时器的频率

还有中断的周期,这个到现在还不太会算,这个以后还得学习的方法。各种查手册

又改了预分频的值,还是没有太大效果,只是变短了,并没有反向。排除?

然后研究算法是否出错了,发现有一个函数修改算法,两个一起变化,而且可以一起反向,

于是又认为中心对齐模式有问题。却没发现算法可能有问题。

最后仔细分析单独一条函数,发现因为数值低于ARR为高电平

为什么会突然arr变大?是某个扇区出了问题?

然后又degree++,一度一度的均匀增加

发现三那条曲线都是某个扇区出了问题,再深入,就是某个算法出了问题

然后就想出了单一解决某个算法的方法。

而且还找到了规律,最后问题解决。完美输出SVPWM。

以后学习新算法:

1.先看理论和程序。全部注释好,一个步骤不要落下

慢慢学,有目的的学才是提高的根本,省时间的前提

2.单一变量处理。

就像最后想出来的办法一样,先把算法放在一个理想的情况下,然后单独针对某个

方面研究到底哪里出了问题。

最后再加上其他东西。

只有核心算法对了,其他功能才能谈得上。

3.勤问学长才是硬道理,一起探讨总比一个人闷着头有思路,有想法

发现自己的盲点。

你可能感兴趣的:(2019-03-17 关于SVPWM输出波形的学习)