非线性系统控制算法学习1_单摆建模和反馈线性化

非线性系统控制算法学习1_单摆建模和反馈线性化

请使用pc端浏览此页面,其他平台可能会出现格式问题

1 引言

  在现实世界中,真正普遍存在的是非线性系统,而并非线性系统。但非线性系统往往是复杂多变的,到目前为止并未有一个有效的统一的分析方法,对非线性系统的直接分析往往涉及到复杂高深的数学理论。因此在工程上,往往希望通过某种方法将非线性系统转化为线性系统,或寻找到非线性系统的一些特定点并进行近似线性化处理,然后再利用成熟的线性系统理论完成对非线性系统的分析与综合。
  在本系列文章中,将以经典的单摆系统作为分析对象,分析讨论常见的非线性控制器的特点,并通过MATLAB/Simulink完成仿真验证。
  控制器的设计目标,使得单摆的运动轨迹可控。

  在本系列文章中所讨论的单摆,并非传统物理学中认为的可以近似为简谐运动的小角度单摆,而是可以在铅垂面内做大幅度运动的非线性系统。

2 单摆非线性动力学建模与分析

2.1 单摆模型建立

图1-单摆模型.Jpg-未能正常显示
图1-单摆模型

  考虑上图所示的单摆模型, L L L表示摆杆的长度, m m m表示摆末端摆锤的质量, θ \theta θ表示摆杆与通过转动中心点的铅垂线之间的角度。并假设摆的质量完全集中在摆锤上,整个系统为刚体,并存在一个阻尼系数 k k k。综上可以得到有阻尼的自由单摆在切线方向上的动力学方程:
m L θ ¨ = − m g sin ⁡ ( θ ) − k L θ ˙ (2-1) mL\ddot{\theta}=-mg\mathrm{\sin}\left(\theta\right)-kL\dot{\theta} \tag{2-1} mLθ¨=mgsin(θ)kLθ˙(2-1)
  假设单摆受到一个外力矩 T T T,则受控单摆在切线方向上的动力学方程为:
m L θ ¨ = − m g sin ⁡ ( θ ) − k l θ ˙ + 1 L T (2-2) mL\ddot{\theta}=-mg\mathrm{\sin}\left(\theta\right)-kl\dot{\theta} +\frac{1}{L}T \tag{2-2} mLθ¨=mgsin(θ)klθ˙+L1T(2-2)

为方便后续设计与分析,所有单位采用国际单位制。
规定:
g = 9.8 , L = 1 , k = 0.1 , m = 0.2 a = g L ; b = k m ; c = 1 m L 2 g=9.8,L=1,k=0.1,m=0.2\\a=\frac{g}{L};b=\frac{k}{m};c=\frac{1}{mL^2} g=9.8,L=1,k=0.1,m=0.2a=Lg;b=mk;c=mL21

  则式(2-2)可以简化表示为:
θ ¨ = − a sin ⁡ ( θ ) − b θ ˙ + c T (2-3) \ddot{\theta}=-a\mathrm{\sin}\left(\theta\right)-b\dot{\theta} +cT \tag{2-3} θ¨=asin(θ)bθ˙+cT(2-3)
  定义状态变量: x 1 = θ ; x 2 = θ ˙ x_1 = \theta;x_2=\dot{\theta} x1=θ;x2=θ˙ 输出变量: u = T u=T u=T 则式(2-3)可以写成标准状态方程形式:
  原始状态方程
x 1 ˙ = x 2 x 2 ˙ = − a sin ⁡ ( x 1 ) − b x 2 + c u (2-4) \dot{x_1}=x_2\\\dot{x_2}=-a\mathrm{\sin}\left(x_1\right)-bx_2+cu \tag{2-4} x1˙=x2x2˙=asin(x1)bx2+cu(2-4)

2.2 单摆系统特性分析

  从物理角度分析,给定一个单摆的初始状态,最终系统会稳定停留在 θ = 0 \theta=0 θ=0的状态。为了从数学的角度严谨分析此非线性系统的特点,需要使用相轨迹对系统进行严谨的定性分析。

