基于小波神经网络二级倒立摆控制器设计

(整期优先)网络出版时间:2020-09-28
/ 3

基于小波神经网络二级倒立摆控制器设计

曾骁

贵州航天计量测试技术研究所 贵州 贵阳 550009

摘要:倒立摆控制系统是一个典型的高阶次、不稳定、多变量、非线性和强耦合控制系统。本文先对基于LQR的二级倒立摆进行建模,设计一个最优控制器,并对基于LQR的二级倒立摆在Matlab中计算模型参数,再建立Simulink的模型,进行仿真实验,然后以其状态反馈为模板对神经网络进行训练,再用神经网络作为系统的控制器,在Matlab中对倒立摆系统进行仿真实验。最后对LQR和神经网络两种倒立摆控制方法的仿真结果进行对比。

关键词:二级倒立摆、bp神经网络、控制系统

1 引言

倒立摆系统是非线性的、不稳定的、比较复杂的系统,在控制理论研究领域是比较理想的设备,倒立摆常常可以作为检验控制策略和控制方法效果的装置。在研究中人们为了实现对倒立摆系统的控制,找寻各种不同的控制方法,以此来验证或说明该方法对于严重非线性和绝对不稳定系统控制能力的优劣。

神经网络在理论上能够任意地逼近复杂的非线性函数,它能够通过训练适应需要逼近的不确定性系统的动态特性,所有定量或定性的信息都等势分布贮存于网络内的各种神经元,因而拥有很强的鲁棒性和容错性。神经网络还具有很强的学习能力,从而实现对倒立摆装置的智能控制。

2 直线二级倒立摆系统介绍

2.1倒立摆的系统介绍

倒立摆设备由计算机、运动控制卡、伺服驱动器、伺服电机、倒立摆本体和光电码盘六大部分组成。如图1所示。

倒立摆的主体包含摆杆、交流伺服电机、滑台、同步带等,交流伺服电机带有光电码盘,连接在运动控制卡的第一轴用来充当位置编码器。此外光电码盘与摆杆和运动控制卡第二轴相连用以反馈角度信号。其中运动控制卡只通过第一轴控制电机转速与位置,第二轴的角度信号作为反馈信号反馈到运动控制卡。运动控制卡负责将控制量转换为控制伺服驱动器的电信号,从而使电机在伺服驱动器的驱动下产生运动,保持摆杆平衡。算法的好坏决定了倒立摆能不能“倒立”,以及倒立的性能。所谓的算法就是控制方法在程序上的实现。

倒立摆的控制既可用古典控制方法如PID、根轨迹等,也可用现代控制方法如线性二次型最优控制(LQR)、智能控制、模糊控制、神经网络控制、鲁棒控制等。本文中的二级摆利用神经网络进行控制,下章将会介绍神经网络。

5f717cc0ec6dc_html_348967e389f9aed7.jpg

图1倒立摆的系统框图

2.2二级倒立摆建模

本节将通过分析力学中的拉格朗日方程来创建直线二级倒立摆系统的数学模型。拉格朗日方程有以下几个特点:

(1)在建立运动方程时不考虑未知的约束反力而只需分析已知的主动力,所以对复杂系统更能够体现其优越性。

(2)该方程的数目和系统的自由度数一样,该方程是广义坐标表达的任意完整系统的运动方程,创建的运动方程的数目就更少。

(3)以能量观点来创建方程起,为创建系统的运动方程式,仅仅需要从广义力(即表示主动力作用的动力学量)和系统的动能(即表征系统运动的动力学量)这两个方面来分析。

(4) 方程的对称性,在同一位行空间中的每个坐标中各方程都拥有一样的形式。

所以用Lagrange方程来建模能够很大程度上把建模过程简单化。直线二级倒立摆系统运动方程的推导过程如下。

为了简化直线二级倒立摆系统分析,在建立实际数学模型过程中,要有以下几个假设:

(1)传送带与皮带轮之间,没有滑动,传送带没有伸长现象。

(2)忽略支点与摆杆之间等的各种不主要的摩擦阻力。

(3)忽略空气阻力。

