找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5850|回复: 1
收起左侧

旋转阶环形倒立摆方案说明书

[复制链接]
ID:288445 发表于 2018-3-6 22:15 | 显示全部楼层 |阅读模式
一阶环形倒立摆
方案说明书



目录  
1一硬件选择方案:  2
1 电机选择  2
2 电动机驱动模块  2
3 角度传感器选择  2
4 转速测量传感器选择  2
5 显示输出方案选择  3
6 输入方案选择  3
二              PID 控制原理介绍  4
1 PID 控制原理 4
2 本系统 PID 控制原理 10
三操作步骤说明  12
1本系统的主要硬件模块  12
2本系统的主要功能  13
3本系统的功能显示操作步骤  14
四 倒立摆系统硬件  17
1 倒立摆结构设计  17
2 系统原理框图  17
3 系统硬件原理图  18
4 控制模块  20
5 驱动模块  22
6 角度测量模块  23
7 转速测量模块  24
8 OLED 显示模块  27
9              电源模块  27
五 倒立摆系统软件设计流程  29
1主程序流程图  29
2主程序中主要函数流程说明  31
3按键的外部中断操作流程图  32
4各定时中断操作流程图  34
5串口中断作用流程图  35

链接:601 创新电子


.硬件选择方案:


1. 电机选择


减速电机:减速电机克服了普通直流电机扭矩小的缺点,而且价格较低,通过 PWM 控制 平均电流,较易控制其转速。

本系统选用的减速电机参数:

37GB-520直流减速电机参数
减速比
额定电压 v
空载电流 mA
转速 rpm
扭距 kg.cm
1:30
12
180
330
1.5



步进电机:步进电机的方案小店也试过,用 42 步进电机,在低速保持平衡时 TB6612 驱
动能力不够。用专用步进电机驱动模块,可以驱动,但电流非常大。57 步进电机未试。


2. 电动机驱动模块


采用 TB6560 电机驱动芯片

TB6560 内部集成双全桥 MOSFET 驱动,轮换效率较高,单路可提供约 1A 的电流,内 置温度保护芯片,具有过流保护。



3. 角度传感器选择


精密导电塑料电位器(目前采用的方案)

精密导电塑料电位器电路简单,利用 AD 测量出电阻分压值,即可推算出转过的角度。 且选择的处理器 STM32 自带 8 路 AD,所以符合本系统设计的要求。



光电编码器(接口已留下) 光电编码器精度高,数字脉冲输出,比较稳定。但价格较高。接口留下作为扩展。



4. 转速测量传感器选择


霍尔传感器。霍尔传感器是应用霍尔效应的一种磁敏传感器,用于电机测速,系统中 PID
调节时作为位置环参数。霍尔效应的原理就是在金属或半导体薄片两端通电流,并在垂






直于薄片的方向施加磁场,在垂直于电流和磁场方向向上将产生霍尔电压。


5. 显示输出方案选择


采用 OLED 显示器:OLED 显示器显示分辨率高,小巧易用。


6. 输入方案选择


独立按键输入。在输入量不多的情况下,独立按键输入编程简单,易于实现,是输 入的首选。本系统中实际用了 6 个独立按键:1个单个按键和 1 个五向按键。五向按键 如图 1.1 所示:



图 1.1 五向按键实物图 使用五向按键,可以方便的进行 OLED 菜单的上下移动,左右调节参数,按下确认。 串口输入。串口输入操作方便,可以同时输入较多参数,符合本系统设计要求 本系统使用了以上两种方案,可根据需要选择





二.   PID 控制原理介绍

1. PID 控制原理

采用理论建模的方法,在实际系统设计时会碰到很多问题。比如本系统中,各机械 连接间的摩擦力,减速电机齿轮的回程差等,这些参数都无法测得。

这种情况是需要控制的对象的参数不能完全的测量,不能得到完整的数学模型时, 需要根据经验和实践调试来确定参数。PID 控制技术就是用来测量不被完全掌控的系统 参数的。PID(比例(proportion)、积分(integral)、导数(derivative))通过线性组 合构成控制量,用这一控制量对被控对象进行控制,这样的控制器称 PID 控制器。

图 2.1 PID 控制原理图

