从最小作用量原理到最优控制理论

从最小作用量原理到最优控制理论

引言

最小作用量原理是物理学中的一个基本概念,它描述了物理系统在演化过程中选择的路径是使作用量达到极值的路径。这一原理不仅在经典力学中具有重要地位,还在量子力学、相对论和场论中得到了广泛应用。通过最小作用量原理,我们可以推导出系统的运动方程,如欧拉-拉格朗日方程和哈密顿方程。

在控制理论中,最优控制问题的核心是找到一个控制策略,使得系统的性能指标达到最优。性能指标通常是一个关于状态和控制输入的积分量,类似于物理中的作用量。因此,最小作用量原理为最优控制理论提供了一个自然的数学框架。

通过将最小作用量原理应用于控制理论,我们可以利用变分法和拉格朗日乘子法来处理最优控制问题。具体来说,我们定义一个广义作用量,其中包含了系统的状态方程作为约束条件。通过对广义作用量进行变分,我们可以得到最优控制的必要条件。这一过程不仅揭示了最优控制问题与物理系统演化之间的深刻联系,还为求解复杂的控制问题提供了有效的方法。

最小作用量原理

最小作用量原理是物理学中的一个基本概念。假设一个物理系统的拉格朗日量 L L L 仅依赖于广义坐标 q i q_i qi、广义速度 q ˙ i \dot{q}_i q˙i 和时间 t t t。作用量 S S S 定义为拉格朗日量 L L L 在时间区间 [ t 1 , t 2 ] [t_1, t_2] [t1,t2] 上的积分:

S = ∫ t 1 t 2 L ( q i , q ˙ i , t ) d t 。 S = \int_{t_1}^{t_2} L(q_i, \dot{q}_i, t) \, dt。 S=t1t2L(qi,q˙i,t)dt

根据最小作用量原理,物理系统的实际运动路径是使作用量 S S S 达到极值的路径。通过对作用量 S S S 进行变分,可以得到欧拉-拉格朗日方程:

d d t ( ∂ L ∂ q ˙ i ) − ∂ L ∂ q i = 0 。 \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_i} \right) - \frac{\partial L}{\partial q_i} = 0。 dtd(q˙iL)qiL=0

详细推导步骤

假设 q i ( t ) q_i(t) qi(t) 进行一个小的变动 δ q i ( t ) \delta q_i(t) δqi(t),并要求在边界处变动为零,即 δ q i ( t 1 ) = δ q i ( t 2 ) = 0 \delta q_i(t_1) = \delta q_i(t_2) = 0 δqi(t1)=δqi(t2)=0。变分后的作用量为:

S + δ S = ∫ t 1 t 2 L ( q i + δ q i , q ˙ i + δ q ˙ i , t ) d t 。 S + \delta S = \int_{t_1}^{t_2} L(q_i + \delta q_i, \dot{q}_i + \delta \dot{q}_i, t) \, dt。 S+δS=t1t2L(qi+δqi,q˙i+δq˙i,t)dt

S S S 进行变分,得到:

δ S = ∫ t 1 t 2 ( ∂ L ∂ q i δ q i + ∂ L ∂ q ˙ i δ q ˙ i ) d t 。 \delta S = \int_{t_1}^{t_2} \left( \frac{\partial L}{\partial q_i} \delta q_i + \frac{\partial L}{\partial \dot{q}_i} \delta \dot{q}_i \right) dt。 δS=t1t2(qiLδqi+q˙iLδq˙i)dt

利用分部积分对第二项进行处理:

