调试电机不能看到某些变量的变化趋势让我觉得不是很舒坦,于是今天安装上了STM studio,在这之前我一直用的是Jscope。 工程是workbench5.1.3生成的,代码是用的No.5 电机套件实验任务3&旋钮控制转速这篇文章的; o$ y# O+ F( ^' Y, i4 f 首先是使用STM studio来查看一些内部变量,结果如下: 颜色挺鲜艳的,不过我觉得不是很好用,只能框选缩放,不能通过鼠标滚轮来操作。 解释一下图里面的内容吧,其实在图片底部都有图例% X, Q$ C. |* ^4 y" j% U. E 1.蓝色是我在代码里添加的实时速度变量realspeed,可以看到整个实验过程的速度变化趋势。4 A) L- x: E( `& R1 e M/ u' s 2.灰色是finalspeed,这个函数MC_ProgramSpeedRampMotor1的第一个参数对应的就是finalspeed,和真实速度相差6倍,所以在设置的时候我们的设置值要除以6. 3.橙色是Iqdref变量的第一个组件,q轴电流参考值,在启动阶段可以看到q轴电流参考值很大,这是因为启动方式是满转矩方式启动,运行中当速度超过某个值后电流参考值设置到最大,这时候处于电流环输出饱和状态了。" I, v# o7 Z, x9 O 4.墨绿色是Iqdref变量的第二个组件,d轴参考值,从图中可以看到这个值一直是处于0状态,这是因为我们运行的FOC不需要对磁链进行调整,在某些运用中如果需要电机转速高于额定转速时,则需要调节d轴电流,进行弱磁升速。6 r8 w( Q( A& J, l+ X4 C1 U+ F! D0 B2 R 5.紫色是Iqd变量的第一个组件,q轴电流实际值,从图中可以看出在启动和低速阶段q轴电流能很好的跟踪到参考值的变化,当转速较高时q轴电流开始出现震荡。 6.绿色是Iqd变量的第二个组件,d轴电流实际值,从图中可以看到d轴电流在零值附近震荡得更加厉害,几乎贯穿了整个实验过程,这个现象是不可避免的。 j5 v# d& ]5 D% e' n- @0 N ; ]! ^ M5 b# `$ [$ [% {) N 由于是初次使用STM studio,所以我只保留了一张图,下面是我调试过程中使用Jscope生成的截图: 查看dq轴电流波形与速度之间的关系,结论和使用STM studio时一致。 启动时q轴电流大很大,满转矩启动。 展开看可以发现,当速度超过12000转时电流q轴电流震荡非常厉害,而d轴电流一直处于震荡状态,需要通过调节PI参数来抑制这个现象,但是目前还不能完全消除。. r9 N' N |: O* {( o 这张图中是电机启动阶段dq轴电流波形,q轴电流从零上升到最大值需要的时间大约是1s,我在代码中还没找到在哪里修改这个参数,这个时间太长了,开环强拖环节时间已经减少到0.5s。从图中看得出来,满转矩启动后维持较低转速运行的电流其实是很小的。9 S4 ^% ^5 r" Y4 a4 ~& O; P' e & h/ ^8 c* D5 x' l& P; O 这张图查看的变量是alpha-beta轴电流与给定角度之间的关系。$ ?4 q! f6 [9 B3 y+ I 1 Y, W' k. Y$ Y$ [2 E& Z+ B 满转矩启动切入观测器角度细节图。 & K/ b( \& C( D8 S Q3 i 今天的分享就到这里,大家有什么问题可以留言讨论。 |
那你得看看你自己的板子和开发板有哪些不同了,对比一下。最好是一点点验证硬件,电机启动不起来的原因有很多,软件上和硬件上的都有
之前说了啊,虚拟速度发生器给定的角度和观测器的角度差别较大就是不满足切入闭环条件,调整观测器增益可能会改善,建议学习《现代控制理论》
有判定条件的,达到一定转速,观测器能找到转子位置后才能切,某些电机转速低的时候反电动势太小,观测器无法收敛就不能低速切入闭环
工欲善其事必先利其器
STlink是可以刷成Jlink的,过程是可逆的,参考这篇帖子【STM32电机培训】——9、Nucleo板上使用J-Scope工具例程
可以的,DAC调试对于调试还是很方便的,对于没有DAC的MCU这些工具就很重要了
看观测器角度和虚拟速度发生器的角度是否一致
观测到的数据用于指导调整什么的呢?该怎么调,有说明指导吗?