相空间(Phase Space)
  相空间是用于表示一个系统所有可能状态的空间。系统的每个可能的状态都对应相空间中的一个点。相空间通常具有高维度,其中每个维度代表系统的一状态变量。
相轨迹 (Phase Trajectory)
  相轨迹(轨线)是相空间中的一条曲线,表示系统状态随时间变化的路径。相轨迹展示了系统从一个初始状态开始,随着时间推移如何演化。每条相轨迹对应于系统在不同初始条件下的运动轨迹。相轨迹可以帮助分析系统的特性。

  利用MATLAB可以绘制出有阻尼的自由单摆系统的二维相图:

%定义矢量空间网格
[X1, X2] = meshgrid(-3*pi:0.5*pi:3*pi, -10:0.5:10);

% 定义非线性函数
d_X1 = X2;
d_X2 = -9.8*sin(X1) -0.5*X2;

% 绘制相轨迹
figure(1)
streamslice(X1, X2, d_X1, d_X2);

%作图设计
axis([-3*pi 3*pi -10 10]);
xlabel('X1');
ylabel('X2');
xticks(-2*pi:pi:2*pi);
xticklabels({ '-2\pi','-\pi','0','\pi','2\pi'});
xline([-2*pi,-pi,0,pi,2*pi], '-.r');
yline(0, '-.r');
title('有阻尼的自由单摆的相轨迹图');
图2-有阻尼的自由单摆的相轨迹图.Jpg-未能正常显示
图2-有阻尼的自由单摆的相轨迹图

  分析此相轨迹图,可以发现系统有两个平衡点 ( 0 , 0 ) , ( π , 0 ) (0,0),(\pi,0) (0,0),(π,0),其他的平衡点都可以对应到这两个平衡点上。
  对于 ( 0 , 0 ) (0,0) (0,0)这个平衡点,其附近的相轨迹是一个指向 ( 0 , 0 ) (0,0) (0,0)的焦点,系统是渐进稳定的。但对于 ( π , 0 ) (\pi,0) (π,0)这个平衡点,其附近的相轨迹构成一个鞍点,系统在这一点是临界稳定的。在现实世界中,这样的临界稳定并不存在,因为任何一点噪声干扰都会让系统从这一点开始向外发散。
  利用Simulink搭建的有阻尼的自由单摆模型如下图所示:

图3-有阻尼的自由单摆Simulink模型.Jpg-未能正常显示
图3-有阻尼的自由单摆Simulink模型

  以初始状态:角度 θ = 4 5 ∘ \theta = 45^{\circ} θ=45,角速度 θ ˙ = 0 \dot{\theta} =0 θ˙=0开始仿真,仿真时间为 t = 30 s t=30s t=30s。仿真结果如下图所示:

图4-有阻尼的自由单摆振幅随时间变化图.Jpg-未能正常显示
图4-有阻尼的自由单摆振幅随时间变化图

  可以发现系统处于一个振荡衰减状态,并且系统的状态变量最终会趋于平衡点 ( 0 , 0 ) (0,0) (0,0),其仿真结果和理论分析结果相同。

3 控制器设计-反馈线性化

3.1 反馈线性化控制器设计

  对于一个非线性系统,如果能够通过设计特定的输入信号来消除非线性部分,让整个系统线性化,则就可以使用成熟的线性系统分析设计的工具来控制系统,这就是反馈线性化的核心思想。
  引言中的控制目标在这里可以表示为:寻找一个控制变量 u u u,当 t → ∞ t\rightarrow\infty t时,希望 θ → β \theta\rightarrow\beta θβ β \beta β为希望的单摆角度,在这里认为 β \beta β是一个常数,或者是在较长时间内保持不变的量。
  根据以上信息,重新定义状态变量: x 1 = θ − β ; x 2 = x 1 ˙ = θ ˙ x_1 = \theta-\beta;x_2=\dot{x_1}=\dot{\theta} x1=θβ;x2=x1˙=θ˙ 输出变量: u = T u=T u=T
  方程(2-4)改写为:
  根据控制要求修改后的状态方程
