基于自由摆的平板控制系统1Word文件下载.docx

上传人:b****3 文档编号:17865774 上传时间:2022-12-11 格式:DOCX 页数:18 大小:472.12KB
下载 相关 举报
基于自由摆的平板控制系统1Word文件下载.docx_第1页
第1页 / 共18页
基于自由摆的平板控制系统1Word文件下载.docx_第2页
第2页 / 共18页
基于自由摆的平板控制系统1Word文件下载.docx_第3页
第3页 / 共18页
基于自由摆的平板控制系统1Word文件下载.docx_第4页
第4页 / 共18页
基于自由摆的平板控制系统1Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于自由摆的平板控制系统1Word文件下载.docx

《基于自由摆的平板控制系统1Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于自由摆的平板控制系统1Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。

基于自由摆的平板控制系统1Word文件下载.docx

源程序14

附录2:

参考文献17

1系统方案的比较与选择

1.1控制器的选择

方案一、采用最简单的51单片机采集电压数据。

利用51单片机的优点是价格便宜,使用比较方便,缺点是接口少,使用时需扩展,外围电路比较多,运算处理速度不高,功耗高。

方案二、利用PIC16F877A单片机对电压数据等进行处理,处理能力强、运算速度快、超低功耗、片内资源丰富、方便高效的开发环境。

对于实现本系统的功能绰绰有余。

综合比较以上两个方案,本系统选择方案二。

1.2算法的选择

方案一、采用模糊控制算法,模糊控制有许多良好的特性,它不需要事先知道对象的数学模型,具有系统响应快、超调小、过渡过程时间短等优点,但编程复杂,数据处理量大。

方案二、采用PID算法,按比例、积分、微分的函数关系,进行运算,将其运算结果用以输出控制。

优点是控制精度高,且算法简单明了。

对于本系统的控制已足够精确,节约了单片机的资源和运算时间。

1.3传感器的选择

方案一、利用角度传感器测量自由摆的角度,例如mma7455或者mma7361。

角度传感器往一个方向转动时,计数增加,转动方向改变时,计数减少。

但是角度传感器的应用电路复杂,数据处理繁琐,编程复杂,而且成本较高。

方案二、利用精确电位器与自由摆顶端相连,利用角度和电阻值的一一对应关系,通过单片机采集精确电位器两端电压的变化,来控制步进电机的转动。

精确电位器的成本较低,应用电路简单,编程简便,且控制精度和线性度满足系统的要求。

1.4机械系统的选择:

方案一:

使用直流电机。

特点是驱动简单而且工作稳定,但无法精确控制电机转数,即无法让平板精确定位。

方案二:

选用步进电机。

相比直流电机的工作方式,步进电机是一种将电脉冲转化为角位移的执行机构。

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(步进角)。

这样我就可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的。

但步进电机驱动方式较复杂,而且对脉冲的连贯性和准确性要求很高,多个脉冲输入端,要按一定的顺序依次输入正确的电平。

一旦顺序错误或者输入电平不正确,会导致电机失步后,完全不能工作。

对应本题的要求,精确定位无疑是必要的,而且机电结构相对简单。

2系统理论分析与计算

本平板控制系统是基于PIC16F877A单片机为主控芯片,将精确电位器与自由摆顶端相连,利用角度和电阻值的一一对应关系,通过单片机采集精确电位器两端电压的变化,来控制步进电机的转动,单片机对采集到的电压进行模糊控制算法,再通过改变PWM的占空比达到精确控制电机转速的目的,从而保持平板的平衡。

2.1系统总原理框图

2.2系统理论分析与设计

2.2.1系统设计的总体思路

首先,应用数学方法,以支点为参考点,建立方程,推导出自由摆倾斜角与精确电位器两端电压的线性关系。

通过单摆的摆动使角度变化,采集精确电位器两端电压的变化,通过AD转换获得所需要的电压变化数字量,再由程序计算得到角度变化的数字量,由于自由摆倾斜角与平台转角的角度相同能保持平板上的硬币不掉下来,然后根据步进电机的步进角度换算成步进电机所需要步数,再推导出自由摆倾斜角与步进电机所需的脉冲数的关系,从而建立起自由摆倾斜角与电机步数之间一一对应的关系,实现控制的需要。

2.2.2分析运算过程

如图,自由摆呈竖直状态时,精确电位器两端加上5v的电压,电阻值设定在500Ω左右(精确电位器总电阻为1000Ω),将自由摆拉开一定的角度,测量对应时刻的精确电位器的阻值以及此刻两端的电压值,再计算出此刻步进电机的转角及步数值。

测量结果如下:

次数

物理

1

2

3

4

5

6

7

8

9