所以可以将直线二级倒立摆系统抽象成质量块、匀质杆以及小车组成的系统,如图2所示。

5f717cc0ec6dc_html_b8e96c130cca4b67.gif

图2直线二级倒立摆系统

参数

功能

M

小车质量 1.32kg

m1

摆杆1的质量 0.04kg

m2

摆杆2的质量 0.132kg

m3

质量块的质量 0.208kg

l1

摆杆1转动中心到杆质心的距离 0.09m

l2

摆杆2转动中心到杆质心的距离 0.27m

F

作用在系统上的外力

θ1

摆杆1与垂直向上方向的夹角

θ2

摆杆2与垂直向上方向的夹角

表1直线二级倒立摆系统参数

3 直线二级倒立摆系统数学模型的建立

3.1通过拉格朗日方程推演运动学方程

拉格朗日方程如下:

5f717cc0ec6dc_html_7b4d17bf3a8db95a.gif

其中,q为系统的广义坐标,L为拉格朗日算子,V为系统的势能,T为系统的动能。拉格朗日方程由广义坐标L与qi表示成:

5f717cc0ec6dc_html_dbb407de9757977f.gif

其中,i=1,2,3…n,在这个系统中,设

5f717cc0ec6dc_html_1ad69482b15b58a1.gif 为系统的三个广义坐标,5f717cc0ec6dc_html_cb37e6378dfac457.gif 是系统沿这个广义坐标方向上的外力。

先计算系统的动能:

5f717cc0ec6dc_html_d0318bc6433d2579.gif

其中5f717cc0ec6dc_html_caa47e54b2b89885.gif 小车动能,5f717cc0ec6dc_html_9a790213d3c1ddb.gif 质量块动能,5f717cc0ec6dc_html_cff741ff435512fb.gif 摆杆2动能,5f717cc0ec6dc_html_c9b36da0335f91bf.gif 摆杆1动能。

5f717cc0ec6dc_html_1e87d10eb13abf18.gif =5f717cc0ec6dc_html_50a841c4f625b3c7.gif5f717cc0ec6dc_html_461531685b04266.gif5f717cc0ec6dc_html_cdb6b3079e72c536.gif ,其中,5f717cc0ec6dc_html_f4127df03c3d7ea4.gif

5f717cc0ec6dc_html_2d96f60e50108ac9.gif ,其中,5f717cc0ec6dc_html_7aaebd613a50433d.gif

小车的动能方程如下:

5f717cc0ec6dc_html_f1c69022a09e662d.gif

摆杆1的动能方程如下:

5f717cc0ec6dc_html_c11214003221b3c.gif5f717cc0ec6dc_html_c06ca6a4f916243a.gif

其中,5f717cc0ec6dc_html_e2f0bbc2651c3535.gif 为摆杆1的角速度,5f717cc0ec6dc_html_ddabc46719e7ad8e.gif 为摆杆1的转动惯量。

5f717cc0ec6dc_html_75180211a20e28b3.gif

同理可以得到摆杆2的动能方程:

5f717cc0ec6dc_html_9803440117b8ca24.gif

5f717cc0ec6dc_html_302d3e272556d586.gif

5f717cc0ec6dc_html_6b4231c256f42e12.gif

其中,5f717cc0ec6dc_html_8bdf7dce29055aee.gif 为摆杆2的角速度,5f717cc0ec6dc_html_301e2d2a63ee8119.gif 为摆杆2的转动惯量。

5f717cc0ec6dc_html_4659cd6758bd6b90.gif

5f717cc0ec6dc_html_1b50064435442b45.gif5f717cc0ec6dc_html_353bae42dc38820c.gif

5f717cc0ec6dc_html_b9f3eef765021956.gif

所以,能够得出系统总动能:

5f717cc0ec6dc_html_c3435c74364fdaad.gif

5f717cc0ec6dc_html_9d62363e0dd704b3.gif5f717cc0ec6dc_html_5e73ad9229ceeda.gif 系统势能:

5f717cc0ec6dc_html_19eaae4aa087b094.gif

由此拉格朗日算子为:

5f717cc0ec6dc_html_3185ebb69c44567e.gif

