基于PID的无刷直流电机控制方法、系统、装置及存储介质与流程

文档序号:29416186发布日期:2022-03-26 13:10阅读:260来源:国知局
基于PID的无刷直流电机控制方法、系统、装置及存储介质与流程
基于pid的无刷直流电机控制方法、系统、装置及存储介质
技术领域
1.本发明涉及自动化控制领域,特别涉及一种基于pid的无刷直流电机控制方法、系统、装置及计算机可读存储介质。


背景技术:

2.目前对电机控制算法主要是经典的pid算法,但此算法只是个基础理论,在实际控制运用中会出现各种问题,比如超调,抖动,积分饱和,电机换向等问题。
3.为此,需要一种更为稳定可靠的基于pid的无刷直流电机控制方法。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种基于pid的无刷直流电机控制方法、系统、装置及计算机可读存储介质,更为稳定可靠。其具体方案如下:
5.一种基于pid的无刷直流电机控制方法,包括:
6.根据无刷直流电机的实际位置和目标位置,计算出位置误差值;
7.利用所述位置误差值和所述位置比例算法,得到位置比例计算值;
8.利用所述位置误差值和所述位置积分算法,得到位置积分计算值;
9.利用所述位置比例计算值和所述位置积分计算值,得到所述位置比例积分计算值;
10.利用所述无刷直流电机的实际电机转速与预设的电机转速限值,得到电机转速差值;
11.利用所述电机转速差值和限速算法,得到电机转速限值积分计算值;
12.利用所述位置比例积分计算值和所述电机转速限值积分计算值,得到所述无刷直流电机的电机方向和电机控制占空比;
13.利用所述电机方向和所述电机控制占空比,控制所述无刷直流电机工作;
14.其中,所述位置积分算法中的位置积分饱和处理算法包括:
15.利用位置积分限值公式,对初始位置积分计算值进行限值,得到限值后的限值位置积分计算值;
16.利用位置积分消减公式,对所述限值位置积分计算值进行积分消减,得到所述位置积分计算值;
17.其中,所述位置积分限值公式为:
[0018][0019]
所述位置积分消减公式为:
[0020][0021]
式中,sum为所述位置误差值的初始位置误差积分值,e
max
为所述初始位置误差积分值的最大限值,e
min
为所述初始位置误差积分值的最小限值,sum'为所述限值位置积分计算值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum”为所述限值位置积分计算值进行积分消减后得到的所述位置积分计算值。
[0022]
可选的,还包括:
[0023]
利用霍尔传感器获取所述无刷直流电机的所述实际位置。
[0024]
可选的,还包括:
[0025]
利用可编程2d位置传感器通过pwm,获取所述无刷直流电机的所述实际位置。
[0026]
可选的,所述利用所述电机方向和所述电机控制占空比,控制所述无刷直流电机工作的过程,包括:
[0027]
利用预驱芯片根据所述电机方向和所述电机控制占空比,控制所述无刷直流电机工作。
[0028]
可选的,所述利用所述电机转速差值和限速算法,得到电机转速限值积分计算值的过程,包括:
[0029]
当所述实际电机转速大于所述电机转速限值后,对所述电机转速差值进行积分,得到速度积分值;
[0030]
利用位置比例积分计算值和转速限值公式对所述速度积分值进行限值,得到限值后的限值速度积分值;
[0031]
当所述实际电机转速小于所述电机转速限值后,对所述限值速度积分值进行积分消减,得到所述电机转速限值积分计算值;
[0032]
其中,所述转速限值公式为:
[0033][0034]smax
=vpi/ks if vpi》0;
[0035]smin
=vpi/ks if vpi《0;
[0036][0037]
式中,sums'为所述限值速度积分值,vpi为所述位置比例积分计算值,s
max
为所述限值速度积分值的最大限值,s
min
为所述限值速度积分值的最小限值,ks为电机转速限值积分参数,sums为所述速度积分值,spd为所述实际电机转速,v
max
为所述位置比例积分计算值的最大值,v
min
为所述位置比例积分计算值的最小值,vp为位置比例计算值,vi为位置积分
计算值。
[0038]
可选的,所述当所述实际电机转速小于所述电机转速限值后,对所述限值速度积分值进行积分消减,得到电机转速限值积分计算值的过程,包括:
[0039]
当所述实际电机转速小于所述电机转速限值后,利用速度积分消减公式对所述限值速度积分值进行积分消减,得到消减后的消减速度积分值;
[0040]
利用所述消减速度积分值和电机转速限值积分计算值公式,得到所述电机转速限值积分计算值;
[0041]
其中,所述速度积分消减公式为:sum
s”=sums'