∫ t 1 t 2 ∂ L ∂ q ˙ i δ q ˙ i d t = [ ∂ L ∂ q ˙ i δ q i ] t 1 t 2 − ∫ t 1 t 2 d d t ( ∂ L ∂ q ˙ i ) δ q i d t 。 \int_{t_1}^{t_2} \frac{\partial L}{\partial \dot{q}_i} \delta \dot{q}_i \, dt = \left[ \frac{\partial L}{\partial \dot{q}_i} \delta q_i \right]_{t_1}^{t_2} - \int_{t_1}^{t_2} \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_i} \right) \delta q_i \, dt。 t1t2q˙iLδq˙idt=[q˙iLδqi]t1t2t1t2dtd(q˙iL)δqidt

由于边界条件 δ q i ( t 1 ) = δ q i ( t 2 ) = 0 \delta q_i(t_1) = \delta q_i(t_2) = 0 δqi(t1)=δqi(t2)=0,第一项为零。因此,变分 δ S \delta S δS 变为:

δ S = ∫ t 1 t 2 ( ∂ L ∂ q i − d d t ( ∂ L ∂ q ˙ i ) ) δ q i d t 。 \delta S = \int_{t_1}^{t_2} \left( \frac{\partial L}{\partial q_i} - \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_i} \right) \right) \delta q_i \, dt。 δS=t1t2(qiLdtd(q˙iL))δqidt

为了使 δ S = 0 \delta S = 0 δS=0 对任意 δ q i ( t ) \delta q_i(t) δqi(t) 成立,必须有:

d d t ( ∂ L ∂ q ˙ i ) − ∂ L ∂ q i = 0 。 \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_i} \right) - \frac{\partial L}{\partial q_i} = 0。 dtd(q˙iL)qiL=0

这就是欧拉-拉格朗日方程。

欧拉-拉格朗日方程在物理学中用于描述系统的运动规律,而在最优控制理论中,它的思想也被广泛应用。通过最小作用量原理,我们可以将物理系统的运动路径与控制系统的最优路径联系起来。具体来说,最优控制问题中的性能指标类似于物理中的作用量,而控制输入的选择则类似于物理系统选择其运动路径的过程。通过变分法,我们可以得到最优控制的必要条件,这些条件与欧拉-拉格朗日方程形式上非常相似。因此,欧拉-拉格朗日方程不仅是物理学中的基本方程,也是最优控制理论中的重要工具。

最优控制公式推导

在控制理论中,我们的目标是找到一个合适的控制输入 u ( t ) u(t) u(t),使得系统在满足一定约束条件的情况下,某个性能指标 J J J 达到最小化。这个过程与物理系统通过最小作用量原理选择其运动路径的过程非常相似。为了更好地理解这一点,我们首先需要了解一些基本概念和背景知识。

控制理论的基本概念

控制理论是研究如何通过控制输入来影响系统行为的学科。一个典型的控制系统由以下几个部分组成:

  1. 被控对象:这是我们希望控制的系统,例如机械臂、飞行器或化学反应器。
  2. 控制输入:这是我们施加到系统上的信号或动作,用于引导系统达到期望的状态。
  3. 状态变量:这些变量描述了系统在任意时刻的状态,例如位置、速度或温度。
  4. 性能指标:这是一个函数,用于评估系统性能的好坏。我们的目标是通过选择合适的控制输入,使性能指标达到最优。
性能指标的定义

在最优控制问题中,性能指标 J J J 通常定义为一个积分形式的函数,它反映了系统在整个控制过程中的表现。具体形式为:

J = ∫ t 0 t f L ( x , u , t ) d t , J = \int_{t_0}^{t_f} \mathcal{L}(x, u, t) \, dt, J=t0tfL(x,u,t)dt

其中 L \mathcal{L} L 是拉格朗日函数,类似于物理中的拉格朗日量, x x x 是状态变量, u u u 是控制输入, t t t 是时间。

动力学系统的状态方程

假设我们有一个动力学系统,其状态方程描述了系统状态随时间的变化关系。状态方程通常表示为:

x ˙ = f ( x , u , t ) 。 \dot{x} = f(x, u, t)。 x˙=f(x,u,t)

