两轮直立代步车控制器设计.docx
《两轮直立代步车控制器设计.docx》由会员分享,可在线阅读,更多相关《两轮直立代步车控制器设计.docx(17页珍藏版)》请在冰点文库上搜索。
![两轮直立代步车控制器设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/21/0b9d3551-73d4-4b71-8ffd-a4931d238d6c/0b9d3551-73d4-4b71-8ffd-a4931d238d6c1.gif)
两轮直立代步车控制器设计
计算机控制技术
课程设计
成绩评定表
设计课题两轮直立代步车控制器设计
学院名称:
电气工程学院
专业班级:
学生姓名:
学号:
指导教师:
设计地点:
设计时间:
指导教师意见:
成绩:
签名:
年月日
计算机控制技术
课程设计
课程设计名称:
两轮直立代步车控制器设计
专业班级:
自动化1004
学生姓名:
学号:
指导教师:
课程设计地点:
31-503
课程设计时间:
2011-06-11~2011-06-15
计算机控制技术课程设计任务书
学生姓名
专业班级
学号
题目
两轮直立代步车控制器设计
课题性质
工程设计
课题来源
自拟
指导教师
臧海河
主要内容
(参数)
利用S12G128设计两轮直立代步车控制系统,实现以下功能:
1.系统启动时,控制电机使系统保持平衡;
2.当按下前进或后退按钮时,系统保持一顶的倾角前进或后退;
3.按下左右方向按钮时,通过电机差速来调整方向;
4.按下停止按钮时,电机减速运行至停止,并保持系统直立;
任务要求
(进度)
第1天:
熟悉课程设计任务及要求,查阅技术资料,确定设计方案。
第2天:
按照确定的方案设计单元电路。
要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第3天:
软件设计,编写程序。
第4-5天:
撰写课程设计报告。
要求内容完整、图表清晰、语言流畅、格式规范、方案合理、设计正确,篇幅不少于6000字。
主要参考
资料
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:
国防工业出版社,2004
[2]熊志奇.微机自动配料控制系统[J].电子技术应用,1997,(10):
30-32
[4]唐介,电机与拖动(第二版)[M].北京:
高等教育出版社,2007
[5]阎石,数字电子技术基础(第五版)[M].北京:
高等教育出版社,2005
[6]胡寿松,自动控制原理(第二版)[M].北京:
科学出版社,2007
审查意见
系(教研室)主任签字:
年月日
目录
1引言3
2总体方案设计4
2.1硬件组成4
2.2整体电路框图4
2.3直立任务分解4
2.4平衡控制5
2.5角度和角速度测量5
2.4速度控制7
2.5方向控制9
3硬件电路设计9
3.1单片机及其外围电路9
3.2控制电路划分为如下子模块:
10
4系统软件设计13
4.1主程序设计13
4.2控制相关的软件函数:
14
4.3中断服务程序15
5总结15
参考文献15
附录A电路图16
1引言
两轮自平衡电动代步车是一种两轮左右并行布置结构的具有自平衡系统的电动车。
利用倒立摆控制原理,使车体始终保持平衡。
在车体内嵌入式CPU的控制下,采集平衡传感器以及速度、加速度传感器的数据,通过建立的系统数学模型和控制算法,计算输出PWM信号,自动控制两个伺服电机的转矩,使车体保持平衡并能够根据人体重心的偏移,自动前进、后退及转弯。
2总体方案设计
2.1硬件组成
按两轮自平衡电动代步车控制系统的技术要求,控制系统的硬件应包括以下几部分:
(1)控制器。
作为控制系统的核心,采用S12G128单片机控制各个模块。
(2)速度检测通道。
将运动量转换为数字量,送给单片机,直接读取当前速度。
(3)控制输出通道。
控制器输出的控制信号传送给电机,控制电机的正反转和速度。
(4)加速度检测通道。
将电机角加速度转换为电信号。
(5)角度检测通道。
将系统倾角转换为电信号。
2.2整体电路框图
图2.1总体控制框图
2.3直立任务分解
(1)控制平衡:
通过控制两个电机正反向运动保持车模直立平衡状态;
(2)速度控制:
通过调节车模的倾角来实现车模速度控制,实际上最后还是演变成通过控制电机的转速来实现车轮速度的控制。
(3)控制方向:
通过控制两个电机之间的转动差速实现车模转向控制。
车的直立和方向控制任务都是直接通过控制车的两个后轮驱动电机完成的。
假设电机可以虚拟地拆解成两个不同功能的驱动电机,它们同轴相连,分别控制系统的直立平衡、左右方向。
在实际控制中,是将控制直立和方向的控制信号叠加在一起加载电机上,只要电机处于线性状态就可以同时完成上面两个任务。
速度是通过调节车模倾角来完成的。
不同的倾角会引起车的加减速,从而达到对于速度的控制。
2.4平衡控制
重力场中使用细线悬挂着重物经过简化便形成理想化的单摆模型。
直立着的车可以看成放置在可以左右移动平台上的倒立着的单摆。
当物体离开垂直的平衡位置之后,便会受到重力与悬线的作用合力,驱动重物回复平衡位置。
这个力称之为回复力,在偏移角度很小的情况下,回复力与偏移的角度之间大小成正比,方向相反。
在此回复力作用下,单摆便进行周期运动。
在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。
空气的阻尼力与单摆运动速度成正比,方向相反。
阻尼力越大,单摆越会尽快在垂直位置稳定下来。
总结单摆能够稳定在垂直位置的条件有两个:
(1)受到与位移(角度)相反的恢复力;
(2)受到与运动速度(角速度)相反的阻尼力。
通过类比倒立摆可得到了车直立的控制方案。
控制车模直立稳定的条件如下:
(1)能够精确测量车模倾角θ的大小和角速度'θ的大小;
(2)可以控制车轮的加速度。
2.5角度和角速度测量
(1)加速度传感器
加速度传感器可以测量由地球引力作用或者物体运动所产生的加速度。
MMA7260是一款三轴低g半导体加速度计,可以同时输出三个方向上的加速度模拟信号,通过设置可以使得MMA7260各轴信号最大输出灵敏度为800mV/g,这个信号无需要在进行放大,直接可以送到单片机进行AD转换。
只需要测量其中一个方向上的加速度值,就可以计算出倾角,比如使用Z轴方向上的加速度信号。
车直立时,固定加速度器在Z轴水平方向,此时输出信号为零偏电压信号。
当车发生倾斜时,重力加速度g便会在Z轴方向形成加速度分量,从而引起该轴输出电压变化。
变化的规律为
式中,g为重力加速度;θ为车模倾角;k为加速度传感器灵敏度系数系数。
当倾角θ比较小的时候,输出电压的变化可以近似与倾角成正比。
(2)角速度传感器-陀螺仪
陀螺仪可以用来测量物体的旋转角速度。
竞赛允许选用村田公司出品的ENC-03系列的加速度传感器。
它利用了旋转坐标系中的物体会受到科里奥利力的原理,在器件中利用压电陶瓷做成振动单元。
当旋转器件时会改变振动频率从而反映出物体旋转的角速度。
在车上安装陀螺仪,可以测量车模倾斜角速度,将角速度信号进行积分便可以得到车模的倾角。
由于陀螺仪输出的是车的角速度,不会受到车体运动的影响,因此该信号中噪声很小。
车的角度又是通过对角速度积分而得,这可进一步平滑信号,从而使得角度信号更加稳定。
因此车控制所需要的角度和角速度可以使用陀螺仪所得到的信号。
由于从陀螺仪角速度获得角度信息,需要经过积分运算。
如果角速度信号存在微小的偏差和漂移,经过积分运算之后,变化形成积累误差。
这个误差会随着时间延长逐步增加,最终导致电路饱和,无法形成正确的角度信号,为了消除这个累积误差一种简单的方法就是通过上面的加速度传感器获得的角度信息对此进行校正。
通过对比积分所得到的角度与重力加速度所得到的角度,使用它们之间的偏差改变陀螺仪的输出,从而积分的角度逐步跟踪到加速度传感器所得到的
角度。
如图2.2所示:
图2.2加速度计陀螺仪采集框图
(3)双加速度传感器获得角度和角速度
加速度传感器Z轴信号除了由于重力加速度引起的输出之外,还包括有车模的角加速度和移动加速度产生的信息。
在车模现有的参数基础上,这些信号在幅值、频率等方面没有太大差异,它们叠加在一起无法将它们分开。
如果在车模上另外再增加一个加速度传感器,两个加速度传感器安装的高度不同,那么就可以通过这两个信号的差值求出车模的角加速度。
通过上下两个加速度传感器输出信号相减,便可以得到车模倾角加速度。
对于这个信号进行两次积分,便可以的获得车模倾角的角速度和角度。
对于积分所可能带来的积分漂移问题仍然可以采用上面的重力加速度计补偿的方法进行消除。
可以得到如下角度控制方案框图2.3所示。
图2.3角度控制方案框图
2.4速度控制
对于直立车速度的控制相对于普通车的速度控制则比较复杂。
由于在速度控制过程中需要始终保持车的平衡,因此车速度控制不能够直接通过改变电机转速来实现。
具体实现需要解决三个问题:
(1)如何测量车速度?
(2)如何通过车模直立控制实现车倾角的改变?
(3)如何根据速度误差控制车倾角?
第一个问题可以通过安装在电机输出轴上的光码盘来测量得到车的车轮速度。
利用控制单片机的计数器测量在固定时间间隔内速度脉冲信号的个数可以反映电机的转速。
第二个问题可以通过角度控制给定值来解决。
给定车直立控制的设定值,在角度控制调节下,车模将会自动维持在一个角度。
通过前面车直立控制算法可以知道,车模倾角最终是跟踪重力加速度Z轴的角度。
因此车的倾角给定值与重力加速度Z轴角度相减,便可以最终决定车的倾角。
控制框图如图2.4所示。
图2.4倾角控制框图
第三个问题介意在前两个问题的基础上增加微分控制,控制框图如图2.5所示。
图2.5速度闭环控制框图
2.5方向控制
车的方向控制可在直立和速度闭环的基础上,给电机叠加上方向电信号,实现电机差速,从而实现方向的改变。
在车模控制中的直立、速度和方向控制三个环节中,都使用了比例微分(PD)控制,这三种控制算法的输出量最终通过叠加通过电机运动来完成。
(1)车模直立控制:
使用车模倾角的PD(比例、微分)控制;
(2)车模速度控制:
使用PD(比例、微分)控制;
(3)车模方向控制:
使用PD(比例、微分)控制。
3硬件电路设计
3.1单片机及其外围电路
微控制器采用S12G128。
MC9S12DG128有8KBRAM,128KBFLASH,4KBEEPROM,8路PWM,16路8位、10位AD,8路ECT,总线频率25MHZ,串行口有2个SCI,2个SPI,3个CAN总线模块。
系统的输入输出包括:
(1)AD转换接口(至少5路)
方向检测:
左右两路,用于测量左右两个控制器电压。
陀螺仪:
两路。
一路用于检测车倾斜角速度,一路用于检测车转动角速度。
加速度计:
一路,测量加速度Z轴输出电压。
辅助调试:
(备用)1到3路,用于车调试、设置作用。
(2)PWM接口(4路)
控制左右两个电极双方向运行。
由于采用单极性PWM驱动,需要四路PWM接口。
如果采用双极性PWM驱动,可以使用两路。
(3)定时器接口(2路)
测量两个电机转速,需要两个定时器脉冲输入端口。
(4)通讯接口(备用)
SCI(UART):
一路,用于程序下载和调试接口;
(5)IO接口(备用)
4到8路输入输出,应用车运行状态显示,功能设置等。
图3.1单片机最小系统板外围电路
3.2控制电路划分为如下子模块:
DSC处理器,程序下载调试接口等;
方向检测:
包括两路相同的电压信号放大与检波电路如图3.3所示:
图3.2检波电路
陀螺仪与加速度计:
包括三个姿态传感器信号放大滤波电路;
图3.3陀螺仪与加速度计检测电路
速度检测:
检测电机光电码盘脉冲频率,实际上只包括了两个光电码盘的传感器;
图3.4测速电路
电机驱动:
驱动两个电极运行功率电路;
图3.5驱动电路图
电源:
电源电压转转换,稳压,滤波电路;
图3.6电源模块
4系统软件设计
系统软件分为主程序、中断服务程序和子程序三部分。
4.1主程序设计
程序上电运行后,便进行单片机的初始化。
初始化的工作包括有两部分,一部分是对于该程序通过读取加速度计的数值判断车模是否处于直立状态。
在通过串口发送到上位机进行监控。
同时检查车模是否跌倒。
过全局标志变量确定是否进行这些闭环控制。
单片机各个应用到的模块进行初始化。
这部分的代码由CodeWarrior集成环境的ProcessorExpert工具生成。
第二部分是应用程序初始化,是对于车模控制程序中应用到的变量值进行初始化。
初始化完成后,首先进入车模直立检测子程序。
如果一旦处于直立状态则启动车模直立控制、方向控制以及速度控制。
程序在主循环中不停发送监控数据,
跌倒判断可以通过车模倾角是否超过一定范围进行确定,或者通过安装在车模前后防撞支架上的微动开关来判断。
一定车模跌倒,则停止车模运行。
包括车模直立控制、速度控制以及方向控制。
然后重新进入车模直立判断过程。
车模的直立控制、速度控制以及方向控制都是在中断程序中完成。
程序控制框图如图4.1所示:
。
图4.1程序控制框图
4.2控制相关的软件函数:
1.AngleCalculate:
车模倾角计算函数。
根据采集到的陀螺仪和重力加速度传感器的数值计算车模角度和角速度。
如果这部分的算法由外部一个运放实现,那么采集得到的直接是车模的角度和角速度,这部分算法可以省略。
该函数是每5毫秒调用一次。
2.AngelControl:
车模直立控制函数。
根据车模角度和角速度计算车模电机的控制量。
直立控制是5毫秒调用一次。
3.SpeedControl:
车模速度控制函数。
根据车模采集到的电机转速和速度设定值,计算电机的控制量。
该函数是100毫秒调用一次。
4.SpeedControlOutput:
速度输出平滑函数。
由于速度是每100毫秒进行一次计算。
为了使得速度控制更加平滑,该函数将速度输出变化量平均分配到20步5毫秒的控制周期中。
5.DirectionControl:
方向控制函数。
根据车模采集到的左右两个电压传感器的数值计算出角度控制的量。
该函数每10毫秒调用一次。
6.DirectionControlOutput:
方向控制函数输出平滑函数。
将方向控制的输出变化量平均分配到2步5毫秒的控制周期中。
7.MotorOutput:
电机输出量汇集函数。
根据前面的直立控制、速度控制和方向控制所得到的控制量进行叠加,分别得到左右两个电极的输出电压控制量。
对叠加后的输出量进行饱和处理。
函数调用周期5毫秒。
在此请大家注意速度控制量叠加的极性是负。
8.MotorSpeedOut:
电机PWM输出计算函数。
根据左右两个电极的输出控制量的正负极性,叠加上一个小的死区数值,克服车模机械静态摩擦力。
函数调用周期5毫秒。
9.SetMotorVoltage:
PWM输出函数:
根据两个电机的输出量,计算出PWM控制寄存器的数值,设置四个PWM控制寄存器的数值。
函数调用周期1毫秒。
4.3中断服务程序
中断服务程序用于车的角度、速度和方向控制的周期调用。
5总结
MCU具有体积小、重量轻、价格低廉的特点,应用于自动控制系统中可以有效降低系统的成本。
针对不同的工作环境,采取相应的抗干扰措施,可以在环境恶劣的环境下可靠地运行。
数据采集通道中采用A/D转换器,具有转换精度高、抗工频干扰能力强、易于实现光电隔离以及价格低廉等特点,合理确定外围元件的参数是保证数据采集精度的关键。
借鉴人工控制的经验,通过大量试验得到控制PID的参数,根据设定值与检测值之间的偏差,运用PID控制,实现平滑输出,课提高系统的稳定性。
参考文献
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:
国防工业出版社,2004
[2]熊志奇.微机自动配料控制系统[J].电子技术应用,1997,(10):
30-32
[3]中国电子网http:
//www.21IC.com
[4]唐介,电机与拖动(第二版)[M].北京:
高等教育出版社,2007
[5]阎石,数字电子技术基础(第五版)[M].北京:
高等教育出版社,2005
[6]胡寿松,自动控制原理(第二版)[M].北京:
科学出版社,2007
附录A电路图