XS128PID控制

上传人:ni****g 文档编号:467245820 上传时间:2022-09-12 格式:DOC 页数:5 大小:16.50KB
返回 下载 相关 举报
XS128PID控制_第1页
第1页 / 共5页
XS128PID控制_第2页
第2页 / 共5页
XS128PID控制_第3页
第3页 / 共5页
XS128PID控制_第4页
第4页 / 共5页
XS128PID控制_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《XS128PID控制》由会员分享,可在线阅读,更多相关《XS128PID控制(5页珍藏版)》请在金锄头文库上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除xs128-PID控制 采用增量式PID控制/*/定义PID结构体/*typedef struct PID int SetPoint; /设定目标 Desired Value double Proportion; /比例常数 Proportional Const double Integral; /积分常数 Integral Const double Derivative; /微分常数 Derivative Const int LastError; /Error-1 int PrevError; /Error-2 PID;/*/定义相关宏/*#d

2、efine P_DATA 100#define I_DATA 0.6#define D_DATA 1#define HAVE_NEW_VELOCITY 0X01/*/声明PID实体/*static PID sPID;static PID *sptr = &sPID;/*/PID参数初始化/*void IncPIDInit(void) sptr-LastError = 0; /Error-1 sptr-PrevError = 0; /Error-2 sptr-Proportion = P_DATA; /比例常数 Proportional Const sptr-Integral = I_DATA;

3、 /积分常数Integral Const sptr-Derivative = D_DATA; /微分常数 Derivative Const sptr-SetPoint =100; /目标是100/*/增量式PID控制设计/*int IncPIDCalc(int NextPoint) int iError, iIncpid; /当前误差 iError = sptr-SetPoint - NextPoint; /增量计算 iIncpid = sptr-Proportion * iError /Ek项 - sptr-Integral * sptr-LastError /Ek1项 + sptr-Der

4、ivative * sptr-PrevError; /Ek2项 sptr-PrevError = sptr-LastError; /存储误差,用于下次计算 sptr-LastError = iError; return(iIncpid); /返回增量值Int g_CurrentVelocity;Int g_Flag;void main(void) DisableInterrupt InitMCu();IncPIDInit(); g_CurrentVelocity=0;/全局变量也初始化 g_Flag=0;/全局变量也初始化 EnableInterrupt;While(1)if (g_Flag& HAVE_NEW_VELOCITY)PWMOUT+= IncPIDCalc(CurrentVelocity);g_Flag&= HAVE_NEW_VELOCITY; /*/采样周期T/*Interrrupt TIME voidCurrentVelocity =GetCurrentVelocity;g_Flag|= HAVE_NEW_VELOCITY;采样周期后.时钟中断 获取当前速度.更新标志g_Flag.调用IncPIDClac()计算增量.更新PWM.【精品文档】第 页

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号