帆板控制系统设计报告.docx

上传人:b****8 文档编号:10508747 上传时间:2023-02-17 格式:DOCX 页数:45 大小:239.64KB
下载 相关 举报
帆板控制系统设计报告.docx_第1页
第1页 / 共45页
帆板控制系统设计报告.docx_第2页
第2页 / 共45页
帆板控制系统设计报告.docx_第3页
第3页 / 共45页
帆板控制系统设计报告.docx_第4页
第4页 / 共45页
帆板控制系统设计报告.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

帆板控制系统设计报告.docx

《帆板控制系统设计报告.docx》由会员分享,可在线阅读,更多相关《帆板控制系统设计报告.docx(45页珍藏版)》请在冰豆网上搜索。

帆板控制系统设计报告.docx

帆板控制系统设计报告

 

帆板控制系统设计报告(F题)

摘要:

该系统,以STC12C5A60S2单片机作为主控制器,产生PWM波,经过大功率功管IRF530芯片驱动电机让风叶转动,使帆板发生角度偏移,由角度传感器(型号WDJ22G—A6)将角度的变化转化为电压,然后经OP07放大器传送到单片机的P1.2口(即ADC口),通过单片机的A/D进行AD采样转换,对角度传感器采集到的电压进行分析和处理,转换成代表角度的数字信号,采集的信号最终由LCD12864显示。

此外系统还可以通过按键随时控制风力大小,使帆板固定在某一转角上,并有声光、语音提示,以便进行测试。

整个测量的分辨力为1度左右,绝对误差为1度。

 

关键字:

单片机、机械式角度传感器、PID,PWM

 

1系统方案论证及方案选择

2本系统软硬件设计

2.1单元硬件电路设计

2.1.1MCU系统及外围电路

2.1.2角度传感器信号采集电路设计

2.1.3直流电机风扇的驱动设计

2.1.4语音提示电路设计

2.2软件部分设计

2.2.1PWM波的产生

2.2.2STC12C5A60S2单片机AD转换的设计

2.2.3LCD液晶显示部分的设计

2.2.4帆板角度控制PID算法设计

3.系统连调及测试

3.1指标测试和测试结果

4.结论

参考文献

附录1原器件清单

附录2电路原理图及印制板图

附录3程序

 

1.系统方案论证及方案选择

1.1总体设计方案

题目要求设计一个帆板控制系统,通过对风扇转速的控制,调节风力的大小,改变帆板Ø,并能实时显示其转角大小。

设计主要由主控单片机STC12C5A60S2驱动直流电机,使风扇工作,带动帆板的转动,由角度传感器将偏移量进行电阻—电压的转换,转换结果通过运算放大器OP07进行传输,单片机的AD口对采集到的数据进行分析与处理,最后将转换的数字信号显示在LCD12864上,APR9600进行语音提示,当帆板角度到达所设定角度后,会进行提示,或者每变化多少度后进行一次提示。

图一

1.2方案论证与选择

1.2.1设计要求及思路

题目要求设计一个帆板控制系统,通过对风扇转速的控制,调节风力的大小,改变帆板Ø,并能实时显示其转角大小。

我们设计主要有主控单片机STC12C5A60S2控制直流电机(驱动芯片IFR530),使风扇工作,带动帆板的角度转动,由角度传感器将偏移量进行电阻—电压的转换,转换结果通过运算放大器OP07进行传输,单片机的AD口对采集到的数据进行分析与处理,最后将转换的数字信号在LCD液晶显示屏上显示。

1.2.2方案论证与选择

风扇转速控制系统的方案论证与选择

方案一:

以普通单片机为核心,配以外围电路。

采用AT89C52单片机,单片机模拟产生PWM,通过H桥及专用的驱动芯片。

如:

L298N驱动直流风扇,角度信号通过专用的数字芯片、光电编码器、旋转变压器、机械式角度传感器等,实现角度测量。

再配以LCD屏、数码管、TFT屏、点阵屏等实现控制信息以及数字信息的显示。

由于普通单片机功能有限,因此在使用时外围电路较复杂,所以在较短时间实现与完成稳定性、可靠性较差。

