计算机控制设计PID智能小车.docx

上传人:龙*** 文档编号:146225 上传时间:2018-07-11 格式:DOCX 页数:10 大小:204.32KB
下载 相关 举报
计算机控制设计PID智能小车.docx_第1页
第1页 / 共10页
计算机控制设计PID智能小车.docx_第2页
第2页 / 共10页
计算机控制设计PID智能小车.docx_第3页
第3页 / 共10页
计算机控制设计PID智能小车.docx_第4页
第4页 / 共10页
计算机控制设计PID智能小车.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、 计算机检测与控制技术 X 课程设计报告 题 目 : PID 对智能小车的应用 姓 名 : 吕振 班 级 : 电信 14-1 班 学 号 : 3140718181 摘要 : 在智能车比赛过程中,小车需要不停的检测前方道路信息以及自身的行驶信息,在检测过程中会有复杂信息需要采集并多种干扰因素需要抗拒。将检测到的道路信息与自身行驶信息相结合,以确定下一步动作,直道就加速,入弯道就减速入弯,由弯入直再加速。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 PID 控制,又称 PID 调节 。 它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的

2、结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和 参数必须依靠经验和现场调试来确定,这时应用PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象或不能通过有效的测量手段来获得系统参数时,最适合用 PID 控制技术。 PID 控制,实际中也有 PI 和 PD 控制。 PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。 关键词: 智能车 ; PID 控制;检测; PID vague control and its application in smartcar Abstract: In a Smartcar ga

3、me, there is a need for cars to detect the information of the front road and the car itself. There will exist so much interference during the detection which are required to be resisted. Combining the two types of information, we can decide the next action: speed up when in straight road, speed down

4、 when go into a tortuous path and speed up again when it goes into the straight path. In an engineering project, the most widely used control principles are proportion, integration, differential, we call it PID for short or PID regulation. It becomes one of the main techniques for its simple structu

5、re, good stability, reliability for work, convenience for regulations. When it is impossible for us to completely control the structure and parameter of the controlled subject, or we are unable to gain a exact math model, other techniques are hard to be put into apply, and the structure and paramete

6、r of the controller must be relied on the experience and scene, it is the best time to apply PID regulation. That is to say that when we do not gain enough information about a system or a controlled subject, or we cant achieve systemic parameter by effective methods, it is the right time to take PID

7、 technique. In practical, there are still PI control and PD control. PID control is a way to control according to the systematic deviation and proportion, integration and differential to calculate the controlled variable. 引言 本文以通俗的理解,以小车控制举例说明 PID 的一些理解。 由于外界原因,小车的实际速度有时不稳定。其二, 要让小车以最快 的时间达达到既定的目标速度

8、 (小车通过 PWM 波来控制小车的速度)。其三, 速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之一 。 PID 控制,速度快,调节灵敏,能实现准确性,实时性,这样使智能车在比赛过程中速度调整上升了一个高度。也为智能车在比赛过程中获得更好的名次做成了很大的贡献。 1 PID 简介 1.1 目前 工业自动化水平已经成为衡量各行各业现代化水平的一个重要标志。同时,控制理论的发展也已经经历了古典控制理论,现代控制理论和智能控制理论三个阶段。智能控制的典型实例是模糊全自动洗衣机等。自动控制系统可分为开环控制系统和闭环控制系统。一个控制系统包括控制器,传感器,变送器,执行机构,输入

9、输出接口。控制器的输出口经过输出接口,执行机构,加到被控系统上;控制系统的被控量,经过传感器,变送器,通过输入接口送到控制器。 开环控制系统 :开环控制系统( Open-loop control system)是指被控对象的输出(被控制量)对控制器的输出没有影响。在这种控制系统中,不依赖将被控量反送回来以形成任何闭环回路 闭环控制系统: ( Closed-loop control system)特点是系统被控对象的输出会反送回来影响控制器的输出,形成一个或多个闭环。闭环控制有正反馈和负反馈。若反馈信号与系统给定值信号相反,则称为负反馈,若极性相同,则称为正反馈。 阶跃响应: 是指一个阶跃输入加

