【电机控制】电流环闭环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采样这些内容是这几天一直失败总结出来的原因与解决方案,理论上应该是可行的,实际就要这几天搞完再看效果啦。

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值