首先必须明确 PID 算法是基于反馈的。一般情况下,这个反馈就是速度传感器返 回给单片机当前电机的转速简单的说,就是用这个反馈跟预设值进行比较,如果转速偏 大,就减小电机两端的电压(电流);相反,则增加电机两端的电压(电流)  。




PID 算法时,误差=输入预设值-测量反馈值
P,I,D 各自的含义及控制规律:

比例偏差值              ek=输入预设值-测量反馈值

比例 P:比例项部分其实就是对预设值和反馈值差值的放大倍数。 比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅 有比例控制时系统输出存在稳态误差(Steady-state error)。 举个例子,假如原来电机两端的电压为 U0,比例 P 为0.2,输入值是 800,而反馈值是

1000,那么输出到电机两端的电压应变为 U0+0.2*(800-1000)。从而达到了调节速度 的目的。显然比例 P 越大时,电机转速回归到输入值的速度将更快,及调节灵敏度就越 高。从而,加大 P 值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速 在预设值附近振荡的情形,所以又引入积分 I 解决此问题。


图 2.2  阶跃响应特性曲线 积分(I)控制              

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制

系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差 系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分 项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便 误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进 一步减小,直到接近于零。 因此,比例+积分(PI)控制器,可以使系统在进入稳态后几乎无稳态误差。

积分 I:顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进行 累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。当时要





将这个差值用积分项累加。当这个和累加到一定值时,再一次性进行处理。从而避免了

振荡现象的发生。可见,积分项的调节存在明显的滞后。而且 I 值越大,滞后效果越明 显。



图 2.3  积分作用响应曲线 积分环节主要是用来消除静差,所谓静差,就是系统稳定后输出值和设定值之间的

差值,积分环节实际上就是偏差累计的过程,把累计的误差加到原有系统上以抵消系统 造成的静差。

若将比例和积分两种作用结合起来,就构成 PI 调节器,调节规律为:

PI 调节器的输出特性曲线如图 3 所示





微分(D)控制
图 2.4 PI 调节器的输出特性曲线





微分 D:微分项部分其实就是求电机转速的变化率。也就是前后两次差

值的差。也就是说,微分项是根据差值变化的速率,提前给出一个相应的调节动作。可




见微分项的调节是超前的。并且 D 值越大,超前作用越明显,在误差接近零时,抑制误

差的作用就应该是零。可以在一定程度上缓冲振荡。比例项的作用仅是放大误差的幅值, 而增加 “微分项”,能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提 前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。 所以对有较大惯性或滞后的被控对象,比例+(PD)控制器能改善系统在调节过程 中的动态特性

系统偏差信号的变化率 e(t)-e(t-1),具有预见性,能预见偏差变化的趋势,产生超 前的控制作用,在偏差还没有形成之前,已被微分调节作用消除,因此可以改善系统的 动态性能。但是微分对噪声干扰有放大作用,加强微分对系统抗干扰不利。 积分和微 分都不能单独起作用,必须与比例控制配合。


图 2.5 微分作用响应曲线              图 2.6 PD 调节器的阶跃响应曲线 总之,比例调节依据“偏差的大小”来动作,它的输出与输入偏差的大小成比例。比例调 节及时有力,但有余差。在系统中起着稳定被调参数的作用; 积分调节依据“偏差是否存在”来动作,它的输出与偏差对时间的积分成比例,只有当 余差消失时,积分才会停止,其作用是消除余差; 微分调节依据“偏差变化速度”来动作,它的输出与输入偏差变化的速度成比例,其 效果是阻止被调参数的一切变化,有超前调节的作用,对滞后大的对象有很好的效果。


参数调整一般规则

由各个参数的控制规律可知,比例 P 使反应变快,微分 D 使反应提前,积分 I 使反应滞 后。在一定范围内,P,D 值越大,调节的效果越好。各个参数的调节原则如下:

PID 调试一般原则
a.              在输出不振荡时,增大比例增益 P。
b.              在输出不振荡时,减小积分时间常数 Ti。




c.              输出不振荡时,增大微分时间常数 Td。

•              PID 其实有点小小的智能,P 是对现在情况的应对,I 是对过去的记忆,D 是对未 来的预测。

•              P 是当下,在 3 个量里权重最大,是基础,因为毕竟要解决当下问题,要对当下 做出反应。PID 有时可以简化为 PI 或PD,但是从来没有见过用 ID 就能控制住 的例子。