10、到系统上时,系统的输出。 图 1 PID 控制流程 如图所示,其中, D( S)为控制器,完成 PID 控制规律。 比例( P)控制器 U(t)=pKe( t) Kp Ki/s Kds 对象 Y U + + + - + e 比例 +积分( PI)控制器 U(t)= pKe(t)+ detTi 0 )(1 比例 +积分 +微分( PID)控制器 U(t)= pKe(t)+ detTi 0 )(1 +dttedTd )( 以上各式中, Kp 比例放大系数; Ti 积分时间; Td 微分时间 1.2 PID 一般有两种:位置式 PID 和增量式 PID 图 2 位置式 PID PID 算法表示为 U

11、(k)=Kpe(k)+Ki kj je0 )(Kde(k)-e(k-1)+Uo 式中 U(k) 第 K 个采样时刻的控制 Kp 比例放大系数 Ki= TiKpTs 积分放大系数 Kd= TsKpTd 微分放大系数 Ts 采样周期 图 3 增量 PID 算法 PID 置位控制 受控对象 + e u y r PID 增量式算法 步进电机 受控对象 y u r + _ e 增量式 PID 算法为 Uk=U(k)-U(k-1) =Kpe(k)-e(k-1)+ )2()1(2)()( kekekeTsTdkeTiTs 位置式 PID 的输出与过去的所有状态有关,计算时要对 e(每一次的控制误差)进行累加

12、,这个计算量非常大,而明没有必要。而且小车的 PID 控制器的输出并不是绝对数值,而是一个,代表增多少,减多少。换句话说,通过增量 PID 算法,每次输出是 PWM 要增加多少或者减小多少,而不是 PWM 的实际值。 因此,在小车控制中我们常用增量式 PID 控制。 下面均以增量式 PID 说明 .打个比方,如果现在的输出是 1,目标输出是 100,那么 P 的作用是以最快的速度达到 100,把 P 理解为一个系数即可; 关于 I,通过高等数学的知识 , 0 的积分才能是一个常数, I 就是使误差为 0 而起调和作用; 关于 D, 微分是求导数,导数代表切线是吧,切线的方向就是最快到至高点的方

13、向。这样理解,最快获得最优解,那么微分就是加快调节过程的作用了。 Uk=A*e(k)+B*e(k-1)+C*e(k-2) 这里 KP 是 P 的值, TD 是 D 的值, 1/Ti是 I的值,都是常数,哦,还有一个 T, T是采样周期,也是已知。而 A, B, C 是由 P I D 换算来的,按这个公式,就可以简化计算量了,因为 P I D 是常数,那么 A B C 可以用一个宏表示。这样看来,只需要求 e(k) e(k-1) e(k-2)就可以知道 Uk 的值了,按照 Uk 来调节 PWM 的大小就 OK 了。 图 4 PID 调节结果 2 PID 参数调试 1负反馈 自动控制理论也被称为负

14、反馈控制理论。首先检查系统接线,确定系统的反馈为负反馈。例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正( PID 算法时,误差 =输入 -反馈),同时电机转速越高,反馈信号越大。其余系统同此方法。 2 PID 调试一般原则 a.在输出不振荡时,增大比例增益 P。 b.在输出不振荡时,减小积分时间常数 Ti。 c.在输出不振荡时,增大微分时间常数 Td。 3一般步骤 a.确定比例增益 P 确定比例增益 P 时,首先去掉 PID 的积分项和微分项,一般是令 Ti=0、 Td=0(具体见 PID的参数设定说明),使 PID 为纯比例调节。输入设定为系统允许的最大值的 60%70%,由

15、 0逐渐加大比例增益 P,直至系统出现振荡;再反过来,从此时的比例增益 P 逐渐减小,直至系统振荡消失,记录此时的比例增益 P,设定 PID 的比例增益 P 为当前值的 60%70%。比例增益 P 调试完成。 b.确定积分时间常数 Ti 比例增益 P 确定后,设定一个较大的积分时间常数 Ti 的初值,然后逐渐减小 Ti,直至系统出现振荡,之后在反过来,逐渐加大 Ti,直至系统振荡消失。记录此时的 Ti,设定 PID 的积分时间常数 Ti 为当前值的 150%180%。积分时间常数 Ti 调试完成。 c.确定积分时间常数 Td 积分时间常数 Td 一般不用设定,为 0 即可。若要设定,与确定 P

16、 和 Ti 的方法相同,取不振荡时的 30%。 d.系统空载、带载联调,再对 PID 参数进行微调,直至满足要求 3 PID 与智能车控制的联系 小车调速 及转向通过输出 PWM 波得占空比来控制。 肯定不是线性的,外界因素那么多,没人能证明是线性的。如果是线性的,直接用 P 就可以了。比如在 PWM=60%时,速度是 2M/S,那么你要它 3M/S,就把 PWM 提高到 90%。因为 90/60=3/2,这样一来太完美了。完美是不可能的。那么不是线性的,要怎么怎么控制 PWM 使速度达到即定的速度呢?即要快,又要准,又要狠。(即快准狠)系统这个速度的调整过程就必须通过某个算法调整,一般 PI

17、D 就是这个所用的算法。可能你会想到,如果通过编码器测得现在的速度是 2.0m/s,要达到 2.3m/s 的速度,那么把 PWM 增大一点不就行了吗?是的,增大 PWM 多少呢?必须要通过算法,因为PWM 和速度是个什么关系,对于整个系统来说,谁也不知道。要一点一点的试,加个 1%,不够,再加 1%还是不够,那么第三次你还会加 1%吗?很有可能就加 2%了。通过 PID 三个参数得到一个表达式: PWM=a * V1+b * V2+c * V3,a b c 是通过 PID 的那个长长的公式展开 , 然后约简后的数字, V1 , V2 , V3 此前第一次调整后的速度差 ,第二次调整后的速度差

18、,第三次依次类推。 一句话, PID 要使当前速度达到目标速度最快,需要建立如何调整 PWM 和速度之间的关系。输入就是前次速度,前前次速度,前前前次速度。输出就是PWM 应该增加或减小多少。 就从控制效果来说,加入了 PID 控制后,小车的速度 能够上一个台阶,因为空度的实时性与精度提高了。 4 PID 小车控制例程 /定义 PID 结构体 /* typedef struct PID int SetPoint; /设定目标 Desired Value double Proportion; /比例常数 Proportional Const double Integral; /积分常数 Inte

19、gral Const double Derivative; /微分常数 Derivative Const int LastError; /Error-1 int PrevError; /Error-2 PID; /* /定义相关宏 /* #define P_DATA 100 #define I_DATA 0.6 #define D_DATA 1 #define HAVE_NEW_VELOCITY 0X01 /* /声明 PID 实体 /* static PID sPID; static PID *sptr = /* /PID 参数初始化 /* void IncPIDInit(void) spt

20、r-LastError = 0; /Error-1 sptr-PrevError = 0; /Error-2 sptr-Proportion = P_DATA; /比例常数 Proportional Const sptr-Integral = I_DATA; /积分常数 Integral Const sptr-Derivative = D_DATA; /微分常数 Derivative Const sptr-SetPoint =100; 目标是 100 /* /增量式 PID 控制设计 /* int IncPIDCalc(int NextPoint) int iError, iIncpid; /

21、当前误差 iError = sptr-SetPoint - NextPoint; /增量计算 iIncpid = sptr-Proportion * iError /Ek项 - sptr-Integral * sptr-LastError /Ek 1项 + sptr-Derivative * sptr-PrevError; /Ek 2项 sptr-PrevError = sptr-LastError; sptr-LastError = iError; /存储误差,用于下次计算 return(iIncpid); /返回增量值 Int g_CurrentVelocity; Int g_Flag;

22、void main(void) DisableInterrupt InitMCu(); IncPIDInit(); g_CurrentVelocity=0; /全局变量也初始化 g_Flag=0; /全局变量也初始化 EnableInterrupt; While(1) if (g_Flag g_Flag /* /采样周期 T /* Interrrupt TIME void CurrentVelocity =GetCurrentVelocity; g_Flag|= HAVE_NEW_VELOCITY; 5 结论 没有一种控制 算法 比 PID 调节规律更有效、更方便的了。现在一些时髦点的调节器基

23、本源自PID。甚至可以这样说: PID 调节器是其它控制调节算法的妈。 因为 PID 解决了自动控制理论所要解决的最基本问题,既 系统 的稳定性、快速性和准确性。调节 PID 的 参数 ,可实现在系统稳定的前提下,兼顾系统的带载能力和抗扰能力,同时,在 PID 调节器中引入积分项,系统增加了一个零积点,使之成为一阶或一阶以上的系统,这样系统阶跃响应的稳态误差就为零 。 由于自动控制系统被控对象的千差万别, PID 的参数也必须随之变化,以满足系统的性能要求。 它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象 “一阶滞后纯滞后 ”与 “二阶滞后纯滞后 ”的控制对象, 其 调节规律是 连续系统 动态品质校正的一种有效方 ,是一种最优控制。 参考文献 1. Freescale Company.MC9S12XS Family Reference Manual, Rev. 1.09, 2009.9 2. 卓晴 ,黄开胜 ,邵贝贝 .学做智能车 .北京 -北京航空航天大学出版社 .2007 3. 仇慎谦 .PID 调节规律和过程控制南京 -江苏科学技术出版社 4. 尹怡欣 ,陶永华 .新型 PID控制及其应用 .北京 -机械工业出版社 .1998 2017 年 7 月 4 日

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。