非线性系统的反馈线性化

2023-05-16

  仿射非线性或非仿射非线性指对输入是否是线性的。例如,系统能够写成 x ′ = f ( x ) + g ( x ) u x'= f(x) + g(x)u x=f(x)+g(x)u 的形式,而不是 x ′ = f ( x ) + g ( x ) u 2 x'= f(x) + g(x)u^2 x=f(x)+g(x)u2,或者 x ′ = f ( x , u ) x'= f(x,u) x=f(x,u) 中提不出 u u u,如果能提出一个 u u u 就是仿射非线性,否则就是非仿射非线性。
  本文只涉及单输入单输出的仿射非线性系统,但有多个状态。

相对阶

对系统
x ⃗ ′ = f ⃗ ( x ⃗ ) + g ⃗ ( x ⃗ ) u y = h ⃗ ( x ⃗ ) \begin{aligned} & \vec{x}'= \vec{f}(\vec{x}) + \vec{g}(\vec{x})u \\ & y = \vec{h}(\vec{x}) \\ \end{aligned} x =f (x )+g (x )uy=h (x )
设计 u u u 使输出 y y y 指数收敛。
   y y y 的表达式中不含 u u u,将 y y y 求导得到
y ′ = ∂ h ∂ x x ′ = ∂ h ∂ x ( f + g u ) = ∂ h ∂ x f + ∂ h ∂ x g u y'=\frac{\partial h}{\partial x}x' =\frac{\partial h}{\partial x}(f+gu) =\frac{\partial h}{\partial x}f+\frac{\partial h}{\partial x}gu y=xhx=xh(f+gu)=xhf+xhgu
如果 ∂ h ∂ x g ≠ 0 \frac{\partial h}{\partial x}g\neq 0 xhg=0,那么就能找到 y ′ y' y u u u 的关系,取
u = 1 ∂ h ∂ x g ( − ∂ h ∂ x f − k y ) u=\frac{1}{\frac{\partial h}{\partial x}g}(-\frac{\partial h}{\partial x}f-ky) u=xhg1(xhfky)
代入即可得到 y ′ = − k y y'=-ky y=ky,指数收敛。
如果 ∂ h ∂ x g = 0 \frac{\partial h}{\partial x}g=0 xhg=0,也就是 y ′ y' y 中不显含 u u u,那么继续求导
y ′ ′ = ∂ ( ∂ h ∂ x f ) ∂ x x ′ = ∂ ( ∂ h ∂ x f ) ∂ x ( f + g u ) = L f 2 h + L g L f h u y''=\frac{\partial(\frac{\partial h}{\partial x}f)}{\partial x}x' =\frac{\partial(\frac{\partial h}{\partial x}f)}{\partial x}(f+gu) =L_f^2h + L_gL_fhu y′′=x(xhf)x=x(xhf)(f+gu)=Lf2h+LgLfhu
其中
L f h = ∂ h ∂ x f ( x ) L f 2 h = ∂ ( ∂ h ∂ x f ) ∂ x f ( x ) L g L f h = ∂ ( ∂ h ∂ x f ) ∂ x g ( x ) y ′ = L f h ( x ) + L g h ( x ) u \begin{aligned} & L_fh=\frac{\partial h}{\partial x}f(x) \\ & L_f^2h=\frac{\partial(\frac{\partial h}{\partial x}f)}{\partial x}f(x) \\ & L_gL_fh=\frac{\partial(\frac{\partial h}{\partial x}f)}{\partial x}g(x) \\ & y'=L_fh(x)+L_gh(x)u \end{aligned} Lfh=xhf(x)Lf2h=x(xhf)f(x)LgLfh=x(xhf)g(x)y=Lfh(x)+Lgh(x)u
L g , L f L_g,L_f Lg,Lf 称作李导数。继续下去,如果
L g L f ρ − 2 h ( x ) = 0 , L g L f ρ − 1 h ( x ) ≠ 0 L_gL_f^{\rho-2}h(x)=0,L_gL_f^{\rho-1}h(x)\neq 0 LgLfρ2h(x)=0,LgLfρ1h(x)=0
则称系统具有相对阶 ρ \rho ρ,此时
y ( ρ ) = L f ρ h ( x ) + L g L f ρ − 1 h ( x ) u y ( ρ − 1 ) = L f ρ − 1 h ( x ) + L g L f ρ − 2 h ( x ) u = L f ρ − 1 h ( x ) \begin{aligned} y^{(\rho)} =& L_f^\rho h(x)+L_gL_f^{\rho-1}h(x)u \\ y^{(\rho-1)} =& L_f^{\rho-1} h(x)+L_gL_f^{\rho-2}h(x)u=L_f^{\rho-1} h(x) \\ \end{aligned} y(ρ)=y(ρ1)=Lfρh(x)+LgLfρ1h(x)uLfρ1h(x)+LgLfρ2h(x)u=Lfρ1h(x)
也就是对 y y y ρ \rho ρ 阶导后才能显含 u u u y = f ( x ) + g ( x ) u y=f(x)+g(x)u y=f(x)+g(x)u 的相对阶为 0 0 0

