【Paper】2019_Consensus Control of Multiple AUVs Recovery System Under Switching Topologies and Time D
Zhang W, Zeng J, Yan Z, et al. Consensus control of multiple AUVs recovery system under switching topologies and time delays[J]. IEEE Access, 2019, 7: 119965-119980.
友情链接:【Paper】2017_水下潜航器编队海洋勘测的协调控制方法研究
文章目录
- I. INTRODUCTION
- II. PROBLEM FORMULATION
- A. GRAPH THEORY
- B. THE AUV MODEL
- C. LEMMA
- III. CONSENSUS CONTROL UNDER SWITCHING TOPOLOGIES AND TIME DELAYS
- A. DESIGN PROCEDURE
- Definition 1
- B. CONVERGENCE ANALYSIS
- IV. NUMERICAL EXAMPLES
I. INTRODUCTION
II. PROBLEM FORMULATION
A. GRAPH THEORY
B. THE AUV MODEL
结合Eq.(2.7)和式(2.8),可得到AUV标准二阶积分形式的反馈线性化动态模型:
x˙i=viv˙i=ui(2.9)\begin{aligned} \dot{x}_i = v_i \\ \dot{v}_i = u_i \\ \end{aligned} \tag{2.9}x˙i=viv˙i=ui(2.9)
其中,xi∈R5,vi∈R5,ui∈R5x_i \in \R^5, v_i \in \R^5, u_i \in \R^5xi∈R5,vi∈R5,ui∈R5。
C. LEMMA
III. CONSENSUS CONTROL UNDER SWITCHING TOPOLOGIES AND TIME DELAYS
如前所述,下面将介绍切换拓扑结构和时间延迟下的多AUV恢复系统的一致性控制算法。母船和多AUV以随机切换拓扑结构的形式运行。假设互连拓扑是马尔科夫切换,描述切换过程的马尔科夫链有一个静止的概率分布。由于允许图是时变的,我们假设有 MMM 种可能的不同图,网络拓扑结构在它们之间切换。
A. DESIGN PROCEDURE
在本节中,假定多AUV回收系统的共识控制算法能够保证所有成员达到共同的运动状态和期望点。母船被认为是所有AUV必须追赶的点,多个AUV的恢复问题同样可以被看作是多成员系统的共识问题。
Definition 1
在一个由AUV组成的系统中,第 iii 个AUV在时间 ttt 的运动状态向量为 xi(t)x_i(t)xi(t),母船的运动状态为 xm(t)x_m(t)xm(t)。如果系统满足以下公式,回收系统就能实现一致性,并保证AUV能够持续稳定地跟随母船。
limt→∞=∥xi(t)−xm(t)∥=0\lim_{t\rightarrow \infty} = \| x_i(t) - x_m(t) \| = 0t→∞lim=∥xi(t)−xm(t)∥=0
根据动力学(2.9),考虑母船动力学的一致性算法为
x˙m(t)=vm(t)\dot{x}_{m}(t) = v_m(t)x˙m(t)=vm(t)
定义多个独立拓扑下一组auv的动力学如下:
x˙i(t)=vi(t)v˙i(t)=ui(t)\begin{aligned} \dot{x}_i(t) = v_i(t) \\ \dot{v}_i(t) = u_i(t) \\ \end{aligned}x˙i(t)=vi(t)v˙i(t)=ui(t)
考虑一个由AUV组成的多AUV回收系统,将每个AUV视为有向图 GGG 中的一个节点,利用式(2.9)中AUV标准的双积分器动态,基于共识算法可以设计如下共识控制:
定义多个独立拓扑下一组auv的动力学如下:
ui(t)=−K∑j∈Niaij(t)((pi(t)−pj(t))+(vi(t)−vj(t)))−Kci(t)((pi(t)−pm(t))+(vi(t)−vm(t)))(3.1)\begin{aligned} u_i(t) = &-K \sum_{j\in N_i} a_{ij}(t) (~(\red{p_i(t)} - \green{p_j(t)}) + (\red{v_i(t)}-\green{v_j(t)})~) \\ &-K c_i(t) (~(\red{p_i(t)} - \blue{p_m(t)}) + (\red{v_i(t)}-\blue{v_m(t)})~) \\ \end{aligned} \tag{3.1}ui(t)=−Kj∈Ni∑aij(t)( (pi(t)−pj(t))+(vi(t)−vj(t)) )−Kci(t)( (pi(t)−pm(t))+(vi(t)−vm(t)) )(3.1)
由于通信有限,容易造成时延。给出了带时延的协商一致算法
ui(t)=−K∑j∈Niaij(t)((pi(t−τ1)−pj(t−τ1−τ2))+(vi(t−τ1)−vj(t−τ1−τ2)))−Kci(t)((pi(t−τ1)−pm(t))+(vi(t−τ1)−vm(t)))(3.2)\begin{aligned} u_i(t) = &-K \sum_{j\in N_i} a_{ij}(t) (~(\red{p_i(t-\tau_1)} - \green{p_j(t-\tau_1-\tau_2)}) + (\red{v_i(t-\tau_1)}-\green{v_j(t-\tau_1-\tau_2)})~) \\ &-K c_i(t) (~(\red{p_i(t-\tau_1)} - \blue{p_m(t)}) + (\red{v_i(t-\tau_1)}-\blue{v_m(t)})~) \\ \end{aligned} \tag{3.2}ui(t)=−Kj∈Ni∑aij(t)( (pi(t−τ1)−pj(t−τ1−τ2))+(vi(t−τ1)−vj(t−τ1−τ2)) )−Kci(t)( (pi(t−τ1)−pm(t))+(vi(t−τ1)−vm(t)) )(3.2)
uiu_iui:是控制输入
KKK:是协议增益
pi∈Rnp_i \in \R^npi∈Rn:是位置状态
vi∈Rnv_i \in \R^nvi∈Rn:是速度状态
pm∈Rnp_m \in \R^npm∈Rn:是母船位置状态
vm∈Rnv_m \in \R^nvm∈Rn:是母船速度状态
aij(t)a_{ij}(t)aij(t):通信权重
cm(t)c_{m}(t)cm(t):与母船的通信权重
C=diag{c1,c2,⋯,cN}C = \text{diag}\{c_1, c_2, \cdots, c_N\}C=diag{c1,c2,⋯,cN}
τ1,τ2(t)\tau_1, \tau_2(t)τ1,τ2(t):分别表示输入(常量)和通信权重(区间内时变)
母船和第 iii 个AUV的状态为
xm(t)=[pmT(t)vmT(t)]T∈R10nxi(t)=[piT(t)viT(t)]T∈R10n\begin{aligned} x_m(t) = \left[\begin{matrix} p^\text{T}_m(t) & v^\text{T}_m(t) \end{matrix}\right]^\text{T} \in \R^{10n} \\ x_i(t) = \left[\begin{matrix} p^\text{T}_i(t) & v^\text{T}_i(t) \end{matrix}\right]^\text{T} \in \R^{10n} \\ \end{aligned}xm(t)=[pmT(t)vmT(t)]T∈R10nxi(t)=[piT(t)viT(t)]T∈R10n
将上述恢复问题转化为误差分析问题,定义第 iii 个AUV相对于母舰运动状态信息的系统状态误差向量为
εi(t)=xi(t)−xm(t)\varepsilon_i(t) = x_i(t) - x_m(t)εi(t)=xi(t)−xm(t)
定义
ε(t)=(ε1T(t),ε2T(t),⋯,εNT(t))T\varepsilon(t) = (\varepsilon_1^\text{T}(t), \varepsilon_2^\text{T}(t), \cdots, \varepsilon_N^\text{T}(t))^\text{T}ε(t)=(ε1T(t),ε2T(t),⋯,εNT(t))T,
ε(t)=[εpT(t)εvT(t)]T\varepsilon(t) = \left[\begin{matrix} \varepsilon^\text{T}_p(t) & \varepsilon^\text{T}_v(t) \end{matrix}\right]^\text{T}ε(t)=[εpT(t)εvT(t)]T
这里
εp(t),εv(t)\varepsilon_p(t), \varepsilon_v(t)εp(t),εv(t) 分别表示位置状态和速度状态的误差。
然后系统可以转换成如下矩阵形式
ε˙(t)=(In⊗A)ε(t)−B⊗Kε(t−τ1)+C⊗Kε(t−μ)(3.3)\dot{\varepsilon}(t) = (I_n \otimes A) ~\varepsilon(t) - B \otimes K ~\varepsilon(t-\tau_1) + C \otimes K ~\varepsilon(t-\mu) \tag{3.3}ε˙(t)=(In⊗A) ε(t)−B⊗K ε(t−τ1)+C⊗K ε(t−μ)(3.3)
原公式如下,但是有问题,修改后的如下:
ε˙(t)=(In⊗A)ε(t)−(In⊗KiB)ε(t−τ1)+(In⊗KiC)ε(t−μ)(3.3)\dot{\varepsilon}(t) = (I_n \otimes A) ~\varepsilon(t) - (I_n\otimes K_i B) ~\varepsilon(t-\tau_1) + (I_n \otimes K_i C) ~\varepsilon(t-\mu) \tag{3.3}ε˙(t)=(In⊗A) ε(t)−(In⊗KiB) ε(t−τ1)+(In⊗KiC) ε(t−μ)(3.3)
这里
μ=τ1+τ2\mu = \tau_1 + \tau_2μ=τ1+τ2
A=[0I00]∈R10×10A = \left[\begin{matrix} 0 & I \\ 0 & 0 \\ \end{matrix}\right] \in \R^{10 \times 10}A=[00I0]∈R10×10
B=[00D+CD+C]∈R10×10B = \left[\begin{matrix} 0 & 0 \\ \mathcal{D} + \mathcal{C} & \mathcal{D} + \mathcal{C} \\ \end{matrix}\right] \in \R^{10 \times 10}B=[0D+C0D+C]∈R10×10
C=[00AA]∈R10×10C = \left[\begin{matrix} 0 & 0 \\ \mathcal{A} & \mathcal{A} \\ \end{matrix}\right] \in \R^{10 \times 10}C=[0A0A]∈R10×10
A=[aij]∈R5×5\mathcal{A} = \left[\begin{matrix} a_{ij} \end{matrix}\right] \in \R^{5 \times 5}A=[aij]∈R5×5
C=diag{c1,c2,⋯,cN}∈R5×5\mathcal{C} = \text{diag}\{c_1, c_2, \cdots, c_N\} \in \R^{5 \times 5}C=diag{c1,c2,⋯,cN}∈R5×5
D=diag{∑j∈N1a1j,∑j∈N2a2j,⋯,∑j∈NNaNj}∈R5×5\mathcal{D} = \text{diag}\{\sum_{j\in N_1}a_{1j}, \sum_{j\in N_2}a_{2j}, \cdots, \sum_{j\in N_N}a_{Nj}\} \in \R^{5 \times 5}D=diag{∑j∈N1a1j,∑j∈N2a2j,⋯,∑j∈NNaNj}∈R5×5
展开一下方便理解:
ε˙1(t)=Aε1−KiBε1+KiCε1=[0000010000000000100000000001000000000010000000000100000000000000000000000000000000000000000000000000][p1x−pmxp1y−pmyp1z−pmzp1θ−pmθp1ψ−pmψv1u−vmuv1v−vmvv1w−vmwv1q−vmqv1r−vmr]−Ki[00000000000000000000000000000000000000000000000000c1+d10000c1+d100000c2+d20000c2+d200000c3+d30000c3+d300000c4+d40000c4+d400000c5+d50000c5+d5][p1x−pmxp1y−pmyp1z−pmzp1θ−pmθp1ψ−pmψv1u−vmuv1v−vmvv1w−vmwv1q−vmqv1r−vmr]+Ki[000000000000000000000000000000000000000000000000000a12a13a14a150a12a13a14a15a210a23a24a25a210a23a24a25a31a320a34a35a31a320a34a35a41a42a430a45a41a42a430a45a51a52a53a540a51a52a53a540][p1x−pmxp1y−pmyp1z−pmzp1θ−pmθp1ψ−pmψv1u−vmuv1v−vmvv1w−vmwv1q−vmqv1r−vmr]\begin{aligned} \dot{\varepsilon}_1(t) &= A \varepsilon_1 - K_i B \varepsilon_1 + K_i C \varepsilon_1 \\ &= \left[\begin{matrix} 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ \end{matrix}\right] \left[\begin{matrix} p^x_1 - p^x_m \\ p^y_1 - p^y_m \\ p^z_1 - p^z_m \\ p^\theta_1 - p^\theta_m \\ p^\psi_1 - p^\psi_m \\ \\ v^u_1 - v^u_m \\ v^v_1 - v^v_m \\ v^w_1 - v^w_m \\ v^q_1 - v^q_m \\ v^r_1 - v^r_m \\ \end{matrix}\right] \\ &-K_i \left[\begin{matrix} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ \\ c_1+d_1 & 0 & 0 & 0 & 0 & c_1+d_1 & 0 & 0 & 0 & 0 \\ 0 & c_2+d_2 & 0 & 0 & 0 & 0 & c_2+d_2 & 0 & 0 & 0 \\ 0 & 0 & c_3+d_3 & 0 & 0 & 0 & 0 & c_3+d_3 & 0 & 0 \\ 0 & 0 & 0 & c_4+d_4 & 0 & 0 & 0 & 0 & c_4+d_4 & 0 \\ 0 & 0 & 0 & 0 & c_5+d_5 & 0 & 0 & 0 & 0 & c_5+d_5 \\ \end{matrix}\right] \left[\begin{matrix} p^x_1 - p^x_m \\ p^y_1 - p^y_m \\ p^z_1 - p^z_m \\ p^\theta_1 - p^\theta_m \\ p^\psi_1 - p^\psi_m \\ \\ v^u_1 - v^u_m \\ v^v_1 - v^v_m \\ v^w_1 - v^w_m \\ v^q_1 - v^q_m \\ v^r_1 - v^r_m \\ \end{matrix}\right] \\ &+K_i \left[\begin{matrix} 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ \\ 0 & a_{12} & a_{13} & a_{14} & a_{15} & 0 & a_{12} & a_{13} & a_{14} & a_{15} \\ a_{21} & 0 & a_{23} & a_{24} & a_{25} & a_{21} & 0 & a_{23} & a_{24} & a_{25} \\ a_{31} & a_{32} & 0 & a_{34} & a_{35} & a_{31} & a_{32} & 0 & a_{34} & a_{35} \\ a_{41} & a_{42} & a_{43} & 0 & a_{45} & a_{41} & a_{42} & a_{43} & 0 & a_{45} \\ a_{51} & a_{52} & a_{53} & a_{54} & 0 & a_{51} & a_{52} & a_{53} & a_{54} & 0 \\ \end{matrix}\right] \left[\begin{matrix} p^x_1 - p^x_m \\ p^y_1 - p^y_m \\ p^z_1 - p^z_m \\ p^\theta_1 - p^\theta_m \\ p^\psi_1 - p^\psi_m \\ \\ v^u_1 - v^u_m \\ v^v_1 - v^v_m \\ v^w_1 - v^w_m \\ v^q_1 - v^q_m \\ v^r_1 - v^r_m \\ \end{matrix}\right] \end{aligned}ε˙1(t)=Aε1−KiBε1+KiCε1=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡0000000000000000000000000000000000000000000000000010000000000100000000001000000000010000000000100000⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡p1x−pmxp1y−pmyp1z−pmzp1θ−pmθp1ψ−pmψv1u−vmuv1v−vmvv1w−vmwv1q−vmqv1r−vmr⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤−Ki⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡00000c1+d10000000000c2+d20000000000c3+d30000000000c4+d40000000000c5+d500000c1+d10000000000c2+d20000000000c3+d30000000000c4+d40000000000c5+d5⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡p1x−pmxp1y−pmyp1z−pmzp1θ−pmθp1ψ−pmψv1u−vmuv1v−vmvv1w−vmwv1q−vmqv1r−vmr⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤+Ki⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡000000a21a31a41a5100000a120a32a42a5200000a13a230a43a5300000a14a24a340a5400000a15a25a35a450000000a21a31a41a5100000a120a32a42a5200000a13a230a43a5300000a14a24a340a5400000a15a25a35a450⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡p1x−pmxp1y−pmyp1z−pmzp1θ−pmθp1ψ−pmψv1u−vmuv1v−vmvv1w−vmwv1q−vmqv1r−vmr⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
x˙1(t)−x˙m(t)=Aε−Bε+Cε\dot{x}_1(t) - \dot{x}_m(t) = A \varepsilon - B \varepsilon + C \varepsilonx˙1(t)−x˙m(t)=Aε−Bε+Cε
母船和多auv以随机切换拓扑的形式运行。本文给出了所有随机变量的公共概率空间 (Ω,F,P)(\Omega,\mathcal{F}, \mathcal{P})(Ω,F,P),Ω\OmegaΩ 是基本事件的空间,F\mathcal{F}F 是在 Ω\OmegaΩ 上的潜在 σσσ-场,P\mathcal{P}P 是 F\mathcal{F}F 上的概率测度。
本文考虑采用一致性算法(3.3)和马尔可夫交换互连拓扑的模型为
ε˙(t)=(In⊗A)ε(t)−B(ρt)⊗K(ρt)ε(t−τ1)+C(ρt)⊗K(ρt)ε(t−μ)(3.4)\dot{\varepsilon}(t) = (I_n \otimes A) ~\varepsilon(t) - \red{B(\rho_t)} \otimes \red{K(\rho_t)} ~\varepsilon(t-\tau_1) + \red{C(\rho_t)} \otimes \red{K(\rho_t)} ~\varepsilon(t-\mu) \tag{3.4}ε˙(t)=(In⊗A) ε(t)−B(ρt)⊗K(ρt) ε(t−τ1)+C(ρt)⊗K(ρt) ε(t−μ)(3.4)
系统(3.4)是具有马尔科夫切换拓扑和时间延迟的多个AUVs恢复系统的一致性控制,它反映了母船和AUVs之间或AUVs之间的随机通信过程。通信由马尔科夫随机过程描述,ρt\rho_tρt 被定义为马尔科夫过程,在状态空间 M={1,2,⋅,M}\mathbb{M} = \{1, 2, \cdot , \mathbf{M} \}M={1,2,⋅,M} 内取值。矩阵 B(ρt)B(\rho_t)B(ρt) 和 C(ρt)C(\rho_t)C(ρt) 将通过马尔可夫跳跃过程从一个模式随机地改变到另一个模式,控制增益在马尔可夫切换拓扑中从一个模式到另一个模式变化。协议增益 K(ρt)K(\rho_t)K(ρt) 是为了保证恢复系统的共识。
B. CONVERGENCE ANALYSIS
IV. NUMERICAL EXAMPLES
这是使用拓扑图 (a)仿真出来的结果
通过速度状态,基本可以断定原文中的结果有问题
这是通过修改拓扑图后的结果
感觉原文中不仅结果有问题,而且通信拓扑图也有问题
【Paper】2019_Consensus Control of Multiple AUVs Recovery System Under Switching Topologies and Time D相关推荐
- 【Paper】2021_Consensus Control of Leader-Following Multi-Agent Systems in Directed Topology
参考文献格式: Qinglai Wei, Xin Wang, Xiangnan Zhong and Naiqi Wu, "Consensus Control of Leader-Follow ...
- 【Paper】2007_Consensus control for a class of networks of dynamic agents 二阶静态一致性
文章目录 3. Control Protocol and Network Dynamics 4. Network with Fixed Topology 定理 1 Remark 1 Lemma 2 证 ...
- 【Paper】2013_Cooperative control of multi-agent systems 二阶动态一致性
Lewis F L, Zhang H, Hengster-Movric K, et al. Cooperative control of multi-agent systems: optimal an ...
- 【Paper】2017_Distributed control for high-speed trains movements
Y. Zhao and T. Wang, "Distributed control for high-speed trains movements," 2017 29th Chin ...
- 【Paper】2006_Time-Optimal Control of a Hovering Quad-Rotor Helicopter
Lai L C, Yang C C, Wu C J. Time-optimal control of a hovering quad-rotor helicopter[J]. Journal of I ...
- 【Paper】2017_水下潜航器编队海洋勘测的协调控制方法研究
友情链接:[paper]2019_Consensus Control of Multiple AUVs Recovery System Under Switching Topologies and T ...
- 【Paper】2015_El H_Decentralized Control Architecture for UAV-UGV Cooperation
Decentralized Control Architecture for UAV-UGV Cooperation 1 Introduction 2 Problem Statement and Ar ...
- 【Paper】2003_Consensus Problems in Networks of Agents with Switching Topology and Time-Delays
此篇文章主要在于仿真代码,关于文献的解释请参考 [Paper]2003_Murr_Consensus Problems in Networks of Agents with Switching Top ...
- 【Paper】2021_Distributed Consensus Tracking of Networked Agent Systems Under Denial-of-Service Attack
Y. Wan, G. Wen, X. Yu and T. Huang, "Distributed Consensus Tracking of Networked Agent Systems ...
最新文章
- threshold函数
- CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看这里!—-揭秘令牌桶
- php安全编程—sql注入攻击
- JavaScript - JavaScript自定义弹出对话框
- PHP/AJAX——登录页面与登录信息提示(非安全版本)
- 1001:Hello,World!
- 安装软件包的三种方法rpm包rpm工具yum工具
- 形态学图像处理(二)
- android5.1移植记录
- Java多线程学习三十一:ThreadLocal 是用来解决共享资源的多线程访问的问题吗?
- crtmpserver 配置说明_crtmpserver框架代码详解
- 【转载】C#使用is关键字检查对象是否与给定类型兼容
- tkmybatis 权威指南 官方文档
- wordpress 安装主题显示要配置FTP的解决办法
- 【杂记】数据存储架构
- 2020年拼多多数据分析一面
- git 打patch的方法
- Druid的segment
- Linux系统备份之tar
- 第十八届全国大学智能汽车竞赛秘书处技术专家组第一次会议