s if(-s
limit
)《spd《s
limit

[0042]
所述电机转速限值积分计算值公式为:vs=ks*sum
s”;
[0043]
式中,s为预设的系统参数,sum
s”为所述消减速度积分值,s
limit
为电机转速限值,值为正,ks为电机转速限值积分参数,vs为电机转速限值积分计算值。
[0044]
可选的,所述当所述实际电机转速小于所述电机转速限值后,对所述限值速度积分值进行积分消减,得到电机转速限值积分计算值的过程,包括:
[0045]
当所述实际电机转速小于所述电机转速限值后,利用速度积分消减公式对所述速度积分值进行积分消减,得到消减后的消减速度积分值;
[0046]
利用所述消减速度积分值和电机转速限值积分计算值公式,得到所述电机转速限值积分计算值;
[0047]
其中,所述速度积分消减公式为:
[0048][0049]
所述电机转速限值积分计算值公式为:vs=ks*sum
s”;
[0050]
式中,sums'为所述限值速度积分值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum
s”为所述消减速度积分值,ks为电机转速限值积分参数,vs为电机转速限值积分计算值。
[0051]
本发明还公开了一种基于pid的无刷直流电机控制系统,包括:
[0052]
位置误差计算模块,用于根据无刷直流电机的实际位置和目标位置,计算出位置误差值;
[0053]
位置比例计算模块,用于利用所述位置误差值和所述位置比例算法,得到位置比例计算值;
[0054]
位置积分计算模块,用于利用所述位置误差值和所述位置积分算法,得到位置积分计算值;
[0055]
位置比例积分计算模块,用于利用所述位置比例计算值和所述位置积分计算值,得到所述位置比例积分计算值;
[0056]
转速差值计算模块,用于利用所述无刷直流电机的实际电机转速与预设的电机转速限值,得到电机转速差值;
[0057]
转速积分计算模块,用于利用所述电机转速差值和限速算法,得到电机转速限值
积分计算值;
[0058]
控制信号生成模块,用于利用所述位置比例积分计算值和所述电机转速限值积分计算值,得到所述无刷直流电机的电机方向和电机控制占空比;
[0059]
电机控制模块,用于利用所述电机方向和所述电机控制占空比,控制所述无刷直流电机工作;
[0060]
其中,所述位置积分算法中的位置积分饱和处理算法包括:
[0061]
利用位置积分限值公式,对初始位置积分计算值进行限值,得到限值后的限值位置积分计算值;
[0062]
利用位置积分消减公式,对所述限值位置积分计算值进行积分消减,得到所述位置积分计算值;
[0063]
其中,所述位置积分限值公式为:
[0064][0065]
所述位置积分消减公式为:
[0066][0067]
式中,sum为所述位置误差值的初始位置误差积分值,e
max
为所述初始位置误差积分值的最大限值,e
min
为所述初始位置误差积分值的最小限值,sum'为所述限值位置积分计算值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum”为所述限值位置积分计算值进行积分消减后得到的所述位置积分计算值。
[0068]
本发明还公开了一种基于pid的无刷直流电机控制装置,包括:
[0069]
存储器,用于存储计算机程序;
[0070]
处理器,用于执行所述计算机程序以实现如前述的基于pid的无刷直流电机控制方法。
[0071]
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的基于pid的无刷直流电机控制方法。
[0072]
本发明中基于pid的无刷直流电机控制方法,包括:根据无刷直流电机的实际位置和目标位置,计算出位置误差值;利用位置误差值和位置比例算法,得到位置比例计算值;利用位置误差值和位置积分算法,得到位置积分计算值;利用位置比例计算值和位置积分计算值,得到位置比例积分计算值;利用无刷直流电机的实际电机转速与预设的电机转速限值,得到电机转速差值;利用电机转速差值和限速算法,得到电机转速限值积分计算值;利用位置比例积分计算值和电机转速限值积分计算值,得到无刷直流电机的电机方向和电机控制占空比;利用电机方向和电机控制占空比,控制无刷直流电机工作;其中,位置积分算法中的位置积分饱和处理算法包括:利用位置积分限值公式,对初始位置积分计算值进
行限值,得到限值后的限值位置积分计算值;利用位置积分消减公式,对限值位置积分计算值进行积分消减,得到位置积分计算值;其中,位置积分限值公式为:
[0073][0074]
位置积分消减公式为:
[0075][0076]
式中,sum为位置误差值的初始位置误差积分值,e
max
为初始位置误差积分值的最大限值,e
min
为初始位置误差积分值的最小限值,sum'为限值位置积分计算值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum”为限值位置积分计算值进行积分消减后得到的位置积分计算值。
[0077]
本发明改进了位置积分算法中的位置积分饱和处理算法,对位置积分计算过程中设定了限值,避免了最终的位置积分值过大,同时,还引入了位置积分快速消除方法,快速消减因积分累计产生的过大的积分值,避免引起超调或抖动现象,提高了对电机控制的稳定性和可靠性。
附图说明
[0078]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0079]
图1为本发明实施例公开的一种基于pid的无刷直流电机控制方法流程示意图;
[0080]
图2为本发明实施例公开的一种基于pid的无刷直流电机控制方法仿真示意图;
[0081]
图3为本发明实施例公开的另一种基于pid的无刷直流电机控制方法流程示意图;
[0082]
图4为本发明实施例公开的另一种基于pid的无刷直流电机控制方法流程示意图;
[0083]
图5为本发明实施例公开的一种基于pid的无刷直流电机控制系统结构示意图。
具体实施方式
[0084]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0085]
本发明实施例公开了一种基于pid的无刷直流电机控制方法,参见图1所示,该方法包括:
[0086]
s11:根据无刷直流电机的实际位置和目标位置,计算出位置误差值。
[0087]
具体的,为了使电机到达目标位置,因此,需要计算出无刷直流电机当前的实际位置和目标位置的位置误差,即计算出位置误差值,根据位置误差值后续调整控制信号,控制电机以使电机抵达目标位置进行闭环控制。
[0088]
具体的,参见图2中401所示,根据目标位置(p
t
)和实际位置(pa)计算出位置误差值(err),可以通过位置误差表达式表达:err=pt

