- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《PID算法深度技术帖写给参加飞思卡尔智能车大赛的朋友》.doc
PID算法深度技术帖*写给参加飞思卡尔智能车大赛的朋友
最近很多朋友问我关于PID的算法。这里我就简单整理了下:
PID控制算法是最经典的自动控制算法。所有《自动控制原理》教材均有大幅篇章介绍。从数学模型到传递函数,公式推导不厌其烦。很多‘童鞋’似懂非懂。下面我就从程序的角度来讲:
下面是PID控制系统的原理图
PID算法具体分两种:一种是位置式的 ,一种是增量式的。 在大多数的情况下,执行机构本身没有状态记忆功能,每时每刻都要靠控制信号驱动,如果失去控制信号,执行机构即失去功能。在这种场合必须采用位置式PID控制算法 。 也有一些执行机构具有记忆功能,即使失去驱动信号仍然可以维持原来的状态不变。例如在用步进电机作为执行机构的自动化控制系统中(数控机床最为典型)
下面主要针对位置式PID来讲,
以加温设备为例,软件采用uc/os-ii嵌入式操作系统环境
//采用位置式PID控制算法的任务函数
float Set;//设定值float KP;//比例常数float KI;//积分常数float KD;//微分常数float LE=0;//上次误差float SE;//累计误差
void TaskSampleCtrl(void *pdata)//采样控制函数{ float now,E,DE,out;//定义临时变量 while(1) {
now=SampleAdc();//传感器采样一次
E=Set-now; //计算当前误差 SE+=E; //计算当前误差的积分值 DE=E-LE; //计算当前误差的微分值 out=KP*E //计算比例项 +KI*SE //计算积分项 +KD*DE; //计算微分项
CtrlOut(out); //控制执行机构 LE=E; //保存误差值以进行下次计算 OSTimeDly(25); //心跳20ms 延时0.5s(采样周期) }}
PID参数调节:
1.如果被控制对象的温度很快达到设定值,并超过设定值很多才回调(此种称为超调),则应该减小KP和KI,降低控制强度;加大KD,抑止超
调。不一定3个参数同时都要调整,可重点调整KP;
2.如果控制对象的温度很难达到设定值,或者经常低于设定值,则应该加大KP和KI。增加控制的强度。
3.如果控制对象的温度能够控制在设定值上,但上下波动较大。则应该加大KD,抑止波动。同时适当减少KI,降低积分控制对微分的控制的对
冲作用。
4.如果容易受环境影响而导致温度波动,则应该加大KD,抑止波动。
下面是用在智能车的PID上的算法实现
//飞思卡尔光电智能车大赛 光电组//设计者:王玉鹏//最后修改时间:2010.07. 23. 凌晨1点36/*****************命名规则统一开始************* /匈牙利命名法(变量首部加上)全局变量加g_有符号整型:i无符号整型:u布尔量:b无符号char型:uch宏定义 全大写两个大写字母的单词用 ‘ _ ’字符 分开*****************命名规则统一结束*************//*********统一数据类型定义开始********///说明:便于移植,书写typedef unsigned int INT16U;//无符号16位整数typedef int INT16S;//有符号16为整数typedef unsigned char CHAR8U;//无符号8位整数typedef char CHAR8S;//有符号8位整数/*********统一数据类型定义结束********/#define SPEED_PER 10 //10 SPEED 10000=pwm100% 千万别乱改#define SPEED_TIMER 3 //速度累计采集定时 SPEED_TIMER*4 (ms) 12ms
INT16U g_uSpeedTemp=0;//系统用INT16U g_uSpTimeCnt=0;//速度采集定时用 系统用 0-60000INT16U g_uRelSpeedNow=0;//实际速度 0-60000INT16U g_uRelSpeedOld=0;//实际速度 0
您可能关注的文档
- 《G-0412科教新城区域内道路照明设施维修及智能化监管系统》.doc
- 《GCK的具体含义G——柜式结构,C——抽出式,K——控》.doc
- 《GMTC-QW-YB-05》.doc
- 《Haier-海尔间接采购订单系统用户手册》.ppt
- 《HOPFBIFURCATIONINASYNAPTICALLYCOUPLEDFHN》.ppt
- 《IMW-PBE系统》.doc
- 《influentialadj.有影响的;有权势的》.doc
- 《JAVA2程序设计》.ppt
- 《Java语言与面向对象程序设计》.ppt
- 《LAMOST观测控制系统的设计与实现》.ppt
- 职业技术学院2024级工业机器人技术(安装与维护)专业人才培养方案.docx
- 职业技术学院2024级应用化工技术专业人才培养方案.pdf
- 职业技术学院2024级软件技术(前端开发)专业人才培养方案.pdf
- 职业技术学院2024软件技术专业人才培养方案.docx
- 职业技术学院2024级信息安全技术应用(安全运维)专业人才培养方案.docx
- 职业技术学院2024级新能源汽车检测与维修技术(车辆鉴定与评估)专业人才培养方案.pdf
- 职业技术学院2024级石油炼制技术专业人才培养方案.pdf
- 职业技术学院2024级环境监测技术专业人才培养方案.docx
- 职业技术学院2024级汽车制造与试验技术专业人才培养方案.pdf
- 职业技术学院2024级信息安全技术应用专业人才培养方案.pdf
文档评论(0)