基于STM32的位置式PID直流电机简单控制算法

本文介绍了一个基于STM32微控制器的PID控制器实现方法。通过初始化PID参数,如比例增益(Kp)、积分时间(Ti)、微分时间(Td),并在运行时计算比例(P)、积分(I)、微分(D)项来调整输出,以达到系统稳定。此方法适用于需要闭环控制的应用场景。

OUT=Kp*Ek+[Kp*(T/Ti)*\sum_{k=0}^{n}*Ek ]+[Kp*(Td/T)*(Ek-Ek_1)]+OUT0

#include "pid.h"
#include "stm32f10x.h"


PID my_pid;

void PID_init(u8 sv,u8 kp,u8 t,u8 ti,u8 td,u8 out0)
{
	my_pid.Sv =sv;
	my_pid.Kp =kp;
	my_pid.Td =td;
	my_pid.Ti =ti;
	my_pid.OUT0 =out0;
	
}


u16 MY_PID(u8 sv,u8 pv)
{
	float P,I,D;
	
	my_pid.Sv =sv;
	my_pid.Pv =pv;
	
	my_pid.Ek =(my_pid.Sv -my_pid.Pv );
	
	P=my_pid.Kp*my_pid.Ek;
	
	my_pid.DEk +=my_pid.Ek;
	
	I=my_pid.Kp*(my_pid.T/my_pid.Ti)*my_pid.DEk ;
	
	D=my_pid.Kp*(my_pid.Td/my_pid.T)*(my_pid.Ek-my_pid.Ek_1 )+my_pid.OUT0 ;
	
	my_pid.OUT=P+I+D;
	
	return my_pid.OUT;
	
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rookie boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值