方案二:

以高性能的处理芯片,如ARM、DSP、FPGA等为核心、配以外围驱动电路。

高性能的处理芯片,处理速度比较快,片资源丰富,库函数丰富,软件编写方便。

但是价格贵。

分析本题,该系统的处理量并不是很大,所以我们不选择此方案。

方案三:

以中高档单片机为核心,配以外围驱动外围芯片组成的系统。

本系统的设计采用STC12C5A60S2单片机,其特点是高速、低功耗、超强抗干扰,指令代码完全兼容8051,速度快8—12倍。

部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒),针对电机控制,强干扰场合。

其部包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片R/C振荡电路等模块。

STC12C5A60S2单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。

同时价格不高,掌握较易。

基于这个特点我们选择这个芯片作为我们的控制核心。

角度传感器的选择与介绍:

数字式倾角(角度)传感器和单片机技术研制而成的现代智能化倾角测量仪器,广泛应用于测量平面和圆柱面对水平方向的倾角度,以及检验各种机床及其它设备工作台及导轨的平面度、直线度和垂直位置的正确度。

其特点精度高,使用方便,功能齐全,但不易调节,对调试造成困难。

机械式位移传感器,是一种以电压输出与轴旋转角度或直线位移为线性关系的非线绕电位器,其特点是高精度、高寿命、高平滑性、高分辨率。

可用作位置反馈、位置检测、电平调节等。

该传感器使用简单,稳定。

本方案就采用此传感器。

接线方式如下图。

接线方法

图二

通过分压获得含有角度信息的电压信号,再通过op07进行3倍放大,输入进STC12C5A60S2单片机的AD输入口。

本系统使用了本单片机的10位AD.

目前比较流行直流电机驱动及速度控制采用专用驱动芯片及大功率的晶体管组成的H桥实现。

分析本系统,只要求风扇旋转0-60度,所以我们采用了通过单管IFR530配以9014来实现直流风扇的驱动电路如下。

控制方式采用Pwm。

Pwm信号由STC12C5A60S2单片机的产生。

图三

显示部分有多种选择,如数码管、Lcd、点阵屏等,根据本题的特点,我们采用LCD12864来实现控制信息及测量数据的显示。

根据题目要求我们选择12v12W的不带调速的直流风扇。

二.

本系统软硬件设计

系统主要由单片机产生PWM信号,通过大功率的场效应管驱动直流风扇,对其的转速进行控制,使帆板偏离原来的方向,采用角度传感器记录偏移量并实现角度—电压的转换,将单片机处理结果在显示在LCD12864。

根据题目要求,我们的设计分硬件、软件两部分。

2.1单元硬件电路设计

2.1.1MCU系统及外围方案设计

因此单片机本身就具有AD口和PWM波的产生端口,所以在其外部进行采集数据时采用了它的AD十位数据存储器。

电机驱动直接采用单片机自身的PWM来驱动。

其原理图如下所示:

图四

2.1.2角度传感器信号采集电路设计

采用机械式角度传感器采集通过分压电路,实现电阻电压转换。

用OP07进行信号放大,再通过单片机自带的AD口送入单片机部,进行采集信号的处理,其电路如下:

图五

Op07放大电路及传感器信号转换电路

图六

 

2.1.3直流电机风扇的驱动设计

采用单管(IFR530)配以9013驱动电路如下图。

图七

2.1.4语音提示电路设计

APR9600进行语音提示,在到达所设定角度时进行相应提示。

我们采用的是语音模块。

电路如下图。

图八

2.2系统显示软件设计

本系统设计采用C51进行设计,目录结构采用树状结构,操作简单方便。

图九

 

2.2.1PWM波产生

STC12C5A60S2单片机集成了两路可编程计数器阵列,可用于软件定时器、外部脉冲的捕捉、高速输出以及脉宽调制(PWM)输出。

根据本题所需,我们采用他的脉宽调制输出,产生相应的PWM波形,用以进行直流电风扇的驱动。

其产生过程如下所述:

先对与其相关的寄存器和端口进行初始化,然后选择其工作模式和时钟源频率,并对捕获寄存器进行设定,因PWM的输出频率受其占空比影响,而占空比于其捕获寄存器有关。

最后将其按照相应的频率变化输出即可。

在PWM输出时对应的端口状态如下:

图十

其在单片机部进行的相关频率计算为:

PWM的频率=PCA时钟输入源频率/256。

相关数学计算如下:

U

t1t2t

电机的电枢绕组两端的电压平均值U为:

U=(t1*U)/(t1+t2)

=(t1*U)/T

=D*U

D=t/T

D为占空比。

占空比D表示了在一个周期T里开关导通的时间与周期的比值。

D变化围为0≤D≤1。

当电源电压U不变的情况下,输出电压的平均值U取决于占空比D的大小,改变D也就改变了输出电压的平均值,从而达到控制电机转速的目的。

2.2.2STC12C5A60S2单片机AD转换的设计

STC12C5A60S2自带AD转换端口,根据题目所需,我们使用其AD转换的十位寄存器。

在进行AD转换口应用时,先将其AD中断开启,再对其进行初始化,然后启动AD转换,在启动后进行相应延时,给以电压相应的缓冲时间。

然后才进行AD转换的信号采集。

当所采集的角度电压信号进入后,会自动存入AD存储器,将其从ADC_RES和ADC_RESL中取出后对其进行的相应转换计算如下:

θ=(5A/1023-3.75)/0.014。

其中θ为所要显示的角度,A为由AD口进入的角度电压数字信号,3.75为其基准电压。

在处理完后,将其发送至LCD显示模块显示。

2.2.3LCD液晶显示的设计

本系统采用LCD12864屏作为本系统的显示器,12864有两种显示模式,串行及并行两种方式,本系统采用串行通信,采用较少的单片机管脚。

液晶显示及树状目录分页是本系统设计的一大特色。

根据本题目要求,我们设计了人性化的开机及操作界面。

我们程序设计采用了C语言进行设计,我们都知道C语言基于过程的,但我们树状目录采用类似C++语言的面向对象的变成思路。

操作非常简单直观。

我们的显示部分的另一特色是充分发挥了单片机的定时器功能作用,把按键扫描、信息更新、菜单控制等都放到了定时器的中断里,使得控制、数据更新、按键响应及时准确。

2.2.4AD转化后信号处理及角度控制的PID算法设计

我们采用的是STC12C5A60S2自带AD进行模拟信号的转换处理,处理信号不是单片机擅长的,根据本题设计要求,我们在AD信号处理的过程中采用了信号放大100倍来提高信号精度。

对于本题中最后要求能再7-15cm随意位置,5秒实现设定角度的要求,我们设计我们的PID算法,算法框图如下:

 

图十一

分析此题本题是PID控制中最典型的一种,其算法简单。

但题目要求能再在5秒完成这一过程,这是本题的难点。

我们通过分析提出了继电器和PWM控制结合的思路。

主要思路是,通过控制继电器使风扇在1-2秒获得比较高的转速,然后通过PID算法控制风扇达到设定角度,实验证明此方法极大缩短了风扇提速时间。

并最终能再题目要求的时间达到设定角度。

 

3.系统测试

测试工具是符合国标的普通测角仪器

1、角度测量

测试有一定的误差,经过分析误差主要来之两个部分,帆船风帆的材料的选择

理论角度

测量值

10度

11度

15度

14.8度

20度

19度

30度

32度

40度

39度

50度

52度

55度

56.5度

60度

59.1度

2、调整给定角度PID测试

理论角度

测量值(单位/s)

10度

3s

15度

4s

20度

4s

30度

5s

40度

6s

50度

8s

55度

8s

60度

8s

系统性能分析与总结

4.系统测试

4.1指标测试和测试结果

4.1.1风扇转速系统的测试

4.1.1.1出现的问题:

电机驱动动力不足,帆板不能准确的到达设定的角度。

4.1.1.2出现问题的原因及解决方案:

原因:

经过分析后得出其原因是电机驱动电路的可承受功率有限,且风所吹得角度不是最好角度,当帆板有一定角度是,对帆板的作用力会相对减小。

所以很难达到设定角度。

解决方案:

经过讨论后最后在三个地方一起做修改,最终达到要求。

其三个地方是:

①在帆板的上方加上一定的配重,使其在到达一定角度,吹力减小的同时通过地球对配重的引力,利用跷跷板原理是帆板向上继续旋转,以此补偿风扇在帆板上所减少的吹力。

②把风扇的放置由水平放置改为带有一定倾角的放置,这样在帆板旋转一定角度后,风扇的吹力仍然可以保持不变。

③将电机驱动电路由原先的L298N驱动改为了由三极管和半导体功率管以及H桥驱动的电路。

这一修改增强了读懂电路的线性,易于调速的控制。

4.1.1.3最终结果:

在各项修改后将其结合起来,最终能够精确的控制电机的转速和帆板所需角度的稳定。

5.结论

完成的功能和达到的技术指标

序号

具体要求

实现情况

1

用手转动帆板时,能够数字显示帆板的转角Ø。

显示围为0~60°,分

辨力为2°,绝对误差≤5°。

可测角度为0~65度,分辨力为1度,绝对误差为1度。

2

当间距d=10cm时,通过操作键盘控制风力大小,使帆板转角Ø能够在

0~60°围变化,并要时显

示Ø。

在15cm可以实时显示角度。

3

当间距d=10cm时,通过操作键盘控制风力大小,使帆板转角Ø稳定在

45°±5°围。

要求控制过程在

10秒完成,实时显示Ø,并由声光

提示,以便进行测试。

可以控制其稳定在45度左右,并在角度到达后进行相应提示。

4

当间距d=10cm时,通过键盘设定帆板转角,其围为0~60°。

要求Ø在5秒达到设定值,并实时显示Ø。

最大误差的绝对值不超过5°。

可以进行相应的固定角度设置,并在限制围到达,进行语音提示。

5

间距d在7~15cm围任意选择,通过键盘设定帆板转角,围为0~60°。

要求Ø在5秒达到设定值,并实时显示Ø。

最大误差的绝对值不超过5°。

在7~15cm任意围在5秒实现达到的设定值最大误差绝对值不超过5°

 

6

其他。

实现了语音播报功能

 

参考文献

【1】黄智伟.全国大学生电子设计竞赛技能训练【M】.:

航空航天大学,2007.

【2】余凯.模拟电路基础与技能实训教程【M】.:

电子工业,2006.

【3】锡鹤.印制电路板电路设计实训教程【M】.:

科学,2005.

【4】余凯.数字电路基础与技能实训教程【M】.:

电子工业,2006.学,2007.

 

附录1主要元器件清单

单片机STC12C5A60S21个

直流电机DWJ36--21个

驱动芯片ULN20031片

集成运算放大器OP071块

液晶显示LCD128641个

附录2电路原理图及印制电路板图

图十二

图十三

附录3程序清单

主程序

//===================================================

//电子

//===================================================

//新板复示器

//2010,7,10

//===================================================

#include

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

 

voidmain(void)

{

uchari,adv;

PWM_NUM=0;

init();

initpwm();

P1M1=0x00;P1M0=0xf0;

pulse_0(255);

ad_inint();

//adpro();

Menu=Open_view;

Disp_View(Menu);

wait(5000);

Menu=Zhuanjiaodisp_view;

Lcm_Clear();

Disp_View(Menu);

wait(5000);

wait(5000);

wait(5000);

wait(5000);

for(adv=0;adv<10;adv++)

{

adpro();

Zero_V[adv]=(longfloat)(adbuf)*5/1023;

}

for(adv=0;adv<10;adv++)

{

Zero_Vsum+=Zero_V[adv];

}

Zero_V0=Zero_Vsum/10;

while

(1)

{

key_Deal();

led=~led;

beep=~beep;

DelayMs(1000);

}

}

子程序

voidDelayMs(ucharms)

{

uintj;

while(ms--)

{

for(j=0;j<125;j++);

}

}