•              I 是对过去的记忆,如果过去一段时间的曲线太高,就会自动将曲线整体下移, 反之亦然。至于记忆的时间窗口期有多长,与要调整的量变化速度有关。变化缓 慢的物理量时间窗口要长一些,如温度;变化迅速的物理量要短一些,比位置。

•              D 是对未来的预测,是对未来趋势的一种预测。变化迅速的物理量容易引起超调 或震荡,通过微分量预测上升的速度,从而对输出量进行适当缩小避免“冲过头”。 变化缓慢的量又太慢,D 可以适当推动调整速度。



Ziegler-Nichols 方法是基于系统稳定性分析的 PID 整定方法.在设计过程中无需考虑任 何特性要求,整定方法非常简单,但控制效果却比较理想.具体整定方法如下:

首先,置 Kd=Ki=0,然后增加比例系数一直到系统开始振荡(闭环系统的极点在
jω轴上);

再将该比例系数乘以 0.6,其他参数按照以下公式计算:
Kp              =              0.6*Km
Kd              =              Kp*π/4*ω
Ki              =              Kp*ω/π

上式中 Kp 为比例控制参数 Kd 为微分控制参数 Ki 为积分控制参数

Km 为系统开始振荡时的比例值;
ω为振荡时的频率




一般步骤:

确定比例增益 P

•              确定比例增益 P 时,首先去掉 PID 的积分项和微分项,一般是令 Ti=0、Td=0(具 体见 PID 的参数设定说明),使 PID 为纯比例调节。输入设定为系统允许的最大 值的 60%~70%,由 0 逐渐加大比例增益 P,直至系统出现振荡;再反过来,从此 时的比例增益 P 逐渐减小,直至系统振荡消失,记录此时的比例增益 P,设定 PID 的比例增益 P 为当前值的 60%~70%。比例增益 P 调试完成。

•              确定积分时间常数 Ti

比例增益 P 确定后,设定一个较大的积分时间常数 Ti 的初值,然后逐渐减小 Ti, 直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时 的 Ti,设定 PID 的积分时间常数 Ti 为当前值的 150%~180%。积分时间常数 Ti 调试完成。

•              定积分时间常数 Td

积分时间常数 Td 一般不用设定,为 0 即可。若要设定,与确定 P 和 Ti 的方法相 同,取不振荡时的 30%。

•              系统空载、带载联调,再对 PID 参数进行微调,直至满足要求。
PID 参数调节的顺口溜

参数整定找最佳, 从小到大顺序查。 先是比例后积分, 最后再把微分加。 曲线振荡很频繁, 比例度盘要放大。 曲线漂浮绕大弯, 比例度盘往小扳。 曲线偏离回复慢, 积分时间往下降。 曲线波动周期长, 积分时间再加长。 曲线振荡频率快, 先把微分降下来。 动差大来波动慢, 微分时间应加长。 理想曲线两个波, 前高后低四比一。 一看二调多分析, 调节质量不会低。







2. 本系统 PID 控制原理



本系统中用的是霍尔元件测电机的转速,从而推算出摆臂的位置环(位置 PD 参数);

用角度传感器测摆杆的角度,作为角度环(角度 PID 参数)。两组 PID 参数共同决定电 机驱动的 PWM 占空比。定时器 5 中断负责平衡位置 PID 调节。

void TIM5_IRQHandler(void)              //定时器 5 中断函数

{

if(TIM5->SR&0X0001)//溢出中断

{




pid();
setmoto(all_pwm);              //设置 pwm

}

TIM5->SR&=~(1<<0);

}

void pid_c(void)

{

angle0=Get_Adc_Average(2,12);              //读出角度值

ap_error=target-angle0;
ad_error=angle0-angle1;              //角度微分

if(abs(target-angle0)<300)

{

ai_error=ai_error+target-angle0;              //角度积分
all_pwm=kpa*ap_error+kia*ai_error/100-kda*ad_error;              //耦合后的 pid 调节

}

else              all_pwm=0;
angle1=angle0;              //锁值
nu++;              //给积分项限制次数,防止无限大

if(nu==200) ai_error=0,nu=0;

}




三.操作步骤说明


1.本系统的主要硬件模块

本系统的全套装置如图3.1所示:

图3.1 本系统的机械结构及各电路模块图 本系统的电路板采用模块插件式,主要模块请见图3.2,包括:

1) 12V4A开关电源
2) 底板;
3) 5V开关电源模块;
4) TB6612模块;
5) STM32F103RCT6小系统模块;
6) OLED模块;
7) 电机测速模块(用作位置环参数,固定在机械装置上)
8) 角度传感器模块(用作角度环模块,固定在机械装置上)






图3.2 本系统的主要硬件模块
图 3.3 控制电路实物图



2. OLED 菜单说明

目前 OLED 菜单共有两页内容,如图 3.4 和图 3.5 所示:




图 3.4 OLED 第 1 页菜单内容说明

可以通过 5 向按键上下键移动当前选择项,第 1 菜单中通过 5 向按键左右键增减参数值, 按中间键(第 1 页菜单需要长按 2 秒以上)锁定保存当前值。

3.本系统的主要功能
如果收到后想看一下倒立摆的功能演示,可以通过“启/停”及“五向按键”进行操作, 当前的功能有 3 个,见图 3.5








1) start :起摆倒立
图 3.5 OLED 第 2 页菜单内容说明




2) roll360 :旋转一圈
3) (旋转一圈功能必须在起摆倒立后才能完成)
4) LockAngle:记录当前摆杆角度位置作为平衡
5) func4:留作扩展用,目前无功能。


3.本系统的操作步骤

因为摆杆运输不方便,所以正常都是拆下发货。重新安装上后,需要校准平衡位置






角度。


校准平衡位置角度操作步骤:
1) 通过按“启/停”按键使能电机停止工作。此时右下显示OFF状态;
2) 将摆杆垂直向上置于平衡位置;
3) 通过按“五向按键”上下键,切换到OLED菜单第2页,选择LockAngle选项;
4) 按下“五向按键”中间键确认。
5) 将摆杆放下,即可进行其他操作。


校准平衡位置角度后,您可以进行下面的操作。 正常操作步骤:

上电后,OLED显示第1面菜单,为各PID参数值,注意右下的OFF状态,表示目前电机 驱动模块TB6612处于禁止工作状态,需要按下列步骤操作:

2) 上电后电机处于禁止状态,通过按“启/停”按键(见图3.3)使能电机驱动使 能。此时右下显示ON状态;

3) 通过按“五向按键”上下键,切换到OLED菜单第2页,选择相应功能; 目前的菜单操作功能有两项:

start:起摆 cycle:(原来标识为roll360):转圈 此外,起摆直立后,一直有抗扰动功能。

4) 按下“五向按键”中间键确认。即可执行相应功能。

5) 任何时候想停止电机工作,可按下“启/停”按键 说明:本系统的起摆的思路是让减速电机正向运动一定时间,形成一定摆角后,再反向 运动一定时间,一个来回便可竖立,进入平衡调节。



void function(void)//倒立摆中扩展功能1(起摆),功能2(摆臂旋转1圈)实现函数
{…
switch(func)
{
case(1):{

setmoto(-op1);delay_ms(t1);
setmoto(op2);delay_ms(t2);

}
}
}







图3.6 第2页菜单修改PID参数

如图3.6所示,通过五向按键修改PID参数后,长按中间键2秒以上,第一行会出现锁 定图标,表示参数被记录保存。


图3.6第2页菜单修改PID参数 如图3.6所示,将摆杆垂直向上放置平衡位置,然后通过五向按键选择”LockAngle”


选项,按5向按键中间键,可以重置平衡位置角度参数。此时第一行会出现锁定图标, 表示参数被记录保存。





四 倒立摆系统硬件

1. 倒立摆结构设计

系统中用的一阶旋转倒立摆机械结构为网上购买,机械结构包括:U 型夹座、支 撑杆、电机、过孔滑环、横梁、角度传感器及摆杆组成,如图 3‐1 所示。



图 3.1 实物图

其中,U 型夹座可以将整个系统方便的固定在桌面上。 过孔滑环在电机转动时起类似电刷的作用,可以有效避免信号线缠绕的情况。 摆杆直接与角度传感器的轴固定,通过带动轴的转动,改变角度传感器当前的分压

电压值。

2. 系统原理框图