微分同胚

  输出稳定不一定能得出状态稳定,因此引入可逆变换,把系统内部的所有状态分成内部动态和输出动态两部分。前面相对阶的概念是输出动态,下面引入微分同胚的概念研究内部动态。
可逆变换 z = T ( x ) z=T(x) z=T(x) 中, z ( t ) z(t) z(t) x ( t ) x(t) x(t) 都可导,雅可比行列式 ∂ T ( x ) ∂ x \frac{\partial T(x)}{\partial x} xT(x) 不为0。(大概率?)也就是 x x x T ( x ) T(x) T(x) 等价,可以互换,此时称 x x x T ( x ) T(x) T(x) 是微分同胚(diffeomorphism)的。
  取变换
[ ξ 1 ξ 2 ⋮ ξ ρ ] = [ y y ′ ⋮ y ( ρ − 1 ) ] \begin{bmatrix} \xi_1 \\ \xi_2 \\ \vdots \\ \xi_\rho \end{bmatrix} =\begin{bmatrix} y \\ y' \\ \vdots \\ y^{(\rho-1)} \end{bmatrix} ξ1ξ2ξρ = yyy(ρ1)
这里列出了 ρ \rho ρ 个状态,但 x x x n n n 个状态,为了能让 x x x z z z 微分同胚,需要对 z z z 再补充 n − ρ n-\rho nρ 个状态,记作 η \eta η,即
z = T ( x ) = [ ξ η ] z=T(x)=\begin{bmatrix} \xi \\ \hdashline \eta \end{bmatrix} z=T(x)=[ξη]
其中 η = ϕ ( x ) \eta=\phi(x) η=ϕ(x) 需要满足抵消条件
∂ ϕ ( x ) ∂ x g ( x ) = 0 \frac{\partial\phi(x)}{\partial x}g(x)=0 xϕ(x)g(x)=0
此时
d d t ϕ ( x ) = ∂ ϕ ( x ) ∂ x ( f + g u ) = ∂ ϕ ( x ) ∂ x f \frac{\text{d}}{\text{d}t}\phi(x) =\frac{\partial\phi(x)}{\partial x}(f+gu) =\frac{\partial\phi(x)}{\partial x}f dtdϕ(x)=xϕ(x)(f+gu)=xϕ(x)f
可以看出 ϕ ( x ) \phi(x) ϕ(x) 的导数与 u u u 无关,完全是内部动态。
(note: 可以类比前 ρ \rho ρ 个状态客观,后 n − ρ n-\rho nρ 个状态不可观)
(note: 当 ρ = 0 , ρ = n , 0 < ρ < n \rho=0,\rho=n,0<\rho<n ρ=0,ρ=n,0<ρ<n 时分别称作可反馈线性化、不可反馈线性化、部分反馈线性化系统)
  最终变换后的标准型写作
η ′ = f 0 ( η , ξ ) ξ i ′ = ξ i + 1 , 1 ≤ i ≤ ρ − 1 ξ ρ ′ = L f ρ h ( x ) + L g L f ( ρ − 1 ) h ( x ) u y = ξ 1 \begin{aligned} & \eta'=f_0(\eta,\xi) \\ & \xi_i'=\xi_{i+1},1\le i\le\rho-1 \\ & \xi_\rho'=L_f^\rho h(x)+L_gL_f^{(\rho-1)}h(x)u \\ & y=\xi_1 \end{aligned} η=f0(η,ξ)ξi=ξi+1,1iρ1ξρ=Lfρh(x)+LgLf(ρ1)h(x)uy=ξ1

