四川大学1队技术报告最终版.docx
- 文档编号:5975909
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:54
- 大小:319.94KB
四川大学1队技术报告最终版.docx
《四川大学1队技术报告最终版.docx》由会员分享,可在线阅读,更多相关《四川大学1队技术报告最终版.docx(54页珍藏版)》请在冰豆网上搜索。
四川大学1队技术报告最终版
第一届“飞思卡尔”杯全国大学生智能汽车邀请赛
技术报告
附件B智能移动小车的开发与研制
学校:
四川大学
队伍名称:
四川大学1队
参赛队员:
杨承凯、钟鹏、陈果
带队教师:
杨刚
关于技术报告和研究论文使用授权的说明
本人完全了解第一届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:
参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
杨承凯钟鹏陈果
带队教师签名:
杨刚
日期:
2006-8-5
第一章前言
本智能车采用了红外光电开关作为速度检测单元,线阵CCD图像传感器作为引导线检测单元,模糊控制作为主要控制算法。
红外光电开关发出的红外线受安装在驱动电机转轴上的扇页片切割,通过其两次跳变信号的时间间隔即可计算出车轮转速;CCD的驱动信号由外部独立数字电路产生,输出信号由放大比较电路处理后将空间上引导线的位置映射为时间上相应时刻的脉冲信号,MCU只需要向CCD发出帧同步信号然后检测输出脉冲发生的时间便可以判断出引导线的位置,软件消耗极小;模糊控制器以CCD视觉中心偏离引导线的误差和误差变化率作为输入量,以舵机转向角作为输出量,输入隶属函数采用三角形法,输出隶属函数采用脉冲法,由人的驾驶经验和智能车实际运行情况得到模糊规则,采用MAX-MIN推理法则得到输出语言,通过重心法计算出转向角。
报告的第一部分介绍模型车设计制作的主要思路以及实现的技术方案;
第二部分介绍模型车的机械改装、电路板固定和传感器的设计;
第三部分介绍模型车主控板的电路设计说明;
第四部分介绍模糊控制的主要理论、算法说明和代码设计介绍;
第五部分介绍开发工具、制作、安装、调试过程说明;
第六部分介绍模型车的主要技术参数;
第七部分是对设计的总结。
第二章模型车设计制作的主要思路以及实现的技术方案概要说明
智能车是一个集光、机、电于一体的综合性系统,主要包括执行机构、检测机构和控制器,系统结构如图2.1。
执行机构由大赛统一规定,本设计未做任何改装,现主要考虑的是检测机构和控制算法。
图2.1
2.1检测机构
检测白色背景上黑线的方法很多,主要分为普通红外对管,带调制红外传感器,CCD图像检测等。
2.1.1普通红外对管
普通红外对管使用简单、反应快、信号稳定、灵敏度好,在智能车前方安装一排这种对管可以较好的检测到地面上的引导线,但其检测距离近,一般有效距离为5mm-20mm,不能探测到前方赛道信息,在小车高速时通过这种方式检测到赛道变化再做出反应一般来不及,很容易冲出赛道,本设计中没有采用此方案。
2.1.2带调制红外传感器
普通红外对管经过调制(调制频率一般为40K)后可以探测到更远的距离,但要求反射面垂直,智能车检测赛道时射线是倾斜反射的,探测距离大打折扣,
不过仍然能达到30cm左右,本设计曾采用过此方案,实测中发现调制后不同对管之间容易产生干扰,若采用时分方式总体采样率又太低,故放弃了此方案。
2.1.3CCD图像传感器
CCD图像传感器分为线阵和面阵两种,由于智能小车只需要检测黑线的位置,可以不需要面信息,选用了线阵CCD比较合适。
CCD图像传感器优点在于可以稳定的检测到较远距离的赛道信息(一般在30cm以上),并且检测分辨率高,帧采样频率也较高(100HZ以上),不过使用复杂,一般需要占用较多的MCU处理时间,并且需要稳定的环境光。
考虑到比赛场地在室内,光线比较均匀,受环境光影响的这一缺点可以忽略。
再考虑到本设计中实际上只需要区分出黑白两种颜色,完全可以直接通过外部放大、比较电路将CCD信号做二值化处理后再由MCU检测电平信息,而不必对其做A/D转换;同时CCD驱动信号也可以通过外部电路产生,MCU只需要给出帧同步信号,这样便大大降低了对MCU的消耗。
本设计最终采用了这种方案。
2.2控制算法
智能车需要根据实际检测到的赛道信息对转向角做出自动调整,传统上一般使用PID算法作为控制算法,但本设计由于系统模型复杂,智能车的动力学模型与很多因素相关,如智能车重量、电机特性、机械系统传递效率、车轮弹性系数、轮与地之间摩擦系数、最大静摩擦力等等,所以决定采用模糊控制算法,因为其不依赖与精确的数学模型。
本设计中以CCD图像传感器视觉中心相对与引导线的位置误差和误差变化率作为输入量,根据人的驾驶经验得到转向角输出,试验中取得了良好的效果。
另外,智能车不仅需要转向控制,还需要速度控制,否则在高速转弯时将冲出赛道。
不过本设计中并没有采用精确的速度控制,因为智能车本身对行驶速度不需要一个精确的定量,本文使用的方法是在转弯时采用了“点刹”控制,其他情况下以全速行驶,实践中完全满足预定需求,智能车在行驶时不会冲出跑道。
第三章模型车机械部分安装及改造、传感器的设计安装、系统电路板的固定及连接等
3.1机械改动及电路板安装
模型车在按照厂家图纸完成车轮、舵机、连杆的正常装配后,需要解决主控电路板和CCD电路的安装。
利用车身后架已有的两个支撑柱,再在车身中部打两个孔安上厂家原配的两根支撑柱完成对主控板的支撑;转速传感器由连在电机主轴上的扇页和光电开关构成,扇页直接插进电机主轴用胶固牢,光电开关也用胶粘在电机的梁架上;CCD传感器的安装稍微复杂点,先在车头部底架上打三个孔安装上结构铜柱,再把一个前端仰起的铝板安在结构铜柱上,最后再把CCD电路板安装在铝板前端仰起的部分;所有部分通过排线相连,安装完成后实物图如图3.1。
图3.1
3.2线阵CCD图像传感器的设计
CCD电路由线阵CCD图像传感器芯片μPD3575D、输出信号放大比较电路构成,由于图像传感器芯片对光线要求较高,所以本设计在其下面放置一个强光白色LED来调节照明。
CCD的驱动信号主要由外部电路产生,MCU控制帧同步信
号,CCD输出信号先经过放大然后通过比较器提取出赛道上的黑线信息,MCU通过测定黑线对应的脉冲在帧信号里的出现时刻来判断黑线的位置。
μPD3575D是NEC公司生产的一种高灵敏度、低暗电流、1024像元的内置采样保持电路和放大电路的线阵CCD图像传感器。
它内部包含一列1024像元的光敏二极管和两列525位CCD电荷转移寄存器。
该器件可工作在5V驱动(脉冲)和12V电源条件下。
在使用μPD3575D设计线阵CCD图像传感器的过程中有两个难点。
一是驱动信号的产生,二是输出信号的处理。
μPD3575D的驱动需要四路脉冲,分别为转移栅时钟ФIO、复位时钟ФRO、采样保持时钟ФSHO和传输门时钟ФTG,它们的时序图如下:
图3.2
在明确了CCD的驱动时序后,下面关心的便是如何产生这四路驱动信号。
有两种方案:
由单片机程序产生四路时钟驱动信号,这种办法简单易行。
但实际上是不适用于智能小车系统的。
因为驱动信号的频率相当高(8M),如果用单片机产生这个信号,那几乎将占用所有的单片机时间,导致无法对信号做出处理和响应其他操作。
由外围电路直接产生CCD驱动时钟,这种办法比较复杂,要用计数器和触发器专门设计一个时序电路(因为大赛规定另外不能用可编程器件),单片机只需要产生一个帧同步信号(传输门信号ФTG)与外围时续电路保持同步即可。
这种方式虽然在操作上比较复杂,但给单片机留出了大量的空闲时间,以便能够对其他信息做处理,适合于实际,本设计就是采用的这种方式。
图3.3CCD驱动信号电路
CCD输出的是模拟信号,将图象采集进单片机,一般要对CCD信号做A/D转换,完成这些需要一个高速的A/D转换器和信号处理器件,这对单片机的性能要求显然是比较高的。
考虑到本设计中实际上只需要区分黑色和白色,CCD对于这两者输出的信号差异较大,将CCD信号放大后直接使用一个比较器对信号进行二值化处理即可,由单片机检测二值信号的跳变时间,便可以计算出黑线的位置,这样便进一步缩短了单片机在CCD上消耗的时间。
图3.4CCD输出信号处理电路
图3.5uPD3575D
3.3速度检测传感器
速度检测传感器由连在电机主轴上的扇页和光电开关构成,电机旋转时带
动扇页旋转遮挡光电开关产生脉冲。
图3.6扇页和光电开关
第四章电路设计说明
主控电路板比较简单,主要由微控器MC9S12DB128、电机驱动芯片、光电开关接口、舵机接口、CCD信号接口、串口构成。
微控器MC9S12DB128的周边小电路包括电源、晶振、复位电路和BDM调试接口,电机驱动芯片采用组委会提供的MC33996,电机和舵机的控制信号均是PWM波,所以电机控制芯片接PWM2,舵机接PWM1;光电开关接IC0,CPU通过测定光电开关两个相同跳变沿之间的时间来测定电机的转速;CCD接口由CPU的驱动信号和CCD返回的检测信号构成;串口电路就是标准MAX232接口电路。
另外为了调试方便,我们引入了无线开关来启动和停止模型车。
图4.1单片机最小系统电路
图4.2直流电机驱动电路图4.3舵机控制电路
图4.4红外光电检测电路
第五章HS12控制软件主要理论、算法说明及代码设计介绍等
本设计控制算法主要是模糊控制。
模糊控制不需要被控对象的精确数学模型,而是基于专家知识和操作者的经验建立模糊控制模型,通过模糊逻辑推理完成控制决策过程,最后实现对被控对象的调节控制。
调节经验即为模糊控制的模糊控制规则。
模糊控制规则是模糊控制的数学模型,模糊控制规则的优劣直接关系到模糊控制性能的好坏。
与PID控制相比,模糊控制有如下的优点:
1)模糊控制不依赖于被控对象的精确数学模型,仅依赖专家知识和操作者的经验。
2)模糊控制具有较强的知识表达能力,可以将专家知识和操作者经验以规则的形式加以描述和提炼。
3)模糊控制具有较强的推理功能,经过模糊推理可以实现类似与人的决策过程。
5.1模糊控制器的基本结构
图5.1为基本模糊控制系统,其中T为采样周期;r为设定值;y为被控过程的输出;e*,ec*和△u*分别为偏差、偏差变化率、控制增量的精确量;A*、B*和C*分别为e*,ec*和△u*的模糊量;
、
和
分别为e*,ec*和△u*的量化因子和比例因子。
(5-1)
图5.1模糊控制器基本结构
5.1.1模糊集合的隶属函数
在人类的思维中,有许多模糊的概念,如大、小、冷、热等,都没有明确的内涵和外延。
只能用模糊集合来描述;有的概念具有清晰的内涵和外延,如男人和女人。
我们把前者叫做模糊集合,后者叫做普通集合(或经典集合)。
如果把模糊集合的特征函数称为隶属函数。
记作
,则
表示元素属于模糊集合A的程度。
隶属函数是模糊数学中最基本的概念,我们用隶属函数来给出模糊集合:
在论域U上的模糊集合A,由隶属函数
来表征,
区间内连续取值。
的大小反映了元素
对于模糊集合A的隶属程度。
5.1.2论域
所谓论域,即隶属函数输入量的的变化范围,一般分为离散论域和连续论域。
离散论域即是说输入量的变化的离散的,不连续的,比如我们常说的年龄,通常是按整数来表示的,从0岁到120岁,那么它就是一个离散论域;连续论域即是说输入量的变化是连续的,如温度,从-30℃到80℃。
5.1.3模糊推理
模糊逻辑主要研究模糊推理,模糊推理实际上是从模糊前提出发按照模糊规则进行推理,而后得出结论(也是模糊的)。
模糊规则是模糊推理的依据,这些模糊规则是人们实际工作中的经验用语言的表达,因此也称为语言规则,基本上采用如下三种形式[16]。
“如A则B型”。
此种形式可以写成“IFATHENB”的条件语句,例如:
“如果土壤干燥则洒水”。
“如A则B否则C”型。
此种形式可以写成“IFATHENBELSEC”,例如:
“如果土壤干燥则洒水,否则就不洒水”。
“如A且B则C”型。
此种形式可以写成“IFAANDBTHENC”,例如:
“如果土壤干且气温高,则洒水”。
以上几种模糊规则中,第三种用得最多,尤其是在模糊控制中更是如此。
因为在控制过程中,不但要考虑实测值与设定值之间所形成的误差,而且还要考虑这个误差的变化率,一般用A表示误差,B表示误差变化率,C表示控制量。
5.1.4输出清晰化
模糊推理的结果依然是模糊量,这种结论不能用来控制,因为系统依然不知道控制量到底是多少。
因此,必须进行反模糊化,将模糊控制量变为精确控制量。
反模糊的输入是前一步模糊规则的输出,即输出变量各语言值的隶属度,反模糊化的输出是系统输出变量的精确输出值。
其过程就是根据输出变量的隶属函数,从输出变量各语言值的隶属度求出精确的输出值的过程。
也就是说,反模糊化的过程是在输出变量隶属度函数的图形中,已知Y值求X值的过程。
这一过程需要用户提供的数据是输出变量的隶属函数。
反模糊化有多种方法,最常用的是最大隶属度法和重心法。
最大隶属度法
最大隶属度法用于要求不高的系统,它是选取输出语言值中隶属度最大者作为最终语言值。
该语言值变化范围的中心值就作为实际输出的精确值。
重心法
在要求较高的系统,反模糊一般采用重心法(COG),即求所有模糊输出量的重心,计算公式如下:
(5-2)
这里,
代表的就是输出变量的隶属度,
代表输出变量的语言值。
5.2控制器设计
本系统中,利用模糊控制器来控制智能移动小车的运动轨迹,首先需要得到控制器的输入量。
上文中我们得出,在不打滑时,移动智能小车的运动轨迹与车速无关,只与前后轮距离和小车转向角度有关。
根据这一结论,要使移动智能小车能够正确的寻迹,需要调整的只是转向角(前后轮距离是已知量),所以,传感器检测的重点也是转向角误差,考虑到当转向角误差相同时,不同的误差变化率可以反映出不同的轨道半径,因此,本设计中还检测了转向角误差变化率。
通过CCD图象传感器来检测白色地面上的黑线,根据返回的信号便可以得出驾驶角误差和误差变化率,如图4.8:
图5.2引导线检测原理图
检测出t1,t2间的误差e,然后根据上一次误差计算误差变化率ec,由此得到控制器的误差输入量。
当误差量e很小,且误差不变时,就可判定为智能小车正沿着引导线行驶,则机器人小车沿直线行进;若误差变化率比较大时,表明智能小车正在偏离引导线,此时,就需要对航向角做出相应的调整。
前文已经给出移动智能小车的运动学模型和传感器的输入特征,需要指出的是,通过CCD传感器得到的检测信号是其视觉中心与引导线中心的位置差,设计中控制的目标是让视觉中心与引导线中心重合。
基于这个模型的模糊控制如下。
5.2.1模糊集与隶属函数
将CCD图象传感器视觉中心的误差和误差变化率作为控制器的输入,以下用
和
表示,输出为驾驶角,用
表示,模糊语言值分别选为:
:
{LB,LM,LS,CE,RS,RM,RB}
:
{PB,PM,PS,ZO,NS,NM,NB}
:
{LB,LM,LS,CE,RS,RM,RB}
隶属度函数采用三角形,函数表达式如下式[18]。
图5.3隶属函数曲线
交叠系数
取为0.75,交叠系数应该在。
0.5-1之间的效果比较好,低于0.5,系统的模糊性不明显,高于1,成为过交叠,会出现同时激活很多条模糊规则的情况,不利于求出反模糊化后的精确解。
对于无交叠区的输入,模糊控制器无分辨能力。
由于采用对称的隶属度函数(等腰三角形)得到约束条件a2-bl=b2-cl。
定义模糊集中心点之间的距离D=b2-bl。
这样论域上的所有模糊集隶属度函数的参数就由交叠系数和D确定下来,在多次调节这两个参数就可以对系统最优化处理。
5.2.2模糊推理与模糊控制算法
推理的方法很多,本设计使用的是最常见MAX-MIN法则,这种方法的推理过程大致如下:
建立规则库
基于驾驶经验可以得到下表所示的模糊规则表:
表5.1模糊规则表
ece
LB
LM
LS
CE
RS
RM
RB
NB
Rb
Rb
rm
rm
rs
ce
ce
NM
Rb
Rb
rm
rm
rs
ce
ce
NS
Rb
Rb
rm
rs
ce
lm
lm
ZO
Rb
Rb
rs
ce
ls
lb
lb
PS
Rm
rm
ce
ls
lm
lb
lb
PM
Ce
Ce
ls
lm
lm
lb
lb
PB
Ce
Ce
ls
lm
lm
lb
lb
寻找对推理起作用的规则。
一般情况下,一个输入变量的精确输入值对应于该变量各语言值的隶属函数只有一个或两个非零值。
那么,双变量输入的系统中就会有1条、2条、3条或4条规则有效。
其他规则对推理不起作用。
在本设计中,如果e=5且ec=-2,经过模糊化后,它们各具有两个非零的隶属度。
这样,就共有4条规则有效。
确定规则强度。
所谓规则强度,就是有效规则成立的“真实”程度,或则说有效规则的“适合度”、“力度”。
实质上就是规则后件中输出模糊变量某语言值的隶属度。
根据MAX-MIN法则,由于规则前件间用“AND”操作符连接,因此,每一条规则的强度等于前件中的最小值,同时,规则后件用“OR”操作符连接,因此,每一条规则的强度等于后件中的最大值。
5.2.3输出清晰化
因为移动智能小车系统对控制要求比较高,所以反模糊采用的是重心法。
由输出隶属函数可以看出,设计中使用的是脉冲法,这样运算比较简单,而且实践证明可三角形法的效果相比基本没有性能上的下降。
例如,当推理机的输出为RS(0.5)和RM(0.3)时,反模糊化结果为(0.5×5+0.3×13)/(0.3+0.5)=8度。
5.3软件实现
要实现模糊控制程序,首先要构造模糊语言集、隶属函数和推理矩阵,程序中构造如下:
//误差论域
enumERROR{lb,lm,ls,ce,rs,rm,rb};
//误差变化率论域
enumDFERROR{nb,nm,ns,zo,ps,pm,pb};
//驾驶角输出论域
enumOREA{dlb,dlm,dls,dce,drs,drm,drb};
//隶属函数参数结构
structTRIANGLE_{inta;intb;intc;}TRIANGLE;
//ERROR隶属结构
typedefstructFUNCERROR_{enumERRORkey;TRIANGLEfunc;}FUNCERROR;
//DFERROR隶属结构
typedefstructFUNCDFERROR_{enumDFERRORkey;TRIANGLEfunc;}
FUNCDFERROR;
//OREA隶属结构
typedefstructFUNCOREA_{enumOREAkey;charfunc;}FUNCOREA;
//ERROR变量结构
typedefstructVARIERROR_{enumERRORkey;floatdat;floatsub;}VARIERROR;
//DFERROR变量结构
typedefstructVARIDFERROR_{enumDFERRORkey;floatdat;floatsub;}VARIDFERROR;
//OREA变量结构
typedefstructVARIOREA_{enumOREAkey;floatdat;floatsub;}VARIOREA
模糊控制程序流程如下:
图5.4寻迹控制程序流程图
第六章开发工具、制作、安装、调试过程说明
软件开发工具使用codewarrior4.1,程序下载调试工具使用大赛组委会统一的清华BDMforS12调试器。
模型车安装好后主要调整差速器的松紧和前轮的前束,之后主要是熟悉S12平台的开发,包括编译器和调试器的使用。
平台熟悉后就开始写单片机各模块的驱动程序,遇到问题时主要是通过看编译器帮助文档、芯片datasheet或上网询问等办法解决。
为了避免智能车在调试过程中突然冲出跑道冲撞其它物体造成车体损坏,临时加入无线开关控制其启动和停止。
在赛车运动状态下,主要的调试方法是把想要了解的参数写到单片的E2PROM里,然后再从串口读出以查看参数值。
对于一些智能车非运动条件下的参数,可以直接通过串口查看。
测试赛道选择韩国2004赛道(26m),使用秒表进行计时,其中三次的单圈时间分别是18.2s,18.8s,17.3s,计算得出智能车寻迹速度大约为1.4m/s。
第七章模型车的主要技术参数说明
表7.1智能车技术参数
车重
1Kg
长
35cm
宽
16.3cm
高
15cm
电路功耗
8.64W
电容总容量
1800uF
传感器种类以及个数
线阵CCD图像传感器一个、光电开关一个
外加伺服电机个数
0
检测精度
0.39mm(横向)
检测频率
100HZ
结论
1.根据智能移动小车的特点和设计目标,采取了模糊控制算法对小车的寻迹进行控制,实践中控制器发挥了相当不错的效果,智能小车在弯、直道上均能快速转向并很快达到稳定,寻迹速度约为1.4m/s。
2.所设计的CCD图象传感器系统,与MCU接口简单,占用极小的MCU软件资源,使用方便可靠,在应用实际应用中发挥出了良好的性能。
3.使用了红外光电开关检测车轮的转速,性能稳定可靠。
4.不足和尚需完善之处:
在智能移动小车走小的S型弯道可以想办法让小车不转弯直线行驶过去,因为比赛时智能小车可以跑两圈,打算在第一圈记录一些统计信息,第二圈时根据上一圈的统计信息识别出前方S型弯道,通过让参考点偏移的方法使小车直线通过。
参考文献
[1]蒋新松.机器人学导论.第一版.沈阳:
辽宁人民出版社.1994:
420-426
[2]吴广玉、姜复兴.机器人工程导论.第一版.哈尔滨:
哈尔滨工业大学出版社1988:
196-241
[3]徐国华,谭民.移动机器人的发展现状及其趋势.机器人技术与应用,2001年第三期:
5-16页
[4]周远清、张再兴.智能机器人系统.第一版.北京:
清华大学出版社,1989:
24-27
[5]张吉礼.模糊-神经网络控制原理与工程应用.第二版.哈尔滨:
哈尔滨工业大学出版社,2004:
19-21
[6]西三一郎.自律型机器人制作.第一版.北京:
科学出版社,2001:
89-94
[7]张岩、胡秀芳等.传感器应用技术.第一版.福建:
福建科学技术出版社,2005:
24-28
[8]王国鼎、袁海庆、陈开利.桥梁检测与加固.第一版.北京:
人民交通出版社,2003:
16-17
[9]邵贝贝.单片机嵌入式应用的在线开发.第一版.北京:
清华大学出版社,2004:
40-42
附录A:
源代码
/****************************************Copyright(c)**************************************************
**
**四川大学
**
**--------------文件信息--------------------------------------------------------------------------------
**文件名:
datatype.h
**创建人:
陈果
**最后修改日期:
2006年4月14日
**描述:
重新定义数据类型以方便编程
**
**--
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川大学 技术 报告 最终版