直流电机PID控制例程程序注释
来源:互联网 发布:乐天免税店 mac 编辑:程序博客网 时间:2024/06/01 10:11
基本算法
本例采用了增量式PID算法,算式如下:
PIDOUT = basicValue + Kp*d_error + Ki*error + Kd*dd_error
其中:
PIDOUT:PID输出控制参数,为PWM宽度的调整量
Kp:比例调节参数
Ki:积分调节参数
Kd:微分调节参数
error:误差量(为期望速度-实际速度,可以为正数或负数)
d_error:本次误差量与上次误差量之差(error-pre_error)
dd_error:上次误差量与上上次误差量之差(pre_error-pre_pre_error)
控制程序
void SpeedAdjust(){ long d_error,dd_error,error; //声明变量 error = (int)(speed_ept - now_speed); //计算本次误差(期待速度-当前速度) d_error = error - pre_error; //本次误差与上次误差之差 dd_error = pre_error - pre_pre_error; //上次误差与上上次误差之差 pre_error = error; //将本次误差赋值给上次误差(下次计算用) pre_pre_error = pre_error; //将上次误差赋值给上上次误差(下次计算用) pwm_tmp = pwm_tmp + PID_P*d_error + PID_I*error + PID_D*dd_error; //计算pwm宽度调整量 if(now_speed>22) //如果当前速度大于22 { Set_DCMotor(0,0); //不调整电机 } else //否则 { if(pwm_tmp>=0) //如果pwm宽度调整为正(增加宽度) { Set_DCMotor(pwm_tmp,0); //增加直流电机转速 } else //否则 { Set_DCMotor(pwm_tmp,1); //降低直流电机转速 } } before_speed = now_speed; //讲本次速度赋值给上次速度(下次使用)}
1 0
- 直流电机PID控制例程程序注释
- 直流电机PID控制例程程序注释
- 直流电机带编码器,PID控制
- 单片机控制直流电机的VHDL程序
- 直流电机控制
- PID闭环自动控制直流电机速度
- 单片机驱动直流电机的例程
- PWM控制直流电机 收藏
- 直流电机控制(一)
- PWM直流电机控制图
- 51单片机控制直流电机
- Arduino控制直流电机
- MSP430直流电机控制
- 有刷直流电机控制
- C# 多线程控制控件实例(例程简单,注释详细)
- C# 多线程控制控件实例(例程简单,注释详细)
- C# 多线程控制控件实例(例程简单,注释详细)
- 控制直流电机设计常用方法
- Web前端的学习路线,你真的知道吗
- C#中Collection,List和ArrayList的区别
- 二叉树大全
- 用UltraISO(软碟通)进行Win10系统重装
- Linux 密码安全设置
- 直流电机PID控制例程程序注释
- JS实现xml与json格式的互转
- iOS开发之点击UIWebView获取被点击图片的地址并显示
- Error configuring application listener of class ... java.lang.ClassNotFoundException的解决思路
- C#垃圾回收的大对象
- 高内聚,低耦合与SOLID原则
- SSM框架——使用MyBatis Generator自动创建代码
- replace第二个参数为函数的情况
- Java实现Http的Post、Get、代理访问请求