一、前言
1、说在最前,博主推荐一部电影《三傻大闹宝莱坞》。里面有一个让博主印象深刻的片段,兰彻用“记录、分析、总结……”一长串的话描述“书”,来嘲讽教授只会注重课本上的定义,而忽略了定义背后的本质。
2、公式、定理、道理…,都是对某一方面有深刻认识的人,为了总结其领会到的本质,不得已用公式、文字描述出来。先有的本质,才有对这些实物的描述。所以说学习的时候,学的是其背后的原理,掌握了原理,这些公式、定理都变得次要了。
3、博主对电机的了解也并不精通,多少有些管中窥豹。写这些文章一方面是记录一下自己的学习过程,另一方面也希望给有需要的人一些帮助,有大佬发现哪些地方出错了,欢迎指正。
二、有刷电机
1、磁铁,小时候应该都玩过的玩具。同极性相斥,异极性相吸。
电磁,初中物理知识,通电螺线管会产生磁性,一端N一端S。
磁铁和电磁结合,就有了直流电机,也叫有刷电机。
2、给内部转子供电,就有了磁性,然后和外部磁钢的磁性相互作用,就产生了力,力导致转子转动。
3、转子转动,跟随着电刷也切换了线圈供电,新的线圈,新的作用力,再次使转子转动。这样往复循环,就是一个常见的直流电机了。
4、显而易见的问题
在电刷切换线圈的时候,会先断开原来的连接,再连接新的线圈,此过程会产生电火花。在一些特殊环境下十分危险,比如加油站,面粉厂。
而且内部电磁的变换不是平滑的,导致电机的噪声难以控制。
三、无刷电机
1、现在换一种思路,在上述gif图的基础上做些修改。
让内部线圈不转,让外部磁钢旋转。当然这其实只是变换了一下参考对象。
2、但是这样变换之后,供电成了一个新的问题。原本内部线圈供电可以通过电刷自动切换,现在内部线圈不再旋转了,供电也就不能自动切换了。
这就用到了新的东西-晶体管(大多情况下用的mos管),后面会详细描述其用法,这里只需要理解它是一种开关,通过这种开关可以控制线圈的通电和断电。
3、解决了开关的问题,还有一个问题需要解决,就是开关时机,线圈在什么情况下通电,什么情况下断电。
这就需要用到另一个新东西,暂且叫它位置传感器。通过这个位置传感器获取转子转动到的位置,当时机合适时就切换线圈供电。
4、经过上述变换,电机就从线圈旋转变为了磁钢旋转。
由于现在线圈是通过mos管控制的,mos开关的时候并不会打火,所以就解决了打火的问题。
用了mos之后,有获得了一个新特性,就是每个线圈的电流强度变得可控,只要调节合适,就能调制出一个连贯的,旋转的磁场。用这个连贯的磁场施加到磁钢上的时候,就可以产生平滑的力,这样就可以大大的降低电机运行时的噪声。
5、参考上图,无刷电机总共有三个线圈可供控制,这三个线圈就是三个相,所以也叫做三相电机。
四、一个控制系统
1、什么是一个系统,可以理解为一个细胞,一个动物,生态系统,金融系统,控制系统。系统是需要维持的。
维持一个细胞需要,吞噬有机物、分解消化、然后排泄。
维持一个人需要吃饭、看短视频…、做运动,情绪调节…、工作、学习…。
同样的,维持一个控制系统工作,也需要这三大要素。输入,处理,输出。
2、对应三项电机控制系统。输入,就是转子角度获取、定子磁场角度获取、电压获取、电流获取、温度获取、目标速度获取…。
对于这些获取的数据,自然是越快速,精准度越高越好。
3、对应三项电机控制系统。处理,
就是根据转子角度和定子磁场角度来判断接下来怎么控制三项输出量,判断是否堵转。
根据电压、电流和温度判断是否符合系统工作需求。
根据目标速度和当前速度,判断是否需要增加输出量。
对于处理环节,同样是需要快速,需要判断准确。
4、对应三项电机控制系统。输出,就是三项线的输出控制,电源开关。
五、关于程序架构
以下是王婆送给程序员的瓜,哈哈。。
1、曾经有一个面试官告诉过我,程序并不值钱,真正值钱的是里面的想法。
想要把程序写好,模块化的思维必不可少,而结构化的程序才能更加易读,且不易出错。
2、博主组建一个新的工程的时候,喜欢用一种类似“披萨”的结构。
首先从披萨的边边往中间看
A、最外面一层是硬件相关,叫做硬件层好了,主要是一些外设初始化。
B、从边边往里面一层,是驱动相关和模块相关,叫做功能层。比如把按键做一个驱动,外面一层给这个驱动提供硬件信号,而这个驱动给里面一层提供操作信号(比如单击,双击,长按)。
C、最里面一层是应用相关,叫做应用层,是把这些所有的功能模块组合成用户想要的功能的部分。
然后再从披萨的刀口看
A、每一个扇形就是一个功能块,多个功能块组合成了整个披萨。
B、其次,每个扇形之间,在硬件层和功能层之间是相互独立的,相互之间变量互补干涉。而在应用层,所有变量都可以相互访问。
C、最后,中心部分可以访问边缘部分的变量,但是边缘部分不能访问中心部分的变量。
3、对于三项电机控制系统的程序来说,还需要考虑另一个部分,就是内外环,常用的命名方式就是内环为电流环,外环是速度环。
内环主要控制电机的qd轴,外环控制电机的速度。