这里, x ˙ \dot{x} x˙ 表示状态变量 x x x 对时间的导数, f f f 是一个函数,描述了状态变量如何受当前状态 x x x 和控制输入 u u u 的影响。

通过结合状态方程和性能指标,我们可以将最优控制问题形式化为一个数学优化问题。我们的目标是找到一个控制输入 u ( t ) u(t) u(t),使得性能指标 J J J 最小化,同时满足状态方程的约束。

广义作用量和拉格朗日乘子法

为了将最小作用量原理应用于最优控制问题,我们引入拉格朗日乘子法。定义广义作用量为

S = ∫ t 0 t f ( L ( x , u , t ) + λ T ( t ) [ x ˙ − f ( x , u , t ) ] ) d t 。 S = \int_{t_0}^{t_f} \left( \mathcal{L}(x, u, t) + \lambda^T(t) [\dot{x} - f(x, u, t)] \right) dt。 S=t0tf(L(x,u,t)+λT(t)[x˙f(x,u,t)])dt

这里, λ ( t ) \lambda(t) λ(t) 是拉格朗日乘子,用于引入状态约束。

详细解释:

通过引入拉格朗日乘子,状态方程 x ˙ = f ( x , u , t ) \dot{x} = f(x, u, t) x˙=f(x,u,t) 被包含在广义作用量中。变分法对广义作用量 S S S 进行变分时,拉格朗日乘子项确保了状态方程的约束条件被满足。

具体来说,变分后得到的方程包括:

  • x x x 的变分,得到状态方程的共轭动量方程。共轭动量方程描述了系统状态变量的变化率与拉格朗日乘子的关系,确保系统的动力学约束被满足。
  • u u u 的变分,得到最优控制的必要条件。最优控制的必要条件是指在给定约束条件下,使性能指标达到最优的控制输入 u ( t ) u(t) u(t) 必须满足的条件。
  • λ \lambda λ 的变分,确保状态方程的约束。约束方程确保系统的状态方程在优化过程中始终被满足,即系统的实际运动轨迹符合动力学方程。
变分法求解

对广义作用量 S S S 进行变分,得到最优控制的必要条件。首先,定义广义作用量:

S = ∫ t 0 t f ( L ( x , u , t ) + λ T ( t ) [ x ˙ − f ( x , u , t ) ] ) d t 。 S = \int_{t_0}^{t_f} \left( \mathcal{L}(x, u, t) + \lambda^T(t) [\dot{x} - f(x, u, t)] \right) dt。 S=t0tf(L(x,u,t)+λT(t)[x˙f(x,u,t)])dt

其中, λ ( t ) \lambda(t) λ(t) 是拉格朗日乘子。接下来,对广义作用量 S S S 进行变分,分别对 x x x u u u λ \lambda λ 进行变分。

  1. x x x 的变分

δ S = ∫ t 0 t f ( ∂ L ∂ x δ x + λ T δ x ˙ − λ T ∂ f ∂ x δ x ) d t 。 \delta S = \int_{t_0}^{t_f} \left( \frac{\partial \mathcal{L}}{\partial x} \delta x + \lambda^T \delta \dot{x} - \lambda^T \frac{\partial f}{\partial x} \delta x \right) dt。 δS=t0tf(xLδx+λTδx˙λTxfδx)dt

利用分部积分法处理 λ T δ x ˙ \lambda^T \delta \dot{x} λTδx˙ 项:

∫ t 0 t f λ T δ x ˙ d t = λ T δ x ∣ t 0 t f − ∫ t 0 t f d λ T d t δ x d t 。 \int_{t_0}^{t_f} \lambda^T \delta \dot{x} \, dt = \left. \lambda^T \delta x \right|_{t_0}^{t_f} - \int_{t_0}^{t_f} \frac{d\lambda^T}{dt} \delta x \, dt。 t0tfλTδx˙dt=λTδx t0tft0tfdtdλTδxdt