pa;式中,pt为目标位置,pa为实际位置,err为位置误差值。
[0089]
具体的,可以通过三个相位差120
°
的霍尔传感器计算出无刷直流电机的实际位置或利用可编程2d位置传感器通过pwm直接读取无刷直流电机的实际位置。
[0090]
其中,可用可编程2d位置传感器(例如,hal3735)代替,使用可编程2d位置传感器的pwm 10%-90%的范围对执行器的全行程进行标定,通过pwm来监测执行器实际输出位置。
[0091]
s12:利用位置误差值和位置比例算法,得到位置比例计算值。
[0092]
具体的,参见图2所示,位置比例算法100包括位置比例计算值101以及位置比例计算值限值方法102,首先,根据位置误差值err乘以比例系数kp得到位置比例计算值vp,位置比例计算值vp的表达式为:vp=kp*err;式中,kp为比例系数,err为位置误差值,vp为位置比例计算值。然后,再利用位置比例计算值限值方法102计算限值后的位置比例计算值,限值后的位置比例计算值vp可以表达为:
[0093][0094]
式中,p
max
为位置比例计算值vp的最大限值,p
min
为位置比例计算值vp的最小限值,vp为位置比例计算值。
[0095]
s13:利用位置误差值和位置积分算法,得到位置积分计算值。
[0096]
具体的,参见图2所示,位置积分算法200可以表示为:
[0097][0098]
式中,sum为位置误差err的积分值,a为积分作用范围,spd为电机实际转速,s
limit
为电机转速限值,err为位置误差值。
[0099]
具体的,在经过位置积分饱和处理算法210后,位置误差err的积分值(积分限值消减后)sum”乘以积分系数ki作为位置积分计算值vi,可以表示为以下形式:vi=ki*sum”;式中,vi为位置积分计算值,ki为积分系数,sum”为位置误差err的积分值(积分限值消减后)。
[0100]
进一步的,参见图2所示位置积分算法200中的位置积分饱和处理算法210的具体处理过程可以包括s131和s132;其中,
[0101]
s131:利用位置积分限值公式,对初始位置积分计算值进行限值,得到限值后的限值位置积分计算值。
[0102]
具体的,参见图2中202所示,首先利用位置积分限值公式对位置积分计算值进行限值,得到限值后的限值位置积分计算值,位置积分限值公式为:
[0103][0104]
式中,sum为位置误差值的位置误差积分值,e
max
为位置误差积分值的最大限值,e
min
为位置误差积分值的最小限值,sum'为限值位置积分计算值。
[0105]
s132:利用位置积分消减公式,对限值位置积分计算值进行积分消减,得到位置积分计算值;
[0106]
具体的,参见图2中203所示,得到限值位置积分计算值后,再利用位置积分消减公式,对限值位置积分计算值进行积分消减,位置积分消减公式为:
[0107][0108]
式中,sum为位置误差值的初始位置误差积分值,e
max
为初始位置误差积分值的最大限值,e
min
为初始位置误差积分值的最小限值,sum'为限值位置积分计算值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum”为限值位置积分计算值进行积分消减后得到的位置积分计算值。
[0109]
s14:利用位置比例计算值和位置积分计算值,得到位置比例积分计算值。
[0110]
具体的,参见图2中501所示,位置误差值经过位置比例算法和位置积分算法处理后,便可以得到位置比例计算值vp和位置积分计算值vi,两者相加后便可以得到位置比例积分计算值vpi,其中,位置比例积分计算值表达式为:
[0111][0112]
式中,vpi为位置比例积分计算值,v
max
为位置比例积分计算值的最大值,v
min
为位置比例积分计算值的最小值,vp为位置比例计算值,vi为位置积分计算值。
[0113]
s15:利用无刷直流电机的实际电机转速与预设的电机转速限值,得到电机转速差值。
[0114]
具体的,当负载较大,且负载方向和执行器运动方向一致,或通过无刷直流电机控制算法计算出的电机控制信号pwm的占空比过大,或电源电压过高,会导致无刷直流电机转速过高,从而引发执行器故障。因此需要对无刷直流电机转速进行限值,通过单位时间内实际位置差值计算出电机转速,通过限速积分算法,对电机控制信号pwm的占空比进行实时调整,保证电机转速不会超过设定限值。
[0115]
具体的,参见图2中409所示,在得到电机的实际位置后,便可以利用电机的实际位置和采样间隔时间计算出电机的实际电机转速,实际电机转速表达式如下:
[0116]
spd=δpa/δt;
[0117]
式中,spd为实际电机转速,δt为采样间隔时间,δpa为采样实际位置差值。
[0118]
进一步的,参见图2中402所示,有了实际电机转速后,实际电机转速与预设的电机转速限值的差值便是电机转速差值,电机转速差值表达式为:
[0119][0120]
式中,errs为电机转速差值,spd为实际电机转速,s
limit
为电机转速限值,值为正。
[0121]
s16:利用电机转速差值和限速算法,得到电机转速限值积分计算值。
[0122]
具体的,参见图2中限速算法300所示,构建速度环利用电机转速差值为电机提供反馈,得到电机转速限值积分计算值vs,确保电机稳定可靠安全的运转。
[0123]
s17:利用位置比例积分计算值和电机转速限值积分计算值,得到无刷直流电机的电机方向和电机控制占空比。
[0124]
具体的,参见图2中403所示,位置环位置误差值err和速度环超出电机转速差值errs作为pid控制器的输入,分别经过比例计算、积分运算后和限速积分运算后作为pid控制的输出,输出可表示为下式:vpis=vpi

