首页
关于我
友链
小程序
舔狗日记
小黑屋
音乐解锁
阿狸和桃子
Search
1
windows11系统自带VPN连接不上群辉VPN服务器问题
478 阅读
2
数字振镜XY2-100协议
452 阅读
3
使用ESP8266完成校园网WEB认证
443 阅读
4
将校园卡复制到小米手环
405 阅读
5
zynq调试网口所遇到的问题记录
283 阅读
技术
生活
登录
Search
标签搜索
qt
mqtt
FreeRTOS
stm32
iar
VPN
光猫破解
esp8266
群晖
VideoStation
exti
c++
eclipse
bootloader
pixhawk
遥控器
失控保护
ARM
NAS
ENPASS
AMENG
累计撰写
79
篇文章
累计收到
17
条评论
首页
栏目
技术
生活
页面
关于我
友链
推荐
舔狗日记
小黑屋
音乐解锁
阿狸和桃子
搜索到
1
篇与
的结果
2022-01-02
PID算法的C语言实现
/************************************************************************** 函数功能:增量PI控制器 入口参数:编码器测量值,目标速度 返回 值:电机PWM 根据增量式离散PID公式 pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)] e(k)代表本次偏差 e(k-1)代表上一次的偏差 以此类推 pwm代表增量输出 在我们的速度控制闭环系统里面,只使用PI控制 pwm+=Kp[e(k)-e(k-1)]+Ki*e(k) **************************************************************************/ int Incremental_PI (int Encoder,int Target) { float Kp=20,Ki=30; static int Bias,Pwm,Last_bias; //相关内部变量的定义。 Bias=Encoder-Target; //求出速度偏差,由测量值减去目标值。 Pwm+=Kp*(Bias-Last_bias)+Ki*Bias; //使用增量 PI 控制器求出电机 PWM。 Last_bias=Bias; //保存上一次偏差 return Pwm; //增量输出 }/**************************************************************************函数功能:位置式PID控制器入口参数:编码器测量位置信息,目标位置返回 值:电机PWM根据位置式离散PID公式 pwm=Kpe(k)+Ki∑e(k)+Kd[e(k)-e(k-1)]e(k)代表本次偏差 e(k-1)代表上一次的偏差 ∑e(k)代表e(k)以及之前的偏差的累积和;其中k为1,2,,k;pwm代表输出**/int Position_PID (int Encoder,int Target){ float Position_KP=80,Position_KI=0.1,Position_KD=500; static float Bias,Pwm,Integral_bias,Last_Bias; Bias=Encoder-Target; //求出速度偏差,由测量值减去目标值。 Integral_bias+=Bias; //求出偏差的积分 Pwm=Position_KPBias+Position_KIIntegral_bias+Position_KD*(Bias-Last_Bias); //位置式PID控制器 Last_Bias=Bias; //保存上一次偏差 return Pwm; //增量输出}<br/>PID 整定口诀 参数整定找最佳, 从小到大顺序查。 先是比例后积分, 最后再把微分加。 曲线振荡很频繁, 比例度盘要放大。 曲线漂浮绕大弯, 比例度盘往小扳。 曲线偏离回复慢, 积分时间往下降。 曲线波动周期长, 积分时间再加长。 曲线振荡频率快, 先把微分降下来。 动差大来波动慢, 微分时间应加长。 理想曲线两个波, 前高后低四比一。 一看二调多分析, 调节质量不会低。<br/>
2022年01月02日
75 阅读
0 评论
0 点赞