θ(°

-50

-40

-30

-20

-10

10

20

30

R(Ω)

548

365

391

423

450

500

591

630

651

U(V)

2.45

1.48

1.63

1.84

1.98

2.21

2.66

2.81

2.96

11

40

50

679

720

3.16

3.28

使用MATLAB制表:

由图可得,精确电位器两端电压随角度变化基本成线性关系,关系式为:

U(V)=0.0187θ+2.4277

3电路与程序设计

3.1硬件电路的设计

3.1.1PIC16F877A最小系统的组成

单片机最小系统就是单片机正常工作所需的最基本外围器件组成的系统,由于单片机内部含有RAM和ROM及A/D转换模块,因此单片机最小系统结构比较简单,这一系统一般由电源、时钟、复位、显示、键盘、电平匹配等电路组成。

在我们的设计中,我们选择了PIC16F877A作为核心控制的单片机。

通过PIC16F877A的A/D转换模块,采集电压量,转化为十位的数据量。

单片机最小系统原理图:

电源部分

显示部分

最小系统板

3.1.2步进电机驱动电路的组成

单片机采集到精确电位器两端的电阻后,经过A/D转换,通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片TA8435驱动步进电机,驱动电路如下图:

3.2程序的设计

3.2.1程序功能描述与设计思路

1、程序功能描述

本系统控制程序主要功能是:

利用角度和电阻值的一一对应关系,通过单摆的摆动使角度变化,采集精确电位器两端电压的变化,通过AD转换获得所需要的电压变化数字量,再由程序计算得到角度变化的数字量,然后根据步进电机的步进角度换算成步进电机所需要步数,单片机进行算法控制,再通过改变PWM的的脉冲数,达到精确控制电机同轴的平板转过的角度。

2、程序设计思路

由于单片机采集到的是电压的模拟量,而自由摆旋转的角度和精确电位器两端的电压成线性关系。

因此,必须通过单片机端口采样电压,经过A/D转换,为数字量,再根据电压量与角度的一一对应关系,计算出该给步进电机多少脉冲,实现对电机的控制。

3.2.2程序流程图

4测试方案与测试结果

基本要求部分:

4.1测试方案

1、测试基本要求

(1)控制电机使平板可以随着摆杆的摆动而旋转(3~5周),摆杆摆一个周期,平板旋转一周(360º

),偏差绝对值不大于45°

(2)在平板上粘贴一张画有一组间距为1cm平行线的打印纸。

用手推动摆杆至一个角度θ(θ在30º

~45º

间),调整平板角度,在平板中心稳定放置一枚1元硬币(人民币);

启动后放开摆杆让其自由摆动。

在摆杆摆动过程中,要求控制平板状态,使硬币在5个摆动周期中不从平板上滑落,并尽量少滑离平板的中心位置。

(3)用手推动摆杆至一个角度θ(θ在45º

~60º

间),调整平板角度,在平板中心稳定叠放8枚1元硬币,见图2;

在摆杆摆动过程中,要求控制平板状态使硬币在摆杆的5个摆动周期中不从平板上滑落,并保持叠放状态。

根据平板上非保持叠放状态及滑落的硬币数计算成绩。

2、硬件测试

按照系统的规定要求,必须测量自由摆的固有周期和电机脉冲频率与其转速的关系,两者进行比对,从而确定该如何设置脉冲频率。

3、软件仿真测试

利用protues软件,对电路进行仿真。

仿真电路图如下:

4.2测试条件与仪器

测试条件:

检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。

测量周期必须取多次测量的平均值,将误差减小。

电机旋转时,震动尽量小,旋转角度比自由摆摆动角度略小(考虑惯性)。

测试仪器:

数字示波器,数字万用表,秒表,直尺

4.3测试结果及分析

4.3.1测试结果(数据)

单摆自由摆动十个周期所需要的时间

次数

平均值

时间(s)

19.55

19.83

19.66

19.61

19.59

19.65

电机脉冲频率(转换为周期)与其旋转十周所需要的时间

电机脉冲周期(μs)

750

800

850

900

950

1000

1050

12.13

13.12

13.59

14.31

15.07

16.12

16.94

1100

1150

1200

1250

1300

1350

1400

17.63

18.37

19.14

20.07

20.75

21.58

22.31

通过MATLAB制图可得:

由图可得电机脉冲频率与其旋转一周所需要的时间基本成线性关系,关系式为:

y=0.0015x+0.0769。

4.3.2测试分析与结论

根据上述测试数据,单摆的周期为1.96s,电机脉冲频率与其旋转一周所需要的时间关系式为:

由此可以得出以下结论:

1.要满足摆杆摆一个周期,平板旋转一周(360º

),根据函数式一一对应的关系,取电机脉冲周期为1255μs,经实际检验,符合系统要求。

2.为满足自由摆上的硬币保持稳定,通过反复试验,电机脉冲周期为750μs时,震动最小。

步进电机旋转角度比自由摆摆动角度小3º

时,平板上硬币最稳定。

结论:

经过实际的测试能满足基本部分的要求。

发挥部分:

4.4测试基本要求:

(1)如下图所示,在平板上固定一激光笔,光斑照射在距摆杆150cm距离处垂直放置的靶子上。

摆杆垂直静止且平板处于水平时,调节靶子高度,使光斑照射在靶纸的某一条线上,标识此线为中心线。

用手推动摆杆至一个角度θ(θ在30º

间),启动后,系统应在15秒钟内控制平板尽量使激光笔照射在中心线上(偏差绝对值<1cm),完成时以LED指示。

(2)在上述过程完成后,调整平板,使激光笔照射到中心线上(可人工协助)。

启动后放开让摆杆自由摆动;

摆动过程中尽量使激光笔光斑始终瞄准照射在靶纸的中心线上。

4.5测试原理图:

4.6测试结论及分析:

结果:

根据实际测试的结果,激光笔光斑基本能够始终瞄准在靶纸的中心线上,但是有一定的误差,对于偏差绝对值小于1CM的要求,成功率不高。

分析:

经过不断的测试和分析,产生较大的误差原因有以下几点:

1、人手动启动单摆,会有人为的误差。

2、简易制作的单摆会前后摆动,也会产生机械误差。

3、用单片机计算控制算法的时候,不过精确,也会产生误差。

结论:

本设计能部分满足发挥部分的要求。

5.结束语

经过辛苦的备战和四天三夜紧张的制作,终于完成了基于自由摆的平板控制系统的设计。

本设计采用PIC16F877A作为设计用的单片机。

对于核心采样元件的选取,本设计最终使用了精确电位器来作为获取单摆角度的工具。

相对于mma7445或者mma7361传感器集成板而言,精确电位器在本设计的应用中具有很大的优势,更加节约简便。

在系统设计过程中,在满足要求的情况下,力求硬件线路简单,节约经济来实现本设计的要求。

同时也充分发挥软件编程方便灵活的特点。

在本次竞赛中,我们各自发挥各自的优点,经过辛勤的努力,从而使我们能优秀的完成作品。

同时我们也一起积极讨论问题,选择最终方案。

通过这次竞赛,我们理论联系实际,将电子方面的知识充分应用到了设计中,充分发挥的PIC单片机的功能,夯实了基础,提高了理论联系实际的能力,更提高了电子设计方面的综合能力。

此次大赛,对我们而言,不仅给我们提供了一次难得的检验自己的平台,而且充分锻炼了自己吃苦能力知识应用能力。

在以后的时间里,我们会继续我们电子设计的爱好,设计出更好的作品。

附录

电路原理图

源程序

#include<

pic.h>

stdlib.h>

__CONFIG(0x3F39);

voidDELAY(unsignedint);

chara,b;

signedchari,m=0;

unsignedintx=0,bb=75;

//x存放AD值,bb存高电平

floaty1,y2=2.46,y;

//z为最低点的角度值

//========主程序

main(void)

{

TRISA0=1;

//模拟口

TRISB=0;

RB0=0;

RB1=1;

//用到RB0=正反转,RB1=使能端低电平有效,电机驱动用

TRISC2=0;

//RC2/CCP1为输出

PR2=46;

//周期为1ms

ADCON1=0B10001110;

//右对齐,8Tosc,AN0模拟,其余数据

ADCON0=0B01000001;

//选择通道0

while

(1)

{

//AD

for(i=1;

i<

5;

i++)NOP();

ADGO=1;

while(ADGO==1);

ADIF=0;

x=ADRESH;

x=x<

<

8;

x|=ADRESL;

y1=(float)x;

y1/=1023;

y1*=5;

//测得电压值

y1=y1-2.46;

y1=y1/0.0187;

//此时Y为角度

y1=y1*100;

//放大100倍

x=(unsignedint)y1;

//公式换算

y=y1-y2;

y=abs(y);

//与前一次的比较,再取绝对值

if(y<

=0.01)RB1=1;

//关闭使能端,电压差小于0.02时电机不动

if(y1>

=y2)

{

RB1=0;

//打开使能端

if((y1-y2)<

=0.02)RB1=1;

if((y1>

3.02)&

&

(y1<

3.10)){RB1=0;

DELAY(10);

}

else{PR2=137;

RB0=1;

}//正转

if(y1<

y2)

//打开使能端

if((y2-y1)<

//关闭使能端

1.80)&

1.89)){RB1=0;

}*/

RB0=0;

}//反转

y2=y1;

//PWM输出控制

a=0b00000011&

bb;

a=a<

4;

b=bb>

>

2;

CCPR1L=b;

CCP1CON=0B00001100;

CCP1CON|=a;

//以a为底,把AD值付给PWM的高电平

T2CON=0B00000111;

//预分频为16

DELAY(15);

}

//======延时(n)ms

voidDELAY(unsignedintn)

{

unsignedintj;

chark;

for(j=0;

j<

n;

j++)

for(k=246;

k>

0;

k--)NOP();

附录3参考文献:

[1]江和.PIC16系列单片机C程序设计与PROTEUS仿真.清华大学出版社,1996

[2]王松武.电子创新设计.哈尔滨工程大学内部讲义,2002

[3]张有汉.电子线路设计应用手册.福建科学技术出版社,2000

[4]何希才.传感器及其应用.国防工业出版社,2001

[5]求是科技.单片机典型模块设计实例导航.人民邮电出版社,2004

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1