η ′ = f 0 ( η , ξ ) ξ ′ = A c ξ + B c [ L f ρ h ( x ) + L g L f ( ρ − 1 ) h ( x ) u ] y = C c ξ \begin{aligned} & \eta'=f_0(\eta,\xi) \\ & \xi'=A_c\xi+B_c\left[L_f^\rho h(x)+L_gL_f^{(\rho-1)}h(x)u\right] \\ & y=C_c\xi \end{aligned} η=f0(η,ξ)ξ=Acξ+Bc[Lfρh(x)+LgLf(ρ1)h(x)u]y=Ccξ
其中下面两式展开写作(以 ρ = 3 \rho=3 ρ=3 为例)
d d t [ ξ 1 ξ 2 ξ 3 ] = [ 0 1 0 0 0 1 0 0 0 ] [ ξ 1 ξ 2 ξ 3 ] + [ 0 0 1 ] [ L f ρ h ( x ) + L g L f ( ρ − 1 ) h ( x ) u ] y = [ 1 0 0 ] [ ξ 1 ξ 2 ξ 3 ] \begin{aligned} & \frac{\text{d}}{\text{d}t}\begin{bmatrix} \xi_1 \\ \xi_2 \\ \xi_3 \end{bmatrix} =\begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} \xi_1 \\ \xi_2 \\ \xi_3 \end{bmatrix} +\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}\left[L_f^\rho h(x)+L_gL_f^{(\rho-1)}h(x)u\right] \\ & y=\begin{bmatrix} 1 & 0 & 0 \end{bmatrix} \begin{bmatrix} \xi_1 \\ \xi_2 \\ \xi_3 \end{bmatrix} \end{aligned} dtd ξ1ξ2ξ3 = 000100010 ξ1ξ2ξ3 + 001 [Lfρh(x)+LgLf(ρ1)h(x)u]y=[100] ξ1ξ2ξ3
能把仿射非线性系统转化成这种标准型就可以实现反馈线性化。

一个例子

下面举一个反馈线性化的例子,后面给出仿真证明推导过程无误。
[ x ˙ 1 x ˙ 2 x ˙ 3 ] = [ − x 1 2 x 1 x 2 x 2 ] + [ 2 e x 2 1 0 ] u y = 2 x 3 \begin{aligned} &\begin{bmatrix} \dot{x}_1 \\ \dot{x}_2 \\ \dot{x}_3 \end{bmatrix} =\begin{bmatrix} -x_1 \\ 2x_1x_2 \\ x_2 \end{bmatrix} +\begin{bmatrix} 2\text{e}^{x_2} \\ 1 \\ 0 \end{bmatrix}u \\ & y = 2x_3 \end{aligned} x˙1x˙2x˙3 = x12x1x2x2 + 2ex210 uy=2x3
y ′ = ∂ h ∂ x f + ∂ h ∂ x g u = L f h = [ 0 0 2 ] [ − x 1 2 x 1 x 2 x 2 ] + [ 0 0 2 ] [ 2 e x 2 1 0 ] u = 2 x 2 y ′ ′ = L f 2 h + L g L f h u = [ 0 2 0 ] [ − x 1 2 x 1 x 2 x 2 ] + [ 0 2 0 ] [ 2 e x 2 1 0 ] u = 4 x 1 x 2 + 2 u \begin{aligned} y' =& \frac{\partial h}{\partial x}f+\frac{\partial h}{\partial x}gu=L_fh \\ =& \begin{bmatrix} 0 & 0 & 2 \end{bmatrix} \begin{bmatrix} -x_1 \\ 2x_1x_2 \\ x_2 \end{bmatrix} +\begin{bmatrix} 0 & 0 & 2 \end{bmatrix} \begin{bmatrix} 2\text{e}^{x_2} \\ 1 \\ 0 \end{bmatrix}u \\ =& 2x_2 \\ y'' =& L_f^2h+L_gL_fhu \\ =& \begin{bmatrix} 0 & 2 & 0 \end{bmatrix} \begin{bmatrix} -x_1 \\ 2x_1x_2 \\ x_2 \end{bmatrix} +\begin{bmatrix} 0 & 2 & 0 \end{bmatrix} \begin{bmatrix} 2\text{e}^{x_2} \\ 1 \\ 0 \end{bmatrix}u \\ =& 4x_1x_2 + 2u \\ \end{aligned} y===y′′===xhf+xhgu=Lfh[002] x12x1x2x2 +[002] 2ex210 u2x2Lf2h+LgLfhu[020] x12x1x2x2 +[020] 2ex210 u4x1x2+2u
可以看出系统相对阶为2。取 u = − 2 x 1 x 2 − 4 y ′ − 4 y u=-2x_1x_2-4y'-4y u=2x1x24y4y,则 y ′ ′ = − 4 y ′ − 4 y , y ( t ) = ( C 1 + C 2 t ) e − 2 t y''=-4y'-4y,y(t)=(C_1+C_2t)\text{e}^{-2t} y′′=4y4y,y(t)=(C1+C2t)e2t,输出稳定。
  下面设计变换查看系统内部是否稳定。定义变换
