XS128PID控制(6页).doc

上传人:1595****071 文档编号:35033477 上传时间:2022-08-20 格式:DOC 页数:6 大小:16.50KB
返回 下载 相关 举报
XS128PID控制(6页).doc_第1页
第1页 / 共6页
XS128PID控制(6页).doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《XS128PID控制(6页).doc》由会员分享,可在线阅读,更多相关《XS128PID控制(6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、- 采用增量式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;/*/定义相关宏/*#define P_DATA 100#define I_DATA 0.6

2、#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; /积分常数Integral Const sptr-Derivati

3、ve = 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-Derivative * sptr-PrevError; /Ek2项 sp

4、tr-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.第 6 页-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