ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:177.33KB ,
资源ID:19234524      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19234524.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能控制实验报告Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能控制实验报告Word文档格式.docx

1、要计算第K次输出值P(k),只需要知道P(K-1),E(K),E(k-1),E(K-2)即可。上式也称为位置型PID的位置控制算法。在很多控制系统中,由于执行机构是采用布进电机进行控制,所以只要给一个增量信号即可。因此得到增量型PID的位置控制算法2、AS-UII的PID算法的程序设计(1) ASUII电机的软件驱动特性我们控制ASUII的电机转动是通过编程实现的,我们的编译环境是VJC1.5开发版。这种用软件实现控制的方式与一般的用电压或频率直接控制电机不同,控制量是通过函数drive(参1,参2)或motor(参1,参2)给予。函数motor()用于电机功率级别的控制,功率范围是-100(

2、反向最大)到100(前向最大),系统软件实际上只能控制电机工作于7个不同的功率级别,但参数是从-100到100。我们的问题是,这个对象没有准确的数学模型。那么,输入和输出大概有什么样的关系呢,我们需要通过测量得到对象大致的特性。在motor()内输入控制量,记下输出值,也即左右轮胎速度。这些都是通过编程实现的。输出值显示在ASUII上的液晶显示屏上。求轮胎的速度要用到光电编码器,虽然ASUII的每个光电编码器都是按照每圈33个脉冲设计的,但是因为机械原因会出现误差,所以用光电编码器读得的脉冲数计算速度之前要检测一下它的实际值。求实际速度的算法如下:float v1,v2;float T=1.5

3、;void main()motor(1,50);motor(2,50);rotation(1);rotation(2);resettime();while(1)if(seconds()5.0)stop();break;wait(T);v1=(float)rotation(1)*v1/T;v2=(float)rotation(2)*v2/T;printf(v1=%f,v2=%fn,v1,v2);注:v1、v2分别是测得的左轮和右轮的分辨率2)观察对象的特性a输入定值(左轮右轮的输入值都为50,T=1.5秒),记录不同时刻的输出值,测得的实验数据如下:表一:1T2T3T4T5T6T左轮475148

4、49右轮4644输入输出图形大致如下这样观察对象的特性,存在很多误差(每个周期记录的速度只是这个周期的平均速度,没法看到轮胎速度变化的全过程;光电编码器的读值有误差,这样,平均速度就不是很准确),但因为我们这个实验只是用于说明我们可以控制能力风暴走直线这样一个事实,不追求很大的精确性,所以这样的误差就不去考虑了。从上图可看出,输出对输入响应很快,反应时间几乎不用考虑,并且输出基本在某个定值附近脉动。b. 输入不同值,记录输出值于表二(T=1.5秒)(2) ASUII走直线的开环特性代码如下:motor(1,50);让AS-UII纵向走两米,观察它的横向偏移。改变输入值,测量偏移距离。(3) A

