第10题 简易旋转倒立摆及控制装置.docx
- 文档编号:8012607
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:14
- 大小:187.16KB
第10题 简易旋转倒立摆及控制装置.docx
《第10题 简易旋转倒立摆及控制装置.docx》由会员分享,可在线阅读,更多相关《第10题 简易旋转倒立摆及控制装置.docx(14页珍藏版)》请在冰豆网上搜索。
第10题简易旋转倒立摆及控制装置
青岛大学
电工电子实验教学中心
全国大学生电子设计竞赛
简易旋转倒立摆及控制装置
(C题)
12组:
殷凯李健李文超
2015年8月10日
简易旋转倒立摆及控制装置(C题)
摘要
本设计基于增强型STM32F103ZET6单片机,驱动步进电机带动旋转臂转动,实现摆杆的起摆、圆周运动、倒立、抗外力稳定等要求。
系统硬件包括TB6600电机驱动模块、57BYG250C步进电机模块、WDD35D4角度测量模块以及按键选择与接口模块,软件采用PID算法进行调节,在旋转过程中,角度传感器实时检测并反馈角度信号给单片机,单片机采样后通过PID算法实现对摆杆角度的闭环控制。
经测试,基本部分和发挥部分均可实现,本设计的创新性在于通过蓝牙调节PID参数。
关键词STM32步进电机角位移传感器PID算法
Abstract
ThedesignbasedontheenhancedSTM32F103ZET6microcontroller,drivenbythesteppermotortodrivetherotationofthearm,theswingrodtoachievetheswing,thecircularmotion,theinverted,externalforcestabilityandotherrequirements.SystemhardwareincludesTB6600motordrivermodule,57BYG250Csteppingmotormodule,WDD35D4anglemeasurementmoduleandkeyselectionandinterfacemodule.ThesoftwareadoptsPIDalgorithmtoadjust.Intheprocessofrotation,theanglesensorcandetectandfeedbacktheanglesignal.Aftertesting,thebasicpartandplaypartcanberealized,thedesignofinnovationistoadjustthePIDparametersthroughbluetooth.
KeywordsSTM32SteppermotorAngulardisplacementsensorPIDalgorithm
目录
1系统方案1
1.1系统结构1
1.2方案比较与选择1
1.2.1主控制器的比较与选择1
1.2.2电动机的比较与选择1
1.2.3电机驱动的比较与选择1
1.2.4角度测量的比较与选择2
2理论分析与计算2
2.1电动机的选型2
2.2摆杆状态监测3
2.3控制算法3
3电路与程序设计4
3.1电路设计4
3.1.1角度测量电路4
3.1.2稳压电路4
3.1.3按键及接口电路5
3.2程序结构与设计5
4测试结果及分析5
4.1测试仪器5
4.2测试方法5
4.3测试结果6
4.3.1基本要求的测试与结果6
4.3.2发挥部分的测试与结果6
4.4结论6
5总结与体会6
6参考文献7
附录7
1系统方案
1.1系统结构
本系统在STM32F103ZET6单片机控制下,利用TB6600电机驱动步进电机、电位器角度测量、按键功能选择实现对倒立摆的各项控制操作。
通过按键选择所需完成的功能,单片机驱动电机实现对摆杆的控制,摆杆的变化会引起电位器的改变,将此变化数值传送给单片机内部A/D转化成相应的角度,通过PID反馈控制实现系统的相对稳定。
系统结构如下:
图1系统结构图
1.2方案比较与选择
1.2.1主控制器的比较与选择
方案一:
采用超低功耗混合信号微控制器MSP430G2553为主控制器,带内部基准、采样与保持以及自动扫描功能的10位200-ksps模数(A/D)转换器,时钟频率为32kHz,24个支持触摸感测的I/O引脚以及采用通用串行通信接口的内置通信能力。
方案二:
采用STM32单片机为主控制器,具有72MHz的CPU工作频率和很强的运算能力,更快的运算速度,且自带有3个12位模数转换器(多达21个输入通道),转换时间仅为1μs,2通道12位D/A转换器。
具有512K字节的闪存程序存储器,高达64K字节的SRAM。
经比较,本设计需要较快运算速度完成对摆杆的控制,实现摆杆更快、更稳定的达到倒立状态,故采用方案二为主控制器。
1.2.2电动机的比较与选择
方案一:
采用步进电机,步进电机是将电脉冲信号转换成角位移的精密执行元件,工作在开环状态,可实现物体的精确定位和方向的控制。
电机旋转角度正比于脉冲数,有比较宽的转速范围;每步的精度在3%到5%,而且不会将一步的误差积累到下一步,有较好的位置精度和运动的重复性;但如果控制不当容易产生共振,可细分驱动解决此问题。
方案二:
采用直流伺服电机,优良的调速特性,调速平滑、方便、调整方位宽;过载能力强。
但直流伺服电机工作在闭环状态时相对于开环状态要增加很多检测元件,使电路复杂,而且直流伺服电机价格昂贵,成本高。
经比较,采用方案一作为电动机的选择方案。
1.2.3电机驱动的比较与选择
方案一:
采用TB6600驱动电路,是32细分两相步进电机驱动,单位脉冲步距角=电机固有步进角/细分数,故4细分时的步距角为:
第1页,共7页
输出电流0.5-4.0A,可实现正反转控制,能达到低振动、小噪声、高速度的效果,有大面积散热片不惧高温环境使用,抗高频干扰能力强。
方案二:
采用L298N驱动电路,内部含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
PWM配合桥驱动电路L298N,实现直流电机调速,调速范围大,但L298N在驱动大功率电机时发热较严重容易烧坏芯片。
经比较,采用方案一作为电机驱动的选择。
1.2.4角度测量的比较与选择
方案一:
采用电位器式的角度传感器。
这类传感器线性精度高且稳定,温度系数小,而且输出量是绝对式的,使用前不需要额外的校准调零,成本较低,通过电阻的分压实现对摆杆角度的测量,易于实现。
方案二:
采用加速度式的角度传感器。
这类传感器依靠测重力加速度在某个轴上的分量测得角度。
只有读取重力加速度在某个轴上的分量a,通过
就可以计算出θ角。
这类传感器只适合测量静态的角度,在有振动或转动的场合下会引入额外的加速度,使得测量不准确。
方案三:
采用增量式编码器,这类传感器输出信号为两路正交的矩形波,通过单片机的正交编码器接口即可得到一个相对的角度,测量的精度取决于光栅码盘上的线数。
但计算复杂且存在累计误差。
经比较,采用方案一作为角度测量的方案。
2理论分析与计算
2.1电动机的选型
当旋转臂转动时,旋转臂一端安装着角位移传感器和摆杆,其质量不可忽略。
若要使摆杆从零度状态变成竖立状态,需克服摆杆和角度传感器产生的惯性矩
,从而使电机急停或回转,电机旋转状态分析如图2所示:
M2
M1
图2电机旋转简化图
根据公式:
(2-1)
第2页,共7页
其中
是电机功率,
是电机转速,
为电机正常工作时输出的转矩,
为角位移传感器和摆杆产生的惯性矩。
由式(2-1)式可知:
可得转速一定情况下,选择的电机,功率越大越好。
步进电机57BYG250C转矩可满足要求。
相数
(相)
步距角
(°)
静态电流
(A)
相电阻
(Ω)
保持转矩
(N/m)
定位转矩
(N/m)
转动惯量
(gcm2)
2
1.8
1.5
1.5
1.0
0.04
200
2.2摆杆状态监测
本系统采用对5k精密电位器WDD35D4的分压来实现对摆杆角度状态的检测。
摆杆处于自不稳定状态,为使其达到倒立状态并稳定一定的时间,需要对角度不断进行检测。
摆杆受力如图2.2。
该电位器独立线性度为±0.5%,阻值误差为15%。
系统工作转动时会产生相应的热量,其电阻温度系数为±0.04%/℃,受温度影响极小,对系统误差影响可忽略。
该检测原理为将滑动一端接到单片机A/D进行采样,可得电阻比,从而获得角度。
根据5kΩ/360°=13.9Ω/°可得,若转过90°则为55.6°。
X
X
图3摆杆受力示意图(另一方向相反,略)
2.3控制算法
PID算法:
是在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器),是应用最为广泛的一种自动控制器。
PID控制器具有提高系统稳定性能的优点,多提供一个负实零点,在提高系统性能方面具有更大的优越性。
I部分发生在系统频率特性低频段,提高系统稳定性能;D发生在系统频率的中频段,改善系统动态性能。
它结构简单,软硬件实现方便,便于调节,有较好的控制效果并且对模型误差有较好的鲁棒性。
图4倒立摆的PID控制框图
LQR算法:
LQR(linearquadraticregulator)即线性二次型调节器,其对象是现代控制理论中以状态空间形式给出的线性系统,而目标函数为对象状态和控制输入的二次型函数。
LQR最优设计是指设计出的状态反馈控制器K要使二次型目标函数J取最小值。
LQR理论是现代控制理论中发展最早也最为成熟的一种状态空间设计法。
特别可贵的是,LQR可得到状态线性反馈的最优控制规律,易于构成闭环最优控制。
而LQR需要控制两个矩阵,
第3页,共7页
调节Riccati方程:
PA+ATP-PBR-1BP+Q=0和确定Q和R权矩阵,计算代价高,响应时间较长。
图5倒立摆的LQR控制框图
经比较,我们使用更为成熟、算法相对简单、易于实现的PID算法,其运动方程为:
(2.2)
调节式(2.2)中参数Kp,Ti,τ的值来使摆杆完成各项指标。
3电路与程序设计
3.1电路设计
3.1.1角度测量电路
图6WDD35D4角度测量电路
(“1”=传感器的零相位。
“2”=传感器的输出端,“3”=传感器的输入端)
电位器活动点与摆杆相连,接基准电压,在摆杆转动时其对电压的分压比也在改变,每转过一个角度可产生一个阻值,将此值输入至单片机A/D转化为角度值。
题目中0°处为电位器的一块极小的非线性区,其初始值为0V,终值为3.3V,其他区域为线性区域,对应电压在0~3.3.V变化。
3.1.2稳压电路
第4页,共7页
图7稳压电路
此电压模块可产生+12V,-12V,+5V,-5V及一个0.8V~30V可变电压。
分别使用LM7812,LM7912,LM7805,LM7905及MP1584芯片配合0.1uf外围电容改善电压调整的过渡响应及100uf负载电路退耦电容对负载提供一个端距离的本地回路,来产生相应的电压值。
3.1.3按键及接口电路
矩阵按键可节约I/O口且相对美观,但软件编程较为复杂,适用于按键较多的场合。
独立按键每一个按键需要一个I/O口,利用率低,但编程简单,适用于按键较少的场合。
本设计只需要7个按键,因此采用独立按键。
接口电路中,单片机输出PUL步进脉冲,DIR方向与电机驱动相连。
为满足输出电平实现3.3V向5V转变,将输出级电路转换为漏极开路输出门电路,即OD模式,使用上拉电阻实现系统信号电平转换。
其中RL阻值范围计算公式为:
RL≤(VDD-VOH)/(nIOH+mIIH)=RL(max)
RL≥(VDD-VOL)/(IOL(max)-m’|II|)=RL(min)L
RL(max)≥RL≥RL(min)
根据STM32F103ZET6数据手册可得,IOH为8mA,IIL为20mA,计算得RL的阻值范围为600~11k范围内,取RL为10k作为此电路的上拉电阻。
3.2程序结构与设计
程序及框图见附录。
4测试结果及分析
4.1测试仪器
仪器名称型号
数字示波器DSCO-X2002A
直流稳压电源SK1731
台式万用表Agilent34401A
倾角测量仪HT-QJY01
高精度秒表DM1-1702
光电式测速仪MSE-V320
4.2测试方法
系统硬件方案完成后,进行各模块电路搭建,再对各模块进行功能验证,各硬件模块测试通过后编写各软件模块。
最后进行系统联调,按照题目要求测试整体功能并调整参
第5页,共7页
数,填写测试表格并撰写设计报告。
4.3测试结果
4.3.1基本要求的测试与结果
软件调试无误后对搭建好的系统供电,摆杆从处于自然下垂(摆角0°)开始,驱动电机带旋转臂作往复旋转使摆杆动,观察并并记录:
(1)摆角达到或大于60°的时间;
(2)完成圆周运动的时间;
(3)外力拉起摆杆至接近165°位置,外力撤除同时,控制旋转臂使摆杆保持倒立。
测试结果如下:
测试一
测试二
测试三
测试四
测试五
摆角≥60°
0.21s
0.19s
0.20s
0.22s
0.18s
圆周运动
2.7s
2.5s
2.6s
3.0s
2.7s
倒立状态
7.2s
6.9s
7.0s
6.9s
7.3s
旋转臂转过角度
62°
61°
65°
71°
61°
经测试,系统工作正常。
4.3.2发挥部分的测试与结果
软件调试无误后对搭建好的系统供电,观察并记录以下结果:
(1)从摆杆处于自然下垂状态开始,控制旋转臂作往复旋转运动,尽快使摆杆摆起倒立,保持倒立状态时间;
(2)在摆杆保持倒立状态下,施加干扰后,摆杆状态;
(3)在摆杆保持倒立状态的前提下,旋转臂作圆周运动,单方向转过角度≥360°的时间。
测试结果如下:
测试一
测试二
测试三
测试四
测试五
倒立状态所用时间
8.7s
9.4s
8.8s
9.1s
9.3s
倒立状态保持时间
55s
57s
51s
59s
56s
干扰后状态
0.8s
0.8s
0.9s
0.7s
0.8s
单方向转过角度
390°
378°
379°
386°
389°
单方向转过用时
10s
9s
10s
12s
9s
经测试,系统工作正常。
4.4结论
根据测试结果分析,本系统可实现题目的各项要求,并在其基础上加以改进,能够使倒立摆有更短达到平衡的过渡时间以及更长的稳定状态的时间,基础部分与发挥部分都良好实现。
5总结与体会
第6页,共7页
本系统通过PID算法实现二阶旋转倒立摆的起摆和平衡,通过此次的设计可以看出,数字控制系统方便、灵活,是以后自动控制系统发展的趋势。
由于时间仓促,水平有限,步进电机性能不足,未能实现全部要求,仅完成基础要求和发挥部分的理论分析,我们会继续努力提高自己的知识水平,继续完善这次的设计。
6参考文献
[1]吴运昌.模拟电子线路基础[M].广州:
华南理工大学出版社,2004.
[2]李建忠.单片机原理及应用[M].西安:
西安电子科技大学,2002.
[3]胡寿松.自动控制原理[M].北京:
科学出版社,2007.
[4]梁昔明.LQR控制与PID控制的对比研究[J].北京:
自动化技术与应用,2007.
[5]阎石.数字电子技术基础[M].北京:
高等教育出版社,2004.
附录
s32SYS_PID(floatdesire,floatnow){
floaterror;
s32result;
error=now-desire;
TOTAL+=error;
if(TOTAL>193000)TOTAL=193000;
if(TOTAL<-195000)TOTAL=-195000;
result=(int)(PID_P*error);
result+=(int)(PID_I*TOTAL);
result+=(int)(PID_D*(error-LAST));
LAST=error;
returnresult;
}
voidTIM_SPEED(s32speed){
if(speed>100&&speed<100000){
GPIO_WRITE(A,3,0);
TIM_SetAutoreload(TIM3,1000/speed);
}
elseif(speed<-100&&speed>-100000){
GPIO_WRITE(A,3,1);
TIM_SetAuto(TIM3,-1000/speed);
}
elseTIM_SetAutoreload(TIM3,0);
}
voidTIM3_IRQHandler(void){
GPIO_WRITE(A,3,1);
GPIO_INVERSE(A,2);
TIM_ClearITPendingBit(TIM3,TIM_Update);
}
第7页,共7页
voidSysTick_Handler(void){
staticu32TICK_Count=0;
if(++TICK_Count==100){
GPIO_INVERSE(A,3);
TICK_Count=0;
}
if(DIRECT==0){
STEP+=250;
if(STEP>10000)DIRECT=1;
}
else{
STEP-=250;
if(STEP<-10000)DIRECT=0;
}
TIM_SPEED(STEP);
floatangle=ADC_GET()/11.375;
s32temp=SYS_PID(180,angle);
if(temp>0)GPIO_WRITE(A,3,1);
elseGPIO_WRITE(A,3,0);
TIM_SetAutoreload(TIM3,1000/temp);
if(angle-180 elseGPIO_WRITE(C,0,0); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10题 简易旋转倒立摆及控制装置 10 简易 旋转 倒立 控制 装置