基于单片机的教育机器人的设计

时间:2013-02-05来源:网络

系统软件设计

  系统控制的实现是由软件完成的。软件设计基于keilC51编写的,采用模块化结构设计,各个功能子块独立。在结构上由1个主程序文件main.c和8个子程序文件(key.c、pid.c、detect.c、seg.c、speed.c和motor.c)组成。main.c主程序文件完成一系列任务的初始化工作和处理各个任务工作的协调。key.c文件完成按键中断检测和蜂鸣器报警任务;seg.c文件完成数码管显示;sp∞d.c文件完成电机速度检测;motor.c完成PWM的配置和电机的控制;detect.c文件完成红外光电传感器阵列检测;pid.c文件实现模糊参数自整定PID运算处理。其中定时器TO产生采样周期T秒定时中断,每间隔T秒中断一次,完成一次PID控制计算,同时调用模糊参数自整定PID运算子程序对测试转速和设定转速进行差值计算得到输出值,用于配置PWM的输出,控制电机转速。主程序和定时器TO中断处理流程图如图4所示。

主程序和定时器TO中断处理流程图

图4 主程序和定时器TO中断处理流程图

  4.1 模糊PID参数自整定控制器原理

  PID参数模糊自整定是找出PID中3个参数与e和ec之间的模糊关系,在运行中通过不断检测e和ec,根据模糊控制原理来对3个参数进行在线修改,以满足不同e和ec对控制参数的不同要求,而使被控对象有良好的动稳态性能。从系统的稳定性、响应速度、超调量和稳态精度等方面来考虑,Kp,Ki,Kd的作用如下:Kp的作用是加快系统的响应速度,提高系统的调节精度;Ki用于消除系统的稳态误差;Kd改善系统的动态性能。图5是PID控制器设计结构原理图。

PID控制器设计结构原理图

图5 PID控制器设计结构原理图

  由PID各个参数对系统的影响得到:

  (1)当误差|e|较大时,说明误差的绝对值较大,不论误差的变化趋势如何,都应该考虑控制器的Kp取较大值,以提高响应的快速性;而为防止因为|ec|瞬时过大,kd应该取较小的值;为控制超调,ki也应该取值很小。

  (2)当误差|e|在中等大小时,为保证系统的相应速度并控制超调,应减小Kp,Ki值应增大,Kd应适中。

  (3)当误差|e|较小时,为保证系统具有良好的稳态特性,应加大Kp、Ki的取值,同时为避免产生振荡,Kd的取值应该和|ec|联系起来。

  教育机器人属于典型的非线性、时变、模型不确定复杂系统。在实际中,机器人行驶道路有直道、大弯道、“S”型小弯道。利用教育机器人在相同的路况下其特性基本不变,可分别确定这3种道路参数下的最佳PID参数。其核心思想是把控制周期内的机器人状态视为不变,只要控制周期较短,就可实现很好的控制效果。在机器人实际的行使中,每10ms进行1次控制,可满足要求。

  4.2 PID参数设定

  模糊PID控制根据系统运行的不同状态,考虑Kp、Ki、Kd三者的关联,根据工程经验并依据各参数的作用,通过大量的测试获得本系统对应路况下的PID参数,实验数据如下:

  (1)在直道上系统取kp=3,Ki=5,kd=0,测试环境为一条长度5 m的长直道;

  (2)在大弯道上系统取kp=10,Ki=1,kd=1,测试环境为直道进入一个半径为100 cm的3/4圆;

  (3)在“S”型小弯道上系统取kp=7,Ki=4,kd=3,测试环境为3个90度圆弧构成的"S"型小弯道。

  5 结束语

  用STC12C5A60S2单片机配合红外光电阵列检测模块对直流电机执行参数自整定模糊PID控制器,解决了直流电机在巡航过程中产生抖动前进的控制问题,使得教育机器人在行走的过程中更平稳,且控制方法简单、实用。

参考文献:

[1].MAX810datasheethttp://www.dzsc.com/datasheet/MAX810_1019165.html.
[2].LM7805datasheethttp://www.dzsc.com/datasheet/LM7805_843721.html.
[3].L298Ndatasheethttp://www.dzsc.com/datasheet/L298N_442931.html.

1 2 3

关键词: 单片机 教育机器人 STC12CSA60S2

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版