5f717cc0ec6dc_html_abc692b7b89e764d.gif

5f717cc0ec6dc_html_c8062d218321c168.gif5f717cc0ec6dc_html_e355a757c8fe045.gif

由于在广义坐标5f717cc0ec6dc_html_f49eaf5afeb35e19.gif5f717cc0ec6dc_html_df07384c4bc3de9e.gif 上都没有外力的作用,所以有下面几个等式成立:

5f717cc0ec6dc_html_36a24403a505920c.gif (3-1)

5f717cc0ec6dc_html_b27a80e7f24aa67b.gif (3-2)

展开(3-1)、(3-2)式,分别得出(3-3)、(3-4)两式

5f717cc0ec6dc_html_6d02b54ea588eebd.gif (3-3)

5f717cc0ec6dc_html_26e9d069d231d769.gif (3-4)

将(3-3)、(3-4)式对5f717cc0ec6dc_html_10d52f9e0b11ed8e.gif5f717cc0ec6dc_html_c6fda049d9bcc9b2.gif 求解代数方程,得出下面两个式子:

5f717cc0ec6dc_html_e3d685ae5ca8cd00.gif5f717cc0ec6dc_html_b141e0bc8a277b15.gif

(3-5)

5f717cc0ec6dc_html_40fd4c3d153f3c5d.gif

5f717cc0ec6dc_html_f6c14b0fbd3fa24e.gif (3-6)

表示成下面的形式:

5f717cc0ec6dc_html_6318a4e8a6c17d51.gif (3-7)

5f717cc0ec6dc_html_5da0d66647c4ee8c.gif (3-8)

取平衡位置时各变量的初值为0,即

5f717cc0ec6dc_html_1a1b4292c88cd9be.gif

对(3-7)式在平衡位置进行泰勒级数展开,并且进行线性化,令

5f717cc0ec6dc_html_749cc6bb54042bfb.gif

5f717cc0ec6dc_html_d2eb25627e35144e.gif

5f717cc0ec6dc_html_37b55d6b70264e0b.gif

5f717cc0ec6dc_html_bdcf2ceb938c53cb.gif

5f717cc0ec6dc_html_5d773692e5d0f1dc.gif

5f717cc0ec6dc_html_401665967907ce6.gif

5f717cc0ec6dc_html_b6dfe7ac997b3293.gif

带入(3-5)式,得到线性化之后的公式

5f717cc0ec6dc_html_e6839bd560c85571.gif (3-9)

将(3-8)式在平衡位置进行泰勒级数展开,并线性化,令

5f717cc0ec6dc_html_14bd4b33876c63d7.gif

5f717cc0ec6dc_html_bccbe1a489d00edf.gif

5f717cc0ec6dc_html_9e841e4533f7b1e2.gif

5f717cc0ec6dc_html_881c2bfcbe028a0d.gif

5f717cc0ec6dc_html_1d54f2468191534b.gif

5f717cc0ec6dc_html_5634ea47ddcff4e6.gif

5f717cc0ec6dc_html_413e8cc0fe7e0d6.gif

带入(3-6)式,得出

5f717cc0ec6dc_html_e1d6ba47e56bca1.gif (3-10)

得出了两个线性微分方程后,因为我们把加速度作为输入,所以还需要添加一个方程

5f717cc0ec6dc_html_9d0b693e2a33dd83.gif (3-11)

取状态变量如下:

5f717cc0ec6dc_html_a80e7e58116757d1.gif5f717cc0ec6dc_html_50a964ae8db61605.gif5f717cc0ec6dc_html_49b282c728ccfee.gif5f717cc0ec6dc_html_60305cf8fbfa4ada.gif5f717cc0ec6dc_html_11f48957e5057f53.gif5f717cc0ec6dc_html_17ce109ba044dd83.gif

由(3-9)、(3-10)、(3-11)式得状态空间方程如下:

5f717cc0ec6dc_html_f15a5f4e88c1bd5d.gif (3-12)

5f717cc0ec6dc_html_fedd50891c6244c0.gif (3-13)

3.2直线二级倒立摆系统分析

