|
相关阅读:" W& m X6 f2 r, U2 v 电机培训 - 三个任务主函数及中断程序$ i- s% g& B% s. P$ [0 t3 O! m 电机培训 - 让你可以深入研究的PMSM/BLDC文档$ R. \4 B1 `( \# K- u7 V PS:如果大家觉得帖子还可以的话,请到社区之星评选为我投出你宝贵的一票谢谢点击进入投票& U$ ?1 |0 f8 L1 v. M9 m3 m 很高兴参加了ST的电机控制培训,先上几张图,我也悄悄地在提问窗口回复了坛友的问题 ![]()
+ _' w/ r( _; b. I* T4 Z
下面开始步入正题吧!我的主函数程序下载
main.rar
(3.98 KB, 下载次数: 113)
|
微信公众号
手机版
母线电压是ADC采样的
所有的函数都在这里,你自己查
TASK3
首先还是上传一下源码( G, [: N2 t8 L6 T
然后我们将下面的代码下进板子中
关于故障代码可以参考:
关于至状态机故障和清除故障的程序,大家参考StateMachineClass.h* R: Z$ m) _* ~$ c/ H( z" m
状态机看这个图:
. m2 v) f3 g% J* V8 ?, B$ J( ^
二、TASK1 5s转动、5s停止
$ R+ \: m# P3 J9 @5 E* t
首先上传一下源代码,因为systick的500us的定时与SDK中一些任务的处理速度相关,这里我觉得还是不要修改定时时间比较好,我的代码如下:
说明:在main.c中定义uint16_t mytime; 在stm32f30x_it.c中定义extern uint16_t mytime;5S就是10000*500us,所以就可以转5S停5S了1 K# @) E8 g$ |' E
视频:
& m4 \% q& X8 J! ?7 j4 z
三、TASK2 PID参数的调试
任务2的代码如下:& I3 [8 a' p9 R5 `% h8 L' h, r& b
接着我们修改程序,将程序设成2倍的PI参数(左图)和0.5倍的PI参数(右图)
从图中可以看出,增大倍数的PID参数比减小的好,所以我们接下来将PI参数往大了调,分别作了2.2倍,2.5倍,2.9倍的速度曲线图- M3 U' j, ?8 i1 y2 |0 j
我们还想让超调小一点,所以我减小了一点P参数,最终得到这个速度曲线,我们通过上位机可以看到调完的参数,最后将程序中默认的PID参数改成我们自己的。
这就是互相分享的意义呀
对了楼主知不知道在FOC那个例程里面监测电机转速和VBUS电压是哪个函数啊?