一阶旋转倒立摆系统的原理框图如图 3‐2 所示: 控制模块控制转速测量模块及角度测量模块,得到当前电机的转动速度及摆杆所处

角度,通过 PID 算法计算出所要进行操作,控制电机驱动模块驱动电路加、减速,以及 是否反向旋转。当前的运动状态及 PID 参数在OLED 上显示。

系统的启动停止通过一个独立按键控制,具体 PID 参数的调节,可以通过连接底板 上的 5 向按键调节,也可以通过串口调试助手在电脑上输入参数。












3. 系统硬件原理图
图 3.2 倒立摆系统原理框图





表 3.1 系统资源分配表:

模块名称
所用端口
占用中断
说明
电机测速
(A6,PA7)
定时器 3
两路计数器,编码器模式。
接电机电路上两路霍尔元件脉冲输出
光电编码器

(A8,A9) (B6,B7)

备用


驱动模块
方向控制
A 路:(B4,B15)
B 路:(B12,B13)

(TB6612 只用到 A 路)
使能
A11


PWM
A 路:A3
B 路:B14(未用)
定时器 1
(TB6612 只用到 A 路)
角度传感器 AD
A2,B0(备用)
查询方式实现

串口通讯:
B10,B11


启动/停止
A12
外部中断 12


五向按键
A10
外部中断 10

A5
外部中断 5

A0
外部中断 0

A4
外部中断 4

A1
外部中断 1

系统板上测试按键
A0

与五向按键 A0 重合
OLED 显示
B8(clk),B9(data)
软件 IIC 实现
可以用硬件 IIC


定时器 5
正常 PID 调节间隔


定时器 6
旋转一周 PID 调节间隔




一阶环形倒立摆说明文档淘宝链接:601创新电子
图 3.3              连接底板电路图




19






本系统涉及的模块较多,详细模块的介绍见下面各节。各模块间的连接底板的电路如图

3-3 所示。PCB 板见图 3-4.

A.顶层视图              B.底层视图

图 3.4 连接底板 PCB 图 通过连接底板,将系统中各电路模块连接,保证系统能正常、稳定的运行。


  用导电塑料角位移传感器的一阶倒立摆,只需要接右边三脚,最左边 的一个脚接了 STM32 的 AD8,在扩展为二阶倒立摆时使用


  用光电编码器做角度传感器的一阶倒立摆,只需要接右边四个 脚,最左边的两个脚接了 STM32 的 PB6、PB7,在扩展为二阶倒立摆时使用




4. 控制模块

使用 ST 公司的 STM32F103RCT6 作为控制器。







图 3.5 STM32 单片机最小系统原理图

A.顶层视图              B.底层视图 图 3.6              STM32 单片机最小系统 PCB 图







5. 驱动模块

电机驱动芯片选择的是东芝半导体公司生产直流电机驱动芯片 TB6612FNG,其结构 为 MOSFET‐H 桥,能承受较大电流,有两个输出通道,输出两路 PWM 波,可以同时驱 动两路直流电机。驱动模块如图 3.6 所示:

图 3.7 电机驱动芯片实物图 TB6612FNG 每个通道输出最高 1.2A 的连续驱动电流; 启动峰值电流达 2A/3.2A(连续脉冲/单脉冲); 四种电机控制模式:正转、反转、制动、停止;

PWM 支持频率高达 100KHz; 片内低压检测电路和热停机保护电路; 工作温度:‐20~85℃;

SSOP24 小型贴片封装。
TB6612FNG 的引脚说明:
A 控制信号输入‐‐‐‐‐‐PWMA              VM ‐‐‐‐‐‐电机驱动电压输入端

A 电机输入端 2 ‐‐‐‐‐‐AIN2              VCC ‐‐‐‐‐‐逻辑电平输入端 A 电机输入端 1 ‐‐‐‐‐‐AIN1              GND ‐‐‐‐‐‐ 接地 正常工作/待机状态控制端‐‐‐‐‐‐STBY                            AO1 ‐‐‐‐‐‐‐ A 电机输出端 1

B 电机输入端 1‐‐‐‐‐‐BIN1              AO2 ‐‐‐‐‐‐ A 电机输出端 2
B 电机输入端 2‐‐‐‐‐‐BIN2              BO2 ‐‐‐‐‐‐ B 电机输出端 2