3.2.1系统的稳定性分析

将模型参数5f717cc0ec6dc_html_61da353342edf91e.gif5f717cc0ec6dc_html_f4e58a9a4b956112.gif5f717cc0ec6dc_html_b11e0e7c2c3ba1fc.gif5f717cc0ec6dc_html_a8c11840bab8bcd4.gif5f717cc0ec6dc_html_b385923a852a6eba.gif5f717cc0ec6dc_html_96f6193aede60a9a.gif5f717cc0ec6dc_html_c1df95d3acfdfd48.gif 代入上式,利用5f717cc0ec6dc_html_b1399a8d6b3b1a97.gif 计算,得到如下结果:

5f717cc0ec6dc_html_247914dd83313c1b.gif5f717cc0ec6dc_html_e8391130b8b74df.gif5f717cc0ec6dc_html_cb806cc08661ad44.gif

5f717cc0ec6dc_html_9b1c6e39628d17a3.gif5f717cc0ec6dc_html_bfe4adde746a3052.gif5f717cc0ec6dc_html_f1c0e1ac30067346.gif

5f717cc0ec6dc_html_56a47f35a95a5328.gif5f717cc0ec6dc_html_1d7d019101ca5233.gif

5f717cc0ec6dc_html_78b56c2ead9e6e4f.gif5f717cc0ec6dc_html_fdaf0df6a1fc9186.gif

编写MATLAB程序:

A=[0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1;0 0 0 0 0 0;0 77.0642 -21.1927 0 0 0;0 -38.5321 37.8186 0 0 0]

Eig(A)

运行结果为:

ans =

-9.5972

-4.7725

9.5972

4.7725

0

0

由上结果知有开环极点s=9.5972与s=4.7725位于s平面的右半部,开环系统不稳定。

3.2.2系统的能控性和稳定性分析

编写如下MATLAB程序:

A=[0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1;0 0 0 0 0 0;0 77.0642 -21.1927 0 0 0;0 -38.5321 37.8186 0 0 0];

B=[0;0;0;1;7.8637;-0.0728];

C=[1 0 0 0 0 0;0 1 0 0 0 0;0 0 1 0 0 0;];

Tc=ctrb(A,B)

To=obsv(A,C)

rank(Tc)

rank(To)

运行结果如下:

Tc =

1.0e+004 *

0 0.0001 0 0 0 0

0 0.0008 0 0.0608 0 5.3300

0 -0.0000 0 -0.0306 0 -3.4974

0.0001 0 0 0 0 0

0.0008 0 0.0608 0 5.3300 0

-0.0000 0 -0.0306 0 -3.4974 0

To =

1.0e+003 *

0.0010 0 0 0 0 0

0 0.0010 0 0 0 0

0 0 0.0010 0 0 0

0 0 0 0.0010 0 0

0 0 0 0 0.0010 0

0 0 0 0 0 0.0010

0 0 0 0 0 0

0 0.0771 -0.0212 0 0 0

0 -0.0385 0.0378 0 0 0

0 0 0 0 0 0

0 0 0 0 0.0771 -0.0212

0 0 0 0 -0.0385 0.0378

0 0 0 0 0 0

0 6.7555 -2.4347 0 0 0

0 -4.4267 2.2468 0 0 0

0 0 0 0 0 0

0 0 0 0 6.7555 -2.4347

0 0 0 0 -4.4267 2.2468

ans =6

系统的阶次是6阶的,能够看到矩阵Tc和To都是满秩的,所以该系统是完全能控且能观的。

小结:本文通过对力学方法中的拉格朗日方程进行分析,建立出直线二级倒立摆的理想数学模型,重点分析了系统的势能与动能,并求出Lagrange算子,通过MATLAB求出系统的一些状态空间方程的参数矩阵,然后分析了系统的稳定性、能控性和能观性,以此说明直线二级倒立摆系统是完全能控能观的,并且是不稳定的。

参考文献

[1] 《平面一级倒立摆系统的智能控制策略研究》 李晓燕著,2005,山西太原理工大学

[2]《固高摆系统与自动控制实验》 不详,2002.8,中国科学技术大学