牛卧堂MCU技术交流

标题: 想做电机控制,你需要解决四大难题 [打印本页]

作者: Angus    时间: 2020-5-15 21:52
标题: 想做电机控制,你需要解决四大难题
本帖最后由 Angus 于 2021-3-10 10:19 编辑

1>软件。
2>算法。
3>硬件。
4>机械特性。

软件
普通的软件,信号出现短时间的错误,不会烧坏芯片。比如串口通信,Tx先上电输出高,后上电的Rx在配置过程中引脚有几微秒输出低才变为输入,短时间的信号竞争不会烧坏芯片,调试甚至不易发现这种信号短时间错误。 电机控制软件就不一样了,PWM若不定义死区,就会烧坏功率管,而死区时间也只有一微秒多。任何时候,信号出现哪怕只有一两微秒的不对,后果可能都很严重。所以要仔细思考代码的每一行,不放过任何一个细节。

算法
算法就是数学公式,看看电机控制的理论,都是拉氏变换或 Z 变换公式,或复变函数的状态方程,理论没学好看不懂公式。
上个公式   ,有几人能完全明白这个公式

就算你看懂了公式,把公式代码化,也需要很多数据处理的细节,比如:角度变量取几位小数合适? 正弦表取几位小数能保证精度、又不失计算速度?

硬件
做普通控制板,低压、低电流,按元件的参数大体计算一下,再调式一下电路就差不多了。而电机驱动,电流比较大,分布参数已显出效果,明明只有一段导线,却显出了电感的特性。本以为加个电容就可以滤掉杂波,加了电容,发现根本没效果。走线方式,元件排放位置,都影响着电路的性能。这些即需要理论又需要经验。

机械特性
有些人可能有这样的经历,DEMO板上的电机转得很正常,可是把代码移植到自己的板子上,电机就转不好。因为电机差别太大,DEMO板上可能是一个小功率的低速电机,而自己的项目却是一个高速电机,或者是个惯性大的大个头电机,机械特性完全不一样,启转过程要按机械特性改变一下,PI参数也需要调整。

客户不等人,项目不等人,如何尽快的做好一个电机控制项目呢?

新唐的电机控制代码, 外设配置细节已帮你处理好了,不会出现错误信号,没必要自己再从头写代码,句句斟酌会花很长时间。
算法细节也做好了,运算精度高、速度也快。一圈360度用65536表示,电压可以到 1638.3V。

就留下硬件和机械特性两项了。让新唐经验丰富的工程师指导一下画板,再指导一下电流和转速的PI参数调整以及启转过程。项目很快就可以做好了  












作者: a20084666    时间: 2020-5-16 09:26
说的有道理  深有同感
作者: 匿名    时间: 2020-5-29 10:34
牛卧堂,这个名字太难听了,建议新塘换一个好听的论坛名
作者: karen    时间: 2020-5-29 10:53
谢谢楼主分享
作者: 匿名    时间: 2020-6-12 20:57
太好了,demo软件可以发我一份吗?我们现在用的NM1120
作者: 匿名    时间: 2020-6-12 20:58
我邮件70290@163.com,谢谢
作者: 匿名    时间: 2021-1-12 21:35


作者: 匿名    时间: 2021-3-6 15:54
看到了切换过程
作者: admin    时间: 2021-3-8 17:17
游客 58.49.24.x 发表于 2021-3-6 07:54
看到了切换过程

有什么问题 欢迎在下面回帖讨论
作者: arthur    时间: 2021-3-23 16:42
哈哈,大侠!再讲下如何控6通道的PWM,即6个周期的做功函数去近似一个实际要求输出的周期函数(inverse fourier transfomation)。
作者: Angus    时间: 2021-3-28 20:08
arthur 发表于 2021-3-23 16:42
哈哈,大侠!再讲下如何控6通道的PWM,即6个周期的做功函数去近似一个实际要求输出的周期函数(invers ...

这里有http://www.nuvoton-mcu.com/forum ... &extra=page%3D2
作者: 匿名    时间: 2021-3-30 17:00
这是一个复数公式: 电流和电压都是复数 Vdq = Vd + jVq, Idq  = Id + jIq

把上二式代入,得

Vd + jVq = R(Id + jIq) + (p +jw)L(Id +jIq) +jwFm , 欧米珈写成w, 磁通量写成 Fm ,p 是微分算子

Vd + jVq = RId + jRIq + pLId +jpLIq+jwLId - wLIq +jwFm  

再把实部,与虚部分开写,就是下式

Vd = RId +pLId - wIq
Vq = RIq + pLIq + wLId +wFm

把微分算子p写成微分型式, 就是下式

Vd = R*Id +L*d(Id)/dt +wIq





欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/) Powered by Discuz! X3.2