简易旋转倒立摆及控制装置 
摘要:本系统采用 STM32F405 单片机作为控制核心,通过角度传感器检测倒立
摆摆杆的位置状态,基于能量反馈控制原理调节直流电机,直流电机带动旋转臂
驱动摆杆,实现简易倒立摆的起摆功能。倒立摆起摆后,采用线性二次型最优控
制算法对倒立摆进行控制,稳定倒立摆的倒立状态。测试表明,本系统各项功能
都已达到或超过本题目要求。 
关键词:旋转倒立摆;能量反馈控制;线性二次型最优控制(LQR) 
一、  方案论证与比较 
1.  系统结构 
本系统主要由旋转倒立摆机械装置、摆杆角度检测部分、直流伺服电机以及
控制器部分组成,其中旋转倒立摆装置机械结构主要由旋转臂、摆杆和机座等组
成。系统整体框图如图 1 所示。 
电机驱动
显示模块
直流伺服电机
主控制器
STM32F405
键盘模块
带动
旋转臂
带动
摆杆
摆杆角度检测
图 1 系统整体框图 
旋
转
倒
立
摆
装
置
 
2.  电机选择方案 
方案一:使用步进电机带动旋转臂转动。步进电机控制算法简单,对步进电
机施加连续激励信号可以驱动步进电机实现连续转动。 
方案二:使用可 360 度控制的数字舵机带动旋转臂转动。数字舵机控制简单,
输出力矩大,位置控制精准。 
方案三:使用直流伺服电机带动旋转臂转动。直流伺服电机只要有驱动电压
即能实现连续的转动,配有编码盘的直流电机配合合适的电机控制算法能实现精
准的速度和位置控制,能够驱动旋转臂部分精确转动。 
方案一和方案二的电机控制都很简单,但本系统需要具有高响应速度的电机
带动旋转臂,普通的步进电机和数字舵机响应速度都不快,而同样价位的直流电
机可以达到很好的响应速度。经比较,本系统使用直流伺服电机作为旋转臂的旋
1 
 
转控制元件。 
3.  摆杆状态检测方案 
为了准确检测摆杆的角度、角速度状态,需要正确选择传感器。 
方案一:使用高分辨率编码盘作为角度位移传感器。该种传感器使用简单,
直接对输出脉冲进行计数即得到当前的角度位移,对角度位移做微分运算即得到
摆杆角速度。 
方案二:采用惯性测量元件陀螺仪检测摆杆的角速度,加速度计检测摆杆的
角度,采用 MEMS 的陀螺仪和加速度计芯片能使传感器体积最小化,便于安装。 
方案三:基于绝对位置测量,具有模拟电压输出的角度传感器。该种传感器
线性度好,灵敏度高。同样对测量得到的角度位移做微分运算即得到摆杆角速度。 
  要准确检测摆杆角度,需要分辨率高的传感器元件,分辨率高的编码盘成本
较为昂贵;由陀螺仪和加速度计测量得到的数据需要进行复杂的数据融合和零点
校准,算法复杂。而成本较低的方案三的角度位移传感器可以达到同样的精度输
出,性价比较高,因此本系统采用方案三。 
二、  理论分析与计算 
1.  旋转倒立摆模型 
旋转倒立摆的物理模型如图 2 所示: 
  其中 θ1 和 θ2 分别为旋转臂转角和摆杆转角,l1 和 l2 分别为旋转臂长度和摆杆
长度。 
z'
2
摆杆
l2
角度
传感器
z
O
x
1
l1
电机
y
旋转臂
图 2 旋转倒立摆物理模型示意图 
 
  本系统的旋转倒立摆机械部分有关物理参数如下表所示: 
表 1 倒立摆物理参数表 
参数 
旋转臂质量 m1 
参数 
取值 
206.7g  摆杆质量 m2 
取值 
88g 
 
2 
角度传感器质量 m3  138.1g 
15cm 
旋转臂长度 l1 
0.18N·m·s  电机反转电势系数 Ke 
电机力矩系数 Km 
摆杆长度 l2 
 
 
20cm 
0.00778N·m·s 
2.  电动机选型 
本系统选用直流电机作为控制装置的执行元件,由于直流电机需要带动旋转
臂、转轴和摆杆等负载进行转动,因此直流电机的输出扭矩必须大于要带动负载
进行高速转动时所需要的力矩。 
直流电机为了能带动负载进行高速转动,其空载转速必须大于带动负载进行
转动的最高速度并留有足够的裕量。 
计算得到本系统转动臂、角度传感器及连轴部分和摆杆相对于电机转轴的转
动惯量 
J
2
m l
1 1
12
(
2
m m l
)
1
2
3
0.0097kg m
2
  
 
 
 
 
 
    ……公式(1) 