T ( x ) = [ ξ 1 ξ 2 η ] = [ 2 x 3 2 x 2 ϕ ( x ) ] \begin{aligned} T(x)=\begin{bmatrix} \xi_1 \\ \xi_2 \\ \eta \end{bmatrix} =\begin{bmatrix} 2x_3 \\ 2x_2 \\ \phi(x) \end{bmatrix} \end{aligned} T(x)= ξ1ξ2η = 2x32x2ϕ(x)
其中 ϕ ( x ) \phi(x) ϕ(x) 需要满足抵消条件
∂ ϕ ( x ) ∂ x g ( x ) = 0 ∂ ϕ ∂ x 1 2 e x 2 + ∂ ϕ ∂ x 2 = 0 \frac{\partial\phi(x)}{\partial x}g(x)=0 \\ \frac{\partial\phi}{\partial x_1}2\text{e}^{x_2} +\frac{\partial\phi}{\partial x_2}=0 xϕ(x)g(x)=0x1ϕ2ex2+x2ϕ=0
ϕ ( x ) \phi(x) ϕ(x) 的一个解为
ϕ ( x ) = x 1 − 2 e x 2 \phi(x)=x_1-2\text{e}^{x_2} ϕ(x)=x12ex2
得到可逆变换 z = T ( x ) z=T(x) z=T(x)
z 1 = ξ 1 = 2 x 3 z 2 = ξ 2 = 2 x 2 z 3 = η = x 1 − 2 e x 2 \begin{aligned} & z_1 = \xi_1 = 2x_3 \\ & z_2 = \xi_2 = 2x_2 \\ & z_3 = \eta = x_1-2\text{e}^{x_2} \\ \end{aligned} z1=ξ1=2x3z2=ξ2=2x2z3=η=x12ex2
可见雅可比矩阵 ∂ T ( x ) ∂ x \frac{\partial T(x)}{\partial x} xT(x) 非奇异。此时需要注意的是如果取 ϕ ( x ) = x 3 \phi(x)=x_3 ϕ(x)=x3 也能满足 ( ∂ ϕ / ∂ x ) g = 0 (\partial\phi/\partial x)g=0 (ϕ/x)g=0 的条件,但此时 ϕ ( x ) \phi(x) ϕ(x) 中不包含 x 1 x_1 x1 项导致雅可比矩阵的第一列全为0,不满足微分同胚的条件。
  继续化成标准型,
