ImageVerifierCode 换一换
格式:PDF , 页数:5 ,大小:308.42KB ,
资源ID:3175790      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3175790.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PID算法C语言编程.pdf)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PID算法C语言编程.pdf

1、472732787 PID 编程 1/5 PID 的 C 语言编程 自从计算机进入控制领域以来,用数字计算机代替模拟计算机调节器组成计算机控制系统,不仅可以用软件实现 PID 控制算法,而且可以利用计算机的逻辑功能,使 PID 控制更加灵活。数字 PID 控制在生产过程中是一种最普遍采用的控制方法,在机电、冶金、机械、化工等行业中获得了广泛的应用。将偏差的比例P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID 控制器。PID 控制分为模拟控制分为模拟 PID 控制器和数字控制器和数字 PID 控制器控制器 模拟模拟 PID 控制控制:模拟模拟 PID 控制系统

2、框图控制系统框图 模拟模拟 PID 控制控制的微分方程的微分方程 472732787 PID 编程 2/5 因为微机只能处理数字信号不能处理模拟信号,所以要把模拟PID 控制转换成数字 PID,这就需要把模拟 PID 的参数离散化 模拟模拟 PID 控制规律的离散化控制规律的离散化 数字数字 PID 控制控制:数字 PID 算法有两种常用的基本类型:位置型、增量型。增量型增量型 PID 控制控制 增量式增量式 PID 控制原理控制原理 简化后的简化后的增量式增量式 PID 控制原理控制原理 472732787 PID 编程 3/5 472732787 PID 编程 4/5 PID 程序程序清单

3、清单/定义定义 PID 参数参数#define VV_KPVALUE 3 /比例比例#define VV_KIVALUE 40 /积分积分#define VV_KDVALUE 3 /微分微分#define VV_MAX 10000 /返回的最大值返回的最大值,是是 pwm 的周期值的周期值#define VV_MIN 0/#define VV_DEADLINE 0X08 /速度速度 PID,设置死区范围,设置死区范围 /*/PID 算法算法/*typedef struct PID /定义数法核心数据定义数法核心数据 signed int vi_Ref;/速度速度 PID,速度设定值,速度设定值

4、 Velocity signed int vi_FeedBack;/速度速度 PID,速度反馈值,速度反馈值 m*50 signed long vi_PreError;/速度速度 PID,前一次,速度误差,前一次,速度误差,vi_Ref-vi_FeedBack signed long vi_PreDerror;/速度速度 PID,前一次,速度误差之差,前一次,速度误差之差,d_error-PreDerror;unsigned int v_Kp;/速度速度 PID,Ka=Kp unsigned int v_Ki;/速度速度 PID,Kb=Kp*(T/Ti)unsigned int v_Kd;/速

5、度速度 PID,signed long vl_PreU;/电机控制输出值电机控制输出值 PID;static PID sPID;/PID Control Structure static PID*sptr=&sPID;void PIDInit(void)sptr-vi_Ref=Velocity;/速度设定值速度设定值 sptr-vi_FeedBack=X;/速度反馈值速度反馈值 sptr-vi_PreError=0;/前一次,速度误差前一次,速度误差,vi_Ref-vi_FeedBack sptr-vi_PreDerror=0;/前一次,速度误差之差,前一次,速度误差之差,d_error-Pr

6、eDerror;472732787 PID 编程 5/5 sptr-v_Kp=VV_KPVALUE;sptr-v_Ki=VV_KIVALUE;sptr-v_Kd=VV_KDVALUE;sptr-vl_PreU=0;/电机控制输出值电机控制输出值 /pid void speed_pid(int v)signed long error,d_error,dd_error;/error=(signed long)(sptr-vi_Ref-sptr-vi_FeedBack);/偏差计算偏差计算 d_error=error-sptr-vi_PreError;dd_error=d_error-sptr-vi

7、_PreDerror;sptr-vi_PreError=error;/存储当前偏差存储当前偏差 sptr-vi_PreDerror=d_error;/储存当前误差之差储存当前误差之差 sptr-vl_PreU+=(signed long)(sptr-v_Kp*d_error+sptr-v_Ki*error +sptr-v_Kd*dd_error);/速度速度 PID 计算计算 if(sptr-vl_PreU=VV_MAX)/速度速度 PID,防止调节最高溢出,防止调节最高溢出 sptr-vl_PreU=VV_MAX;else if(sptr-vl_PreU vl_PreU=VV_MIN;else return(sptr-vl_PreU );/返回预调节占空比返回预调节占空比

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1