voidPWM_clock(ucharclock)

{

CMOD|=(clock<<1);

CL=0x00;

CH=0x00;

}

voidpulse_0(unsignedcharp_on)

{

CCAP0L=p_on;

CCAP0H=p_on;

CCAPM0=0x42;}

voidpulse_1(unsignedcharp_on)

{

CCAP1L=p_on;

CCAP1H=p_on;

}

voidinitpwm(void)

{

motor0=0;

motor1=1;

PWM_clock

(1);

CR=1;

}

3.2.2主界面显示及功能选择:

ucharkeybuf,keyscanreg,keyin_num;

ucharPWM_NUM;

uintTime_Flash;

#defineGong_Neng0x07

#defineESC0x0b

#defineUP0x0d

#defineDOWN0x0e

ucharMenu,uLMenu;

#defineOpen_view0x01

#defineNor_view0x02

#defineZhuanjiaodisp_view0x03

#defineTiaozhengfeng_view0x04

#defineJiaoduyanshi_view0x05

#defineShedingjiao_view0x06

#defineJianju_JiaoTiao_view0x07

#defineAngle_Disp_view0x08

#defineFengsu_Adj_view0x09

#defineJiaodu45_Disp_view0x10

#defineSheZhiJiaodu_Disp_view0x11

//////////////pwm部分//////////////////////

//sbitmotor=P1^3;

sbitmotor0=P1^1;

sbitmotor1=P1^2;

//////////////////////延时子程序/////////////////////////////

voidDelayMs(ucharms)时

{

uintj;

while(ms--)

{

for(j=0;j<125;j++);

}

}

 

voidPWM_clock(ucharclock)

{

CMOD|=(clock<<1);

CL=0x00;

CH=0x00;

}

voidpulse_0(unsignedcharp_on)

{

CCAP0L=p_on;

CCAP0H=p_on;

CCAPM0=0x42;

}

voidpulse_1(unsignedcharp_on)

{

CCAP1L=p_on;

CCAP1H=p_on;

}

voidinitpwm(void)

{

motor0=0;

motor1=1;

PWM_clock

(1);

CR=1;

}

/////////////////////////////////////////

wait(uintdat)

{uintdatai,j;

for(j=0;j

{i=220;while(i!

=0)i--;}

}

//=========================================

//液晶显示命令

//=========================================

voidsendbytelcd(ucharwlcddata)

{uchardatai;

for(i=0;i<8;i++)

{if((wlcddata<

elselcd_sid=0;

lcd_clk=0;lcd_clk=1;}

}

sendcmd(ucharcmd)

{lcd_cs=1;

sendbytelcd(0xf8);

sendbytelcd(cmd&0xf0);

sendbytelcd((cmd<<4)&0xf0);

lcd_cs=0;wait(3);

}

senddata(ucharodata)

{lcd_cs=1;

sendbytelcd(0xfa);

sendbytelcd(odata&0xf0);

sendbytelcd((odata<<4)&0xf0);

lcd_cs=0;wait

(1);

}

lcd_init()

{

P3M1=0x00;P3M0=0xff;

lcd_rst=0;wait(10);lcd_rst=1;

sendcmd(0x30);sendcmd(0x0c);

sendcmd(0x01);sendcmd(0x02);

sendcmd(0x80);sendcmd(0x04);

sendcmd(0x0c);

}

//========================================================

voidLcm_Clear(void)

{

uchardatai,j;

j=0x80;

for(i=0;i<32;i++)

{sendcmd(j);j++;

senddata(0x20);senddata(0x20);}

}

 

//========================================

cpu_init()

{P0=0x00;//

P2=0xf0;//

P1=0x78;//

P3=0xf7;//

IP=0x10;//

TMOD=0x11;//

TH0=c_timer0_h;

TL0=c_timer0_l;

TH1=c_timer1_h;

TL1=c_timer1_l;

PCON=0x00;

SCON=0xf0;

TCON=0x50;

IE=0x92;

EA=1;

ET0=1;

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

当前位置:首页 > 求职职场 > 职业规划

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

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