Lecture 1 : Continuous-Time Dynamics
连续时间动力学
这是2024年春季卡内基梅隆大学(CMU)最优控制与强化学习(CMU 16-745)课程的第一讲,由Zac Manchester教授主讲。
主题:
课程介绍
连续时间动态回顾
平衡点
稳定性
B站-西格螺丝「精校熟肉」Optimal Control-最优控制(CMU 16-745) 2024-L1-导论与动力学回顾
讲义链接
参考补充2023笔记-CSDN-我爱科研00-Introduction CMU最优控制16-745超详细学习笔记
Most general/generic for smooth system
光滑系统的最一般形式
x
˙
=
f
(
x
,
u
)
\dot{x} = f(x, u)
x˙=f(x,u)
- “dynamics” 动力学 f
- “state” 状态 x ∈ R n x \in \mathbb{R}^n x∈Rn
- “input” 输入 u ∈ R m u \in \mathbb{R}^m u∈Rm
For a mechanical system
对于机械系统
X
=
[
q
v
]
X = \begin{bmatrix} q \\ v \end{bmatrix}
X=[qv]
其中
q
q
q 代表配置(位置),
v
v
v 代表速度。
Example: Pendulum
例子:摆
m l θ ¨ + m g l sin ( θ ) = τ m l \ddot{\theta} + m g l \sin(\theta) = \tau mlθ¨+mglsin(θ)=τ
- 其中,
θ
\theta
θ 是摆角,
m
m
m 是质量,
l
l
l 是摆的长度,
g
g
g 是重力加速度,
τ
\tau
τ 是外部力矩(输入
u
u
u)。
单摆的方程可以通过拉格朗日方程来推导,以下是推导过程的简要步骤:
1 定义变量和力学参数
- 角度 θ \theta θ 代表摆的偏离垂直方向的角度。
- m m m 是摆锤的质量。
- l l l 是摆的长度。
- g g g 是重力加速度。
- τ \tau τ 是施加在摆上的外力矩。
2 拉格朗日函数的建立
拉格朗日函数 L L L 为系统的动能 T T T 和势能 U U U 之差,即
L = T − U L = T - U L=T−U
动能:摆的动能可以由质量和速度的平方计算得到。由于单摆只有角度自由度,动能为: T = 1 2 m ( l θ ˙ ) 2 = 1 2 m l 2 θ ˙ 2 T = \frac{1}{2} m (l \dot{\theta})^2 = \frac{1}{2} m l^2 \dot{\theta}^2 T=21m(lθ˙)2=21ml2θ˙2
势能:势能与摆锤的高度有关,摆锤的高度与角度 θ \theta θ 有关,势能为: U = m g l ( 1 − cos ( θ ) ) U = mgl(1 - \cos(\theta)) U=mgl(1−cos(θ))
因此,拉格朗日函数为: L = 1 2 m l 2 θ ˙ 2 − m g l ( 1 − cos ( θ ) ) L = \frac{1}{2} m l^2 \dot{\theta}^2 - mgl(1 - \cos(\theta)) L=21ml2θ˙2−mgl(1−cos(θ))
3 使用拉格朗日方程求解
拉格朗日方程为: d d t ( ∂ L ∂ θ ˙ ) − ∂ L ∂ θ = 0 \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{\theta}} \right) - \frac{\partial L}{\partial \theta} = 0 dtd(∂θ˙∂L)−∂θ∂L=0
对 θ ˙ \dot{\theta} θ˙ 求偏导: ∂ L ∂ θ ˙ = m l 2 θ ˙ \frac{\partial L}{\partial \dot{\theta}} = m l^2 \dot{\theta} ∂θ˙∂L=ml2θ˙
对 θ \theta θ 求偏导: ∂ L ∂ θ = − m g l sin ( θ ) \frac{\partial L}{\partial \theta} = -mgl \sin(\theta) ∂θ∂L=−mglsin(θ)
将上述结果代入拉格朗日方程,得到: d d t ( m l 2 θ ˙ ) + m g l sin ( θ ) = 0 \frac{d}{dt}(m l^2 \dot{\theta}) + mgl \sin(\theta) = 0 dtd(ml2θ˙)+mglsin(θ)=0
即: m l 2 θ ¨ + m g l sin ( θ ) = 0 m l^2 \ddot{\theta} + m g l \sin(\theta) = 0 ml2θ¨+mglsin(θ)=0
4 引入外力矩
外力矩 τ \tau τ 可以直接加到方程中,得到最终的单摆方程: m l 2 θ ¨ + m g l sin ( θ ) = τ m l^2 \ddot{\theta} + m g l \sin(\theta) = \tau ml2θ¨+mglsin(θ)=τ
State Representation
状态表示
q
=
θ
,
v
=
θ
˙
q= \theta, v= \dot{\theta}
q=θ,v=θ˙
x = [ θ θ ˙ ] ⇒ x ˙ = [ θ ˙ θ ¨ ] = [ θ ˙ − g l sin ( θ ) + 1 m l 2 τ ] x = \begin{bmatrix} \theta \\ \dot{\theta} \end{bmatrix} \quad \Rightarrow \quad \dot{x} = \begin{bmatrix} \dot{\theta} \\ \ddot{\theta} \end{bmatrix} = \begin{bmatrix} \dot{\theta} \\ - \frac{g}{l} \sin(\theta) + \frac{1}{m l^2} \tau \end{bmatrix} x=[θθ˙]⇒x˙=[θ˙θ¨]=[θ˙−lgsin(θ)+ml21τ]
System Constraints
系统约束
-
q
∈
S
1
q \in S^1
q∈S1 (Circle),
x
∈
S
1
×
R
x \in S^1 \times \mathbb{R}
x∈S1×R (Cylinder)
1. q ∈ S 1 q \in S^1 q∈S1 (Circle)
这表示变量 q q q(通常是角度 θ \theta θ)属于单位圆上的点。
- S 1 S^1 S1 是数学中表示一维圆的符号,意味着 q q q是一个环形变量,取值范围是 0 ≤ q < 2 π 0 \leq q < 2\pi 0≤q<2π(即角度 θ \theta θ的取值范围)。
- 在单摆的情况中, q q q通常表示摆的角度,它在 0 0 0到 2 π 2\pi 2π之间循环变化。
2. x ∈ S 1 × R x \in S^1 \times \mathbb{R} x∈S1×R (Cylinder)
这表示状态空间 x x x是一个由两部分构成的集合:
-
第一部分: S 1 S^1 S1,表示环形的角度变量 q q q,即摆的角度。
-
第二部分: R \mathbb{R} R,表示线性变量,通常是角速度 θ ˙ \dot{\theta} θ˙或其他状态变量。
-
S 1 × R S^1 \times \mathbb{R} S1×R 是“单位圆与实数轴的笛卡尔积”,可以被看作一个圆柱体形状的状态空间。
-
这里的状态空间 x x x包含了摆的角度 q q q和角速度 q ˙ \dot{q} q˙,因此 x x x在数学上是一个圆柱体,其中圆的部分是角度,实数轴部分是速度。
- S 1 S^1 S1是什么?
- S 1 S^1 S1 表示的是单位圆,这个数学符号描述了一个一维的闭合曲线,所有点都距离圆心的距离是1。
- S 1 S^1 S1 的一个常见例子就是角度 θ \theta θ,它的取值范围是从 0 0 0到 2 π 2\pi 2π,代表一个完整的圆形运动。例如,一个摆的角度 θ \theta θ可以从 0 0 0(垂直向下)开始,转到 2 π 2\pi 2π(又回到最初位置)。
- S 1 × R S^1 \times \mathbb{R} S1×R是怎么回事?
- S 1 × R S^1 \times \mathbb{R} S1×R 代表的是 S 1 S^1 S1(一个圆)和 R \mathbb{R} R(实数轴)的笛卡尔积 。
- 这里的笛卡尔积的意思是将圆( S 1 S^1 S1)与一个实数(例如角速度 θ ˙ \dot{\theta} θ˙)结合在一起,形成一个新的空间。换句话说, x x x
在这个空间中表示的是角度( S 1 S^1 S1)和角速度( R \mathbb{R} R)的组合。
假设你有一个摆:
- 当摆的角度 θ = 0 \theta = 0 θ=0时(比如说,摆垂直向下),你可以给它一个角速度 θ ˙ \dot{\theta} θ˙(例如, θ ˙ = 1 \dot{\theta} = 1 θ˙=1表示角速度为1)。
- 当摆的角度 θ = π \theta = \pi θ=π时(比如说,摆正好摆到最远的位置),你依然可以给它一个角速度 θ ˙ \dot{\theta} θ˙,比如 θ ˙ = − 2 \dot{\theta} = -2 θ˙=−2。
这个过程可以表示为:
- q ∈ S 1 q \in S^1 q∈S1:角度变量 q q q是一个圆上的位置,随着时间不断地从 0 0 0到 2 π 2\pi 2π变化,回到起点。
- x ∈ S 1 × R x \in S^1 \times \mathbb{R} x∈S1×R:状态空间是圆柱形的,它不仅包括圆上的角度,还包括与之对应的角速度,形成一个二维的空间。这个空间包含了所有的角度和对应的角速度。
Control - Affine Systems
控制 - 仿射系统
x
˙
=
f
0
(
x
)
+
B
(
x
)
u
\dot{x} = f_0(x) + B(x) u
x˙=f0(x)+B(x)u
其中
f
0
(
x
)
f_0(x)
f0(x) 是漂移项,
B
(
x
)
B(x)
B(x) 代表输入雅可比矩阵。
Most systems can be put in this form
大多数系统可以表示为此形式
这是连续性系统方程的一种特殊的形式,控制输入
u
u
u通过仿射矩阵来直接作用于系统。
Pendulum
摆的例子
f
0
(
x
)
=
[
θ
˙
−
g
l
sin
(
θ
)
]
,
B
(
x
)
=
[
0
1
m
l
2
]
f_0(x) = \begin{bmatrix} \dot{\theta} \\ -\frac{g}{l} \sin(\theta) \end{bmatrix}, \quad B(x) = \begin{bmatrix} 0 \\ \frac{1}{m l^2} \end{bmatrix}
f0(x)=[θ˙−lgsin(θ)],B(x)=[0ml21]
Manipulator Dynamics
机械臂动力学
M ( q ) v ˙ + C ( q , v ) = B ( q ) u + F M(q) \dot{v} + C(q, v) = B(q) u + F M(q)v˙+C(q,v)=B(q)u+F
- “Mass matrix”
- “质量矩阵”
- “Dynamic term (Coriolis-Gravity)”
- “动态项(科里奥利效应-重力)”
- “Input Jacobian”
- “输入雅可比矩阵”
- “External Forces”
- “外部力”
q ˙ = G ( q ) v \dot{q} = G(q) v q˙=G(q)v
- “Velocity Kinematics”
- “速度运动学”
x ˙ = f ( x , u ) = [ G ( q ) v M ( q ) − 1 ( B ( q ) u − C ) ] \dot{x} = f(x, u) = \begin{bmatrix} G(q)v \\ M(q)^{-1} (B(q) u - C) \end{bmatrix} x˙=f(x,u)=[G(q)vM(q)−1(B(q)u−C)]
Pendulum
摆的例子
M
(
q
)
=
m
l
2
,
C
(
q
,
v
)
=
m
g
l
sin
(
θ
)
,
B
=
I
,
G
=
I
M(q) = m l^2, \quad C(q,v) = m g l \sin(\theta), \quad B = I, \quad G = I
M(q)=ml2,C(q,v)=mglsin(θ),B=I,G=I
General Equation Form
一般方程形式
-
All mechanical systems can be written like this
所有机械系统都可以用这种形式表示 -
This is just a way of re-writing the Euler-Lagrange equation for
这只是重写欧拉-拉格朗日方程的一种方式
L = 1 2 v T M ( q ) v − U ( q ) L = \frac{1}{2}v^T M(q)v - U(q) L=21vTM(q)v−U(q)
- “Kinetic energy”
- “动能”
- “Potential energy”
- “势能”
Linear Systems
线性系统
x ˙ = A ( t ) x + B ( t ) u \dot{x} = A(t) x + B(t) u x˙=A(t)x+B(t)u
-
Called “time invariant” if
如果系统是“时间不变”的
A ( t ) = A , B ( t ) = B A(t) = A, \quad B(t) = B A(t)=A,B(t)=B -
Called “time varying” otherwise
否则,称为“时间变化” -
Super important in control
在控制中非常重要 -
We often approximate nonlinear systems with linear ones
我们常常将非线性系统用线性系统近似
x ˙ = f ( x , u ) ⇒ A = ∂ f ∂ x , B = ∂ f ∂ u \dot{x} = f(x, u) \Rightarrow A = \frac{\partial f}{\partial x}, \quad B = \frac{\partial f}{\partial u} x˙=f(x,u)⇒A=∂x∂f,B=∂u∂f
Equilibria
平衡点
-
A point where the system will “remain at rest”
系统将“保持静止”的点x ˙ = f ( x , u ) = 0 \dot{x} = f(x, u) = 0 x˙=f(x,u)=0
- 这表示系统的状态( x x x)在平衡点时的变化率为零,意味着系统处于静止状态。
-
Algebraically, roots of the dynamics
代数上,动力学方程的根- 这表示平衡点是动力学方程的解,或系统的根。
Pendulum
摆的例子
-
Pendulum dynamics
摆的动力学
对于摆:
θ ¨ = g l sin ( θ ) + 1 m l 2 τ \ddot{\theta} = \frac{g}{l} \sin(\theta) + \frac{1}{m l^2} \tau θ¨=lgsin(θ)+ml21τ
x ˙ = [ θ ˙ − g l sin ( θ ) ] = [ 0 0 ] \dot{x} = \begin{bmatrix} \dot{\theta} \\ -\frac{g}{l} \sin(\theta) \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix} x˙=[θ˙−lgsin(θ)]=[00]
这里是摆的状态方程, θ \theta θ是摆的角度, θ ˙ \dot{\theta} θ˙是角速度, g g g是重力加速度, l l l是摆的长度。 -
Solution
θ ˙ = 0 , θ = 0 , π \dot{\theta} = 0, \quad \theta = 0, \pi θ˙=0,θ=0,π
- 平衡点的解是角速度 θ ˙ = 0 \dot{\theta} = 0 θ˙=0,角度 θ = 0 \theta = 0 θ=0 或 θ = π \theta = \pi θ=π,这表示摆垂直向下或向上。
说明:
- θ = 0 \theta = 0 θ=0 代表摆垂直向下的位置, θ = π \theta = \pi θ=π 代表摆垂直向上的位置。
- 这两个点是单摆的稳定平衡点。
First Control Problem
第一个控制问题
- Can I move the equilibria?
我能改变平衡点吗?
x ˙ = [ θ ˙ − g l sin ( θ ) + 1 m l 2 u ] = [ 0 0 ] \dot{x} = \begin{bmatrix} \dot{\theta} \\ -\frac{g}{l} \sin(\theta) + \frac{1}{ml^2}u \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix} x˙=[θ˙−lgsin(θ)+ml21u]=[00]
改变平衡点为
θ
=
π
/
2
\theta = \pi/2
θ=π/2
⇒
u
=
m
g
l
\Rightarrow u = mgl
⇒u=mgl
- In general, we get a root-finding problem in
一般来说,我们得到一个根求解问题
f ( x ∗ , u ) = 0 f(x^*, u) = 0 f(x∗,u)=0
Stability of Equilibria
平衡点的稳定性
- When will we stay “near” an equilibrium point under perturbations
在扰动下,我们何时能保持在平衡点附近?
Look at a 1D system
考虑一个一维系统
x
˙
=
f
(
x
)
\dot{x} = f(x)
x˙=f(x)
一个三次多项式的系统方程
Stable and Unstable Equilibrium
稳定与不稳定平衡
- If ∂ f ∂ x < 0 ⇒ \frac{\partial f}{\partial x} < 0 \Rightarrow ∂x∂f<0⇒ stable
- If ∂ f ∂ x > 0 ⇒ \frac{\partial f}{\partial x} > 0 \Rightarrow ∂x∂f>0⇒ unstable
In Higher Dimensions
在更高维度中的稳定性
-
∂ f ∂ x \frac{\partial f}{\partial x} ∂x∂f is a Jacobian matrix
∂ f ∂ x \frac{\partial f}{\partial x} ∂x∂f 是雅可比矩阵 -
Take an eigen decomposition ⇒ \Rightarrow ⇒ decouple into n 1D systems
进行特征值分解, ⇒ \Rightarrow ⇒ 将系统解耦成n个一维系统-
Re [eig( ∂ f ∂ x \frac{\partial f}{\partial x} ∂x∂f)] < 0 ⇒ \Rightarrow ⇒ stable
-
Otherwise ⇒ \Rightarrow ⇒ unstable
-
Pendulum Example
摆的例子
f
(
x
)
=
[
θ
˙
−
g
l
sin
(
θ
)
]
⇒
∂
f
∂
x
=
[
0
1
−
g
l
cos
(
θ
)
0
]
f(x) = \begin{bmatrix} \dot{\theta} \\ -\frac{g}{l} \sin(\theta) \end{bmatrix} \Rightarrow \frac{\partial f}{\partial x} = \begin{bmatrix} 0 & 1 \\ -\frac{g}{l} \cos(\theta)& 0 \end{bmatrix}
f(x)=[θ˙−lgsin(θ)]⇒∂x∂f=[0−lgcos(θ)10]
-
For θ = π \theta = \pi θ=π:
当 θ = π \theta = \pi θ=π 时 求特征值
∂ f ∂ x ∣ θ = π = [ 0 1 g l 0 ] ⇒ e i g ( ∂ f ∂ x ) = ± g l \frac{\partial f}{\partial x} \Bigg|_{\theta = \pi} = \begin{bmatrix} 0 & 1 \\ \frac{g}{l} & 0 \end{bmatrix} \Rightarrow eig \left( \frac{\partial f}{\partial x} \right) = \pm \sqrt{\frac{g}{l}} ∂x∂f θ=π=[0lg10]⇒eig(∂x∂f)=±lg
For θ = ± π \theta = \pm \pi θ=±π we get an unstable equilibrium
对于 θ = ± π \theta = \pm \pi θ=±π,我们得到不稳定的平衡点 -
For θ = 0 \theta = 0 θ=0:
当 θ = 0 \theta = 0 θ=0 时 求特征值
∂ f ∂ x ∣ θ = 0 = [ 0 1 − g l 0 ] ⇒ e i g ( ∂ f ∂ x ) = ± i g l \frac{\partial f}{\partial x} \Bigg|_{\theta = 0} = \begin{bmatrix} 0 &1 \\ -\frac{g}{l}& 0 \end{bmatrix} \Rightarrow eig \left( \frac{\partial f}{\partial x} \right) = \pm i \sqrt{\frac{g}{l}} ∂x∂f θ=0=[0−lg10]⇒eig(∂x∂f)=±ilg
系统是临界稳定的。这意味着,假如在平衡点处给一点小扰动,那么单摆在没有空气阻力的情况下将会一直荡下去。- Pure imaginary case is called “marginally stable”
纯虚数情况称为“边际稳定”
⇒ \Rightarrow ⇒ Undamped oscillations
无阻尼振荡
- Pure imaginary case is called “marginally stable”
Damping Effect
阻尼效应
-
Pure imaginary case is called “marginally stable”
纯虚数解称为“边际稳定”
⇒ \Rightarrow ⇒ Undamped oscillations
无阻尼振荡 -
Add damping (e.g., U = − K d θ ˙ U = -K_d \dot{\theta} U=−Kdθ˙) results in strictly negative real part
加入阻尼(例如 U = − K θ ˙ U = -K \dot{\theta} U=−Kθ˙)结果是严格的负实部
在物理系统中加入阻尼后,会导致系统的振荡逐渐减弱,并最终停止。具体来说,这里的 阻尼(damping)指的是一种物理机制,它消耗系统的能量,通常表现为一种与速度(或者角速度)成正比的力。
加入阻尼后, u = − K θ ˙ u = -K \dot{\theta} u=−Kθ˙会导致系统的运动逐渐减弱,因为它会使得系统的特征解中的实部为负,这表示振荡的能量被消耗,最终系统会停止振荡。
我们结合单摆的例子来解释阻尼作用和为何加入阻尼后会导致实部为负,使得系统的振荡逐渐消失。
- 单摆的基本模型
单摆的动力学可以通过以下方程来描述:
m l 2 θ ¨ + m g l sin ( θ ) = τ m l^2 \ddot{\theta} + m g l \sin(\theta) = \tau ml2θ¨+mglsin(θ)=τ
在没有外力作用时,系统的自然运动是摆的振荡,也就是摆在某个角度范围内不断来回摆动。
- 加入阻尼后的方程
当我们在系统中加入阻尼时,阻尼力通常是与摆的角速度 θ ˙ \dot{\theta} θ˙ 成正比的,即:
τ = − K θ ˙ \tau = - K \dot{\theta} τ=−Kθ˙
其中 K K K 是阻尼系数,表示阻尼力的强度。
加入阻尼后的运动方程变为:
m l 2 θ ¨ + m g l sin ( θ ) + K θ ˙ = 0 m l^2 \ddot{\theta} + m g l \sin(\theta) + K \dot{\theta} = 0 ml2θ¨+mglsin(θ)+Kθ˙=0
或者,可以简化为:
θ ¨ + g l sin ( θ ) + K m l 2 θ ˙ = 0 \ddot{\theta} + \frac{g}{l} \sin(\theta) + \frac{K}{m l^2} \dot{\theta} = 0 θ¨+lgsin(θ)+ml2Kθ˙=0
- 阻尼对系统的影响:
3.1 无阻尼情况:
- 在没有阻尼的情况下,系统会持续振荡,摆的角度 θ \theta θ 会在某个范围内来回摆动。此时,系统的运动方程会有复数解,其中的实部为零,这意味着系统的振幅不会随时间减小或增大,而是保持恒定(无能量损失)。在这种情况下,摆的振荡是理想的,没有任何能量损失。
3.2 加入阻尼后的情况:
- 加入阻尼后,系统的能量开始不断被消耗,因为阻尼力与角速度成正比,角速度越大,阻尼力就越大,进而减缓摆的运动。通过上面的方程可以看到,加入阻尼项后,系统的特征解会有一个负实部,这意味着摆的振幅会随着时间逐渐减小,最终系统停止振荡。
3.3 数学解释: 为了简化分析,我们可以对上述方程进行线性化(假设小角度摆动, sin ( θ ) ≈ θ \sin(\theta) \approx \theta sin(θ)≈θ):
θ ¨ + g l θ + K m l 2 θ ˙ = 0 \ddot{\theta} + \frac{g}{l} \theta + \frac{K}{m l^2} \dot{\theta} = 0 θ¨+lgθ+ml2Kθ˙=0
这是一个二阶线性微分方程,解这个方程时,我们可以得到复数解,其形式为:
θ ( t ) = A e λ t \theta(t) = A e^{\lambda t} θ(t)=Aeλt
其中 λ \lambda λ是特征根,它由方程的系数决定,表示系统的稳定性。
- 如果系统无阻尼,则解为纯虚数根,表示振荡保持恒定,频率不变。
- 加入阻尼后,特征解的实部变为负值,表示系统的振荡会随着时间逐渐衰减,振幅变小,直到最终停止。
特征根的形式可以表示为:
λ = − K 2 m l 2 ± i g l \lambda = - \frac{K}{2m l^2} \pm i \sqrt{\frac{g}{l}} λ=−2ml2K±ilg
这里,负实部 − K 2 m l 2 - \frac{K}{2m l^2} −2ml2K 表示能量的消耗,即振荡的幅度会逐渐减小。
3.4 阻尼的影响
- 阻尼作用下的系统:当我们加入阻尼项时,系统的振荡会出现能量损失,实部为负表示振荡会逐渐衰减。这种衰减是指数衰减,系统的角度会逐渐趋向零,最终停止振荡。
- 如果没有阻尼 K = 0 K = 0 K=0,那么系统将永远保持同样的振荡,不会衰减。
- 如果加入过多的阻尼,系统将变为过阻尼,即振荡完全停止,系统没有来回摆动的过程。