由于边界条件 δ x ( t 0 ) = δ x ( t f ) = 0 \delta x(t_0) = \delta x(t_f) = 0 δx(t0)=δx(tf)=0,第一项为零。因此,变分 δ S \delta S δS 变为:

δ S = ∫ t 0 t f ( ∂ L ∂ x − d λ d t − λ T ∂ f ∂ x ) δ x d t 。 \delta S = \int_{t_0}^{t_f} \left( \frac{\partial \mathcal{L}}{\partial x} - \frac{d\lambda}{dt} - \lambda^T \frac{\partial f}{\partial x} \right) \delta x \, dt。 δS=t0tf(xLdtdλλTxf)δxdt

为了使 δ S = 0 \delta S = 0 δS=0 对任意 δ x ( t ) \delta x(t) δx(t) 成立,必须有:

∂ L ∂ x − d λ d t − λ T ∂ f ∂ x = 0 。 \boxed{\frac{\partial \mathcal{L}}{\partial x} - \frac{d\lambda}{dt} - \lambda^T \frac{\partial f}{\partial x} = 0。} xLdtdλλTxf=0

  1. u u u 的变分

δ S = ∫ t 0 t f ( ∂ L ∂ u δ u + λ T ∂ f ∂ u δ u ) d t 。 \delta S = \int_{t_0}^{t_f} \left( \frac{\partial \mathcal{L}}{\partial u} \delta u + \lambda^T \frac{\partial f}{\partial u} \delta u \right) dt。 δS=t0tf(uLδu+λTufδu)dt

为了使 δ S = 0 \delta S = 0 δS=0 对任意 δ u ( t ) \delta u(t) δu(t) 成立,必须有:

∂ L ∂ u + λ T ∂ f ∂ u = 0 。 \boxed{\frac{\partial \mathcal{L}}{\partial u} + \lambda^T \frac{\partial f}{\partial u} = 0。} uL+λTuf=0

  1. λ \lambda λ 的变分

δ S = ∫ t 0 t f ( x ˙ − f ( x , u , t ) ) δ λ d t 。 \delta S = \int_{t_0}^{t_f} \left( \dot{x} - f(x, u, t) \right) \delta \lambda \, dt。 δS=t0tf(x˙f(x,u,t))δλdt

为了使 δ S = 0 \delta S = 0 δS=0 对任意 δ λ ( t ) \delta \lambda(t) δλ(t) 成立,必须有:

x ˙ = f ( x , u , t ) 。 \boxed{\dot{x} = f(x, u, t)。} x˙=f(x,u,t)

综上所述,最优控制的必要条件包括:

  • 状态方程:

    x ˙ = f ( x , u , t ) 。 \dot{x} = f(x, u, t)。 x˙=f(x,u,t)

  • 共轭动量方程:

    d λ d t = − ∂ L ∂ x + λ T ∂ f ∂ x 。 \frac{d\lambda}{dt} = -\frac{\partial \mathcal{L}}{\partial x} + \lambda^T \frac{\partial f}{\partial x}。 dtdλ=xL+λTxf

  • 最优控制条件:

    ∂ L ∂ u + λ T ∂ f ∂ u = 0 。 \frac{\partial \mathcal{L}}{\partial u} + \lambda^T \frac{\partial f}{\partial u} = 0。 uL+λTuf=0

最优控制举例

假设我们有一个简单的线性系统,其状态方程为

x ˙ = A x + B u , \dot{x} = Ax + Bu, x˙=Ax+Bu

其中 x x x 是状态向量, u u u 是控制输入, A A A B B B 是已知矩阵。我们希望最小化以下性能指标:

J = 1 2 ∫ 0 ∞ ( x T Q x + u T R u ) d t , J = \frac{1}{2} \int_{0}^{\infty} \left( x^T Q x + u^T R u \right) dt, J=210(xTQx+uTRu)dt