η ′ = x 1 ′ − 2 e x 2 x 2 ′ = ( − x 1 + 2 e x 2 u ) − 2 e x 2 ( 2 x 1 x 2 + u ) = − x 1 − 4 x 1 x 2 e x 2 \eta'=x_1'-2\text{e}^{x_2}x_2' =(-x_1+2\text{e}^{x_2}u)-2\text{e}^{x_2}(2x_1x_2+u) =-x_1-4x_1x_2\text{e}^{x_2} η=x12ex2x2=(x1+2ex2u)2ex2(2x1x2+u)=x14x1x2ex2
标准型中 η ′ = f 0 ( η , ξ ) \eta'=f_0(\eta,\xi) η=f0(η,ξ),所以接下来要把等号右边的 x 1 , x 2 x_1,x_2 x1,x2 换成 η , ξ \eta,\xi η,ξ。将 x 2 = 0.5 ξ 2 , η = x 1 − 2 e x 2 x_2=0.5\xi_2,\eta = x_1-2\text{e}^{x_2} x2=0.5ξ2,η=x12ex2 代入得
η = x 1 − 2 e 0.5 ξ 2 , x 1 = η + 2 e 0.5 ξ 2 η ′ = − ( η + 2 e 0.5 ξ 2 ) − 4 ( η + 2 e 0.5 ξ 2 ) 0.5 ξ 2 e 0.5 ξ = − η − 4 ξ 2 e ξ 2 − 2 η ξ 2 e 0.5 ξ 2 = f 0 ( η , ξ ) \begin{aligned} \eta =& x_1-2\text{e}^{0.5\xi_2},x_1=\eta+2\text{e}^{0.5\xi_2} \\ \eta' =& -(\eta+2\text{e}^{0.5\xi_2}) -4(\eta+2\text{e}^{0.5\xi_2})0.5\xi_2\text{e}^{0.5\xi} \\ =& -\eta-4\xi_2\text{e}^{\xi_2}-2\eta\xi_2\text{e}^{0.5\xi_2} =f_0(\eta,\xi) \\ \end{aligned} η=η==x12e0.5ξ2,x1=η+2e0.5ξ2(η+2e0.5ξ2)4(η+2e0.5ξ2)0.5ξ2e0.5ξη4ξ2eξ22ηξ2e0.5ξ2=f0(η,ξ)
这样就可以写成完整的标准型形式
η = − η − 4 ξ 2 e ξ 2 − 2 η ξ 2 e 0.5 ξ 2 [ ξ 1 ′ ξ 2 ′ ] = [ 0 1 0 0 ] [ ξ 1 ξ 2 ] + [ 0 1 ] ( 4 x 1 x 2 + 2 u ) y = [ 1 0 ] ξ 1 \begin{aligned} \eta =& -\eta-4\xi_2\text{e}^{\xi_2}-2\eta\xi_2\text{e}^{0.5\xi_2} \\ \begin{bmatrix} \xi_1' \\ \xi_2' \end{bmatrix} =& \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} \xi_1 \\ \xi_2 \end{bmatrix} +\begin{bmatrix} 0 \\ 1 \end{bmatrix}(4x_1x_2+2u) \\ y =& \begin{bmatrix} 1 & 0 \end{bmatrix} \xi_1 \end{aligned} η=[ξ1ξ2]=y=η4ξ2eξ22ηξ2e0.5ξ2[0010][ξ1ξ2]+[01](4x1x2+2u)[10]ξ1

最小相位系统

η ′ = f 0 ( η , ξ ) \eta'=f_0(\eta,\xi) η=f0(η,ξ) 中,当 ξ = 0 \xi=0 ξ=0 时系统是否渐进稳定,如果是就是最小相位系统。例子中, f 0 ( η , 0 ) = − η f_0(\eta,0)=-\eta f0(η,0)=η,是最小相位系统。

仿真

系统输入设计为
u = − 2 x 1 x 2 − 4 y ′ − 4 y = − 2 x 1 x 2 − 8 x 2 − 8 x 3 \begin{aligned} u =& -2x_1x_2-4y'-4y \\ =& -2x_1x_2-8x_2-8x_3 \end{aligned} u==2x1x24y4y2x1x28x28x3
系统结构框图如图所示。
在这里插入图片描述
设置 x 2 ( 0 ) = 1 , x 1 ( 0 ) = x 3 ( 0 ) = 0 x_2(0)=1,x_1(0)=x_3(0)=0 x2(0)=1,x1(0)=x3(0)=0,仿真结果如图所示。
在这里插入图片描述
simucpp 代码如下

#include <iostream>
#include <cmath>
#include "simucpp.hpp"
using namespace simucpp;

class Plant: public PackModule {
public:
    Plant(Simulator *sim) {
        intx1 = new UIntegrator(sim, "intx1");
        intx2 = new UIntegrator(sim, "intx2");
        intx3 = new UIntegrator(sim, "intx3");
        fcnx1 = new UFcnMISO(sim, "fcnx1");
        fcnx2 = new UFcnMISO(sim, "fcnx2");
        in1 = new UGain(sim, "in1");
        sim->connectU(intx1, fcnx1);
        sim->connectU(intx2, fcnx1);
        sim->connectU(in1,   fcnx1);
        sim->connectU(intx1, fcnx2);
        sim->connectU(intx2, fcnx2);
        sim->connectU(in1,   fcnx2);
        sim->connectU(fcnx1, intx1);
        sim->connectU(fcnx2, intx2);
        sim->connectU(fcnx2, intx2);
        sim->connectU(intx2, intx3);
        intx2->Set_InitialValue(1);
        fcnx1->Set_Function([](double *u){
            double x1 = u[0], x2 = u[1], u1 = u[2];
            return 2*exp(x2)*u1 - x1;
        });
        fcnx2->Set_Function([](double *u){
            double x1 = u[0], x2 = u[1], u1 = u[2];
            return 2*x1*x2 + u1;
        });
    }
private:
    virtual PUnitModule Get_InputPort(uint n=0) const override {
        if (n==0) return in1;
        return nullptr;
    }
    virtual PUnitModule Get_OutputPort(uint n=0) const override {
        if (n==0) return intx1;
        if (n==1) return intx2;
        if (n==2) return intx3;
        return nullptr;
    }
    UIntegrator *intx1=nullptr;
    UIntegrator *intx2=nullptr;
    UIntegrator *intx3=nullptr;
    UFcnMISO *fcnx1=nullptr;
    UFcnMISO *fcnx2=nullptr;
    UGain *in1=nullptr;
};

