ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

电机入门学习笔记(2)

电机入门学习笔记(2) 笔记前声明文本用到的文章或图片等均会在文本末尾附上原创链接保护作者原创也方便大家更深度地学习一、无刷直流电机的引入(BLDC)经过上一篇的学习,我们已经充分的了解了有刷直流电机的工作原理和驱动方法,同时也认识到电刷与换向器结构所带来的固有缺陷(摩擦损耗、火花干扰寿命受限等问题)。人们在此基础上发明了无刷直流电机Brushless DC Motor简称BLDC从根本上消除了电刷的物理接触从而实现电机更高效率、更低噪音和更长久的使用寿命。无刷电机1.无刷、有刷电机的异同无刷电机与有刷电机的设计思路如出一辙,核心原理均是利用磁场驱动转子运动。在有刷电机中有一个空心的、外部的环形永磁体保持静止(定子),以及一个在内部旋转的金属芯(转子),旋转的转子中间有一根轴用来驱动机器。而在无刷电机中结构正好对调——线圈绕组置于定子侧永磁体安装在转子上,利用电子换向取代了有刷电机的机械换向电刷与换向器摩擦接触克服了有刷电机的缺点。2.无刷电机的结构先来简单看一下无刷电机的基本结构:Rotor 转子Permanent magnet 永磁体Stator 定子Coil windings) 线圈绕组增加磁极对数,可以得到不同的拓扑结构:3.无刷电机(1)工作原理以最简单的结构为例进行分析:包括一对磁极对(做转子);和三个相隔120°的线圈(做定子)。我们把三个通电线圈分别称为A、B和C相;且红色代表转子北极,蓝色代表转子南极。线圈不通电时,没有磁场产生,所以转子不受力保持静止。然后在A和C两相之间施加电压就会沿虚线方向产生组合磁场,如图受磁场力作用,转子就会开始旋转,直至自身与磁场方向对齐:A、B、C三相两两组合通电,最终会产生六种磁场方向。同时转子也会按不同的磁场方向进行旋转,每种与磁场方向相互间隔60°,六种情况刚好对应一圈(360°)。所以按照一定的顺序为 A、B、C相通电,就能使转子按一个方向(顺时针或逆时针)保持旋转,从而实现无刷电机的连续运转。这种按一定规律通电,使磁场方向正确变化的方法,称为六步换向。随着磁极对的增加,换向也会更加频繁,换向间隔的度数也会随之减小。当转子与定子磁场方向完全一致时,电机的扭矩为零(无法产生驱动力),在实际应用中要避免这种情况。转子应永远不能与磁场对齐,而是在始终在追逐它,即定子磁场始终超前转子一定角度。所以为了在合适的时机进行换向,我们需要知道转子当前的位置,工程上通常采用霍尔传感器来测量转子位置。(2)霍尔传感器这里补充说明一下霍尔传感器的工作原理:霍尔传感器内部有一个极薄的半导体薄片。当转子上的 N 极旋转到传感器面前时,传感器受到磁场垂直穿过,内部电子发生偏转,会在输出端产生一个高电平(逻辑“1”)。当转子上的 S 极旋转到传感器面前时,传感器输出端会变成低电平(逻辑“0”)。对于三相无刷电机来说,通常采用三个霍尔传感器来检测转子位置。转子旋转一圈,每个霍尔传感器就会输出一个完整的方波(高-低-高-低变化)。它们在同一时刻会输出3位二进制数,在360°的旋转周期内,这3个霍尔信号会产生6种不同的编码组合(如:101 → 100 → 110 → 010 → 011 → 001再回到101)。这6种编码恰好完美对应了“六步换向法”里的6个步骤。电机每转过一定角度霍尔传感器就会改变一次状态,告知控制器转子到新位置了该换相了。下图展示的就是霍尔传感器检测转子在哪个扇区:(3)三相逆变器为了控制六步换向的相位,我们使用三相逆变器将直流电转为三相电流。三相逆变器通常由6个功率开关管(如MOSFET)组成。这些开关管分为三组(对应电机的A、B、C三相),每组包含一个连接到电源正极的“高端开关”和一个连接到负极的“低端开关”。通过精确控制这6个开关的导通与关断,逆变器就能将直流电“切割”成所需的交流波形,供给电机。六步换向整个过程由霍尔传感器和逻辑控制协同完成,控制器收到传感器电平信号后会根据预设的换相逻辑表,决定下一步该给哪两相通电。在六步换向中,任何时刻都只有两相线圈通电,第三相则处于断开状态。逻辑换向表(AH:A相高电平/AL:A相低电平)在目前这个基本框架下,三相逆变器输出的电压幅值保持恒定,因此当电机负载固定时其转速也基本恒定,无法满足变速需求。为了实现调速功能,仍需要借助PWM技术——通过对逆变器功率开关管的导通时间进行调制,改变各相上的平均电压从而实现对转速的灵活控制。(4)编码器然而仅依靠PWM调节转速存在一个关键局限控制器只是单向输出控制指令却无法获知电机的实际转速是否达到了预期值。在实际应用中负载并非恒定不变,当负载增大或减小时即使占空比保持不变电机的转速也会随之波动。要解决这一问题就需要让PWM占空比能够根据负载变化自适应地动态调整为此我们需要引入测速元件——编码器来提供实时且精确的转速反馈信号。编码器可分为增量式编码器和绝对式编码器,本文主要介绍增量式编码器(下文简称编码器)。编码器通常输出两路信号:A和B通常标注为 CLK 和 DT)。当电机轴转动时,这两路信号会各自输出一系列脉冲,且A与B之间存在相位差。这一相位关系是判断运动方向的关键依据:若A脉冲超前于B,记电机正转;则B脉冲超前于A,电机反转。通过记录单位时间内脉冲的数量就可用来计算转速和位移,从而实现闭环速度控制。•顺时针运动两个信号初始电平为高→ A路信号降低→ B路信号降低→两路信号拉高(重复此过程)•逆时针运动两个信号初始电平为高→ B路信号降低→ A路信号降低→两路信号拉高(重复此过程)STM32的定时器集成了专用的编码器接口模式(Encoder Interface Mode)。该模式能够自动处理编码器输出的A路和B路脉冲信号。引脚PA0和PA1会自动配置为定时器编码器引脚,我们可以这样连接编码器:编码器A通道→ PA0 → TIM2_CH1 编码器B通道→ PA1 → TIM2_CH2Encoder Mode(编码器模式):在通道一和通道二的变化边沿都计数,所以需要对计数除以四,才能得到编码器实际输出的脉冲数配置好后生成工程,并编写代码:编码器接模式下:硬件会自动根据编码器A、B的脉冲,对TIMx_CNT寄存器进行增加或减少,只需在主循环中调用__HAL_TIM_GET_COUNTER就能获取到这一时刻编码器的信息。int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_TIM2_Init(); HAL_TIM_Encoder_Start(htim2, TIM_CHANNEL_ALL);//启动编码器模式 uint32_t count 0;//定时器计数值 uint32_t pulse_cnt 0;//实际脉冲数值 while (1) { count __HAL_TIM_GET_COUNTER(htim2); pulse_cnt count / 4; // 除以4是因为双沿计数模式 } }(5)PID控制算法至此我们已经系统性地梳理了直流电机速度控制的完整链路从电机的基本工作原理到PWM调速的核心机制再到编码器测速的实现方法。现在只需引入最后一块拼图——PID控制算法即可构建一个完整的速度闭环控制系统实现转速的精准、稳定调节。现在我们结合上述系统框图来具体分析PID算法的应用场景。以将水壶中的水温,稳定控制在50℃为例整个控制回路可拆解如下•执行机构烧水壶的加热元件,负责向壶内水体输出热量•系统输出加热元件所产生的热量,即对水体的加热功率•测量元件温度传感器,实时采集壶内水温并反馈给控制器在此基础上控制器根据设定温度(50℃)与测量元件反馈的实际温度之间的偏差,通过PID算法,动态计算所需的加热量,并驱动执行机构进行相应调节。PID三种字母分别对应三种控制方式:P(比例控制):作用最明显原理也最简单。即系统的输出值与当前偏差值的大小成正比,比例系数记为Kp。其中偏差值 目标值(50℃) - 实际测量值,此时系统输出Kp ×偏差值。这意味着偏差越大,输出越强——当水温远低于目标值时,加热功率最大,快速升温;偏差逐渐减小,输出也随之减小——当水温接近50℃时,加热功率逐步降低,避免过冲(超出50℃)。但这也引出了纯比例控制的缺陷稳态误差。当偏差趋近于零时输出也随之趋近于零系统往往无法完全消除微小的残余偏差——实际水温可能会稳定在49.5℃。因为环境温度低于50℃,所以系统不断散热,当散热功率和加热功率达到动态平衡时,系统温度保持不变,此时偏差虽不为零但比例输出已无力进一步驱动升温稳态误差就此形成。这就是为什么实际应用中通常还需要引入I(积分控制)来消除这种残余偏差。I(积分控制):只要偏差存在,就不断地对偏差进行积分(累加),并将积分值叠加至输出中。这样一来,使49.5℃和50℃相差不大,但是随着时间的推移只要没达到目标温度这个积分量就不断增加。控制器就会提升加热功率,到了目标温度后,假设温度没有波动,积分值就不会再变动。这时加热功率仍然等于散热功率。但是,温度是稳稳的50℃。KI的值越大,积分时乘的系数就越大,积分效果越明显, 但过大可能引发系统超调或振荡。所以I的作用就是,减小静误差,让受控物理量尽可能接近目标值。一般的系统只引入比例积分(PI)控制,可以使系统在进入稳态后消除稳态误差。但是PI系统也有一定的缺陷,对于一些高稳定需求的系统,如无人机控制系统往往还需要引入D(微分控制)。P(比例)只盯住当前偏差的大小,偏差大就猛加力,偏差小就减力,缺乏预见性。I(积分)虽然能消除稳态误差,但它是基于过去的累积。这带来一个严重后果积分滞后。当系统刚出现偏差时,积分量很小,驱动力不足;当系统快要到达目标时,积分量可能已经累积得过大,导致系统“刹不住车”,最终超过设定目标(超调),随后又反向修正,系统在反复调节过程中可能会出现振荡甚至失稳。D(微分控制):不看偏差有多大,而是看偏差变化得有多快(即偏差的斜率)。如果温度正飞速逼近50℃,即使当前温差还很大,D项也会预判到“即将到达”,并主动施加反向的制动力,提前减小输出功率,从而避免超调。同时假设温度因外部扰动(如突然打开冷风)而急剧下降的瞬间,D项会敏锐捕捉到这一剧烈变化,在P和I尚未反应过来之前,就瞬间加大输出,提前遏制住下降趋势,大大缩短调节时间。总而言之PID既简单又高效现在仍是工业中使用最广泛的控制算法,只需要对实际情况进行调参,就能实现稳定控制。本文只是简单梳理PID控制算法的原理,具体应用内容推荐:江协科技PID本文章旨在记录学习电机相关知识的心得和体会,无任何获利倾向,如有错误欢迎批评指正!参考文献和图片:1.无刷电机的引入2.无刷电机的基本结构和原理3.编码器4.keysking单片机编码器讲解5.PID
返回列表