其中 Q Q Q R R R 是权重矩阵,分别用于衡量状态偏离和控制能量的代价。

首先,定义哈密顿量 H \mathcal{H} H 为:

H = 1 2 x T Q x + 1 2 u T R u + λ T ( A x + B u ) 。 \mathcal{H} = \frac{1}{2} x^T Q x + \frac{1}{2} u^T R u + \lambda^T (Ax + Bu)。 H=21xTQx+21uTRu+λT(Ax+Bu)

哈密顿量和拉格朗日量是物理学中两个重要的概念。拉格朗日量 L L L 通常用于描述系统的动力学,其形式为广义坐标 q i q_i qi 和广义速度 q ˙ i \dot{q}_i q˙i 的函数。通过最小作用量原理,拉格朗日量可以用来推导系统的运动方程。而哈密顿量 H H H 则是通过拉格朗日量的勒让德变换得到的,通常用于描述系统的能量,其形式为广义坐标 q i q_i qi 和共轭动量 p i p_i pi 的函数。哈密顿量在哈密顿力学中起着核心作用,通过哈密顿正则方程描述系统的演化。

在最优控制问题中,我们使用哈密顿量是因为它能够将状态变量 x x x、控制变量 u u u 和共轭变量 λ \lambda λ 结合在一个函数中,从而便于应用最优控制的必要条件来求解问题。哈密顿量主要用于描述系统在最优控制问题中的瞬时状态和控制,而拉格朗日量则用于描述系统的整体演化路径。通过引入哈密顿量,我们可以更方便地处理最优控制问题中的变分和优化过程。

根据最优控制的必要条件,对 x x x u u u λ \lambda λ 进行变分,得到以下方程:

  1. 状态方程

x ˙ = ∂ H ∂ λ = A x + B u 。 \dot{x} = \frac{\partial \mathcal{H}}{\partial \lambda} = Ax + Bu。 x˙=λH=Ax+Bu

  1. 共轭动量方程

λ ˙ = − ∂ H ∂ x = − Q x − A T λ 。 \dot{\lambda} = -\frac{\partial \mathcal{H}}{\partial x} = -Qx - A^T \lambda。 λ˙=xH=QxATλ

  1. 最优控制条件

∂ H ∂ u = 0 ⇒ R u + B T λ = 0 ⇒ u = − R − 1 B T λ 。 \frac{\partial \mathcal{H}}{\partial u} = 0 \Rightarrow R u + B^T \lambda = 0 \Rightarrow u = -R^{-1} B^T \lambda。 uH=0Ru+BTλ=0u=R1BTλ

为了简化问题的求解过程,我们可以将 λ \lambda λ 表示为 P x P x Px,即 λ = P x \lambda = P x λ=Px。这是因为在许多最优控制问题中, λ \lambda λ 通常可以表示为状态变量 x x x 的线性组合,其中 P P P 是一个待求解的矩阵。通过这种表示方法,我们可以将共轭动量方程中的 λ \lambda λ 替换为 P x P x Px,从而将问题转化为关于 P P P x x x 的方程,便于进一步求解。代入共轭动量方程:

λ ˙ = P x ˙ + P ˙ x = P ( A x + B u ) + P ˙ x 。 \dot{\lambda} = P \dot{x} + \dot{P} x = P (Ax + Bu) + \dot{P} x。 λ˙=Px˙+P˙x=P(Ax+Bu)+P˙x

将其代入共轭动量方程:

P ( A x + B u ) + P ˙ x = − Q x − A T P x 。 P (Ax + Bu) + \dot{P} x = -Qx - A^T P x。 P(Ax+Bu)+P˙x=QxATPx

u = − R − 1 B T P x u = -R^{-1} B^T P x u=R1BTPx 代入上式:

P ( A x − B R − 1 B T P x ) + P ˙ x = − Q x − A T P x 。 P (Ax - B R^{-1} B^T P x) + \dot{P} x = -Qx - A^T P x。 P(AxBR1BTPx)+P˙x=QxATPx

