STM32—PID控制在直流电机中的应用_分析p,i,d控制参数对直流电机运行的影响

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

积分的作用虽然会消除静态偏差,但是也会拉低系统的响应速度,就是说I对P有抑制作用

Ⅲ.微分(D)部分

上面说了,P过大会引起震荡,降低系统稳定性,可以通过提高D来减小震荡。

微分的作用就是根据偏差的变化趋势预先给出纠正!怎么个预先法呢?因为微分可以看作是求导,上过高中同鞋都知道:求导可以反映函数的变化趋势。所以,通过微分,可以对偏差的变化进行预判地抑制,防止 矫枉过。

微分的引入,有助于减小震荡,使系统趋于稳定,D越大,抑制P的效果就越强。

3.PID的数字化处理

由于计算机控制是一种采样控制,只能根据采样时刻的偏差值计算控制量,所以我们是通过软件实现控制算法的,要对PID进行离散化处理(也就是数字化处理),就是根据离散采样点的偏差值进行控制,在离散化处理后,相比于模拟控制由如下改变:

  • 由差分代替微分
  • 由累加代替积分

数字化处理后的PID系统如下:

在这里插入图片描述

采样的周期越小,就越接近模拟控制,控制的效果也就越好。

二.位置闭环控制

位置闭环控制,也叫位置式PID控制,就是传统的PID控制,控制的偏差逐渐接近0,从而使控制量趋于目标值。

对电机使用位置闭环控制的时候,就是控制电机的转动位置,通过编码器的脉冲累加测量电机的位置信息,与目标位置进行比较,得到偏差值,通过比例、积分、微分的PID算法进行控制,使偏差趋于0。

电机控制中,输出量就是电机控制模块输出的占空比,作用于电机转速,此时离散PID的公式如下:

在这里插入图片描述

其控制框图如下:

在这里插入图片描述

控制实现代码如下:

/\* 返回输出
\* Encoder为输入(编码器测量的信号,也就是电机转速)
\* Target为目标值
\*/
//KP、KI、KD为PID的系数
int Postition\_PID( int Encoder, int Target )
{	//依次的变量代表:偏差、输出、偏差积分、偏差微分
	static float Bias,Pwm,Integral_bias,Last_bias;  
    Bias = Encoder-Target;//计算偏差
    Integral_bias += Bias;//计算偏差积分,累加
    Pwm = KP\*Bias+KI\*Integral_bias+KD\*(Bias-Last_bias);//计算输出,根据PID
    Last_bias = Bias;//保存为上一次偏差
    return Pwm;//返回输出
}


在定时中断里实现PID控制,定时中断相当于离散的采样点,中断服务函数中可调用控制函数:

//中断中如下调用
Moto = Postition\_PID( Encoder, Target );
//最终的控制落回到控制电机转速上
Set\_Pwm( Moto );

最终的控制要落回到电机的控制上,也就是电机的转速控制——PWM控制。

位置控制的调节经验:先只使用P控制,逐渐增大P,系统震荡后加入微分控制D来抑制震荡,调整KD直至消除震荡,之后再根据系统对响应和静差的要求,调节P、I参数。

三.速度闭环控制

速度闭环控制也可叫增量式PID控制,与位置式PID控制不同,位置式PID输出的是控制量新的状态,而增量式PID输出的是控制量的增值,增量式PID的离散公式如下:

在这里插入图片描述
位置闭环控制是使电机准确转到某一位置,速度闭环控制是使电机以某一速度转动,在速度闭环控制里,我们只需要使用PI控制即可,所以简化后的公式如下:
在这里插入图片描述

注意:公式直接将控制量的增量加在上一次控制量的状态上了!!!

控制框图如下:

在这里插入图片描述

控制代码如下:

/\* 返回输出
\* Encoder为输入(编码器测量的信号,也就是电机转速)
\* Target为目标值
\*/
//KP、KI为PID的系数
int Incremental\_PI( int Encoder, int Target )
{	//依次的变量代表:偏差、输出、偏差微分
	static float Bias,Pwm,Last_bias;  
    Bias = Encoder-Target;//计算偏差
    Pwm += KP\*(Bias-Last_bias)+KI\*Bias;//增量式PI
    Last_bias = Bias;//保存为上一次偏差
    return Pwm;//返回输出
}

在定时中断里实现PID控制,定时中断相当于离散的采样点,中断服务函数中可调用控制函数:

//中断中如下调用
Moto = Incremental\_PI( Encoder, Target );
//最终的控制落回到控制电机转速上
Set\_Pwm( Moto );

要注意速度闭环控制采用PI控制,公式与PID有所不同,输出的也是控制量的增量,这里将增量直接加在了上一次的状态量上,所以输出的还是控制量的新状态。

最后附上我找到的PID参数调整口诀:

常用口诀:

参数整定找最佳,从小到大顺序查

先是比例后积分,最后再把微分加

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

-1715685433324)]

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 27
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值