基于嵌入式移动机器人的模糊控制算法设计_第1页
基于嵌入式移动机器人的模糊控制算法设计_第2页
基于嵌入式移动机器人的模糊控制算法设计_第3页
基于嵌入式移动机器人的模糊控制算法设计_第4页
基于嵌入式移动机器人的模糊控制算法设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自动化与仪表2010(3 基于嵌入式移动机器人的模糊控制算法设计文章编号 :1001-9944(2010 03-0033-04江桦(西南交通大学峨眉校区 计算机与通信工程系 , 峨眉614202摘要 :以 LPC2131的教育机器人为硬件基础 , 介绍了实时操作系统 COS-II 的移植方法 , 并 实现了模糊控制算法应用于机器人的速度控制 。 采用结构化的软件设计方法 , 此方法易于 将其他复杂控制算法应用于机器人 ; 同时 , 可使之成为一个运动控制软件设计的学习平台 , 如电机控制 、 系统中断 、 基于实时操作系统的运动控制等 。 关键词 :模糊控制 ; 嵌入式系统 ; 移动机器人 中

2、图分类号 :T P24文献标志码 :ADesign of Fuzzy C ontrol Algorithm for Mobile Robot B ased on Embedded SystemJIANG Hua(School of Computer and Communication Engineering , The E-mei Campus of Southwest Jiaotong University ,E-mei614202, China Abstract :On the hardware of mobile robot using LPC2131, introduced the t

3、ransplant method of real -time operation system , realized the control of velocity using fuzzy control algorithm. The software of the control system wa s designed by structural means , prone to open out another complicated algorithm. In addition , the system wa s a platform to learn ing to design th

4、e software of the control system , such as the control of the motor , interrupt ion , the control on RTOS. Key words :fuzzy control ; embedded system ; mobile robot收稿日期 :2009-11-03; 修订日期 :2010-01-13基金项目 :西南交通大学青年教师科研起步项目资助 (2008Q024作者简介 :江桦 (1979-, 女 , 硕士 , 讲师 , 研究方向为嵌入式系统 、 机器人技术 。目前 , 市面上的机器人多使用图形

5、化编程方 法 , 控制器多为单片机 , 传统单片机芯片相比于嵌 入式单片机在硬件方面具有处理数据位数少 , 且指 令采用单级流水线结构 , 不能在线调试等 , 而在软 件方面对于移动机器人 , 其控制不能采用实时操作 系统的缺点 1。 为此 , 本文在 LPC2131为核心的机器 人硬件基础之上 , 详细介绍了模糊控制算法应用于 移动机器人进行速度控制的软件设计方法 。1硬件基础本文选用的机器人的机械本体由天津派尔博科技发展有限公司生产的部件组装而成 。 由于教学 用机器人体积较小 , 运行环境良好 , 故选择后轮用两轮独立驱动 , 选择带减速机构密闭齿轮箱直流电 动机 , DC9V 输入 、

6、 200转 /min; 直流电动机固定在标 准 L 架上 , 安装有外径 72mm 的橡胶车轮 , 前轮选择 一尼龙万向轮 。 组装的移动机器人外型如图 1所示 。图 1移动机器人外型Fig.1Figure of mobile robot33Automation &Instrumentation 2010(3 系统 的 核 心 控 制 电 路 是 采 用 PHILIPS 公 司 生 产的基于 ARM 内核的微处理器 LPC2131, 其封装 小 , 功耗低 。 2个 32位定时器 、 47个 GPIO 以及多达9个边沿或电平触发的外部中断等 。 此外 , LPC2131还具有 7个 PWM 信

7、号输出口 , 可实现 6个单边沿控制或 3个双边沿控制 PWM 输出或这两种类型混 合输出 , 特别有利于机器人电机的控制 。 移动机器 人结构框图如图 2所示 2。2软件设计对于移动机器人来说 , 其软件设计要求主要有 3个方面 :实时性 、 可靠性 、 易维护性 。 嵌入式实时操作系统作为一种全新 的标准化单片机应用开发平台 , 适应了机 器人发展的需求 , 故该设计选用了 C /OS-II 实时操作系统进行软件开发 。 C /OS-II是一个完整的 、 可移植 、 可固化 、 可剪裁 、 可 剥夺的占先式实时多任务内核 3。2.1移植代码应用到 LPC2131C /OS-II 在 基 于

8、 LPC2131的 移 动 机器 人 的 移 植 结 构 与 C /OS-II 的 结 构 类 似 :Source 目录存放 C /OS-II 的源代码 ; ARM 目录存放 C /OS-II 在 ARM 上的移植代码 , 包括 OS_CPU_A.S 、 OS_CPU_C.C 、 IRQ.inc 和 OS_CPU.H ; ARM_PC目录存 放 负 责 上 位 机 显 示 的 PC.C 和 PC.H 文 件 ; Ex1目录是基于 C /OS-II 的工程 , 与以上的几个目录 平级 4。在 基 于 LPC2131的 移 动 机 器 人 上 执 行 基 于C /OS-II 操作系统的应用程序 ,

9、 只需要用 C /OS-II for LPC2131的工程模板建立工程 , 然后添加应用程序即可 。 编写一个用户任务之前 , 需要定义任务堆栈的长度 、 定义任务的堆栈 、 声明任务函数 , 并在 适当的地方创建任务 。2.2基于 C /OS-II 的机器人系统软件设计 轮式移动机器人需要根据键盘的初始设置在给定环境中实现机器人寻轨 、 避障等功能 , 故在整个系 统中 , 为了便于进行系统调试以及功能扩展 , 底层控 制软件采用了结构化程序设计方法 。 系统主程序总 体上分为初始化模块 、 电机控制模块 、 PWM 输出以 及模糊控制算法模块等 。1 初始化模块设计中用一个汇编文件作为启动

10、代码进行系统 初始化 , 它用于为异常向量表定义 、 堆栈初始化 、 系 统变量初始化 、 中断系统初始化 、 I /O 初始化 、 外围 设备初始化等操作 。 此外 , 移动机器人系统还需针 对实际应用环境进行初始化 , 即对系统的引脚设置 寄存器 、 中断寄存器 、 GPIO 以及 PWM 等进行初始 化 。 初始化函数定义为 Init (void 。 使用的引脚功能 分配以及对应的寄存器设置如表 1所示 。2 电机控制模块根据机器人的设计要求 , 需使其能前进 、 后退 、 转弯等 , 故在左右两轮分别进行驱动 。 当两轮速度 相同 , 且电机转向一致时 , 机器人前进或后退 。 当左

11、轮电机转速高于右轮电机转速时 , 机器人向右转 , 反 之则向左转 。 对于车轮的速度控制 , 采用 PWM 调速 法 5, 由 LPC2131的 PWM2和 PWM4产生脉宽调制 信号 , 送到 L298N 后驱动电机 。 通过改变 LPC2131的 PWM 匹配寄存器 PWMMRx , 使之产生占空比不 同的 PWM 信号 , 用于控制电机转速 , 即控制机器人 的运行速度 。 对电机的控制主要包括两类 :电机的表 1使用的引脚功能分配Tab.1Function distribution of used pin-pin功能模块 引脚名称PINSELx蜂鸣器输出 P0.10PINSEL0=0

12、x0020串行口PINSEL0=0x0012直流电机 PWMPINSEL1=0x00|(0x004 |(0x008 输出显示部分PINSEL0=(0x004 |(0x008 PINSEL1=(0x002 |(0x0012 34自动化与仪表2010(3 运行控制和电机的停止 。电机的运行对电机的运行控制实际就是对左 、 右电机的转速和方向控制 。 转速控制通过调整PWM 匹配寄存器 PWMMRx 进行 , 而电机的旋转方 向则是通过 P0.9、 P0.21分别进行控制 。 例如当对右电机控制时 , 其程序为if (z=backward|z=b IO0SET =(IO0PIN |P09; /方向控

13、制 前进elseif (z=forward|z=f IO0CLR =(IO0PIN(P09 |P09; /方向控制 后退PWMPCR =PWM-PCR|(112; /右电机启动电机的停止本设计硬件电路是将 P0.9、 P0.21和 L298N 的 IN1、 IN3连接 , 将 P0.9、 P0.21取反后 , 连接至 IN2、 IN4, 故电机无主动制动状态 。 电机的停 止通过禁止 LPC2131的 PWM 功能 , 即修改寄存器PWMTCR 的值 。 其例如使右电机停止时 , 程序为PWMPCR=PWMPCR&(112; /右电机停止 3 速度控制模块轮式移动机器人是一个具有延迟 、 非线

14、性的复 杂系统 , 建立精确的数学模型十分困难 , 在进行运 动控制时 , 参数的变化对系统模型影响较大 。 在常 规 PID 控制方法中 , 只考虑了期望速度与实际速度 的偏差和期望角速度与实际角速度的偏差 , 未包含 其它因素的影响 , 因此难以达到满意的控制效果 , 当系统某些敏感参数发生变化时 , 就必须重新设定 控制器参数 。LPC2131根据传感器反馈的被跟踪物体的速度 作为模糊 PID 控制的给定输入 , 光电编码器检测的电机转速作为反馈输入 , 计算当前时刻的系统偏差e (k 和偏差变化率 e (k , 经过量化和模糊化后 , 作为模糊控制器的输入信号 , 经过模糊控制规则进行

15、 模糊推理 , 查询模糊矩阵表 , 输出模糊参数 , 解模糊 化后得到精确的 PID 参数 , 采用获得的 PID 参数进 行控制量的计算 , 将其变换后 , 作为 PWM 控制器的 设定值 , 写入 PWM 寄存器 , 产生对应的 PWM 控制 信号 , 经过驱动电路作用于直流电机 , 使其达到期 望的运动速度 6。 模糊 PID 控制器结构如图 3所示 。 其程序流程图如图 4所示 。(1 输入值量化被跟踪物体通过传感器反馈的速度为线速度 , 为了和光电编码器信号匹配 , 将其转换为电机对应的期望转速 。 机器人驱动轮的直径为 72mm , 当被跟 踪物体以速度前进时 , 电机对应的期望转

16、速 n 0为n 0=v /(3.140.072 =4.423v 。实际电机转速的测量由光电编码器完成 , 电机 轴每旋转一周 , 编码器送出 24个方波脉冲 。 利用LPC2131的定时器 T1定时 1s , 当前脉冲进行计数 ,以此获得方波频率 , 即可确定电机的转速 。 当光电 编码器输出脉冲频率为 n 1时 , 当前电机转速 n 为n =n 1/24电机转速偏差 e (k 为e (k =n -n 0设上次电机转速为 e (k -1, 则偏差变化率为e (k =e (k -e (k -1。(2 模糊化处理首先将得到的偏差和偏差变化率进行归一化 。35Automation &Instrume

17、ntation 2010(3 其归一化公式为e (k =e (k /e max , e (k =e (k /e max其中 :e max 和 e max 分别为偏差和偏差变化率的最大值 , 当出现测量值超过最大值时 , 按最大值进行归 一化 。 归一化以后 , 将数字偏差及偏差变化率进行 模糊化 , 得到对应的模糊变量 。 偏差 e (k 、 偏差变化 率 e (k 、 控制量 u 以及各参数的语言变量值取 “ 负 大 ”、“ 负 中 ”、“ 负 小 ”、“ 零 ”、“ 正 小 ”、“ 正 中 ” 和 “ 正 大 ”, 分 别 用 NB 、 NM 、 NS 、 ZO 、 PS 、 PM 和 P

18、B 表 示 , 其论域为 0, 1, 2, 3, 4, 5, 6。(3 模糊规则在控制过程中 , 若机器人运行速度很快 , 并且 有进一步加快速度的趋势 , 应减小控制器的脉冲输 出 , 以降低机器人运行速度 , 用条件语句表示为 :若 偏差正大 , 并且偏差变化率为正大时 , 则控制量应 为负大 , 即 if e =PBand e =PB, then K p =NB。 由 K p 、K i 、 K d 对控制系统性能的影响 , 建立模糊控制表 。 利 用 C 语言的数组按照模糊控制表在 LPC2131中实 现模糊规则 。 例如 :uint8K p 77=6, 6, 5, 5, 4, 3, 3

19、; 6, 6, 5, 4, 4, 3, 2; 5, 5, 5, 4, 3, 2, 2; 5, 5, 4, 3, 2, 1, 1; 4, 4, 3, 2, 2, 1, 1; 4, 3, 2, 1, 1, 1, 0; 利 用 以 上 数 组 , 选择 e 为第一维变量 , ec 为第二维变量 , 则条件 语句 “ if e =PBand e =PB, then K p =NB” 简化为读数 组元素 K p 66的值 , 即 K p =K p 66。(4 解模糊化设计中选择重心法解模糊化 。 采用重心法来确 定模糊量中能反映出整个模糊量信息的精确值 。 重 心法针对论域中的每个元素 x i (i =

20、1, 2, 以它作 为带判决输出模糊集合的隶属度 (i 的加权系数 , 即取乘积 x i (i , 再计算该乘积和 ni =1x i (i 对于隶属度和的平均值 x 0。 平均值 x 0即是采用重心法为模 糊集合求得的解模糊化结果 , 即精确的 PID 控制参 数 。 将获得的 PID 参数代入 PID 算法中 , 即可计算 得到控制量 。(5 任务划分及实现在基于实时多任务操作系统的应用程序中 , 实 时性取决于对任务及中断的处理 。 用户根据需要调 用 C /OS-II 的任务调度函数 , 任务调度函数从就绪 任务中寻找优先级最高的任务 , 并进行任务切换操 作 。 用户程序对实时任务的响

21、应时间取决于调用任 务调度函数的方法 , 以及任务调度函数的效率 。对于移动机器人任务划分主要包括 :系统初始 化 任 务 Task_start(、 功 能 选 择 任 务 Task_sel(、Task_velocity( 速 度 控 制 任 务 、 软 件 中 断 任 务 Task_softint( 等 。 其中软件中断任务 Task_softint( 优先级最高 , 功能选择任务 Task_sel( 次之 。3实验测试基于 LPC2131的移动机器人固化程序到片内FLASH 可通过两种方式实现 :JTAG 接口下载和使 用 ISP 功 能 下 载 。 使 用 JTAG 接 口 下 载 程 序 到 FLASH 需要 JTAG 仿真器支持 。使用 ISP 功能时 , 通过串口进行程序下载 。 首先 编译生成的指定输出文件 (比如 :leddisp.hex , 然后 使用串口连线连接 PC 串口 (如 COM1 和机器人主 板 UART0, 并将主板上的 ISP 跳线短接 。 打开下载 软件 , 并设置串口 、 波特率 、 系统晶振 (注意 , 晶振频 率项单位为 kHz 等即可下载程序 。 程序固化后 , 需 将 ISP 跳线断开 , 重新复位系统即可运行程序 。4结语系统采

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论