B 控制信号输入端‐‐‐‐‐‐PWMB              BO1 ‐‐‐‐‐‐ B 电机输出端 1 接地‐‐‐‐‐‐GND              GND ‐‐‐‐‐‐‐ 接地 TB6612FNG 功能表见表 3‐1。







表 3‐1 TB6612FNG 功能表




根据表 3‐1 所示,TB6612FNG 使用时注意其 STBY 引脚应接高电平。 本设计使用的 TB6612FNG 电机驱动模块原理图见图 3‐6:



图 3‐8              TB6612FNG 电机驱动模块原理图



6. 角度测量模块

本设计选用的角度传感器是 WDD35D4 角度传感器。这个传感器是一个精密可调电 阻,如图 3‐7 所示。中间抽头(2 脚)接数模转换器(ADC),根据 AD 转换器的值可判 断当前的角度值。








图 3.9              WDD35D4 角度传感器是实物图与原理图
WDD35D4 5K 线性 0.1% 导电塑料角位移传感器的性能参数
■ 电阻值:5K
■ 阻值公差:±15%
■ 独立线性:1%
■ 电气转角:345°±2°
■ 额定功耗:2W ( @70℃ )
■ 温度系数:400ppm/℃
■ 绝缘电阻≥ 1000MΩ ( 500V.D.C. )
■ 绝缘耐压:1000V ( AC.RMS )1min
■ 平滑性:±0.10%

通过直角支架将角度传感器固定在倒立摆横杆的顶端,转轴用机米螺丝固定倒立 摆的摆杆。电机转动带动摆杆摆动,摆杆带动角度传感器轴转动。滑动变阻器的阻值变 化,通过片上 AD 测得第 2 脚的分压值,可以推算出当前的角度值。

注意在系统启动之前,要确定摆杆竖立时,2 脚测得的分压值,以此作为平衡状态 的基本参数。系统机械结构固定好后,可以通过编程测试这一值。但本设计中采用通过 按键实时确定平衡位置的分压值,具体方法请见软件设计部分。

角度传感器接 STM32 的片上模数转换器 AD2 引脚。

7. 转速测量模块

系统中选用了开关式霍尔传感器 44E 和磁环作为测量电机转速的方式。选用的磁 环为 26 极充磁,每一对磁极通过霍尔传感器时,会产生一个脉冲。磁环测量图如图 3‐8 所示。







图 3.10 多极充磁磁环测量图

采用了霍尔传感器来测量磁环转动时带来的磁场变化,霍尔传感器前转过 1 对磁 极产生一个脉冲。当带动磁环转动的减速电机后轴转动一圈,一个霍尔传感器上可以产 生 13 个脉冲。而选用的直流减速电机的减速比为 1:30,所以电机前轴转动一圈,一个 霍尔传感器上可以产生 13*30=390 个脉冲。图 3‐9 所示的是增量式输出的霍尔编码器 模块,原理图如图 3‐10 所示。


图 3.11 霍尔测速模块实物              图 3.12 霍尔测速模块原理图 模块中采用了两个相位角相差 90 度的霍尔传感器来测量磁环转动时带来的磁场

变化,能过判断两个霍尔传感器的输出脉冲的先后关系得到电机转动的方向。 编码器输出 AB 相测速脉冲,输出方波相位存在 90 度相位差,如图 3‐11 所示。通

过判断相位可以确定电机的转向。给图中编码器电源提供 5V 电压,编码器 AB 相输出端
都接有上拉电阻,在电机转动时,单片机可以直接读取输出端的电压。





图 3.13 霍尔测速波形

编码器软件四倍频技术:以图 3.11 为例,常用的测速方法是 A 相或者 B 相的下降 沿进行计数,这样前轴转一圈,一个霍尔元件测得的计数值只有 390 个。而使用软件四 倍频技术,对霍尔元产生的脉冲采用沿触发。两个霍尔元,A 相和 B 相的上升沿和下降 沿个数都进行统计,测得的计数值就有 1560 个(390*4=1560 个)。这项技术可以将 编码器的精度提高 4 倍,这样减速电机前轴转一圈,编码器的输出脉冲可达四倍,对测 速精度的提高有很大帮助。



图 3.14 软件四倍频原理


图 3.15 电机测速模块接口


AO1,AO2 电机引脚




