欢迎光临散文网 会员登陆 & 注册

手写STM32 FOC记录----- 电流环

2023-09-15 17:46 作者:茄子土豆地三鲜  | 我要投稿

        前面文章有画过FOC开环控制框图,如下。虽然开环电压控制的效果也还不错,但由于电机不是单纯的阻性负载,所以控制电压并不能得到一个完美的效果。我们最终目标是控制电流,有电流控制的foc才算完美。

        下面来看看加上电流环的FOC控制框图,在开环的基础上,加上电流采集并做相应转换得到Id,Iq。FOC控制的最终目的是使Id尽可能接近0。使用电压开环控制时,由于种种原因,id并不是一直为0,可能存在偏移或是跳动,转速越高这种情况就越厉害,而使用电流闭环可以较好地遏制这种现象。

    1、电流采集

        在ADC中断回调函数中采集ABC三相电流,重构ADC中断回调函数,读取电压,根据硬件电路转换成电流值

        前提是要采集电流偏置,即在电机停止的时候采集ABC三相的静态电压,最终转换成电流值。具体实现是,电机停止时采集1000次,取平均值得到三相电流偏置。最后在ADC采集时减去电流偏置就得到真实的电流值。

        让电机开环转动起来,执行电流采样函数中断,测试vofa+输出电流Ia,Ib,Ic曲线如下:

        对三相电流进行Clark变换之后得到的alpha,bate电流波形如下:


        再对alpha,bate进行park变换得到如下波形,其中橙色线为Iq,蓝色线为Id,比较接近两条直线了。


        经过克拉克变换以及帕克变换,我们的三相交流电流量已经变成了两个直流的电流量,电流环的目的,到这里就清楚了,就是为了使Id尽量接近0,而Iq尽量接近我们给定的值,少出现波动。最佳方式当然就是使用PID控制了,制作Id和Iq的两个PID控制环,实现对电流的稳定控制。


2、PID控制

        首先要明确一点,对于电流环而言一般是不会使用微分项D的,至于为啥,我也描述不清楚,网上有很多资料可以参考。

        这里通过先调试 D轴,将 Q轴的 PI控制器设置为零,这样可以排除 Q轴的影响,在单轴达到比较好的响应效果之后,将 D轴的 PI控制器参数拷贝一份送给Q轴的PI控制器即可。

        D轴调试时,先只加入比例环节,可以将 的系数逐渐增大,会发现 反馈值逐渐靠近 给定值,再加入积分环节发现系统虽然存在超调,但是最终反馈可以稳定在给定值。加入积分环节时有个问题要注意,就是要对积分项进行限幅,否则,过大的积分会让电流环严重超调,而过小电机发挥不出力量。

        以下是调试时部分波形,对于PID参数调试貌似也没有好的办法,只能根据数据一点点调试,一点点修改。

        最终判断电流环生效的效果时,让电机电流闭环运行来后将电机堵转,最大电流会不会跟随给定的目前电流变化,Q轴目标电流越大,堵转电流越大。

观看视频效果请转至 手写STM32 FOC记录----- 电流环(开源)


手写STM32 FOC记录----- 电流环的评论 (共 条)

分享到微博请遵守国家法律