这一步化简是通过将方程两边的项按 x x x 的系数进行整理得到的。首先,将方程中的所有项移到等号的一边:

P A x − P B R − 1 B T P x + P ˙ x + Q x + A T P x = 0 。 P A x - P B R^{-1} B^T P x + \dot{P} x + Q x + A^T P x = 0。 PAxPBR1BTPx+P˙x+Qx+ATPx=0

然后,将所有含有 x x x 的项合并在一起:

( P A − P B R − 1 B T P + P ˙ + Q + A T P ) x = 0 。 (P A - P B R^{-1} B^T P + \dot{P} + Q + A^T P) x = 0。 (PAPBR1BTP+P˙+Q+ATP)x=0

由于 x x x 是任意的,可以将 x x x 前的系数单独列出,得到:

P A − P B R − 1 B T P + P ˙ + Q + A T P = 0 。 P A - P B R^{-1} B^T P + \dot{P} + Q + A^T P = 0。 PAPBR1BTP+P˙+Q+ATP=0

最后,假设 P ˙ = 0 \dot{P} = 0 P˙=0,即 P P P 是常数矩阵,得到:

A T P + P A − P B R − 1 B T P + Q = 0 。 A^T P + P A - P B R^{-1} B^T P + Q = 0。 ATP+PAPBR1BTP+Q=0

求解该代数黎卡提方程,详细步骤如下:

  1. 初始条件:首先,确定初始条件 P ( 0 ) P(0) P(0)。在许多情况下,初始条件可以设定为零矩阵或单位矩阵,具体取决于问题的具体要求。

  2. 迭代求解:使用数值方法迭代求解黎卡提方程。常用的方法包括:

    • 梯度下降法:通过不断调整 P P P 的值,使得黎卡提方程的残差逐渐减小,直到收敛到一个稳定的解。
    • 牛顿-拉夫森法:利用牛顿-拉夫森迭代法求解非线性方程组,通过线性化黎卡提方程并逐步逼近解。
    • 离散黎卡提方程求解法:对于离散时间系统,可以使用离散黎卡提方程的求解方法,如动态规划法。
  3. 验证解的正定性:在每一步迭代中,检查矩阵 P P P 是否保持对称正定。如果 P P P 不是对称正定的,需要调整初始条件或迭代方法。

  4. 收敛判定:设定收敛判定条件,如残差的范数小于某个阈值,或者迭代次数达到预定的最大值。当满足收敛条件时,停止迭代,得到最终的 P P P 矩阵。

  5. 计算最优反馈增益矩阵:一旦求得对称正定矩阵 P P P,最优反馈增益矩阵 K K K 则为:

K = R − 1 B T P 。 K = R^{-1} B^T P。 K=R1BTP

这是因为在最优控制问题中,我们通过最小化性能指标 J = 1 2 ∫ 0 ∞ ( x T Q x + u T R u ) d t J = \frac{1}{2} \int_0^\infty (x^T Q x + u^T R u) \, dt J=210(xTQx+uTRu)dt 来确定控制律 u u u。通过变分法和拉格朗日乘子法,我们得到了黎卡提方程。求解黎卡提方程得到的对称正定矩阵 P P P,可以用来构造最优反馈增益矩阵 K K K。具体来说, K K K 的形式 K = R − 1 B T P K = R^{-1} B^T P K=R1BTP 是为了确保控制输入 u u u 最小化性能指标 J J J,从而实现系统的最优控制。

因此,最优控制律为:

u = − K x 。 u = -K x。 u=Kx

通过这个例子,我们可以看到如何从最小作用量原理出发,结合变分法和拉格朗日乘子法,推导出最优控制问题的解法。

总结

