自学电机控制总算实现了最简单位置闭环

[复制链接]
12594|38
 楼主| yjmwxwx 发表于 2024-5-17 23:28 | 显示全部楼层 |阅读模式
自学了好几个月走了很多弯路,今天总算是实现了最简单位置闭环,只是最简单比例反馈过冲很大静态偏差也大,电机控制好像还真不容易学。。

遇到的一个问题就是地线干扰很大,试着把主滤波电容加到1万UF地线上振荡干扰小了很多。

还有就是旋转变压器解码电路,最开始选的激励电压太低,电机内部三相驱动信号也会干扰到旋转变,导致很难把这个干扰滤掉,才知道原来电机外壳也要接地。

这版旋变电路就这样了,等下版再提高激励电压,这版微调了下电路,抗干扰比原来强点了。

改后的电路,程序部分直接舍弃相位补偿,反正电机转速不高,就算不补偿转速高的时候也差不了几度,本身分辨率只有8位了,也不差这点了。






实际波形 旋转变插座1-4脚之间,可以看到振幅很小,要是改高点会更抗干扰,这个是电机H桥驱动工作时候的波形



ADC口波形





演示简单位置闭环,带动一个扳手旋转可以看到过冲很大,而且静态偏差也大,但是加积分控制会剧烈振荡,不知道怎么搞。。




视频最后面有演示视频





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
Diyer123 发表于 2024-5-18 17:22 | 显示全部楼层
玩反馈,玩闭环,少不了PID,还是得补数学课……
PID调参口诀能解决一些问题,但解决不了太多。
Diyer123 发表于 2024-5-18 17:26 | 显示全部楼层
还有,玩这类应用,最好是直接买套现成的控制器(平衡车、独轮车、电动车……),测绘电路,直接编程。运气好的可能在废品站就能十块钱买到。
大多是基于STM32或国产兼容芯片的的,很容易上手。
coody 发表于 2024-5-18 18:17 | 显示全部楼层
楼主ARM也用汇编编程?
楼主是否用了PID?电机是惯性系统,使用PID会比较好,过充就减小比例系数,震荡就调小积分系数。
 楼主| yjmwxwx 发表于 2024-5-18 19:32 | 显示全部楼层
Diyer123 发表于 2024-5-18 17:22
玩反馈,玩闭环,少不了PID,还是得补数学课……
PID调参口诀能解决一些问题,但解决不了太多。 ...

其实我以前学过自动控制只是数学不行实在是看不懂。。

评论

@qinlu123 :我自动控制还没搞明白。。旋变解码只是用了简单方案,具体效果没设备测,用正时灯看过但是有抖动,这东西做出来容易做精了难,现在搞的调零程序都不怎么好用,按理说还得矫正下电机电角度和旋变解码后角度。我就是个业余爱好者,搞这些东西对我来说没什么用,所以学下去的动力不大,手里也没什么东西测试,连个动态扭距传感器都没。。  发表于 2025-3-12 18:12
旋变解码都搞得定PID那玩意还不是手到擒来易如反掌  发表于 2025-3-12 14:10
@dirtwillfly :只是不知道怎么调整参数  发表于 2024-5-20 13:06
把PID学懂在电机控制上就够用了  发表于 2024-5-20 10:28
 楼主| yjmwxwx 发表于 2024-5-18 19:34 | 显示全部楼层
Diyer123 发表于 2024-5-18 17:26
还有,玩这类应用,最好是直接买套现成的控制器(平衡车、独轮车、电动车……),测绘电路,直接编程。运气 ...

我就是要自己学做控制器啊,软硬件都自己做,学了好几个月才勉强实现位置控制
 楼主| yjmwxwx 发表于 2024-5-18 19:39 | 显示全部楼层
coody 发表于 2024-5-18 18:17
楼主ARM也用汇编编程?
楼主是否用了PID?电机是惯性系统,使用PID会比较好,过充就减小比例系数,震荡就调 ...

我从学STM32就是用的汇编

目前只用了比例控制,加积分静态会振荡于是就没加,可能哪里搞的有问题,还得排查排查。

下面就是我比例控制代码

  1.        mov r0, r5              @角度差
  2. __bi_li:
  3.         ldr r1, = 5000
  4.         muls r0, r0, r1
  5.         asrs r0, r0, # 15
coody 发表于 2024-5-18 21:21 | 显示全部楼层
yjmwxwx 发表于 2024-5-18 19:39
我从学STM32就是用的汇编

目前只用了比例控制,加积分静态会振荡于是就没加,可能哪里搞的有问题,还得 ...

缩小比例系数看看。
 楼主| yjmwxwx 发表于 2024-5-18 23:42 | 显示全部楼层
coody 发表于 2024-5-18 21:21
缩小比例系数看看。

