你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
donatello1996 发表于 2017-8-30 23:35 8 C( X* l" `6 R对了楼主知不知道在FOC那个例程里面监测电机转速和VBUS电压是哪个函数啊? ...
donatello1996 发表于 2017-8-30 20:531 D( \3 b& P! ^! w4 x( t4 Y: e& k0 @6 q" w 看了楼主的帖子学到了不少东西
努力的人 发表于 2017-8-30 21:24& ^" d2 k0 H# L5 Q& G0 x0 m( e 这就是互相分享的意义呀
母线电压是ADC采样的
所有的函数都在这里,你自己查
. J! @" A; H) T3 h: F/ j
TASK3# p+ |- b) ?3 j# P
首先还是上传一下源码1 O* S3 ?5 t' ^8 H7 g
然后我们将下面的代码下进板子中3 S1 a; I5 v* g1 F
关于故障代码可以参考:
关于至状态机故障和清除故障的程序,大家参考StateMachineClass.h
状态机看这个图:
5 N6 {/ y( k4 W
5 y4 q8 y. f7 E: @; L# h9 k
. s- }# ~) ?/ Z0 b, {& u# ^
二、TASK1 5s转动、5s停止
首先上传一下源代码,因为systick的500us的定时与SDK中一些任务的处理速度相关,这里我觉得还是不要修改定时时间比较好,我的代码如下:) _7 S" J6 a( f1 j; ] e
说明:在main.c中定义uint16_t mytime; 在stm32f30x_it.c中定义extern uint16_t mytime;5S就是10000*500us,所以就可以转5S停5S了
视频:
5 r9 }5 M9 O) d* |# d
% w# `1 R! f& X1 k- q
三、TASK2 PID参数的调试* H0 |2 ~( F7 t0 ~8 d9 N
任务2的代码如下:4 ]* D5 D' }' N+ x$ N
接着我们修改程序,将程序设成2倍的PI参数(左图)和0.5倍的PI参数(右图)
从图中可以看出,增大倍数的PID参数比减小的好,所以我们接下来将PI参数往大了调,分别作了2.2倍,2.5倍,2.9倍的速度曲线图
我们还想让超调小一点,所以我减小了一点P参数,最终得到这个速度曲线,我们通过上位机可以看到调完的参数,最后将程序中默认的PID参数改成我们自己的。
这就是互相分享的意义呀
对了楼主知不知道在FOC那个例程里面监测电机转速和VBUS电压是哪个函数啊?