本文从最小作用量原理出发,详细推导了最优控制理论的基本框架和求解方法。通过引入广义作用量和拉格朗日乘子法,我们能够将物理系统的动力学约束整合到最优控制问题中,并通过变分法得到最优控制的必要条件。通过具体的线性系统例子,我们展示了如何应用这些理论工具来求解实际的最优控制问题。

最小作用量原理不仅为物理学提供了一个统一的理论框架,也为控制理论提供了强有力的数学工具。通过将这两者结合,我们能够更好地理解和解决复杂的控制问题。这一过程不仅揭示了物理系统演化与最优控制之间的深刻联系,也为未来的研究和应用提供了广阔的空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/3587.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【CENet】多模态情感分析的跨模态增强网络

在MSA领域,文本的准确度远远高于音频和视觉,如果文本能达到90%,那么音频和视觉的准确度只有60%~80%,但是过往研究很少针对情感分析的背景下去提高音频和视频的准确度。 abstract: 多模态情感分析(MSA&…

多线程--模拟实现定时器--Java

一、定时器的概念 定时器的本质就是一个闹钟,时间到了开始执行某些逻辑。Java标准库中的定时器是Timer。 我们查阅Java文档可以详细看到定时器的使用方法: Timer最核心的方法就是schedule方法。值得注意的是我们通常描述任务是使用Runnable来描述&…

‌MySQL中‌between and的基本用法‌

文章目录 一、between and语法二、使用示例2.1、between and数值查询2.2、between and时间范围查询2.3、not between and示例 BETWEEN AND操作符可以用于数值、日期等类型的字段,包括边界值。 一、between and语法 MySQL中的BETWEEN AND操作符用于在两个值之间选择…

视频一键转换3D:Autodesk 发布 Video to 3D Scene

Video 3D Scene 最近 Autodesk 旗下公司 Wonder Dynamics 推出了 Wonder Animation 的测试版,它使用突破性的视频到 3D 场景技术,通过将任何视频序列转换为 3D 动画场景来加速动画电影的制作。 Video 3D Scene Video 3D Scene 生成效果 作为 Wonder Stud…

数据结构 C/C++(实验一:线性表)

(大家好,今天分享的是数据结构的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 提要:实验题目 一、实验目的 二、实验内容及要求 三、算法思想 实验1 实验2 四、源程序及注释 …

关于SQLServer在局域网内无法连接的问题的解决思路

针对SQL Server 2008在局域网内无法连接的问题,以下是一些详细的解决办法。我们在过程中需要用到Microsoft SQL Server 2008和Microsoft SQL Server tools 2008数据库软件中的配置管理器以及SQL Server Management Studio工具,入下截图所示。 一、检查网…

【C++】RBTree——红黑树

文章目录 一、红黑树的概念1.1 红⿊树的规则:1.2 理解最长路径长度不超过最短路径长度的 2 倍1.3 红⿊树的效率 二、 红⿊树的实现2.1 红⿊树的结构2.2 红⿊树的插⼊2.2.1 红⿊树树插⼊⼀个值的⼤概过程 2.3 红⿊树的插⼊代码实现 一、红黑树的概念 红⿊树是⼀棵⼆…

Docker-- cgroups资源控制实战

上一篇:容器化和虚拟化 什么是cgroups? cgroups是Linux内核中的一项功能,最初由Google的工程师提出,后来被整合进Linux内核; 它允许用户将一系列系统任务及其子任务整合或分隔到按资源划分等级的不同组内,从而为系统…

vscode ssh连接autodl失败

autodl服务器已开启,vscode弹窗显示连接失败 0. 检查状态 这里的端口和主机根据自己的连接更改 ssh -p 52165 rootregion-45.autodl.pro1. 修改config权限 按返回的路径找到config文件 右键--属性--安全--高级--禁用继承--从此对象中删除所有已继承的权限--添加…

你适合哪种tiktok广告账户类型?

TikTok在广告营销方面的分类体系极为详尽。在开设广告账户时,根据不同的海外市场和商品类型,TikTok会有各自的开户标准。此外,广告主所开设的TikTok广告账户类型会直接影响其可投放的广告类型。在广告出价方面,广告主的营销目标不…

大规模语言模型:从理论到实践(1)

1、绪论 大规模语言模型(Large Language Models,LLM)是由包含数百亿以上参数的深度神经网络构建的语言模型,采用自监督学习方法通过大量无标注文本进行训练。自2018年以来,多个公司和研究机构相继发布了多种模型&#…

SpringBoot中@Validated或@Valid注解校验的使用

文章目录 SpringBoot中Validated或Valid注解校验的使用1. 添加依赖2. 使用示例准备2-1 测试示例用到的类2-2 实体Dto,加入校验注解2-2 Controller 3. 示例测试4. Valid 和 Validated注解详解4-1 常用规则注解4-2 分组验证4-2-1 示例准备4-2-2 Controller接口4-2-3 P…

HarmonyOS使用arkTS拉起指定第三方应用程序

HarmonyOS使用arkTS拉起指定第三方应用程序 前言代码及说明bundleName获取abilityName获取 前言 本篇只说采用startAbility方式拉起第三方应用,需要用到两个必备的参数bundleName,abilityName,本篇就介绍如何获取参数… 代码及说明 bundle…

04_CC2530+Uart串口通信

04_CC2530UART串口通信 串口通信基本概念 串行通信: 数据字节一位位地依次传送的通信方式, 串行通信的速度慢, 但用的传输线条数少, 成本低,适用于远距离的数据传送并行通信: 数据字节的各位同事传送的通信方式, 优点是数据传送速度快, 缺点是占用的传输线条数多,…

Speaker Recognition说话人识别(声纹识别)

说话人识别,又称声纹识别。从上世纪60年代开始到现在,声纹识别一直是生物识别技术研究的主题。从传统的基于模板匹配的方法,到早期基于统计学方法,直到基于深度学习的声纹识别技术成为主流。本项目给出一个从传统(基于…

SpringBoot篇(简化操作的原理)

目录 一、代码位置 二、统一版本管理(parent) 三、提供 starter简化 Maven 配置 四、自动配置 Spring(引导类) 五、嵌入式 servlet 容器 一、代码位置 二、统一版本管理(parent) SpringBoot项目都会继…

华为HarmonyOS借助AR引擎帮助应用实现虚拟与现实交互的能力3-获取设备位姿

设备位姿描述了物体在真实世界中的位置和朝向。AR Engine提供了世界坐标下6自由度(6DoF)的位姿计算,包括物体的位置(沿x、y、z轴方向位移)和朝向(绕x、y、z轴旋转)。通过AR Engine,您…

【Git】Git常用命令

目录 1 前言2 git命令2.1 branch2.2 checkout2.3 pull and push2.4 config2.4.1 Proxy 2.5 tag2.6 rebase2.7 patch2.8 remote2.9 submodule2.10 rm2.10 gitignore2.11 某个commit更改了哪些文件2.12 clean 3 结束语 1 前言 本章记录总结在使用git过程中常用的一些命令&#x…

cgroup2版本下使用cgroups对内存/cpu进行控制

先查看cgroups的版本支持: cat /proc/filesystems | grep cgroup 运行结果: 如上表示支持cgroup2版本 一、对内存进行控制 cgroup版本对于内存控制是单独使用/sys/fs/cgroup/memory路径控制的,而在cgroup2版本中是统一管理,所以没有该路径,所以只需先进入该路径: cd /sys/…

安卓应用跳转回流的统一和复用

本文字数:6799字 预计阅读时间:35分钟 作为一个功能复杂的应用,无法避免地需要支持众多路径的回流,比如从Launcher、从Push通知、从端外H5、从合作第三方App以及从系统资源分享组件等。 我们知道,不同的回流路径会通过…