在题目要求摆杆偏移竖直方向±15°时,为了抵消摆杆在水平方向受到的重
力加速度影响,旋转臂施加给摆杆的最小加速度为 
a m g
2 sin15
 
0.2232 /
m s
2
                              ……公式(2) 
则电机驱动旋转臂的最小角加速度为 
a
l
2
1.116
rad s
/
2
                                    ……公式(3) 
下面估算电机所需的最小转速。假设在摆杆偏移竖直方向±15°时,在合理
情况下,电机以 βm=1.5β 的角加速度去调整摆杆的姿态,则摆杆在恢复到竖直状
态时所需要的最大时间为: 
T
2
0.5
0.9687
s
                                    ……公式(4) 
在此期间,电机转速从 0 变化到
 
T
1.6216
rad s
/
 
即电机最小需要 60/2π*ω=15.48rpm 
则电机需要的最小转矩为 
I
J 
1.5
0.3752kg m
2
                               ……公式(5) 
根据该条件,我们选取了 MAXON 公司的 RE25 系列 24V 的直流电机,其空
载转速为 536rpm,转矩为 0.511 kg·m2,足以满足本系统的性能需求。 
3.  摆杆状态检测 
 
3 
系统需要控制摆杆稳定处于倒立状态,且对旋转臂的位置有要求,因此需要
准确检测摆杆的角度 θ2、角速度 ω2 和旋转臂的角度 θ1、角速度 ω1。 
本系统选用模拟电压输出的角度位移传感器作为摆杆角度检测元件,直接测
量得到摆杆的角度 θ2。由于控制算法需要摆杆的角速度,在采样时间ΔT 足够小
时,有: 
  
2
  
2
2
2
 
2
n
T
n
1
                                                                    ……公式(6) 
其中, 2n
 为时刻 n 时 2 的值,
12n
为时刻 n-1 时 2 的值。 
同样对于旋转臂的角速度也可按照公式(6)处理。 
利用上述方法即可完全确定摆杆状态。 
4.  驱动与控制算法 
(1)旋转倒立摆的数学模型 
忽略旋转臂和摆杆绕轴转动的阻尼系数,根据图 2 所示系统机械结构建立数
学模型,应用拉格朗日方程可推导出系统的动态方程如下: 
2
m L m L m L
3 1
2
2 1
2
1 1
1
3
2
m L
2
2
2
sin
 
1
)
2
1
3
2
m L
2
2
sin 2
 