vs;式中,vs为电机转速限值积分计算值,vpi为位置比例积分计算值,vpis为pid算法的控制输出。
[0125]
进一步的,pid算法的控制输出vpis的值是有正负的,需要把vips转化成电机控制占空比(pwm)和电机控制方向(dir),其中,电机控制占空比表达式为:
[0126][0127]
电机控制方向表达式为:
[0128]
式中,pwm为电机控制占空比,dir为电机控制方向,cw为电机正转,ccw为电机反转,vpis为pid算法的控制输出。
[0129]
s18:利用电机方向和电机控制占空比,控制无刷直流电机工作。
[0130]
具体的,参见图2中404所示,在得到电机控制占空比和电机方向后,便可以通过预驱芯片,例如a3930芯片或a3931芯片控制无刷直流电机运转,其中,a3930芯片通过控制6个mos管的开闭,来控制电机的三相线圈的电流的大小和方向,实现电机的运转。无刷直流电机的运转位置又通过3个霍尔传感器反馈给mcu,进行实时闭环控制。a3930芯片内部自带控制算法,a3930芯片也会监测3个霍尔传感器的信号。
[0131]
可见,本发明实施例改进了位置积分算法中的位置积分饱和处理算法,对位置积分计算过程中设定了限值,避免了最终的位置积分值过大,同时,还引入了位置积分快速消除方法,快速消减因积分累计产生的过大的积分值,避免引起超调或抖动现象,提高了对电机控制的稳定性和可靠性。
[0132]
本发明实施例公开了一种具体的方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图3所示,具体的:
[0133]
s201:根据无刷直流电机的实际位置和目标位置,计算出位置误差值;
[0134]
s202:利用位置误差值和位置比例算法,得到位置比例计算值;
[0135]
s203:利用位置误差值和位置积分算法,得到位置积分计算值;
[0136]
其中,位置积分算法中的位置积分饱和处理算法包括:
[0137]
利用位置积分限值公式,对初始位置积分计算值进行限值,得到限值后的限值位置积分计算值;
[0138]
利用位置积分消减公式,对限值位置积分计算值进行积分消减,得到位置积分计算值;
[0139]
其中,位置积分限值公式为:
[0140][0141]
位置积分消减公式为:
[0142][0143]
式中,sum为位置误差值的初始位置误差积分值,e
max
为初始位置误差积分值的最大限值,e
min
为初始位置误差积分值的最小限值,sum'为限值位置积分计算值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum”为限值位置积分计算值进行积分消减后得到的位置积分计算值。
[0144]
s204:利用位置比例计算值和位置积分计算值,得到位置比例积分计算值;
[0145]
s205:利用无刷直流电机的实际电机转速与预设的电机转速限值,得到电机转速差值;
[0146]
s206:当实际电机转速大于电机转速限值后,对电机转速差值进行积分,得到速度积分值。
[0147]
具体的,参见图2中301所示,当实际电机转速大于电机转速限值后,速度积分值的表达式可以为:
[0148][0149]
式中,sums为速度积分值,即电机转速差值errs的积分值。
[0150]
s207:利用位置比例积分计算值和转速限值公式对速度积分值进行限值,得到限值后的限值速度积分值。
[0151]
具体的,为了避免无刷直流电机转速过高,出现超速的情况,参见图2中302所示,因此,利用位置比例积分计算值和转速限值公式对速度积分值进行限值,得到限值后的限值速度积分值,避免因积分过大出现超调。
[0152]
其中,转速限值公式为:
[0153]
[0154]smax
=vpi/ks if vpi》0;
[0155]smin
=vpi/ks if vpi《0;
[0156]
式中,sums'为限值速度积分值,s
max
为限值速度积分值的最大限值,s
min
为限值速度积分值的最小限值,ks为电机转速限值积分参数,sums为速度积分值,spd为实际电机转速。
[0157]
s208:当实际电机转速小于电机转速限值后,对限值速度积分值进行积分消减,得到电机转速限值积分计算值。
[0158]
具体的,通过限值减少积分,使得实际电机转速小于电机转速限值,在实际电机转速小于电机转速限值后,为了避免因积分饱和而引起的超调或抖动,需要进行积分消减,对限值速度积分值进行积分消减,从而得到电机转速限值积分计算值,参见图2中303和304所示。
[0159]
s209:利用位置比例积分计算值和电机转速限值积分计算值,得到无刷直流电机的电机方向和电机控制占空比;
[0160]
s210:利用电机方向和电机控制占空比,控制无刷直流电机工作。
[0161]
可见,通过限速位置积分算法,设置电机转速限值,根据实际电机转速实时判断电机是否超速,一旦超速对速度积分值进行限值,避免出现超速的情况,进一步提高了对电机控制的稳定性和可靠性。
[0162]
本发明实施例公开了一种具体的方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图4所示,具体的:
[0163]
s301:根据无刷直流电机的实际位置和目标位置,计算出位置误差值;
[0164]
s302:利用位置误差值和位置比例算法,得到位置比例计算值;
[0165]
s303:利用位置误差值和位置积分算法,得到位置积分计算值;
[0166]
s304:利用位置比例计算值和位置积分计算值,得到位置比例积分计算值;
[0167]
s305:利用无刷直流电机的实际电机转速与预设的电机转速限值,得到电机转速差值;
[0168]
s306:当实际电机转速大于电机转速限值后,对电机转速差值进行积分,得到速度积分值。
[0169]
s307:利用位置比例积分计算值和转速限值公式对速度积分值进行限值,得到限值后的限值速度积分值。
[0170]
s308:当实际电机转速小于电机转速限值后,利用积分消减公式对速度积分值进行积分消减,得到消减后的消减速度积分值;
[0171]
s309:利用消减速度积分值和电机转速限值积分计算值公式,得到电机转速限值积分计算值。
[0172]
具体的,在限值后,说明电机已经超速,此时已经相对长时间电机存在未知误差,位置积分算法已经累积较大误差,导致积分值过大,从而引起超调或抖动现象,为此,需要快速消减积分值,同时消减过程中也不能直接清零,积分快速消除,也会导致抖动,因此,当实际电机转速小于电机转速限值后,利用速度积分消减公式对速度积分值进行积分消减,得到消减后的消减速度积分值,参见图2中303所示。
[0173]
其中,速度积分消减公式为:sum
s”=sums'

