无刷直流电机(BLDC)双闭环调速解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

根据模拟 PID 可以得到数字 PID 的控制算法,为了用计算机实现 PID 控制规律,当采样时间 Ts 很小时,可以通过离散化来得到公式。在数字化 PID 中,用 Ki(积分系数)来代替 Ti(积 分时间),用 Kd(微分系数)来代替 Td(微分时间)。其中 Ki=(Kp*Ts)/Ti;Kd=(Kp*Td)/Ts。 1、数字化位置式 PID 标准形式:Pu(t)=Kp*e(t)+Ki*∑e(t)+Kd*(e(t)-e(t-1))]+Pu(t-1) 将 Kp 分离出来:Pu(t)=Kp*[e(t)+(Ts/Ti)*∑e(t)+(Td/Ts)*(e(t)-e(t-1))]+Pu(t-1) 用 C 代码表式公式:用 ek 代表 e(t);用 ek1 代表 e(t-1);用 Pu1 代表 Pu(t-1) Pu=Kp*[ek+(Ts/Ti)*∑ek+(Td/Ts)*(ek-ek1)]+Pu1 2、数字化增量式 PID(同模拟量一样跟据两式相减得到增量式) Pu(t)=Kp*[(e(t)-e(t-1))+(Ts/Ti)*e(t)+(Td/Ts)*(e(t)-2*e(t-1)+e(t-2))] 用 C 代码表式公式:用 ek 代表 e(t);用 ek1 代表 e(t-1);用 ek2 代表 e(t-2) Pu=Kp*[(ek-ek1)+(Ts/Ti)*ek+(Td/Ts)*(ek-2*ek1+ek2)] 在上式中,Pu 是输出量,Pu1 是前一次的输出量,Kp 是比例系数,Ti 是积分时间,Td 是微 分时间,Ts 是采样周期,ek 是当次的误差,ek1 是前一次的误差,ek2 是前两次的误差。而 在实际的应用中,为了简化程序,一般不将 Ts 拿来做运算,因为积分项和微分项的常数都 是两个比值,分别直接用系数 Ki 和 Kd 来代替,只是当采样周期改变时,要去相应的调整几 个系数的大小,所以我们可以得到无刷直流电机的增量式 PID 算法公式: Pu=Kp*[(ek-ek1)+Ki*ek+Kd*(ek-2*ek1+ek2)] 但是上面的公式在无刷直流电机的 PID 控制中并不实用,因为在电机的启动、停止或大幅增 减设定值时,由于会出现很大的偏差,且有时此偏差会保持一段时间不变(如电机启动时需 要一定的时间才能转动起来),会造成 PID 算法的比例控制失调,积分严重饱和的现象,此 现象表现为电机需要较长的时间才能运转起来,运转起来之后又会出现较大的超调。因此要 将其做改进的 PID 控制的形式,同时要在程序中加抗积分饱和的判断处理。 改进的 PID 公式:Pu=Kp[ek+Ki*∑ek+Kd*(ek-ek1)] 上式中,如果去掉微分项,只用 PI 控制,则公式:Pu=Kp[ek+Ki*∑ek] 将∑ek 分解出来用误差累加 ei 表示,则公式:Pu=Kp*ek+Ki*Kp*ek+ei;ei=Ki*Kp*ek+ei 加变速积分,则公式:Pu=Kp[ek+fek*Ki*∑ek+Kd*(ek-ek1)] 上式中,fek 为变速积分系数,如果去掉微分项,只用 PI 控制,将∑ek 分解出来用误差累 加 ei 表示,则公式:Pu=Kp*ek+fek*Ki*Kp*ek+ei;fek=0-1(由 A 和 B 值来确定) 当误差 ek 大于 A+B 时:fek=0(积分不起作用) 当误差 ek 在 B 与 A+B 之间时:fek=>0&<1(积分随误差减小而增强,随误差增大而减弱) 当误差 ek 大于 A+B 时:fek=1(全速积分)
M 法、T 法各有各自的优劣和适应范围,编码器线数不能无限增加、测量时间也不能太 长(得考虑实时性)、计时单位也不能无限小,所以往往有时候 M 法、T 法都无法胜任全速度 范围内的测量。因此产生了 M 法、T 法结合的 M/T 测速法:低速时测周期、高速时测频率。 定量分析:
M/T 法中的“低速”、“高速”如何确定呢? 假定能接受的误差范围为 1%、M 法测得脉冲数为 f, T 法测得时间为 t 。 M 法:2/f <= 1% ==> f >= 200 即一次测量的最小脉冲数为 200,设此频率对应的速度为 V1 T 法:( 1/(t-1) - 1/t ) / (1/t) <= 1% ==> t >= 101 即一次测量的时间为 101 个单位,设此周期对应的速度为 V2 若计时单位为 mS,则 t>= 101mS 这只是理论精度,实际应用还要考虑脉冲信号采集的延迟,软件处理所需花费的时间。 若 V1 < V2,则 M/T 法能满足全范围内的速度测量。一个系统设计之前,就需要详细 的计算,使 V1<V2 或尽可能接近。不能光凭经验估算确定高低速、传动比、编码线数。然而 很不幸,很多现有系统中会出现 V1 > V2,就会出现(V2, V1) 这一段速度无论 M 法还是 T 法都无法覆盖的情况,一个缓解的办法就是在(V2,V1)段同时使用 M 法和 T 法测量,然后 取平均值,但要解决好 M/T 测量的同步问题。 对于上面两种方式通俗一点的讲就是,一个是在固定的时间内测转动的脉冲个数,一个是测 两个脉冲之间用了多少时间。
之间的时间换算成周期。那么转子每转 180 度可以测到一次速度(旋转一周内可以测到 2 次 速度),而在电机磁极对数为 10 的情况下则转子每转 18 度可以测到一次速度(旋转一周内可 以测到 20 次速度),这种方法简单实用,但是在电机转速较低时,获取一次有效速度的时间 较长,实时性较差。
编码脉冲测速:是用数字脉冲测量转速的方式,精度取绝于数字脉冲的编码线数(编码 线数就是编码器的分辨率,也就是转子转一圈所发出的脉冲数)。 脉冲测速最典型的方法有测频率(M 法)和测周期(T 法)。 定性分析:
控制周期(就是每隔多长时间进行一次 PID 运算,并将结果输出) 进行一次 PID 运算就是一次控制周期,在绝大多数情况下都是采样一次就进行一次 PID 运算。 但需要注意的是,PID 控制周期与实际监测对象数据的采样周期是不同的。例如,对于温度 控制,可能每秒采集 1 次数据,每隔 10 秒进行一次 PID 控制输出。
综上分析可知:采样周期受很多因素的影响,当然也包括一些相互矛盾的,必须根据实 际情况和主要的要求作出较为折衷的选择。实际过程控制中得出以下经验(仅供参考):如: 流量 1~2S,压力 2~3S,温度 1.5~4S,液位 5~8S。在 BLDC 直流调速系统中,转速和电 流的采样周期一般选 PWM 的频率或 2 倍 PWM 频率,不能小于 PWM 频率,在 TI 给出的例程中, PWM 频率是 20KHz,周期为 50US,采样周期是 25US,即 2 倍 PWM 频率采样。
在双闭环调速系统中,输入参数有三个,分别为给定速度和反馈速度以及反馈电流,其 中给定速度由用户指定,一般指定为旋转速度(RPM 转/分钟)或直线速度(m/s 米/秒)。而反 馈速度和反馈电流则需要由传感器来获取,下面来讲一下在无刷直流电机控制系统中,反馈 速度和反馈电流的获取。
反馈速度:简单点的就由电机内用来检测转子位置的三个霍尔元件来得到,高端点的就加光 电编码器,分别称为霍尔元件测速和编码脉冲测速。
无刷直流电机(BLDC)双闭环调速系统
在无刷直流电机双闭环调速系统中,双闭环分别是指速度闭环和电流闭环。对于 PWM 的无刷直流电机控制来说,无论是转速的变化还是由于负载的弯化引起的电枢电流的变化, 可控量输出最终只有一个,那就是都必须通过改变 PWM 的占空比才能实现,因此其速度环和 电流环必然为一个串级的系统,其中将速度环做为外环,电流环做为内环。调节过程如下所 述:由给定速度减去反馈速度得到一个转速误差,此转速误差经过 PID 调节器,输出一个值 给电流环做给定电流,再由给定电流减去反馈电流得到一个电流误差,此电流误差经过 PID 调节器,输出一个值就是占空比。
M 法是测量单位时间内的脉冲数换算成频率,因存在测量时间内首尾的半个脉冲问题, 可能会有 2 个脉的误差。速度较低时,因测量时间内的脉冲数变少,误差所占的比例会变大, 所以 M 法宜测量高速。如要降低测量的速度下限,可以提高编码器线数或加大测量的单位时 间,使用一次采集的脉冲数尽可能多。
T 法是测量两个脉冲之间的时间换算成周期,从而得到频率。因存在半个时间单位的问 题,可能会有 1 个时间单位的误差。速度较高时,测得的周期较小,误差所占的比例变大, 所以 T 法宜测量低速。如要增加速度的计时单位,使一次测量的时间值尽可能大。
霍尔元件测速:在电机磁极对数为 1 的情况下,转子旋转一周的时间内,霍尔传感器输 出 3 路各 180 度信号,其中每两个传感器之间有 60 度的交叠信号,只要检测其中一路霍尔 传感器的信号宽度就能计算出电机的速度。用输入捕捉(CAP)端口在上升沿捕捉一个时间标 签,再在下降沿捕捉一个时间标签,根据两个时间标签的差值得出周期,由于霍尔传感器是 在电机内固定不变的,因此每次在霍尔传感器的信号宽度下旋转的角度是一定的(即走过的 距离是固定的),最后用此固定的距离除以周期即可得到速度,即 T 法测速,测量两个信号
在绝大部分的控制系统中,采样周期等同于控制周期,一般不做区分,即在同一个周期 内采样一次反馈值进行一次 PID 运算之后调整一次被控量。从理论上来讲采样周期和控制周 期尽量的缩短一些,这样可以及时的调整输出。实际上要看被控对象的反应速度,和滞后时 间,因为不同的被控对象千差万别。
采样周期(即反馈值多长时间进行一次采样或捕捉): 选取采样周期时,有下面几个因素可供参考: 1、采样周期应远小于对象的扰动周期。 2、采样周期应比对象的时间常数小得多,否则所采样得到的值无法反映瞬间变化的过程值。 3、考虑执行机构的响应速度。如果采用的执行器的响应速度较慢,那么盲目的要求过短的 采样周期将失去意义。 4、对象所要求的调节品质。在计算机速度允许的情况下,采样周期短,调节品质好。 5、性能价格比。从控制性能来考虑,希望采样周期短。但计算机运算速度,以及 A/D 和 D/A 的转换速度要相应地提高,会导致计算机的费用增加。 6、计算机所承担的工作量。如果控制的回路较多,计算量又特别大,则采样要加长;反之, 可以将采样周期缩短。
在速度环和电流环的调节过程中,PID 的输出是可以作为任意量纲(即无量纲,用标幺 值来表示;标幺值:英文为 per unit,简写为 pu,是各物理量及参数的相对单位值,是不带 量纲的数值)来输入给下一环节或者执行器的,因此无需去管 PID 输出的量纲,只要是这个 输出值反映了给定值和反馈值的差值变化,能够使这个差值无限趋近于零即可,相当于将输 出值模糊化,不用去搞的太清楚,如果你要是一直在这里纠结输出值具体是个什么东西时, 那么你就会瞎在这里出不来了。假如你要控制一个参数,并且这个参数的大小和你给定量和 反馈量有着直接的关系(线性关系或者一阶导数关系或者惯性关系等),那么就可以不做量纲 变换。比如速度环的 PID 之后的输出就可以直接定义为转矩,因为速度过慢就要提高转矩, 速度过快就要减小转矩,PID 输出量的意义是调整了这个输出量,就可以直接改变你要最终 控制的参数,并且这个输出量你是可以直接来控制的,这种情况下 PID 输出的含义是你可以 自己定的,比如直流电机,速度环输出你可以直接定义为转矩,也可以定义为电流,然后适 当的调节 PID 的各个参数,最终可以落到一个你能直接控制的量上,在这里最终的控制量就 是占空比的值,当占空比从 0%—100%时对应要写入到寄存器里面的值为 0—3750 时,那么 0 —3750 就是最终的控制量的范围。
在调速控制中,既要满足正常负载时的速度调节,还要满足过负载时进行电流调节。如 果单独采用一个调节器时,其调节器的动态参数无法保证两种调节过程同时具有良好的动态 品质,因此采用两个调节器,分别调节主要被调量转速和辅助被调量电流,以转速调节器的 输出作为电流调节器的输入,电流环是通过电流反馈控制使电机电枢电流线性受控,可达到 电机输出力矩的线性控制,并使其动态范围响应快,最后再输出去控制占空比,从而改变 MOSFET 的导通时间,二者之间实行串级连接,它是直流电力传动最有效的控制方案。
下面给出标准的 PID 算法: 标准的 PID 算法即为位置式:Pu(t)=Kp*e(t)+Ti*∑e(t)+Td*[e(t)-e(t-1)] 上一次的计算:Pu(t-1)=Kp*e(t-1)+Ti*∑e(t-1)+Td*[e(t-1)-e(t-2)] 两式相减得到增量式:Pu(t)=Kp*[e(t)-e(t-1)]+Ti*e(t)+Td*[e(t)-2*e(t-1)+e(t-2)] 用 C 代码表式公式:用 ek 代表 e(t);用 ek1 代表 e(t-1);用 ek2 代表 e(t-2) Pu=Kp*(ek-ek1)+Ti*ek+Td*(ek-2*ek1+ek2) 在上式中,Pu 是输出量,Kp 是比例系数,Ti 是积分时间,Td 是微分时间,ek 是当次的误 差,ek1 是前一次的误差,ek2 是前两次的误差。 上式是模拟 PID 的算法,随着计算机控制技术的发展,以及高速数字信号处理器和各种高性 能的 MCU 的大量应用,目前绝大部分都转向了数字 PID 算法。将模拟 PID 控制算法近似转换 到数字化的控制算法中,多了一个参数 Ts,Ts 代表的是系统的采样(控制)周期。
相关文档
最新文档