【电机控制】电流环闭环PID整定方案

       从去年8月初开始,接到个项目,做BLDC驱动器,用STM32F030,CUBEMX,第一阶段就用最简单的六步法开环控制电机,第一阶段的重点是各种保护,保证驱动器在各种恶略环境下不会坏,包括电压保护,电流保护,短路保护等等,第二阶段是做双闭环,第三阶段是做FOC。老实说,刚听说要做BLDC的时候,我连BLDC是啥都不知道,当时以为这只是个驱动器吧,后面才知道我错了,大错特错。现在已经1月底了,第一阶段才刚刚做好。现在才刚开始做双闭环,果然不出我所料,我又卡壳了。在被总监指导(训斥)了一波之后,重新理一下思路与过程。

 

        首先是建立simlink模型,在建立simlink模型之前,首先要搞清楚模型对象,是BLDC电机,三相无刷直流电机,我最开始是以为照着三相电机的模型建,原谅我大学学的不好,当时只知道撸代码,自控这些啥都不会啊,只记得电机控制好像是电力传动控制那本书里面的,没办法,都已经工作了,只好硬着头皮上了,下了个电力传动控制的电子书,先复习(预习)一下,我下载的是陈伯时老师的《电力拖动自动控制系统》,在花了两天时间把这本书翻了一遍之后,发现里面并没有直接的BLDC的模型啊,这下子不久抄不了了吗?再仔细思考,结合我的驱动器电路,由于驱动器采样电阻只有总回路的电阻,而且我这个是六步法控制的BLDC,虽然是三相,但是每一步状态的CCR的值(PWM的值)是固定的,这可以按照直流电机的模型建立一个总回路的电流环。在问了总监的意见之后,似乎是可以的,然后就开始建模。

       simlink我是不了解的,之前只是听说过有这个东西,实际就看同学里面喜欢搞控制算法的人用过。额,,,再次原谅我的无知,那就开始simlink的熟悉吧,在看了网上一个100多页ppt的 simlink的基本操作之后,开始照着画模型了。参考的陈老师的模型是这样的(其实我真的是不怎么会,只是大概能看懂老师的思路):

       这里,把电流内环单独拉出来,分析一波。

         忽略图中的一些参数变化,因为我换了电机,把电流环单独拉出来之后,首先要将闭环去掉,分析模型的开环特性,将波特图打印出来。

       在这里要说一下,我用的matlab版本是2016a,当时找波特图找了很久,在网上搜索simlink画波特图之类的,都找到的是2008左右版本matlab的方法,到2016位置都变了,当时终于是在一篇大佬的论文里面找到了怎么搞出来波特图,很尴尬。

第一步:

保证模型书输入为In,输出为out,如图所示:

第二步:

第三步:

第四步:

出来的波特图如下:

        最开始,我对于波特图分析也是一脸懵逼的,后面在总监的指导(这次真的是指导)下,明白,我们这个模型波特图走向,最开始是平的,后面在高频阶段,会朝下走,这是由于两个传递函数的影响,而我们加入PID调节器的作用,就是把开环模型的波特图修正为大概这个样子:

       至于修正方法大约是这样子的,PID调节器里面,Ki的值会作用在低频段,也就是之前波形里面比较平的那一段,Kd的值会作用在高频的那一段,至于Kp,当然是作用在过零点那里,会控制整个波形上下平移,而过零点也就是带宽,要控制带宽频率跟实际驱动器的控制频率差不多,例如实际驱动器电流环的周期是4ms,那带宽就调到200多。

       在建立PID模型的时候,我参考了PID控制器的数字实现及C语法讲解 - free_稀饭 - 博客园大神的博客,这里直接截取出来吧:

实际我的模型之中加入PID环节,就变成了这个样子:

在调了一波参数之后,他的波特图就是这样的:

          在实际撸代码的时候,参考的依旧是上面那篇博客:

在把实际STM32的代码撸出来之后,再把MATLAB仿真的参数填上,然后就是令人激动的时刻,没错,肯定是不行的。哈哈哈。当然,不是我们的步骤有问题(有大神指正当然更好)。是因为电流采样环节出了问题,控制BLDC(在没有上FOC的情况下),控制它实际还是取决于PWM,但是一个完整的PWM周期,有高电平,也有低电平,在高电平的时候进行采样,肯定是正确的,但是如果刚好就是在低电平的时候,触发了电流采样,那就有问题了,当然,也有一个原因是我们是要上电流闭环,因此电流采样的实时性要求高一些,因此就要考虑完整,把PWM也考虑进去。

        考虑到这些之后,就要找解决办法啦,此时ADC就不能仅仅是DMA采集就行了,要配置触发模式,使用另外一个定时器去触发ADC功能,然后在PWM高电平的中间进行一次采样,我实际是用TIM1来进行PWM的产生,那么就可以用TIM15来跟TIM1进行同步,CCR寄存器的值一直保持跟TIM1的CCR成二分之一的关系就可以了,当然也要判断TIM1的CCR的值太小的话就给TIM15一个固定的值。这个同步信号可以使用COM事件,因为六步法本身就是使用COM事件来实现的,COM事件的定时器为TIM3,那么久把TIM15跟TIM3配置成主从模式就可以。

        当然,最后的ADC采样这些内容是这几天一直失败总结出来的原因与解决方案,理论上应该是可行的,实际就要这几天搞完再看效果啦。

  • 26
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
### 回答1: 伺服电机电流环PID控制设计是指利用PID控制算法对伺服电机的电流环进行调节和控制,以实现精确的电流控制和运动控制。 首先,电流环PID控制是伺服系统中重要的一环,其目的是通过对电流的调节来控制伺服电机的运动状态。PID控制,即比例-积分-微分控制,根据当前电流与期望电流之间的误差来调节电流,使其尽快趋近于期望值。其中,比例控制作用于电流误差本身,积分控制作用于历史误差的积累,微分控制则作用于误差变化率的调节,通过这三个控制作用的综合调节,可以实现更加精准的电流控制。 在电流环PID控制设计中,首先需要确定合适的PID参数。一般来说,可以通过试探法、Ziegler-Nichols方法等来进行参数整定,根据实际的系统特性和需求进行调整,使得电流闭环控制具备良好的稳定性和快速响应特性。 其次,需要设计合理的反馈控制机制。伺服电机电流环一般采用电流传感器进行反馈,通过测量电流值与期望值之间的差异来实现控制闭环。同时,还需要考虑到采样频率、信号滤波等因素,以确保获取到准确的反馈信号。 最后,还需要考虑到系统的软硬件实现。在软件方面,需要编写相应的控制算法,包括PID计算、电流采样和滤波等。在硬件方面,需要选择合适的硬件平台和驱动器,确保系统具备足够的计算和驱动能力。 综上所述,伺服电机电流环PID控制设计是通过调节和控制电流来实现对伺服电机的精确控制。通过合理设置PID参数和反馈机制,并在软硬件上进行实现,可以实现电流环的高效控制和运动控制。 ### 回答2: 伺服电机电流环PID控制设计是指对伺服电机的电流进行控制的一种方法。PID控制是常用的控制算法,它结合了比例控制、积分控制和微分控制三种方式,能够实现对电流的精确控制。 首先,在控制系统中,通过采集伺服电机的电流信号,与预设的目标电流进行比较,得到误差值。比例控制利用误差值与比例常数相乘,得到比例项的输出。比例项的作用是使电流的输出与误差值成正比,即误差越大,输出越高,从而校正误差。 其次,在PID控制中,还包括积分项。积分项的作用是根据误差累积的历史信息来进行修正,避免存在的系统偏差。积分控制的输出是误差累积值与积分常数相乘。 最后,微分控制项可以通过对误差的变化率进行控制,避免电流的瞬时变化对系统的影响。微分控制的输出是误差的微分值与微分常数相乘。 将比例、积分和微分三种控制项相加得到PID控制器的输出,作为电流控制器的输入。通过不断调整PID控制器的参数,可以实现对伺服电机电流的闭环控制,使其稳定在预设的目标电流值。 在实际应用中,还需考虑伺服电机的特性、传感器采样周期等因素,根据具体情况进行参数调整和系统稳定性分析,以提高伺服电机的效率和精度。 ### 回答3: 伺服电机电流环PID控制设计是为了实现电机的精准控制。PID控制算法由比例(P)、积分(I)和微分(D)三个部分组成,分别用来调整电流的响应速度、稳定性和抗扰性。 首先,需要进行系统参数的准确测量。测量电机的电感值、电阻值等参数,可以通过专用的电机测试仪器得到。这些参数将作为PID控制器的输入,用来计算控制输出。 接着,根据所需的响应速度、稳定性和抗扰性等性能要求,确定合适的PID参数。常用的方法有经验调整法和调试法。经验调整法是根据经验确定参数初始值,然后进行试错调整直至满足要求。调试法是通过实际系统响应曲线进行调试,使系统达到最优性能。 在确定参数后,可以开始电流控制的实际设计。先根据系统的输入电压和电流环的采样时间,计算出采样周期下的控制增益。然后,根据PID算法公式,计算当前的控制量,即电流的设定值与实际值的差。根据差异进行比例、积分和微分运算,得到最终的控制输出。 最后,将计算出的控制输出作为电机的控制信号,通过功率放大器将转化为对电机施加的电压或电流。根据输出值与实际电流的差别,反馈给PID控制器进行修正,从而实现闭环控制。 整个设计过程需要考虑到电机的特性、负载变化以及环境因素等因素。通过合理的PID参数调整和精确的系统测量,可以保证电流环的稳定性和响应性能,实现对伺服电机电流的精准控制。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值