5V,GND:测速霍尔元件电源和地
Encode1, Encode2:电机后轴电路板上两路霍尔元件输出脚,接 STM32 的计数器引脚

8. OLED 显示模块

OLED 是有机发光二极管,又称有机发光半导体。OLED 显示与液晶显示的发光原理 不同,具有自发光、厚度薄、广视角、几乎无穷高的对比度、较低耗电、极高反应速度 等优点。本系统选用的显示模块是 9.6 英寸的 OLED 显示模块,点阵为 128*64,足够显 示各项相关信息。

显示模块的控制信号通信方式为 IIC 总线控制。OLED 显示模块实物如图 3‐13。如图 所示,该显示屏模块只有四个管脚,VCC 管脚是显示屏的电源正,可以接 3.3V 到 5V 的 电源,GND 管脚是 OLED 显示屏的电源地,SCL 管脚表示 OLED 的 IIC 时钟线,SDA 管脚 表示OLED 的 IIC 数据线。OLED 显示屏可以显示多种颜色,同时可以显示数字、字符、 汉字、图形,功能强大,使用方便。(由于进货批次不同,您收到的 OLED 可能是单色 的)



图 3.16 OLED 显示模块

9.              电源模块

本系统是采用 12V4A 的开关电源供电。电路中需要有三种电源电压:

1)              电机驱动电源,需要 12V 电压,所以开关电源直接连接到驱动芯片 TB6612 的电机 电源口;

2)              转速测量模块中,霍尔元件需要 5V 电压供电,12V 转 5V 是采用了一款商用开关电 源降压模块





3)              STM32 使用 3.3V 电压供电,这是将 5V 通过 ASM1117‐3.3 模块得到。




五. 倒立摆系统软件设计流程


本系统的控制软件是在Keil4中用C语言编写,是基于ST的库函数编写而成。程序特点 如图5.1所示:

图4.1 程序特点
STM32F103RCT6和ROM中程序外区域作为PID参数的存储区域,每次上电后会读入初 始的角度环PID,位置环PD,目标角度值,然后等待按键(中断方式)选择相应功能。




按下启停按键后,电机驱动芯片 TB6612使能。具体起摆、旋转一周、确

定平衡位置

1.主程序流程图

图 4‐1 主程序流程图
STM32F103RCT6和ROM中程序外区域作为PID参数的存储区域,每次上电后会读入初 始的角度环PID,位置环PD,目标角度值,然后等待按键(中断方式)选择相应功能。 按下启停按键后,电机驱动芯片TB6612使能。具体起摆、旋转一周、确定平衡位置
等功能需要通过五向按键选择第二页的功能并确认后,才具体执行。 系统初始化中,各个中断赋了不同的优先级:
              启停按键和5向按键用到外部中断(抢占优先级2)
              串口中断(抢占优先级0)
              定时器3中断:电机霍尔元件计数(抢占优先级0)
              定时器5中断:5秒中断,正常找平衡(优先级1)
              定时器6中断:转动一圈功能时用到(优先级1)




2.主程序中主要函数流程说明


图4‐2 Main函数中调用的function()函数所执行的功能






3.按键的外部中断操作流程图


图 4‐3 启停按键中断流程图

图 4‐4              OLED 页面 1 菜单中五向按键按下外部中断流程图







图 4‐5              OLED 页面 2 菜单中五向按键按下外部中断流程图






4.各定时中断操作流程图

图 4‐6 定时中断 5 处理程序流程图




图 4‐7 定时中断 6 处理程序流程图
注:为了执行旋转一周功能,不能使用位置环调节,因此关闭位置环调节。






此处只用到角度环测量摆杆角度,控制电机转动。

5.串口中断作用流程图




图 4‐7 串口中断处理程序流程图

注:串口数据协议格式:“kpa kia kda kpv kdv\n",数据间以空格分隔。 接收到数据后用atoi()函数提取数据。 STM32接收到数据如果并未保存,如要保存,须在第1页菜单内长按5向按键中间键2秒以 上。




完整的pdf格式文档51黑下载地址:
倒立摆说明汇总Ver2.5.pdf (3.44 MB, 下载次数: 21)


回复

使用道具 举报

ID:366035 发表于 2018-7-15 08:52 | 显示全部楼层
有附带的算法程序吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表