缩小试过,感觉可能我积分控制或者别的哪个地方搞的有问题导致静态振荡,等我再调试下看看哪里的问题。
Diyer123 发表于 2024-5-19 09:54 | 显示全部楼层
yjmwxwx 发表于 2024-5-18 19:32
其实我以前学过自动控制只是数学不行实在是看不懂。。

定性分析、负反馈极性这些,没读过书的人也一讲就明白
但是定量还是要靠数学
Diyer123 发表于 2024-5-19 10:01 | 显示全部楼层
yjmwxwx 发表于 2024-5-18 19:34
我就是要自己学做控制器啊,软硬件都自己做,学了好几个月才勉强实现位置控制 ...

离了个大谱……
自学不代表一切都要从零开始。要不然你还得从烧炭炼铁开始……
正常做法应该是一两天让电机转起来,再逐步根据自己研究方向做电路/软件的参数优化、替代、迭代……
在整个系统正常的情况下,修改一个点就能看到效果的变化,即使改错了,也能马上定位错误、进而优化或还原。
而你从“零”开始,直接就是很多个有潜在问题的点,一旦出了问题,定位不到点不说,还很可能在排查过程掀翻很多其他点,无休止发散折腾,运气好才能重新收敛。
coody 发表于 2024-5-19 10:07 | 显示全部楼层
首先根据电机的惯性确定一个PID周期(我一般做成可设置的周期),然后先用P,逐渐增大P到震荡,然后P缩小到没有过冲、没有震荡,然后逐渐增大I至震荡,再缩小I至稳定,同时也可能要微调P。再加入D(如果需要的话)。
 楼主| yjmwxwx 发表于 2024-5-19 13:30 | 显示全部楼层
Diyer123 发表于 2024-5-19 09:54
定性分析、负反馈极性这些,没读过书的人也一讲就明白
但是定量还是要靠数学 ...

我就是数学不行,我数学只有小学水平,到了初中就没学过数学,只能想办法搞懂原理,书上都是公式我根本看不懂,只能从试验现象来学习了。
 楼主| yjmwxwx 发表于 2024-5-19 13:40 | 显示全部楼层
Diyer123 发表于 2024-5-19 10:01
离了个大谱……
自学不代表一切都要从零开始。要不然你还得从烧炭炼铁开始……
正常做法应该是一两天让电 ...

我想学的就是自己做控制器的软硬件啊,不是学着用别人开发的东西,反正有的是时间,慢慢学就行了,自己做很省钱,一个板子不到50元,MOS管都是买的拆机的。我的学习过程是先学旋转变压器解码,再搭建电机控制电路,先用六步换向让电机转起来证明驱动部分没问题,再学SVPWM算法,让SVPWM的电角度提前转子90度实现了开环控制,现在开始就要学怎么搞位置和速度闭环。

 楼主| yjmwxwx 发表于 2024-5-19 13:46 | 显示全部楼层
coody 发表于 2024-5-19 10:07
首先根据电机的惯性确定一个PID周期(我一般做成可设置的周期),然后先用P,逐渐增大P到震荡,然后P缩小到 ...

我写的程序伺服环是10KHZ是固定的,现在P 不算大定位后还不会振荡,但是I稍微加一点就振荡,可能还是大了,因为10KHZ速度比较快,越过目标角度后I很快累加到最大限制,所以就振荡了,我再试试看看哪里的问题
coody 发表于 2024-5-19 19:14 | 显示全部楼层
yjmwxwx 发表于 2024-5-19 13:46
我写的程序伺服环是10KHZ是固定的,现在P 不算大定位后还不会振荡,但是I稍微加一点就振荡,可能还是大了 ...

对于这个低速电机,10KHz的PID频率太快了。
 楼主| yjmwxwx 发表于 2024-5-19 23:02 | 显示全部楼层
coody 发表于 2024-5-19 19:14
对于这个低速电机,10KHz的PID频率太快了。

等我明天改低点试试,我买了一本书,看书上位置控制是1KHZ的频率

评论

@dirtwillfly :改到1KHZ但是还是带不了我这个扳手,带轻负载没问题  发表于 2024-5-20 13:07
位置环的调控频率可以更小点  发表于 2024-5-20 10:31
地瓜patch 发表于 2024-5-19 23:22 来自手机 | 显示全部楼层
学敬一个方向,找个最难得
lvyunhua 发表于 2024-5-20 06:43 | 显示全部楼层
路过学习了

评论

我也是才学了几个月,一块学习  发表于 2024-5-20 13:08
eydj2008 发表于 2024-5-20 08:34 | 显示全部楼层
这个是在大山里面搞核武器吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

123

主题

2969

帖子

54

粉丝
快速回复 在线客服 返回列表 返回顶部