5、S-UII的闭环特性应用PID算法进行反馈控制。根据控制量,我们采用位置式算法。3、 位置式算法P公式如:U=Kei+Uo;PI公式如:U=K(Ei+T/Ti*ej)+Uo;PID公式如:U=K(Ei+T/Ti*ej+Td/T*(Ei-Ei-1)+Uo;因为左右轮的特性不一样,可以对他们分别控制。这里Uo是控制量的基准,这里是50,电机期望的速度是50,E是实际速度与期望速度的偏差,U是控制量,将做为motor()的控制参数。/*用PID控制算法实现的走直线控制,位置式算法*/*左右轮有相同的设定值,对误差进行调整;根据左右轮的误差再对右轮进行调整,使左右轮尽量保持一致,从而走直线。*/flo

6、at K1=0.05;float Ti1=15.0;float Td1=0.1;float K2=0.2;float Ti2=15.0;float Td2=0.1;float T=0.5;float velocity_1;float velocity_2;float u_1_i;/*控制量*/float u_2_i;float error_1_i,error_1_i1,error_1_i2;float error_2_i,error_2_i1,error_2_i2; /*将左右轮脉冲记数清零*/ /*系统时间复位*/error_1_i1=0.0;error_2_i1=0.0;error_1_i

7、2=0.0;error_2_i2=0.0;4.0)/*计算error_i*/velocity_1=(float)rotation(1)*0.619/T;error_1_i=50.0-velocity_1;velocity_2=(float)rotation(2)*0.659/T;error_2_i=50.0-velocity_2;printf(“v1=%f”,velocity_1);printf(“v2=%fn”,velocity_2);u_1_i=K1*(error_1_i+T/Ti1*error_1_i2+Td1/T*(error_1_i-error_1_i1)+50.0; /PID算法u

8、_2_i=K2*(error_2_i+T/Ti2*error_2_i2+Td2/T*(error_2_i-error_2_i1)+50.0;/*u_1_i=K1*error_1_i+50.0; /P算法u_2_i=K2*error_2_i+50.0;u_1_i=K1*(error_1_i+T/Ti1*error_1_i2)+50.0; /PI算法u_2_i=K2*(error_2_i+T/Ti2*error_2_i2)+50.0;motor(1,(int)u_1_i);motor(2,(int)u_2_i);/*将error_i的值赋给error_i1,并将error_i叠加到error_i2

9、上*/error_1_i1=error_1_i;error_2_i1=error_2_i;error_1_i2=error_1_i2+error_1_i;error_2_i2=error_2_i2+error_2_i;对偏移有如下规定:A 先用P算法,保持T=0.5不变。测量左右轮比例系数和重点偏移距离。B用PI算法,取上一步骤中直线效果较好的K1和K2, T取0.5,测量左右轮微分系数和偏移距离。CPID算法,取上一步骤中直线效果较好的Ti1和Ti2,K1、K2 和T不变,测量左右轮微分系数和偏移距离。2)增量式算法P算法公式如:ui=Ui-Ui-1=K*(Ei-Ei-1);PI算法公式如:

10、ui=Ui-Ui-1=K*(Ei-Ei-1+T/Ti*Ei);PID算法公式如:ui=Ui-Ui-1=K*(Ei-Ei-1+T/Ti*Ei+Td/T*(Ei-2Ei-1+Ei-2);原来增量式算法是用于一些步进电机之类的对象,因为它的控制量是增量。以增量为控制量可以减少切换时的冲击。但是我们这里的电机并非步进电机,所以输入的控制量应是绝对数值。所以算法公式应改成如下:Ui=K*(Ei-Ei-1)+Ui-1;Ui=K*(Ei-Ei-1+T/Ti*Ei)+Ui-1;Ui=K*(Ei-Ei-1+T/Ti*Ei+Td/T*(Ei-2Ei-1+Ei-2)+Ui-1;但是,这样的话,增量式算法和位置式算法

11、的结果实质上是一样的。这里就不采用了。三、实验记录及数据分析:1、测量光电编码器的实际分辨率:给左右轮相同的设定值,在一定的时间段,读编码器的读数和轮胎转动圈数。时间(秒)左轮光电编码器读数左轮圈数分辨率(脉冲/圈)右轮光电右轮圈数11058216.7534.7554615.7534.67220116735.532.87110934.532.14330176953.533.07169252.7532.08440242773.533.02224970.2532.0155030069332.3284790.2531.55660370511532.223390111.2530.47平均值33.043

12、2.16从上表可见,左右轮的光电编码器的分辨率不同,左轮为33,右轮为32。所以,我们在计算时将取左轮的光电编码器一圈读33个脉冲,右轮的光电编码器一圈读32个脉冲。虽然左右轮的周长可能也不同,但是该误差较小,所以暂且假设他们相等,都为65mm,所以左轮的分辨率为6.18mm/脉冲,右轮的分辨率为6.35mm/脉冲。2、 观察对象的特性输入不同值,记录输出值,实验测得的数据如下:(T=1.5秒)表二:左轮输入值左轮输出值右轮输入值右轮输出值10.0014.3813.9320.0022.9122.6930.0027.0327.05因为电机的控制函数motor()或drive()的控制范围在010

13、0之间,所以取1090,在图纸上描点,发现对象是非线性的。而且,在相同输入下,右轮比左轮输出值小。我们得到了对象大致的特性后,就可以控制它,使它走直线。使左轮右轮走直线,可以用两种方式。第一种,使左轮右轮都趋近于同一个设定值;第二种,使右轮跟随左轮的速度。采用第一种,使左右轮都趋近于50。从表一的图可看出,我们要控制的不是对象的反应速度,而是控制它的脉动和偏差,尽量趋向于设定值,从表二,可以看出右轮的特性与左轮不同,所以可以对左右轮分开控制。因为PID调节方法对任何对象都有较大的调节作用,所以我们采用该调节方法对对象特性进行调节。3、ASUII走直线的开环特性测得的实验数据如下:输入值偏移距离

14、(米)0.3900.074、AS-UII的闭环特性AP算法,保持T=0.5不变,记录数据如下:左轮比例系数K右轮比例系数K终点偏移距离0.10.20.60.065,最后向右自转0.51.80.08,最后向右自转1.01.6-1.3由以上数据可见,要使能力风暴走直线,右轮的比例系数应比左轮的比例系数大一点,但右轮比左轮大到一定程度时走路会发生弯曲,并从偏移正值变为负值。另一方面,他们的比例系数增大时,横向偏差越来越小。但当比例系数大到一定程度时,速度会有较大的振荡。取上面最理想的比例系数K1=0.1,K2=0.1不变,改变T。T偏移距离走时左右微弱振荡偏差小所以,T取0.5最合适。B用PI算法,

15、保持K1=0.1,K2=0.1,T=0.5不变。左轮积分系数Ti1右轮积分系数Ti20.13-0.06,先左偏后右偏PI算法可以减小静差,用在这里,效果不是很大,甚至会因为积分累积引起AS-UII走路弯曲。CPID算法,取K10.1,K2=0.1,Ti1=20,Ti2=30,T=0.5不变左轮微分系数Td1右轮微分系数Td20.010.18PID可以减小超调,在PI基础上加上微分因子,超调就小了,从AS-UII的弯曲程度上就可看出。四、实验结论能力风暴的对象特性不确定,所以难以给出明确的对象传递函数,这样也就难以用我们平时所用的步骤来设计控制器,即根据传递函数来设计控制器的函数。但实际上有时即

16、使对象明确,也难以用计算得的PID控制器来控制,而是要采用试凑法,所以我们在能力风暴走直线的问题上采用试凑法。事实证明,PID控制算法的确实能控制能力风暴走直线。但是其中还存在不少问题,在电池电量不同的情况下,能力风暴在相同设定值下的转速不同,这样就会发生刚刚调的最好的PID参数过一会就显得没那么好了,所以我们要寻找鲁棒性最好的PID参数。并且需注意的是,以上的数据是基于某台能力风暴,对于不同的能力风暴,机械特性不同,所以可以参照我做实验的步骤,从测对象特性开始做。我的实验数据的价值在于观察变化趋势,其绝对值可能因为不同情况而不同。附录:参考程序/*左右轮有相同的设定值,对误差进行调整。float K1=0.1;float Ti1=20.0;float K2=0.1;float Ti2=20.0;motor(0,50);5.5)v1=%f,velocity_1);v2=%fn,velocity_2);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1