基于单摆的控制系统.docx
- 文档编号:24265765
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:31
- 大小:149.52KB
基于单摆的控制系统.docx
《基于单摆的控制系统.docx》由会员分享,可在线阅读,更多相关《基于单摆的控制系统.docx(31页珍藏版)》请在冰豆网上搜索。
基于单摆的控制系统
编号:
B甲00301
2011年全国大学生电子设计竞赛
设计报告
竞赛题目:
基于自由摆的平板控制系统
学生姓名:
胡广豹(hugb59@)
程家凡(oxgoo@)
李娜(limeng_5201314@)
指导教师:
翟庆一陈海燕
学校:
山东职业学院
2011年9月3日
摘要
本控制系统以ATMEGA48单片机为控制核心,包括步进电机控制电路、编码器、显示电路和电源电路等几部分。
选用E6B2-CWZ6C型编码器实现摆杆角度的测量,根据摆杆角度控制步进电机,实现对平板旋转的控制,步进电机选用42BYGH02,并增加了LCD显示电路实时显示摆杆的角度。
经过试验证明该系统可以实现题目的基本要求及发挥部分的所有功能。
关键词:
编码器步进电机单片机
第一章系统方案论证
1.1方案比较与选择
1.1.1角度测量方案的比较与选择
方案一:
采用电容或磁阻角度传感器,一般需要电量转换及A/D转换等处理,电路复杂。
方案二:
选用旋转编码器,根据其产生的脉冲数通过单片机计算角度。
其原理及工作电路简单,容易实现,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高等。
比较上述两种方案,旋转编码器控制简单,所以选择方案二。
1.1.2驱动电机的比较与选择
方案一:
伺服电机加伺服驱动器,能高速制动,适合闭环控制,但成本高、体积大。
方案二:
步进电机,输入脉冲和转动角度之间成特定的比例控制关系,不累积误差,控制简单,一般用作开环控制,成本低。
比较上述两种方案,考虑到本系统是一个开环系统,步进电机成本低,控制简单,并且可以满足控制要求的精度,所以选择方案二。
1.2方案设计与论证
根据系统控制要求,通过方案比较,得出系统电路总体框图如图1所示。
主要由步进电机及驱动电路、编码器测角度电路、模式转换开关及控制按键电路、LCD显示电路、声光指示电路和单片机电路等几部分组成。
图1系统总体框图
第二章理论分析与计算
2.1摆杆摆动角度的测量原理
利用增量式旋转编码器可以测得摆杆角度。
摆杆角度与脉冲数关系为:
角度=脉冲数×360/N。
其中N是编码器旋转一周的所产生的固定脉冲数。
2.2平板旋转控制测量原理
2.2.1平板旋转一周的控制原理分析
摆杆摆一个周期,控制电机使平板旋转一周(360°),偏差绝对值不大于45°。
要实现此功能,需要使平板的转动周期与摆杆摆动周期同步。
根据大角度单摆的周期修正公式[1]
可得摆杆最大角度θm与摆动周期T的关系。
考虑到摆杆的负重等因素,通过平衡的方法找到摆杆的重心位置,测得摆杆长度l的理论值约90cm,带入周期修正公式得摆杆摆动周期,见附录表1。
根据控制要求,系统选摆杆最大角度在1°至62°之间变化时。
把摆动周期分成两个半周,每当摆杆在最大角度θm时查表设定步进电机转动周期T。
在误差范围内简化查表,将62°分段处理:
1至32°时取23°时的周期,33至45°时取39°时的周期,47至54°时取49°时的周期,55至62°时取58°时的周期。
根据计算得出理论上最大误差在54°时为0.021119917秒,步进电机转一周的误差为:
0.021119917/2.12630905*360≈3.77°,符合偏差绝对值不大于45°的要求。
2.2.2硬币不滑落控制原理分析
启动摆杆摆动后,控制平板在尽量短的时间内与摆杆成垂直状态,利用离心力使硬币不滑落。
摆杆从右向左启动摆动时如图2所示,假设角度由θ1变为θ2时控制平板与摆杆垂直,则平板与摆杆之间的角度由β1(=90°+θ1)变为β2(=90°),控制步进电机逆时针旋转β1-β2=θ1。
所以根据摆杆角度的变化值控制步进电机工作。
同理,若摆杆从左向右启动摆动时,控制步进电机顺时针旋转θ1。
(a)摆杆从右向左启动时(b)摆杆从左向右启动时
图2摆杆摆动过程示意图
2.2.3激光笔打靶控制原理分析
1、激光笔静态打靶控制原理分析
摆杆拉至右侧时,激光笔静态打靶控制示意图如图3所示。
以最低点处平板与摆杆垂直时为参考状态,当用手推动摆杆至角度θ时,平板需要顺时针旋转夹角α=θ+β。
由图可知:
式
(1)
,式
(2)
,式(3)
。
其中L=100cm,D=150cm,将式
(1)
(2)带入式(3)求得
。
摆杆拉至左侧时,激光笔静态打靶控制示意图如图4所示。
仍以最低点处平板与摆杆垂直时为参考状态,当用手推动摆杆至角度θ时,平板需要逆时针旋转夹角α=θ-β。
由图可知:
式(4)
,式(5)
,式(6)
。
其中L=100cm,D=150cm,将式(4)(5)带入式(6)求得
。
图3激光笔静态打靶示意图图4激光笔静态打靶示意图
2、激光笔动态打靶控制原理分析
摆杆摆动过程中,根据前面分析的平板转动控制原理及旋转角度之间关系,根据摆杆摆角的变化,控制步进电机的旋转。
3、误差分析
摆杆摆至右侧一定位置时,若激光笔照射位置向上偏差1cm时,示意图如图5所示,根据前面分析可得式(7)
。
参考图3可知,若偏差为1cm时,平板旋转的角度差为△α=|β-β1|。
θ取1-62°时,带入式(7)计算可知,△αmin=0.386462802°。
当摆杆摆至左侧时,参考图4和图5分析得:
式(8)
则△αmin=0.229288685°。
同理可分析出摆杆在右侧,激光笔照射位置偏下1cm时,△αmin=0.386462266°;摆杆在左侧,激光笔照射位置偏下1cm时,△αmin=0.228880843°。
则要求步进电机和编码器的最小步进角要小于0.228880843°。
图5激光笔照射位置偏差示意图
第三章硬件电路设计
3.1控制器电路
ATmega48采用先进RISC结构的AVR内核,有如下特点:
工作于20MHz时性能高达20MIPS;4K字节的系统内可编程Flash;256字节的EEPROM;512字节的片内SRAM;两个具有独立预分频器和比较器功能的8位定时器/计数器;一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器;六通道PWM;片内/外中断;具有片内振荡器的可编程看门狗定时器;23个可编程的I/O口线;五种休眠模式;能满足本系统的需要,故选用了AVR系列单片机ATmega48。
3.2角度测量电路
将摆杆的转轴与编码器的轴连接在一起,当摆杆摆动时带动编码器轴转动,编码器产生的脉冲信号传送给单片机进行数据处理。
系统采用欧姆龙增量型旋转编码器E6B2-CWZ2C,它具有如下特点:
编码器每转一周A相和B相输出2000个脉冲;A相、B相的相位差1/4±1/8T,从而可方便地判断出旋转方向;附有电源逆接、负载短路保护回路,改善可靠性。
编码器精度为360/2000=0.18°,小于第二章中分析的△αmin=0.228880843°,符合系统要求。
为降低软件设计难度,系统采用硬件电路判别编码器旋转方向。
由输出信号单方向(上升沿或下降沿)的触发信息,得到判别编码器旋转方向的信号,同时与脉冲计数信号相互牵制,达到互锁的功能。
应用D触发器74LS74上升沿触发,得到第5管脚和第6管脚信号分别与编码器输出信号进行逻辑运算,获得编码器的正向旋转脉冲信号和逆向旋转脉冲信号,分别接至单片机的INT0、INT1中断。
3.3步进电机及驱动电路
系统采用42BYGH02型步进电机控制平板转动,步进角1.8°。
单片机通过两相混合式步进电动机细分驱动器SWT-201驱动步进电机。
SWT-201具有短路、错相保护,H桥双极性恒相流驱动,输入信号光电隔离,节能的半电流锁定等功能,可靠性高,成本低,多档细分可选,本系统采用8倍细分驱动,控制电动机步进角为0.225°,小于第二章中分析的△αmin=0.228880843°,符合系统要求。
其中CP、CW接单片机的PB0、PB1端口。
系统为检测摆杆过零点,采用接近传感器。
3.4控制按键及模式转换电路
系统利用模式转换开关实现工作状态的切换,并设置了相关按键,分别实现电源、启动等控制。
3.5创新部分
1、液晶显示
系统采用液晶显示模块OCMJ4×8C,实时显示摆杆摆动的角度等信息。
2、声光提示功能
当系统在规定时间内完成相应功能时,如15秒钟内激光笔实现了对中心线的定位,进行声光提示。
另外设计了LED指示灯,指示平板旋转、带硬币摆动、激光笔打靶等工作状态。
3、无线遥控功能
系统采用无线遥控发射接收解码器芯片PT2272设计了无线遥控模块,方便远距离操作。
具体电路参见附录1系统整体电路原理图。
第四章软件设计
4.1系统主流程图
本系统硬件电路简单,控制功能主要通过软件来实现。
本系统以ATmega48单片机为控制核心,将编码器传过来的脉冲信号进行处理得出摆杆的角度,将检测角度实时的显示在液晶显示器上,并通过计算输出控制信号驱动步进电机旋转,从而达到各种控制要求。
软件编程的关键是对于旋转编码器送来的脉冲进行处理以及对步进电机的控制。
旋转编码器同时采用了A相信号和B相信号,其中A相信号是用作脉冲的计算,B相信号是用来判断转动方向。
采用了外部中断的编程方式,以达到响应迅速的要求和准确计算脉冲数的目的。
4.2主要软件模块设计思路
通过检测模式控制开关的状态切换系统的工作模式。
模式1:
平板旋转一周控制模式。
程序设计思路:
手动拉摆杆到某个角度θ停止,检测到按启动键时,记下编码器输入的最大值mp,从而计算出自由摆的摆动周期T。
由T和步进电机每转一圈需要的脉冲数p0,可计算出每ms步进电机的驱动脉冲数Δp。
设定定时器定时1ms中断,每次中断驱动电机步进Δp步。
模式2:
硬币不滑落控制模式。
程序设计思路:
手动拉摆杆到某个角度θ停止,调整平板水平,放上硬币,检测到按启动键时,记下编码器输入的最大值mp,从而计算出平板旋转θ(和摆臂垂直)电机的驱动脉冲数Δp。
检测到编码器计数值减少时(松手),控制步进电机快速转动Δp步,使平板和摆臂垂直。
模式3:
激光笔打靶静态控制模式。
程序设计思路:
在摆杆垂直静止时,调整平板水平,使激光笔照在靶屏的中心线上,手动拉自由摆到某个角度θ停止,检测到按启动键时,记下编码器输入的最大值mp,从而计算出使激光照在中心线上平板应旋转的角度θ,查表得到电机的驱动脉冲数Δp。
控制步进电机转动Δp步,使激光照在中心线上。
发出声光提示,表示任务完成。
模式4:
激光笔打靶手动控制模式。
程序设计思路:
在模式3基础上,必要时调整平板,使激光笔照在靶屏的中心线上,检测到按启动键时,循环检测编码器输入值mp的变化,查表得到电机的驱动脉冲数Δp。
控制步进电机转动Δp步,使激光照在中心线上。
第五章系统测试与结果分析
系统完成后,针对各项功能要求,做了相应测试,测试方法及结果如下:
5.1各功能测试方法及测试数据
5.1.1基本要求功能测试
1、平板旋转一周控制测试方法及测试数据
在摆杆上对应平板的位置贴上角度标尺,方便观察平板旋转角度。
系统测量的摆杆角度实时在LCD上显示,在摆杆的后方平行位置放一量角尺,先将摆杆拉至一定角度,对比LCD上显示的角度值,经多次实验,证明LCD上显示的角度值可以用来作为实际值,进行后面的测试。
摆杆垂直静止时,手动调整平板使其水平,然后将摆杆推至一定角度,启动系统并放开摆杆让其自由摆动。
软件检测到摆杆摆动一个周期时,控制步进电机停止转动,系统停止工作,摆杆回到垂直静止时观察平板倾斜角度,从而得到摆杆摆一个周期时平板旋转一周的误差。
同理控制摆杆摆动2~6个周期时,分别观察平板的旋转误差。
测试数据如附录3表2所示。
2、硬币不滑落控制测试方法及测试数据
将摆杆拉至一定角度,调整平板角度,在平板中心稳定放置一枚1元硬件,启动后放开摆杆让其自由摆动。
6个摆动周期后停止系统运行,用直尺测量硬币偏移距离并记录。
改变摆杆摆动时的初始角度,分别多次测量得出附录3表3所示数据。
同理在平板中心稳定放置8枚1元硬件,分角度进行20次实验,有4次硬币全部未滑落。
5.1.2发挥部分测试
1、激光笔静态打靶控制测试方法及测试数据
摆杆垂直静止且平板处于水平时,调节靶子高度,使光斑照射在靶纸的某条线上,标识出此线为中心线。
用手推动摆杆至一个角度θ,启动后,系统在15秒钟控制平板使激光笔照射在中心线上。
改变角度θ的值多次实验,记录15秒钟内激光笔光斑偏离距离如附录3表4所示。
2、激光笔动态打靶控制测试方法及测试数据
用手推动摆杆至一个角度θ,启动后放开让摆杆自由摆动,摆动过程中观察激光笔光斑的位置,经过多次改变θ值,反复实验,目测激光笔光斑偏离约±3cm。
5.2结果分析
利用上述方法多次实验,证明此系统能实现题目要求的所有基本要求和发挥部分,并且创新部分的LCD显示和遥控等功能运行正常。
总结
在竞赛的整个过程中,我们克服了很多问题,在电路设计、软件调试及机械组装等方面得到了很好的锻炼,提高了独立思考、自学知识等多方面的能力,更意识到团队合作和理论实践结合的重要性,受益匪浅!
本系统成本低,性能较稳定,满足设计要求,但由于时间及实验条件等方面的局限,设计还有一些需要改进的地方,希望专家老师指教。
参考资料
[1]魏惠军、朱烔明.大角度单摆的周期J.上海师范大学学报.2004年第33卷(103—105)
[2]李泓著.AVR单片机入门与实践.北京航空航天出版社.2008年4月
[3]赵燕著.传感器原理及应用.北京大学出版社.2010年2月。
[4]坂本正文(日)著,王自强译.步进电机应用技术.科学出版社.2010年5月
附录1:
系统整体电路原理图
附录2:
主程序流程图
附录3:
相关数据
表1摆杆摆动周期
θm
(度)
周期T(秒)
θm
(度)
周期T(秒)
θm
(度)
周期T(秒)
θm
(度)
周期T(秒)
1
1.90412894
17
1.91463704
33
1.944552187
49
2.10404671
2
1.904237706
18
1.915923312
34
1.94710749
50
2.10828333
3
1.904419014
19
1.917285283
35
1.949747331
51
2.11262642
4
1.904672914
20
1.918723328
36
1.952472486
52
2.1170774
5
1.904999472
21
1.920237841
37
1.955283761
53
2.12163777
6
1.905398777
22
1.921829241
38
1.958181993
54
2.12630905
7
1.905870934
23
1.923497968
39
1.96116805
55
2.13109283
8
1.90641607
24
1.925244486
40
1.964242832
56
2.13599075
9
1.907034332
25
1.927069282
41
1.967407272
57
2.14100449
10
1.907725884
26
1.928972867
42
1.970662337
58
2.14613581
11
1.908490913
27
1.930955776
43
1.974009026
59
2.15138652
12
1.909329623
28
1.933018569
44
1.977448378
60
2.15675848
13
1.910242243
29
1.935161832
45
1.980981466
61
2.162253637
14
1.911229017
30
1.937386174
46
1.984609399
62
2.167873981
15
1.912290212
31
1.939692234
47
1.988333328
63
2.17362158
16
1.913426117
32
1.942080675
48
1.992154441
64
2.179498572
表2平板旋转控制测试数据
摆动初始
角度(°)
摆动周期数
(周)
平板旋转
误差(°)
摆动初始
角度(°)
摆动周期数
(周)
平板旋转
误差(°)
15
1
4
45
1
3
15
2
7
45
2
8
15
3
11
45
3
12
15
4
15
45
4
15
15
5
18
45
5
19
30
1
5
50
1
4
30
2
7
50
2
7
30
3
12
50
3
12
30
4
15
50
4
15
30
5
19
50
5
19
40
1
4
60
1
4
40
2
7
60
2
7
40
3
11
60
3
11
40
4
16
60
4
16
40
5
19
60
5
20
表3硬币不滑落控制测试数据
实验次数
摆动初始
角度(°)
硬币滑动距离(cm)
实验次数
摆动初始
角度(°)
硬币滑动距离(cm)
1
30
1
13
45
2.3
2
30
2.1
14
45
4.3
3
30
1.2
15
45
2.1
4
30
2
16
45
3.5
5
35
2.1
17
50
2.1
6
35
2
18
50
3.3
7
35
2.2
19
50
2.2
8
35
1.1
20
50
2.6
9
40
3.1
21
55
3.2
10
40
2.3
22
55
2.3
11
40
1.5
23
55
4.1
12
40
2.7
24
55
2.5
表4激光笔静态打靶控制测试数据
摆动初始
角度(°)
光斑偏离距离(cm)
摆动初始
角度(°)
光斑偏离距离(cm)
30
0.9
50
0.7
30
0.8
50
0.6
30
1.5
50
1.3
35
0.6
55
0.5
35
0.8
55
0.4
35
0.6
55
0.6
40
0.8
60
0.6
40
0.8
60
1.3
40
1.2
60
0.4
45
0.8
45
0.7
45
0.5
附录4:
部分程序
Main.c
/*
*ICC-AVRapplicationbuilder:
2011-7-816:
06:
13
*Target:
AVRATmega48
*Crystal:
8.0000Mhz
*/
#include
#include
#include
#include
#include"jbtabp.c"
#include"ocm4x8cs.h"
/*------------------------------
*定义控制接口
*------------------------------*/
//完成指示灯
#defineLEDPD0
//蜂鸣器
#defineBUZZERPD1
//运动状态转换开关
#defineSW1PD4
……
/*-----------------------------------------
*全局变量定义
------------------------------------------*/
#defineMPPR2000//编码器每圈脉冲数
staticunsignedcharmode=0;//控制模式0-4
staticunsignedcharstart=0;//开始标志1=启动,0=停止
staticsignedchardirect=1;//摆方向,1逆时针,-1顺时针
……
/*-----------------------------------------
*I/O引脚初始化
------------------------------------------*/
voidport_init(void)
{
PORTB=0x03;
……
DDRD=0x03;//PD6作为输出,输出0
}
voidtimer0_init(void)
{
TCCR0B=0x00;//stop
TCNT0=0x83;//setcount
TCCR0A=0x00;
TCCR0B=0x03;//starttimer
}
#pragmainterrupt_handlertimer0_ovf_isr:
17
voidtimer0_ovf_isr(void)
{
//TIMER0hasoverflowed
staticsignedintcount0=0;
staticsignedintp0_pre=8133;//p0/ms系数
staticsignedintpulse1=0;
signedinttmp;
TCNT0=0x83;//重装初值
/*-------led-------*/
if(mode!
=3)//指示运动方向
{
if(direct>0)CLRBIT(PORTD,LED);
elseSETBIT(PORTD,LED);
}
a0=18*mp;//计算角度
count0++;//0.01秒计数器
timecnt0++;
//if(count0>10)count0=0;
if((mode==1)&&(start==1))//启动了模式1:
旋转
{
if(direct_bef!
=direct)//判断摆方向是否改变
{
if((direct_bef==1)&&(direct==-1))//从逆时针变成顺时针转,重新算p0/ms系数
{
tmp=(a0>>4)/100;
if(tmp>3)tmp=3;
p0_pre=p0_1ms[tmp];
pulse1=0;
}
direct_bef=direct;//保存方向值
}
pulse1=pulse1+p0_pre;
if(pulse1>=10000)
{
tmp=1;//计算步进脉冲数
pulse1=pulse1-10000;
step_one
(1);//驱动电机旋转
}
}
}
/*----------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单摆 控制系统
![提示](https://static.bdocx.com/images/bang_tan.gif)