int main() {
    Simulator sim1(5);
    auto *out1 = new UOutput(&sim1, "out1");
    auto *out2 = new UOutput(&sim1, "out2");
    auto *out3 = new UOutput(&sim1, "out3");
    auto fcnu = new UFcnMISO(&sim1, "fcnu");
    Plant *plant1 = new Plant(&sim1);
    sim1.connectU(fcnu, plant1, 0);
    sim1.connectU(plant1, 0, fcnu);
    sim1.connectU(plant1, 1, fcnu);
    sim1.connectU(plant1, 2, fcnu);
    sim1.connectU(plant1, 0, out1);
    sim1.connectU(plant1, 1, out2);
    sim1.connectU(plant1, 2, out3);
    fcnu->Set_Function([](double *u) {
        return -2*u[0]*u[1] -8*u[1] -8*u[2];
    });
    sim1.Initialize();
    sim1.Simulate();
    sim1.Plot();
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非线性系统的反馈线性化 的相关文章

  • 解决电脑能上网不能登陆QQ-已测试并解决

    方法1 现在常用的一种方法 xff1a 先连接手机热点 xff0c 然后等登录上后突然断开 xff0c 重新连回自己的网络 方法2 https blog csdn net qq 41862220 article details 109686
  • HTML页面中文字增多,字号会突然变大

    DIV中的文字超过一定数量之后 xff0c 在浏览器上显示突然变大 xff0c 与CSS设定的字号大小严重不符合 解决办法 xff1a 父级DIV添加CSS属性 height 100 或者 随便设置一个高度 这个问题很奇怪 xff0c 之前
  • C++分割字符串

    Python有自带的字符串分割函数 xff0c 但是C 43 43 却没有 xff0c 于是参考网上各种C 43 43 分割字符串的资源 xff0c 将其整理如下 方法1 xff1a include lt string h gt inclu
  • angular6解析模板字符串,$compile服务在angular6中的实现方法

    angular6解析动态字符串模板 依赖 xff1a Compiler服务viewContanierRef服务 步骤 xff1a 创建指令 xff0c 并通过指令接受字符串接受字符串 xff0c 并通过此字符串动态创建组件及模块compil
  • “JSON parse error: Unexpected character (‘1‘ (code 49))的解决方式

    现在是 xff1a 2022年4月30日22 29 49 大家好 xff0c 我是雄雄 刚刚在调用接口的时候 xff0c 出现了个错误 xff1a span class token punctuation span span class t
  • springboot实现用户统一认证、管理-前端实现

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 前言 现在是 xff1a 2022年6月2日15 43 51 上篇文章讲述了springboot中实现用户统一认证的具体内容 xff0c 主要从后端角度
  • Settings 添加一级菜单

    Settings添加一级菜单 xff1a 1 一级菜单项的实现是Activity 例如MySettings java xff0c 此类文件直接继承的是Activity xff0c 添加比较简单 xff08 1 xff09 在清单文件中添加如
  • Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 4171 异常的解决方法

    在做本地json文件的解析时遇到了这个问题 原代码为 64 RequestMapping value 61 34 readJson1 34 public String readJson1 String cityJsonCode json解析
  • Visual Studio 中 Tab 转换为空格的设置

    在 Visual Studio 中写代码时 xff0c 按 Tab 键 xff0c 会自动进行缩进 有时希望实现按 Tab 键 xff0c 出现多个空格的效果 Visual Studio 提供了这样的功能 xff0c 具体设置方法为 xff
  • 剑指offer—03

    剑指 Offer 03 数组中重复的数字 找出数组中重复的数字 在一个长度为 n 的数组 nums 里的所有数字都在 0 xff5e n 1 的范围内 数组中某些数字是重复的 xff0c 但不知道有几个数字重复了 xff0c 也不知道每个数
  • JSONArray.remove(index)失败原因分析

    集合在执行remove方法的时候 xff0c 有两种执行方式 xff0c 第一种移除对象remove xff08 object xff09 xff0c 另一种根据下标移除remove xff08 intIndex xff09 错误案例 Li
  • 【批处理bat】暂停功能命令

    一 目的 对暂停功能做修改 二 功能 2 1屏蔽 pause gt nul 在原本的pause上使用右尖括号写入nul即可不显示任何内容 2 2修改 echo press anykey to continue XD 在pause前利用ech
  • AOSP的编译及刷机

    简介 众所周知 xff0c Android是开源的 xff0c AOSP xff08 Android Open Source Project xff09 为Android开源项目的缩写 作为一名Android开发 xff0c 掌握Andro
  • Linux常用命令记录(du、find、grep、hadoop/hdfs、sed、tar、tr)

    Linux常用命令 查询格式 语句1 语句2 语句3 xff1a 对语句1的输出结果进行语句2的判定 xff0c 然后对输出结果进行语句3的判定 如 xff1a cat a txt head 10 wc l 39 cat a txt 39
  • 虚拟机运行出现蓝屏的现象如何解决

    前两天给大家分享了如何在电脑上安装虚拟机 xff0c 听到有部分小朋友私信跟我反馈说 xff0c 自己本身电脑可以安装vm虚拟机但是他安装过后一运行就立马进入蓝屏修复界面 所以今天想跟大家分享一下遇见这种情况如何解决 xff08 本文以华硕
  • 小白也能学懂——子网划分(2)

    我前天讲了一下子网划分 xff0c 昨天比较忙碌就忘记写剩下的内容了 xff0c 今天吃过饭 xff0c 想给他补上 xff0c 主要还是细分一下子网划分的作用 xff0c 以及如果进行计算 xff0c 本章还不是算难 xff0c 但是计算
  • 三分钟告诉你什么是三层交换机!

    昨天上周我们讲了单臂路由和跨交换机传输 xff0c 今天想说一下三层交换机 xff0c 对了还有个小实验 xff0c 收到反馈说我每次都是在图里标注代码不够清晰 xff0c 所以接下来会在实际中把代码贴出来供大家复制使用 目录 一 三层交换
  • 链路聚合(二层链路和三层链路)

    昨天主要介绍了三层交换机 xff0c 今天顺其自然就讲到了链路聚合 xff0c 因为是交换机中一个比较重要的技术 xff0c 下面我们开始 目录 一 单臂路由和三层交换的复习 二 端口绑定技术 三 链路聚合 端口聚合 端口绑定实现的条件 四
  • 静态路由(也许是目前最全的)

    今天在公司 xff0c 新来了个实习生 xff0c 突然问道静态路由的问题 xff0c 他跟我讲他不会设置 然后我就很尴尬 xff0c 因为这个毕竟是基础知识嘛 所以今天整理了一下静态路由的知识 xff0c 跟大家分享一下 目录 一 路由器

随机推荐

  • C# 读取Json文件--代码示例

    1 C 读取Json文件 JsonConvert SerializeObject str object to string JsonConvert DeserializeObject obj string to json 2 Json文件创
  • 网络地址转换协议——NAT(恐怕是最全的版本)

    前天我说第二天要跟大家讲一下NAT的 xff0c 结果放假有些懒 xff0c 所以就放在今天更新 xff0c 希望大家不要凶我 xff0c 哈哈哈 目录 一 什么是NAT 1 NAT简介 2 NAT作用 3 NAT内网地址的范围 4 主要应
  • linux日志文件详解

    目录 一 日志文件的分类二 日志文件位置三 常见日志文件1 分析日志文件2 内核及系统日志 四 日志消息等级五 日志文件分析1 用户日志2 程序日志 六 日志分析注意事项 一 日志文件的分类 日志文件是用于记录Linux系统中各种运行消息的
  • 虚拟化与docker基础

    文章目录 一 虚拟化1 虚拟化概述2 虚拟化的功能3 虚拟化的三种模式4 容器与虚拟化 二 Docker1 容器概述2 Docker概述3 Docker的设计宗旨4 容器与虚拟机的区别5 容器在内核中支持两种重要的技术6 Docker核心概
  • Docker容器网络模式与数据管理

    文章目录 一 Docker容器操作1 容器创建2 查看容器的运行状态3 启动容器4 创建并开启容器5 终止容器运行6 容器的进入7 复制文件到容器中 宿主机中8 容器的导出与导入9 删除容器 二 Docker网络1 Docker网络实现原理
  • docker镜像的创建与dockerfile

    文章目录 一 docker镜像的创建1 创建镜像的方法2 基于现有镜像创建3 基于本地模板创建4 基于dockerfile创建 二 Dockerfile1 概述2 Dockerfile结构3 Dockerfile镜像结构的分层4 Docke
  • matlab中值滤波实现

    中值滤波是一种典型的非线性滤波 xff0c 是基于排序统计理论的一种能够有效抑制噪声的非线性信号处理技术 xff0c 基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值 xff0c 让周围的像素值接近真实的值从而消除孤立的噪声点 该方
  • 程序员的情人节

    今天是一个好的节日 xff0c 七夕呀 xff01 程序是最好的女朋友 xff0c 它是不会骗你的 它偶尔会发些小的情绪 只是你没有懂它
  • stm32-Hardfault及内存溢出的查找方法

    STM32内存结构 1 要点 1 1 两种存储类型 RAM 和 Flash RAM可读可写 xff0c 在STM32的内存结构上 xff0c RAM地址段分布 0x2000 0000 0x2000 0000 43 RAM size Flas
  • raylib部分源代码功能解读

    官网 https www raylib com https github com raysan5 raylib 我根据自己的需求裁剪了多余功能后的代码 xff1a https gitee com xd15zhn raylib https g
  • 无量纲处理、量纲变换与实时仿真理论

    基本原理 万有引力公式 d 2 r
  • 局域网windows平台下时间同步

    最近单位出现很多应为系统时间不统一造成的问题 xff0c 如 客户机时间与服务器时间不同步 xff0c 而客户机使用软件是读取本机时间上传服务器 xff0c 这样就会造成排序错误 每次开机修改很繁琐 我就想到了在局域网内假设时间服务器的想法
  • 水下潜航器的建模与控制

    线性系统理论大作业 待完成 题目 水下潜器模型 xff0c 可能是潜艇或者鱼雷等对象 一个主推进螺旋桨 xff0c 前后两对水平陀翼 xff0c 后面一对垂直陀翼 潜器前进过程中 xff0c 通过调节助推进螺旋桨推力 xff0c 以及三对陀
  • 演化博弈、复制动态方程与仿真

    本文只整理和总结一下我的理解 xff0c 文末列出了可供参考的更详细完整的资料 建议先看参考资料 1 xff08 博弈论公开课 xff09 的博弈论课程 xff0c 可以直接从第11讲开始看 参考链接 2 是关于演化博弈非常经典的一本书 参
  • 演化博弈方法用于多智能体系统最优资源分配

    演化博弈方法用于多智能体系统最优资源分配 Evolutionary game theoretic approach for optimal resource allocation in multi agent systems 论文复现见 论
  • [论文复现]演化博弈方法用于多智能体系统最优资源分配

    原文 演化博弈方法用于多智能体系统最优资源分配 CSDN博客 https ieeexplore ieee org document 8243778 问题描述 有2种资源分配给6个个体 xff0c 2种资源的总量分别为 y 1 61 545
  • 基于博弈学习的分布式卫星任务规划

    基于博弈学习的分布式卫星任务规划 Distributed Satellite Mission Planning via Learning in Games 摘要 对地观测卫星群的任务规划是一个复杂的问题 xff0c 它提出了重大的理论和技术
  • 多星分布式任务分配中的博弈自组织

    多星分布式任务分配中的博弈自组织 Game theoretic self organization in multi satellite distributed task allocation 论文复现见 论文复现 多星分布式任务分配中的博
  • 自用的矩阵运算库zhnmat使用说明

    自用的矩阵运算库zhnmat使用说明 包含两个主要类 xff1a Mat和Vector3d xff0c 可以用于一些简单的矩阵和三维向量场景 xff0c 代码较简单 xff0c 没有任何性能优化 xff0c 可用于学习参考 代码仓库 htt
  • 非线性系统的反馈线性化

    仿射非线性或非仿射非线性指对输入是否是线性的 例如 xff0c 系统能够写成 x 61 f x