s if(-s
limit
)《spd《s
limit

[0174]
式中,s为预设的系统参数,sum
s”为消减速度积分值,s
limit
为电机转速限值,值为正。
[0175]
又或者速度积分消减公式还可以为:
[0176][0177]
式中,sums'为限值速度积分值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum
s”为消减速度积分值,ks为电机转速限值积分参数,vs为电机转速限值积分计算值。
[0178]
具体的,积分消减后,再乘以电机转速限值积分参数得到电机转速限值积分计算值,参见图2中304所示。
[0179]
其中,电机转速限值积分计算值公式为:vs=ks*sum
s”;
[0180]
式中,ks为电机转速限值积分参数,vs为电机转速限值积分计算值。
[0181]
s310:利用位置比例积分计算值和电机转速限值积分计算值,得到无刷直流电机的电机方向和电机控制占空比;
[0182]
s311:利用电机方向和电机控制占空比,控制无刷直流电机工作。
[0183]
相应的,本发明实施例还公开了一种基于pid的无刷直流电机控制系统,参见图5所示,该系统包括:
[0184]
位置误差计算模块11,用于根据无刷直流电机的实际位置和目标位置,计算出位置误差值;
[0185]
位置比例计算模块12,用于利用位置误差值和位置比例算法,得到位置比例计算值;
[0186]
位置积分计算模块13,用于利用位置误差值和位置积分算法,得到位置积分计算值;
[0187]
位置比例积分计算模块14,用于利用位置比例计算值和位置积分计算值,得到位置比例积分计算值;
[0188]
转速差值计算模块15,用于利用无刷直流电机的实际电机转速与预设的电机转速限值,得到电机转速差值;
[0189]
转速积分计算模块16,用于利用电机转速差值和限速算法,得到电机转速限值积分计算值;
[0190]
控制信号生成模块17,用于利用位置比例积分计算值和电机转速限值积分计算值,得到无刷直流电机的电机方向和电机控制占空比;
[0191]
电机控制模块18,用于利用电机方向和电机控制占空比,控制无刷直流电机工作;
[0192]
其中,位置积分算法中的位置积分饱和处理算法包括:
[0193]
利用位置积分限值公式,对初始位置积分计算值进行限值,得到限值后的限值位置积分计算值;
[0194]
利用位置积分消减公式,对限值位置积分计算值进行积分消减,得到位置积分计
算值;
[0195]
其中,位置积分限值公式为:
[0196][0197]
位置积分消减公式为:
[0198][0199]
式中,sum为位置误差值的初始位置误差积分值,e
max
为初始位置误差积分值的最大限值,e
min
为初始位置误差积分值的最小限值,sum'为限值位置积分计算值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum”为限值位置积分计算值进行积分消减后得到的位置积分计算值。
[0200]
可见,本发明实施例改进了位置积分算法中的位置积分饱和处理算法,对位置积分计算过程中设定了限值,避免了最终的位置积分值过大,同时,还引入了位置积分快速消除方法,快速消减因积分累计产生的过大的积分值,避免引起超调或抖动现象,提高了对电机控制的稳定性和可靠性。
[0201]
具体的,还可以包括位置获取模块,用于利用霍尔传感器获取无刷直流电机的实际位置,或利用可编程2d位置传感器通过pwm,获取无刷直流电机的实际位置。
[0202]
具体的,电机控制模块18,具体用于利用预驱芯片根据电机方向和电机控制占空比,控制无刷直流电机工作。
[0203]
具体的,上述转速积分计算模块16,包括:转速积分计算单元、转速积分限值单元和转速积分消减单元;其中,
[0204]
转速积分计算单元,用于当实际电机转速大于电机转速限值后,对电机转速差值进行积分,得到速度积分值;
[0205]
转速积分限值单元,用于利用位置比例积分计算值和转速限值公式对速度积分值进行限值,得到限值后的限值速度积分值;
[0206]
转速积分消减单元,用于当实际电机转速小于电机转速限值后,对限值速度积分值进行积分消减,得到电机转速限值积分计算值;
[0207]
其中,转速限值公式为:
[0208][0209]smax
=vpi/ks if vpi》0;
[0210]smin
=vpi/ks if vpi《0;
[0211][0212]
式中,sums'为限值速度积分值,vpi为位置比例积分计算值,s
max
为限值速度积分值的最大限值,s
min
为限值速度积分值的最小限值,ks为电机转速限值积分参数,sums为速度积分值,spd为实际电机转速,v
max
为位置比例积分计算值的最大值,v
min
为位置比例积分计算值的最小值,vp为位置比例计算值,vi为位置积分计算值。
[0213]
具体的,上述转速积分消减单元,包括:转速积分消减子单元和转速限值计算子单元;其中,
[0214]
转速积分消减子单元,用于当实际电机转速小于电机转速限值后,利用位置积分消减公式对限值速度积分值进行积分消减,得到消减后的消减速度积分值;
[0215]
转速限值计算子单元,用于利用消减速度积分值和电机转速限值积分计算值公式,得到电机转速限值积分计算值;
[0216]
其中,位置积分消减公式为:sum
s”=sums'

s if(-s
limit
)《spd《s
limit

[0217]
电机转速限值积分计算值公式为:vs=ks*sum
s”;
[0218]
式中,s为预设的系统参数,sum
s”为消减速度积分值,s
limit
为电机转速限值,值为正,ks为电机转速限值积分参数,vs为电机转速限值积分计算值。
[0219]
或上述速度积分消减公式为:
[0220][0221]
式中,sums'为限值速度积分值,kj为预设的系统参数,x为预设的系统参数,abs()为取绝对值,sum
s”为消减速度积分值,ks为电机转速限值积分参数,vs为电机转速限值积分计算值。
[0222]
此外,本发明实施例还公开了一种基于pid的无刷直流电机控制装置,包括:
[0223]
存储器,用于存储计算机程序;
[0224]
处理器,用于执行计算机程序以实现如前述的基于pid的无刷直流电机控制方法。
[0225]
另外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的基于pid的无刷直流电机控制方法。
[0226]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0227]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0228]
以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1