欢迎来到天天文库
浏览记录
ID:13751170
大小:267.00 KB
页数:11页
时间:2018-07-24
《智能控制实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、智能控制实验报告数字PID及其算法戴子文200730580307房柳煌200730580309张荣春200730580331指导老师:陈瑜日期:2010年12月2日华南农业大学工程学院10数字PID及其算法一、实验目的:1、掌握数字PID及其算法2、掌握AS-UII电机的软件驱动方法特性、AS-UII走直线的开环特性、AS-UII的闭环特性及其分析方法二、实验原理及实验步骤:1、PID算法的数字化实现在模拟系统中,PID算法的表达式为:式中,P(t)----调节器的输出信号;e(t)-----调节器的偏差信号,它等于测量值与给定值之差;Kp-----调节器的比例系数;T1----调节器
2、的积分时间;TD----调节器的微分时间;离散化的PID:Δt=T采样周期,必须使T足够少,才能保证系统有一定的精度;E(k)第K次采样时的偏差值;E(k-1)第K-1次采样时的偏差值;K采样序号,K=0,1,2……;P(k)第K次采样时调节器的输出;上式计算复杂,经过化简为:式中:积分系数微分系数10要计算第K次输出值P(k),只需要知道P(K-1),E(K),E(k-1),E(K-2)即可。上式也称为位置型PID的位置控制算法。在很多控制系统中,由于执行机构是采用布进电机进行控制,所以只要给一个增量信号即可。因此得到增量型PID的位置控制算法2、AS-UII的PID算法的程序设计(
3、1)AS-UII电机的软件驱动特性我们控制AS-UII的电机转动是通过编程实现的,我们的编译环境是VJC1.5开发版。这种用软件实现控制的方式与一般的用电压或频率直接控制电机不同,控制量是通过函数drive(参1,参2)或motor(参1,参2)给予。函数motor()用于电机功率级别的控制,功率范围是-100(反向最大)到100(前向最大),系统软件实际上只能控制电机工作于7个不同的功率级别,但参数是从-100到100。我们的问题是,这个对象没有准确的数学模型。那么,输入和输出大概有什么样的关系呢,我们需要通过测量得到对象大致的特性。在motor()内输入控制量,记下输出值,也即左右
4、轮胎速度。这些都是通过编程实现的。输出值显示在AS-UII上的液晶显示屏上。求轮胎的速度要用到光电编码器,虽然AS-UII的每个光电编码器都是按照每圈33个脉冲设计的,但是因为机械原因会出现误差,所以用光电编码器读得的脉冲数计算速度之前要检测一下它的实际值。求实际速度的算法如下:floatv1,v2;floatT=1.5;voidmain(){motor(1,50);motor(2,50);rotation(1);10rotation(2);resettime();while(1){if(seconds()>5.0){stop();break;}wait(T);v1=(float)ro
5、tation(1)*v1/T;v2=(float)rotation(2)*v2/T;printf("v1=%f,v2=%f",v1,v2);}}注:v1、v2分别是测得的左轮和右轮的分辨率2)观察对象的特性a.输入定值(左轮右轮的输入值都为50,T=1.5秒),记录不同时刻的输出值,测得的实验数据如下:表一:1T2T3T4T5T6T左轮475148474749右轮464847444646输入输出图形大致如下这样观察对象的特性,存在很多误差(每个周期记录的速度只是这个周期的平均速度,没法看到轮胎速度变化的全过程;光电编码器的读值有误差,这样,平均速度就不是很准确),但因为我们这个实验
6、只是用于说明我们可以控制能力风暴走直线这样一个事实,不追求很大的精确性,所以这样的误差就不去考虑了。10从上图可看出,输出对输入响应很快,反应时间几乎不用考虑,并且输出基本在某个定值附近脉动。b.输入不同值,记录输出值于表二(T=1.5秒)(2)AS-UII走直线的开环特性代码如下:voidmain(){motor(1,50);motor(2,50);}让AS-UII纵向走两米,观察它的横向偏移。改变输入值,测量偏移距离。(3)AS-UII的闭环特性应用PID算法进行反馈控制。根据控制量,我们采用位置式算法。1、位置式算法P公式如:U=Kei+Uo;PI公式如:U=K(Ei+T/Ti*
7、Σej)+Uo;PID公式如:U=K(Ei+T/Ti*Σej+Td/T*(Ei-Ei-1))+Uo;因为左右轮的特性不一样,可以对他们分别控制。这里Uo是控制量的基准,这里是50,电机期望的速度是50,E是实际速度与期望速度的偏差,U是控制量,将做为motor()的控制参数。代码如下:/*用PID控制算法实现的走直线控制,位置式算法*//*左右轮有相同的设定值,对误差进行调整;根据左右轮的误差再对右轮进行调整,使左右轮尽量保持一致,从而走直线。
此文档下载收益归作者所有