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

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

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

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

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

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


SCH_Schematic1_2024-05-17.pdf (898.48 KB)

使用特权

评论回复

相关帖子

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调参口诀能解决一些问题,但解决不了太多。 ...

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

使用特权

评论回复
评论
yjmwxwx 2024-5-20 13:06 回复TA
@dirtwillfly :只是不知道怎么调整参数 
dirtwillfly 2024-5-20 10:28 回复TA
把PID学懂在电机控制上就够用了 
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就是用的汇编

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

下面就是我比例控制代码

       mov r0, r5              @角度差
__bi_li:
        ldr r1, = 5000
        muls r0, r0, r1
        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的频率

使用特权

评论回复
评论
yjmwxwx 2024-5-20 13:07 回复TA
@dirtwillfly :改到1KHZ但是还是带不了我这个扳手,带轻负载没问题 
dirtwillfly 2024-5-20 10:31 回复TA
位置环的调控频率可以更小点 
地瓜patch| | 2024-5-19 23:22 | 显示全部楼层
学敬一个方向,找个最难得

使用特权

评论回复
lvyunhua| | 2024-5-20 06:43 | 显示全部楼层
路过学习了

使用特权

评论回复
评论
yjmwxwx 2024-5-20 13:08 回复TA
我也是才学了几个月,一块学习 
eydj2008| | 2024-5-20 08:34 | 显示全部楼层
这个是在大山里面搞核武器吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

116

主题

2661

帖子

45

粉丝