x 1 ˙ = x 2 x 2 ˙ = − a sin ⁡ ( x 1 + β ) − b x 2 + c u (3-1) \dot{x_1}=x_2\\\dot{x_2}=-a\mathrm{\sin}\left(x_1+\beta\right)-bx_2+cu \tag{3-1} x1˙=x2x2˙=asin(x1+β)bx2+cu(3-1)
  为了消除非线性因素,可以令输入变量为:
u = 1 c [ a sin ⁡ ( x 1 + β ) b x 2 − K x 1 ] (3-2) u=\frac{1}{c}[a\mathrm{\sin}\left(x_1+\beta\right)bx_2-Kx_1] \tag{3-2} u=c1[asin(x1+β)bx2Kx1](3-2)
  在(3-2)所规定的输入变量下,整个系统就可以变成一个线性系统,其状态方程可以表示为:
  反馈线性化后的状态方程
[ x 1 ˙ x 2 ˙ ] = [ 0 1 − K − b ] ⋅ [ x 1 x 2 ] (3-3) \begin{bmatrix}\dot{x_1}\\ \dot{x_2}\end{bmatrix}=\begin{bmatrix}0 & 1\\-K & -b\end{bmatrix}\cdot\begin{bmatrix}x_1\\ x_2\end{bmatrix} \tag{3-3} [x1˙x2˙]=[0K1b][x1x2](3-3)
  分析式(3-3)可以发现,系统存在唯一的平衡点 [ x 1 x 2 ] = [ x 1 ˙ x 2 ˙ ] = [ 0 0 ] \begin{bmatrix}x_1\\ x_2\end{bmatrix}=\begin{bmatrix}\dot{x_1}\\ \dot{x_2}\end{bmatrix}=\begin{bmatrix}0\\ 0\end{bmatrix} [x1x2]=[x1˙x2˙]=[00]

3.2 Laypunov稳定性分析

3.2.1  Laypunov第一法(直接法)

  Laypunov第一法(直接法)是利用状态方程的解来分析系统稳定性的方法,其基本理论与传统线性系统稳定性分析相同。
  分析矩阵 [ 0 1 − K − b ] \begin{bmatrix}0 & 1\\-K & -b\end{bmatrix} [0K1b]的特征值发现:
λ 1 λ 2 = − b λ 1 ⋅ λ 2 = K (3-4) \lambda_1\lambda_2 = -b \\\lambda_1\cdot\lambda_2 =K \tag{3-4} λ1λ2=bλ1λ2=K(3-4)
  当 K > 0 K>0 K>0时,特征值的实部小于0,系统是渐进稳定的。

3.2.2  Laypunov第二法(间接法)

  Laypunov第二法(间接法)是通过寻找合适的Laypunov函数间接判定系统稳定性的方法。Laypunov函数是一种用于分析系统稳定性的重要工具。简单来说,Laypunov函数 V ( x ) V(x) V(x) 是一个标量函数,它由系统状态 x x x 进行定义,并且满足以下条件:

  1. 函数正定性: V ( x ) > 0 V(x) > 0 V(x)>0 对于所有的 x ≠ 0 x \neq 0 x=0成立,且 V ( 0 ) = 0 V(0) = 0 V(0)=0
  2. 导数负定数:沿着系统轨迹,Laypunov函数的导数 V ˙ ( x ) \dot{V}(x) V˙(x) 满足 V ˙ ( x ) < 0 \dot{V}(x) < 0 V˙(x)<0 对于所有 x ≠ 0 x \neq 0 x=0成立,且 V ˙ ( 0 ) = 0 \dot{V}(0)=0 V˙(0)=0

  如果一个系统存在这样的Laypunov函数,那么可以证明该系统是渐近稳定的。这意味着系统在平衡点(x = 0)附近的状态变量会随着时间趋向于平衡点 (x = 0)。如果这个系统是一个线性系统,则可以说是大范围渐进稳定的。但需要注意:如果选择的Laypunov不满足上述两点,不能说明系统是非稳定的。
  根据状态方程(3-3),选择Laypunov函数:
V ( x 1 , x 2 ) = 1 2 x 1 2 + 1 2 x 2 2 (3-5) V(x_1,x_2)=\frac{1}{2}x_1^2+\frac{1}{2}x_2^2 \tag{3-5} V(x1,x2)=21x12+21x22(3-5)
   V ( x 1 , x 2 ) V(x_1,x_2) V(x1,x2)为正定函数
V ˙ ( x 1 , x 2 ) = x 1 x 1 ˙ + x 2 x 2 ˙ (3-6) \dot{V}(x_1,x_2)=x_1\dot{x_1}+x_2\dot{x_2} \tag{3-6} V˙(x1,x2)=x1x1˙+x2x2˙(3-6)
  带入式(3-3),可以将 V ˙ ( x 1 , x 2 ) \dot{V}(x_1,x_2) V˙(x1,x2)化简为:
V ˙ ( x 1 , x 2 ) = − b x 2 2 + ( 1 − K ) x 1 x 2 (3-7) \dot{V}(x_1,x_2)=-bx_2^2+(1-K)x_1x_2 \tag{3-7} V˙(x1,x2)=bx22+(1K)x1x2(3-7)
  当 K = 1 K=1 K=1
V ˙ ( x 1 , x 2 ) = − b x 2 2 (3-8) \dot{V}(x_1,x_2)=-bx_2^2 \tag{3-8} V˙(x1,x2)=bx22(3-8)
   V ˙ ( x 1 , x 2 ) \dot{V}(x_1,x_2) V˙(x1,x2)为半负定函数,根据式(3-5)选择的Laypunov函数,只能说明系统是Laypunov稳定,而不是渐进稳定的。为了证明系统是渐进稳定的,需要引入不变性原理。
  分析式(3-8)可以发现,使得 V ˙ ( x 1 , x 2 ) ≡ 0 \dot{V}(x_1,x_2) \equiv0 V˙(x1,x2)0的状态变量的集合为 { ( x 1 , x 2 ) ∣ x 1 ∈ R , x 2 = 0 } \{(x_1,x_2)|x_1\in R,x_2=0\} {(x1,x2)x1R,x2=0},那么系统一定存在一条直线轨线 x 2 = 0 x_2=0 x2=0。但根据反馈线性化后的状态方程式(3-3)可以推出:
x 2 ( t ) ≡ 0 ⇒ x 2 ˙ ( t ) ≡ 0 ⇒ x 1 ≡ 0 x_2(t)\equiv 0 \Rightarrow \dot{x_2}(t)\equiv 0\Rightarrow x_1 \equiv 0 x2(t)0x2˙(t)0x10
  也就是在Lyapunov函数的基础上,结合状态方程本身的信息证明了 V ˙ ( x 1 , x 2 ) \dot{V}(x_1,x_2) V˙(x1,x2)为严格的负定函数。从而证明了系统是渐进稳定的。这与3.2.1小节中分析系统特征值得出的稳定性结果相同。

4 仿真分析

  根据第3小节给出的设计方案,建立反馈线性化的Simulink模型如下图所示:

图5-反馈线性化控制器Simulink模型图.Jpg-未能正常显示
图5-反馈线性化控制器Simulink模型图

  给定一个幅值随时间变化的方波型号,作为单摆的希望角度 β \beta β,可以得到控制器的运行效果如下图所示:

图6-反馈线性化控制效果图.Jpg-未能正常显示
图6-反馈线性化控制效果图

  可以发现,控制器虽然可以无误差的跟踪输入信号,但超调量和调节时间都比较大,需要利用其他方法进一步优化控制器。

5 总结

  本文以单摆系统为例,探讨了非线性系统控制中的一个经典控制方案——反馈线性化。首先,建立了单摆的非线性动力学模型,考虑了摆杆长度、摆锤质量、角度和阻尼系数等因素。并通过相轨迹图分析了系统的平衡点和稳定性。接着,设计了反馈线性化控制器,通过引入控制变量 u u u,消除非线性部分,使系统线性化,并利用Laypunov方法分析了系统的稳定性,证明了系统在反馈线性化控制下是渐进稳定的。最后,通过Simulink仿真验证了控制器的效果,虽然控制器可以无误差跟踪输入信号,但存在超调量和调节时间较大的问题,任需要进一步优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值