2 1 2
1
2
m L L
2 1 2
sin
2
2 2
1
(
3
1
2
 
1
3
m L L
2 1 2
cos
2
2 2
M K U K K
m e
m
1
 
2
2
m L
2 2
2
1
2
m L L
2 1 2
cos
2
2 1
1
6
2
m L
2
2
sin 2
2
2 1
1
2
m gL
2
2
sin
2
0
                                                                                                      ……公式(7) 
 为电机输出转矩,U 为电机输入电压, mK 为电机力矩系
M K U K 
)
1
(
m
e
其中
数, eK 为电机反电势系数。 
系统在 θ1=0,θ2=0 处是平衡的,将运动方程在 θ1=0,θ2=0, 1 =0, 2 =0 处
线性化,忽略高次项可得系统在平衡点附近的运动方程: 
(
1
3
2
m m m L
1
)
1
2
3
1
2
m L L
2 1 2
1
2
1
3
m L L
2 1 2
2
m L
2
2
 
 
 
1
2
K K
m e
0
0
c
2
1
2
0
0
0
1
2
m gL
2
2
1
2
K
m
0
U
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    ……公式(8) 
(2)旋转倒立摆的稳定控制 
在摆杆起摆成功后,系统需要采用控制算法控制摆杆稳定倒立。经检验,系
4 
 
 
统的能观性矩阵和能控性矩阵均满秩,因此系统能控、能观。因此系统可采用
LQR 控制即线性二次最优控制算法来使闭环系统在零点附近保持平稳运动。 
首先根据公式(8)写出倒立摆系统的状态空间方程: 
AX BU
X
Y CX
 
其中 
X
   
2
1
1
,
,
,
2
T
,
Y
 
1
2
,
T
,
U
为控制量,物理意义为电机输入电压。 
LQR 要求对于系统
,求控制量U 使得性能指标 
AX BU
X
Y CX
X QX U RU dt
T
T
J
0
达到最优 
求解本系统的 Riccatti 代数方程: 
PA A P PBR B P Q
T
1
T
                                                           ……公式(9) 
0
即得到状态反馈形式的控制量: 
U
 
KX
 
1
R B PX
T
                                                                      ……公式(10) 
    其中参数 R 和 Q 用于设置输入量和状态两的权重,分别体现控制过程对动
态跟踪误差和消耗总能量的要求。根据需求合理选取 R 和 Q 后,使用软件 Matlab
进行求解方程式,得到最优反馈增益矩阵 K。 
  计算得到电机电压,控制器据此通过 PWM 驱动直流电机控制
KX
利用U
倒立摆。 
(3)旋转倒立摆的起摆控制 
基于能量反馈控制,利用施加到转动杆上的控制力矩与倒立摆系统能量的关
系,通过直流伺服电机转动改变倒立摆系统能量,当倒立摆系统能量到达摆杆倒
立的能量时,摆杆倒立。 
  设旋转臂与摆杆的连接点为坐标原点,摆杆处于倒立状态时参考能量 refE 为
0,则可得倒立摆系统的能量 
E
1
2
J
2
2 2
1
2
m gl
2
2
cos
2
1
                                                      ……公式(11)
 
应用李雅普诺夫方法,令李雅普诺夫函数 
V
E E
ref
2
1
2
                                                                                ……公式(12)
 
 
5 
令控制量为
U k E E
2
 
ref
则
dV
dt
 
km l E E
2 2
2
ref
2
2
2
cos
2
0
                                          ……公式(13)
 
cos
由于摆杆不可能一直在水平位置,即 2
2
2
2
不会一直为 0,因此函数 V 会
逐渐减小直到 E=Eref,此时摆杆摆起,实现了倒立。 
 
三、  电路设计 
1.  角度位移传感器电路 
本系统使用的 HuaXiaMag-AM23-T 角度位移传感器输出范围为 0.5V~4.5V,
而单片机片内 12bit  AD 输入范围为 0V~3.0V,因此需要对角度位移传感器输出
信号做处理。如图,角度位移传感器输出信号经过电阻分压,把输出电压范围转
为 0V~3.0V,其后接电压跟随器和低通滤波电路对信号进行阻抗变换和滤波。电
路如下图所示: 
图 3 角度位移传感器电路 
 
2、直流电机驱动电路 
  本系统使用的直流电机额定工作电压为 24V,持续工作电流可达到 1.23A,
为了充分应用该直流电机的动态性能,我们使用 L6205 作为直流电机驱动芯片,
该芯片可持续输出 2.8A 电流,输入电压最大可达到 52V,满足系统的需求。驱
动电路如图 4 所示: 
 
6 
图 4 直流电机驱动电路 
 
四、  程序流程与设计 
1.  整体软件设计 
本系统软件功能主要分为倒立摆起摆程序与倒立摆稳定倒立控制程序,系统
通过采集角度传感器数据获得摆杆的位置与状态信息,驱动直流伺服电机转动,
完成倒立摆起摆以及控制摆杆稳定倒立。由红外遥控装置启动倒立摆实现各个设
定的功能,整体软件流程图如图 5 所示。 
开始
初始化
开机动画
功能选择
往复旋转
(圆周)运动
手动释放
摆杆倒立
自动起摆
倒立
圆周运动
结束
图 5 整体软件流程图 
 
2.  倒立摆起摆程序设计 
控制器跟据传感器数据计算摆杆状态,跟据公式(5)计算电机控制量,驱动电
机转动,使摆杆起摆。程序流程图见图 6 所示。 
 
7 
3.  倒立摆稳定控制程序设计 
控制器跟据摆杆状态,依据公式(10)计算电机控制量,驱动电机转动,从而
稳定控制倒立摆,若摆杆受到干扰而失去稳定,则程序进入倒立摆起摆模式,恢
复倒立摆倒立状态。程序流程图见图 7 所示。 
开始
采集传感器数据
计算摆杆状态
驱动电机转动
N
摆杆处于
失稳状态
Y
进入起摆模式
                                 
 
图 6 倒立摆起摆程序流程图                图 7 倒立摆稳定控制程序流程图 
五、  测试方案与测试结果  
1.  测试仪器 
表 2 测试仪器 
 
1 
2 
3 
4 
5 
6 
名称 
量角器 
5g 砝码 
秒表 
电子称 
刻度尺 
DF1743003C 稳压源 
精度 
1° 
无 
0.1s 
0.1g 
1mm 
无 
数量 
1 
1 
1 
1 
1 
1 
2.  测试环境 
整机系统测试在室内进行,将倒立摆装置放置于平整地面上。 
3.  测试方法和过程 
1)  基本要求 
①旋转臂往复旋转使摆杆摆动 
测试方法:摆杆从处于自然下垂状态(摆角 0°)开始,驱动电机带动旋转
臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60°~+60°,记录摆杆达
到相应角度所耗时间。 
  测试结果:起摆角度大于 60°,摆杆达到相应角度所耗时间小于 1s。 
②摆杆圆周运动 
 
8