当前位置: 首页 > news >正文

Narendra自适应控制器设计

上一篇介绍了在系统结构中引入前馈和反馈的结构,然后利用李雅普诺夫稳定性理论设计MRACS,在基于输入输出形式中,利用李雅普诺夫稳定性设计的自适应率中包含了误差的导数,这降低了系统的抗干扰性,为了避免这一缺点,Narendra提出了稳定自适应控制器方案。本文将介绍Narendra自适应控制器设计方案

1、系统介绍

设单输入单输出系统的状态方程和输出方程为
x ˙ p = A p x p + b p u y p = h T x p (1) \begin{array} {c}{\dot{x}_{p}=A_{p}x_{p}+b_{p}u} \\ {y_{p}=h^{\mathrm{T}}x_{p}} \tag{1} \end{array} x˙p=Apxp+bpuyp=hTxp(1)
其中, x p x_p xp n n n状态向量, A p A_p Ap n × n n\times n n×n矩阵, b p b_p bp n × 1 n\times 1 n×1矩阵, h T h^T hT 1 × n 1\times n 1×n矩阵。
控制对象的传递函数为
W p ( s ) = h T ( s I − A p ) − 1 b p = k p Z p ( s ) R p ( s ) (2) \begin{array}{c}W_{p}(s)=h^{\mathrm{T}}(sI-A_{p})^{-1}b_{p}=\frac{k_{p}Z_{p}(s)}{R_{p}(s)} \tag{2} \end{array} Wp(s)=hT(sIAp)1bp=Rp(s)kpZp(s)(2)
其中, Z p ( s ) Z_p(s) Zp(s) m m m阶首一古尔维茨多项式, R p ( s ) R_p(s) Rp(s) n n n阶首一古尔维茨多项式。
参考模型的状态方程和输出方程为
x ˙ m = A m x m + b m r y m = h T x m (3) \begin{array} {c}{\dot{x}_{m}=A_{m}x_{m}+b_{m}r} \\ {y_{m}=h^{\mathrm{T}}x_{m}} \tag{3} \end{array} x˙m=Amxm+bmrym=hTxm(3)
其中, x m x_m xm m m m状态向量, A m A_m Am m × m m\times m m×m矩阵, b m b_m bm m × 1 m\times 1 m×1矩阵, h T h^T hT 1 × m 1\times m 1×m矩阵。
对应的传递函数为
W m ( s ) = h T ( s I − A m ) − 1 b m = k m Z m ( s ) R m ( s ) (4) \begin{array} {c}W_{m}(s)=h^{\mathrm{T}}(sI-A_{m})^{-1}b_{m}=\frac{k_{m}Z_{m}(s)}{R_{_m}(s)} \tag{4} \end{array} Wm(s)=hT(sIAm)1bm=Rm(s)kmZm(s)(4)
其中, Z m ( s ) Z_m(s) Zm(s) m m m阶首一古尔维茨多项式, R m ( s ) R_m(s) Rm(s) n n n阶首一古尔维茨多项式。

为了实现可调系统与参考模型的完全匹配,那么自适应控制器需要有足够多的可调参数。在上述系统中,最多有 n + m + 1 n+m+1 n+m+1个可调参数,故自适应机构需要 n + m + 1 n+m+1 n+m+1个可调参数与之对应。下面先讨论 n − m = 1 n-m=1 nm=1的情况,构建的自适应系统为
在这里插入图片描述
相较于上一篇介绍的自适应系统,本系统在引入可调增益 k c k_c kc和反馈 F 2 F_2 F2的基础上,在输入 u u u上也引入了一个反馈 F 1 F_1 F1,反馈 F 1 , F 2 F_1,F_2 F1,F2称为辅助信号发生器(反馈输出都作用到输入 u u u上)。

下面将对该系统的自适应率进行推导。

2、自适应率设计

辅助信号发生器 F 1 F_1 F1系统的状态方程为:
v 1 ˙ = Λ v 1 + b u ω 1 = c T v 1 (5) \begin{array}{c} \dot{v_1}=\Lambda v_1+bu \\ \omega_1=c^Tv_1 \tag{5} \end{array} v1˙=Λv1+buω1=cTv1(5)
对应的传递函数为:
W 1 ( s ) = c T ( s I − Λ ) − 1 b = C ( s ) N ( s ) (6) \begin{array}{c} W_1(s)=c^{\mathrm{T}}(sI-\Lambda)^{-1}b=\frac{C(s)}{N(s)} \tag{6} \end{array} W1(s)=cT(sIΛ)1b=N(s)C(s)(6)
辅助信号发生器 F 2 F_2 F2系统的状态方程为:
v 2 ˙ = Λ v 2 + b y p ω 2 = d T v 2 + d 0 y p (7) \begin{array}{c} \dot{v_2}=\Lambda v_2+by_p \\ \omega_2=d^Tv_2+d_0y_p \tag{7} \end{array} v2˙=Λv2+bypω2=dTv2+d0yp(7)
对应的传递函数为:
W 2 ( s ) = d T ( s I − Λ ) − 1 b + d 0 = d 0 + D ( s ) N ( s ) (8) \begin{array}{c} W_2(s)=d^{\mathrm{T}}(sI-\Lambda)^{-1}b+d_0=d_0+\frac{D(s)}{N(s)} \tag{8} \end{array} W2(s)=dT(sIΛ)1b+d0=d0+N(s)D(s)(8)
其中,
Λ = [ 0 1 ⋯ 0 ⋯ ⋯ ⋯ ⋯ 0 0 ⋯ 1 − l 1 − l 2 ⋯ − l n − 1 ] , b = [ 0 ⋯ 0 1 ] c T = [ c 1 c 2 ⋯ c n − 1 ] , d T = [ d 1 d 2 ⋯ d n − 1 ] (9) \begin{array}{c} \Lambda = \begin{bmatrix} 0 & 1 & \cdots & 0 \\ \cdots & \cdots & \cdots & \cdots \\ 0 & 0 & \cdots & 1 \\ -l_1 & -l_2 & \cdots &-l_{n-1} \end{bmatrix} ,b= \begin{bmatrix} 0 \\ \cdots \\ 0\\ 1 \end{bmatrix} \\ c^T= \begin{bmatrix} c_1&c_2&\cdots&c_{n-1} \end{bmatrix},d^T= \begin{bmatrix} d_1&d_2&\cdots&d_{n-1} \end{bmatrix} \tag{9} \end{array} Λ= 00l110l201ln1 ,b= 001 cT=[c1c2cn1],dT=[d1d2dn1](9)
其中, N ( s ) N(s) N(s)为首一多项式,阶数为 n − 1 n-1 n1 C ( s ) , D ( s ) C(s),D(s) C(s),D(s)为首一多项式,阶数为 n − 2 n-2 n2
可调系统等效结构图为
在这里插入图片描述
由此,可以得到可调系统的传递函数为
W ( s ) = y p ( s ) r ( s ) = k c W p ( s ) 1 + W 1 ( s ) + W 2 ( s ) W p ( s ) = k c k p Z p ( s ) R p ( s ) 1 + C ( s ) N ( s ) + [ d 0 + D ( s ) N ( s ) ] [ k p Z p ( s ) R p ( s ) ] = k c k p Z p ( s ) N ( s ) [ N ( s ) + C ( s ) ] R p ( s ) + k p Z p ( s ) [ d 0 N ( s ) + D ( s ) ] (10) \begin{array}{c} W(s)=\frac{y_p(s)}{r(s)}=\frac{k_cW_p(s)}{1+W_1(s)+W_2(s)W_p(s)}\\=\frac{k_c\frac{k_{p}Z_{p}(s)}{R_{_p}(s)}}{1+\frac{C(s)}{N(s)}+\left[ d_0+\frac{D(s)}{N(s)} \right] \left[\frac{k_{p}Z_{p}(s)}{R_{_p}(s)} \right]}\\=\frac{k_ck_pZ_p(s)N(s)}{\left[N(s)+C(s) \right]R_p(s)+k_pZ_p(s)[d_0N(s)+D(s)]} \tag{10} \end{array} W(s)=r(s)yp(s)=1+W1(s)+W2(s)Wp(s)kcWp(s)=1+N(s)C(s)+[d0+N(s)D(s)][Rp(s)kpZp(s)]kcRp(s)kpZp(s)=[N(s)+C(s)]Rp(s)+kpZp(s)[d0N(s)+D(s)]kckpZp(s)N(s)(10)
当可调系统与参考模型完全匹配时,满足
k m Z m ( s ) R m ( s ) = k ~ c k p Z p ( s ) N ( s ) [ N ( s ) + C ~ ( s ) ] R p ( s ) + k p Z p ( s ) [ d 0 ~ N ( s ) + D ~ ( s ) ] (11) \begin{array}{c} \frac{k_{m}Z_{m}(s)}{R_{_m}(s)} = \frac{\widetilde{k}_c k_pZ_p(s)N(s)}{\left[N(s)+\widetilde{C}(s) \right]R_p(s)+k_pZ_p(s)[\widetilde{d_0}N(s)+\widetilde{D}(s)]} \tag{11} \end{array} Rm(s)kmZm(s)=[N(s)+C (s)]Rp(s)+kpZp(s)[d0 N(s)+D (s)]k ckpZp(s)N(s)(11)

k ~ c k p = k m N ( s ) = Z m ( s ) [ N ( s ) + C ~ ( s ) ] R p ( s ) + k p Z p ( s ) [ d 0 ~ N ( s ) + D ~ ( s ) ] = R m ( s ) Z p ( s ) (12) \begin{array}{c} \widetilde{k}_ck_p=k_m \\ N(s)=Z_m(s) \\ \left[N(s)+\widetilde{C}(s) \right]R_p(s)+k_pZ_p(s)[\widetilde{d_0}N(s)+\widetilde{D}(s)] = R_m(s)Z_p(s) \tag{12} \end{array} k ckp=kmN(s)=Zm(s)[N(s)+C (s)]Rp(s)+kpZp(s)[d0 N(s)+D (s)]=Rm(s)Zp(s)(12)
对于前面 e q ( 12 ) eq(12) eq(12)前两个等式容易实现,关键在于第三个等式。

注意到参考模型传递函数 W m ( s ) = k m Z m ( s ) R m ( s ) W_{m}(s)=\frac{k_{m}Z_{m}(s)}{R_{_m}(s)} Wm(s)=Rm(s)kmZm(s) Z m ( s ) Z_m(s) Zm(s) m m m阶首一古尔维茨多项式, R m ( s ) R_m(s) Rm(s) n n n阶首一古尔维茨多项式,其有 m m m个零点, n n n个极点;

再从 e q ( 11 ) eq(11) eq(11)来看,等式右边分子为 Z p ( s ) N ( s ) Z_p(s)N(s) Zp(s)N(s) m + n − 1 m+n-1 m+n1个零点,分母为 [ N ( s ) + C ~ ( s ) ] R p ( s ) + k p Z p ( s ) [ d 0 ~ N ( s ) + D ~ ( s ) ] {\left[N(s)+\widetilde{C}(s) \right]R_p(s)+k_pZ_p(s)[\widetilde{d_0}N(s)+\widetilde{D}(s)]} [N(s)+C (s)]Rp(s)+kpZp(s)[d0 N(s)+D (s)] 2 n − 1 2n-1 2n1个零点(零点判断方法为:判断是几次多项式)。可以得到,等式右边有 m + n − 1 m+n-1 m+n1个零点, 2 n − 1 2n-1 2n1个极点。

现在 e q ( 11 ) eq(11) eq(11)左右两边要相等,那么等式两边多项式次数需要相同,即等式右边要有 n − 1 n-1 n1个零点和极点相消

接下来使用李雅普诺夫函数设计自适应规律:

ω \omega ω为可调系统的信号向量,维数为 2 n 2n 2n维,即
ω T = [ r − v 1 T y p − v 2 T ] \omega^T=\begin{matrix}[r&-v_1^T&y_p&-v_2^T] \end{matrix} ωT=[rv1Typv2T]
(这里解释一下为什么使 v 1 v1 v1 v 2 v2 v2前面带负号:从前面结构图可以看到,系统是负反馈,故需要带负号)

θ \theta θ为可调系统中的可调参数向量,维数 2 n 2n 2n,即
θ T = [ k c c T d 0 d T ] \theta^T=\begin{matrix}[k_c&c^T&d_0&d^T]\end{matrix} θT=[kccTd0dT]

根据结构框图,可以得到被控对象的输入信号为
u = θ T ω (13) \begin{array}{c} u=\theta^T\omega \tag{13} \end{array} u=θTω(13)
e q ( 13 ) eq(13) eq(13)带入前面辅助信号和被控对象的状态方程,可得
x ˙ p = A p x p + b p θ T ω v ˙ 1 = Λ v 1 + b θ T ω v ˙ 2 = Λ v 2 + b h T x p y p = h T x p (14) \begin{array}{c} \dot{x}_p=A_px_p+b_p\theta^T\omega \\ \dot{v}_1=\Lambda v_1+b\theta^T\omega \\ \dot{v}_2=\Lambda v_2 + bh^Tx_p \\ y_p = h^Tx_p \tag{14} \end{array} x˙p=Apxp+bpθTωv˙1=Λv1+bθTωv˙2=Λv2+bhTxpyp=hTxp(14)
将其转为
[ x ˙ p v ˙ 1 v ˙ 2 ] = [ A p 0 0 0 Λ 0 b h T 0 Λ ] [ x p v 1 v 2 ] + [ b p b 0 ] θ T ω y p = h T x p (15) \begin{array}{c} \begin{bmatrix} \dot{x}_p \\ \dot{v}_1 \\ \dot{v}_2 \end{bmatrix} = \begin{bmatrix} A_p&0&0 \\ 0&\Lambda&0\\ bh^T & 0& \Lambda \end{bmatrix} \begin{bmatrix} x_p \\v_1\\v_2 \end{bmatrix} + \begin{bmatrix} b_p \\b\\0 \end{bmatrix} \theta^T\omega \\ y_p = h^Tx_p \tag{15} \end{array} x˙pv˙1v˙2 = Ap0bhT0Λ000Λ xpv1v2 + bpb0 θTωyp=hTxp(15)
Ψ = θ − θ ˉ \Psi=\theta - \bar{\theta} Ψ=θθˉ,其中 θ ˉ \bar \theta θˉ θ \theta θ的理想值,当 Ψ = 0 \Psi=0 Ψ=0时, k c = k ˉ c , c = c ˉ , d 0 = d ˉ 0 , d = d ˉ k_c=\bar{k}_c,c=\bar{c},d_0=\bar{d}_0,d=\bar{d} kc=kˉc,c=cˉ,d0=dˉ0,d=dˉ,此时对应的输入为:
u = θ T ω = [ θ ˉ + Ψ ] T ω = k ˉ c r − c ˉ T v 1 + d ˉ 0 h T x p − d ˉ T v 2 + Ψ T ω (16) \begin{array}{c} u=\theta^T\omega = [ \bar{\theta}+\Psi]^T\omega \\ =\bar{k}_cr-\bar c^Tv_1+\bar{d}_0h^Tx_p-\bar{d}^Tv_2+\Psi^T\omega \tag{16} \end{array} u=θTω=[θˉ+Ψ]Tω=kˉcrcˉTv1+dˉ0hTxpdˉTv2+ΨTω(16)

e q ( 16 ) eq(16) eq(16)代入 e q ( 15 ) eq(15) eq(15)整理可得增广状态方程为
x ˙ = A c x + b c [ k ˉ c r + Ψ T ω ] y p = h T x p (17) \begin{array}{c} \dot{x}=A_cx+b_c[\bar{k}_cr+\Psi^T\omega ] \\ y_p = h^Tx_p \tag{17} \end{array} x˙=Acx+bc[kˉcr+ΨTω]yp=hTxp(17)
其中,
A c = [ A p + b p d ˉ 0 h T − b p c ˉ T − b p d ˉ T b d ˉ 0 h T Λ − b c ˉ T − b d ˉ T b h T 0 Λ ] x T = [ x p T v 1 T v 2 T ] , b c T = [ b p T b T 0 ] A_c=\begin{bmatrix} A_p+b_p\bar{d}_0h^T&-b_p \bar c^T&-b_p\bar{d}^T \\ b\bar{d}_0h^T&\Lambda-b \bar c^T&-b\bar{d}^T\\ bh^T & 0& \Lambda \end{bmatrix} \\ x^T=\begin{matrix}[x_p^T & v_1^T&v_2^T]\end{matrix},b_c^T=\begin{matrix}[b_p^T&b^T&0 ]\end{matrix} Ac= Ap+bpdˉ0hTbdˉ0hTbhTbpcˉTΛbcˉT0bpdˉTbdˉTΛ xT=[xpTv1Tv2T],bcT=[bpTbT0]
Ψ = 0 \Psi=0 Ψ=0时,可调系统于参考模型输出相同,令 e q ( 17 ) eq(17) eq(17)中的 Ψ = 0 \Psi=0 Ψ=0,可得参考模型的增广状态方程为
x ˙ m c = A c x m c + b c k ˉ c r y m = h c T x m c = h T x m (18) \begin{array}{c} \dot{x}_{mc}=A_{c}x_{mc}+b_c\bar{k}_cr \\ y_m=h_c^Tx_{mc}=h^Tx_m \tag{18} \end{array} x˙mc=Acxmc+bckˉcrym=hcTxmc=hTxm(18)
其中,
x m c T = [ x m T v m 1 T v m 2 T ] , h c T = [ h T 0 0 ] x_{mc}^T=\begin{matrix}[x_m^T & v_{m1}^T&v_{m2}^T]\end{matrix},h_c^T=\begin{matrix}[h^T&0&0 ]\end{matrix} xmcT=[xmTvm1Tvm2T],hcT=[hT00]
可得,参考模型的传递函数为
W m ( s ) = h c T ( s I − A c ) − 1 b c k ˉ c W_m(s)=h_c^T(sI-A_c)^{-1}b_c\bar{k}_c Wm(s)=hcT(sIAc)1bckˉc
定义广义状态误差
e = x − x m c = [ x p − x m v 1 − v m 1 v 2 − v m 2 ] e=x-x_{mc}=\begin{bmatrix}x_p-x_m\\v_1-v_{m1}\\v_2-v_{m2}\end{bmatrix} e=xxmc= xpxmv1vm1v2vm2
由可调对象增广状态方程 e q ( 17 ) eq(17) eq(17)和参考对象增广状态方程 e q ( 18 ) eq(18) eq(18),可得增广状态误差方程为
e ˙ = x ˙ − x ˙ m c = A c e + b c Ψ T ω (19) \begin{array}{c} \dot{e}=\dot{x}-\dot{x}_{mc}=A_ce+b_c\Psi ^T\omega \tag{19} \end{array} e˙=x˙x˙mc=Ace+bcΨTω(19)
增广输出误差方程为
e 1 = y p − y m = h T ( x p − x m ) = h c T e (20) \begin{array}{c}e_1=y_p-y_m=h^T(x_p-x_m)=h_c^Te\tag{20} \end{array} e1=ypym=hT(xpxm)=hcTe(20)

和前面几篇文章介绍的一样,我们需要增广状态误差 e e e Ψ \Psi Ψ趋于0,因此,设计李雅普诺夫函数为
V = 1 2 ( e T P e + Ψ T Γ − 1 Ψ ) (21) \begin{array}{c} V=\frac{1}{2}(e^TPe+\Psi^T\Gamma^{-1}\Psi)\tag{21} \end{array} V=21(eTPe+ΨTΓ1Ψ)(21)
对齐求导可得
V ˙ = 1 2 e T ( P A c + A c T P ) e + Ψ T ω b c T P e + Ψ T Γ − 1 Ψ ˙ = 1 2 e T ( P A c + A c T P ) e + Ψ T ( ω b c T P e + Γ − 1 Ψ ˙ ) \dot{V}=\frac{1}{2}e^T(PA_c+A_c^TP)e+\Psi^T\omega b_c^TPe+\Psi^T\Gamma^{-1}\dot{\Psi}\\ = \frac{1}{2}e^T(PA_c+A_c^TP)e+\Psi^T(\omega b_c^TPe+\Gamma^{-1}\dot{\Psi}) V˙=21eT(PAc+AcTP)e+ΨTωbcTPe+ΨTΓ1Ψ˙=21eT(PAc+AcTP)e+ΨT(ωbcTPe+Γ1Ψ˙)

P A c + A c T P = − Q ω b c T P e + Γ − 1 Ψ ˙ = 0 PA_c+A_c^TP=-Q\\ \omega b_c^TPe+\Gamma^{-1}\dot{\Psi} = 0 PAc+AcTP=QωbcTPe+Γ1Ψ˙=0
可得
Ψ ˙ = − Γ ω b c T P e (22) \begin{array}{c}\dot{\Psi}=-\Gamma \omega b_c^TPe\tag{22} \end{array} Ψ˙=ΓωbcTPe(22)
e q ( 22 ) eq(22) eq(22)可以看出,自适应率与 b c b_c bc e e e有关,而 b c b_c bc是未知的, e e e是不容易获得的,考虑到 e 1 e_1 e1我们能直接获取,如果能设计 b c T P = h c T b_c^TP=h_c^T bcTP=hcT,那么就可以将 e q ( 22 ) eq(22) eq(22)转换为
Ψ ˙ = − Γ ω b c T P e = − Γ ω e 1 (23) \begin{array}{c} \dot{\Psi}=-\Gamma \omega b_c^TPe=-\Gamma \omega e_1 \tag{23} \end{array} Ψ˙=ΓωbcTPe=Γωe1(23)
Ψ = θ − θ ˉ \Psi=\theta - \bar{\theta} Ψ=θθˉ可得
θ ˙ = Ψ ˙ + θ ˉ ˙ = − Γ ω e 1 (24) \begin{array}{c} \dot{\theta}=\dot{\Psi} + \dot{\bar{\theta}}=-\Gamma \omega e_1 \tag{24} \end{array} θ˙=Ψ˙+θˉ˙=Γωe1(24)
可得自适应律为
θ = − ∫ 0 t Γ ω e 1 d τ + θ ( 0 ) (25) \begin{array}{c} \theta=-\int_{0}^{t}\Gamma \omega e_1d\tau + \theta(0) \tag{25} \end{array} θ=0tΓωe1dτ+θ(0)(25)

3、例题

在这里插入图片描述

y p = W p ( s ) u = k p Z p ( s ) R p ( s ) u , y m = W m ( s ) r = k m Z m ( s ) R m ( s ) r y_{p}=W_{p}(s)u=\frac{k_{p}Z_{p}(s)}{R_{p}(s)}u,\quad y_{m}=W_{m}(s)r=\frac{k_{m}Z_{m}(s)}{R_{m}(s)}r yp=Wp(s)u=Rp(s)kpZp(s)u,ym=Wm(s)r=Rm(s)kmZm(s)r
则有
R p ( s ) = s 2 − 5 s + 6 , Z p ( s ) = s + 1 , k p = 1 R m ( s ) = s 2 + 3 s + 6 , Z m ( s ) = s + 2 , k m = 1 R_{_p}(s)=s^{2}-5s+6,\quad Z_{_p}(s)=s+1,\quad k_{_p}=1 \\R_{m}(s)=s^{2}+3s+6,\quad Z_{m}(s)=s+2,\quad k_{m}=1 Rp(s)=s25s+6,Zp(s)=s+1,kp=1Rm(s)=s2+3s+6,Zm(s)=s+2,km=1
引入两个辅助信号发生器 F 1 , F 2 F_1,F_2 F1,F2 (1阶系统),分别为
v ˙ 1 = − l v 1 + u , ω 1 = c v 1 W 1 ( s ) = C ( s ) N ( s ) = c s + l v ˙ 2 = − l v 2 + y p , ω 2 = d 0 y p + d v 2 W 2 = d 0 + D ( s ) N ( s ) = d 0 + d s + l \dot{v}_{1}=-lv_{1}+u,\quad\omega_{1}=cv_{1}\\ W_{1}(s)=\frac{C(s)}{N(s)}=\frac{c}{s+l}\\ \dot{v}_{2}=-lv_{2}+y_{p},\quad \omega_{2}=d_{0}y_{p}+dv_{2}\\W_{2}=d_{0}+\frac{D(s)}{N(s)}=d_{0}+\frac{d}{s+l} v˙1=lv1+u,ω1=cv1W1(s)=N(s)C(s)=s+lcv˙2=lv2+yp,ω2=d0yp+dv2W2=d0+N(s)D(s)=d0+s+ld
设输出误差 e 1 e_1 e1,可调参数向量 θ \theta θ,信号向量 ω \omega ω分别为
e 1 = y p − y m θ T = [ k c c d 0 d ] ω T = [ r − v 1 y p − v 2 ] \begin{array} {c}{e_{1}=y_{\mathrm{p}}-y_{\mathrm{m}}} \\\\ {\boldsymbol{\theta}^{\mathrm{T}}= \begin{bmatrix} k_{c} & c & d_{0} & d \end{bmatrix}} \\\\ \omega^T= \begin{bmatrix} r & -v_1 & y_p & -v_2 \end{bmatrix} \end{array} e1=ypymθT=[kccd0d]ωT=[rv1ypv2]
将上述等式带入 e q ( 10 ) eq(10) eq(10)可得
W ( s ) = k c k p Z p ( s ) N ( s ) [ N ( s ) + C ( s ) ] R p ( s ) + k p Z p ( s ) [ d 0 N ( s ) + D ( s ) ] = k c ( s + 1 ) ( s + l ) [ s + l + c ] ( s 2 − 5 s + 6 ) + ( s + 1 ) [ d 0 ( s + l ) + d ] = k m Z m ( s ) R m ( s ) = s + 2 s 2 + 3 s + 6 (26) \begin{array}{c} W(s)=\frac{k_ck_pZ_p(s)N(s)}{\left[N(s)+C(s) \right]R_p(s)+k_pZ_p(s)[d_0N(s)+D(s)]} \\\\ =\frac{k_c(s+1)(s+l)}{[s+l+c](s^{2}-5s+6)+(s+1)[d_0(s+l)+d]}\\\\ =\frac{k_mZ_m(s)}{R_m(s)}=\frac{s+2}{s^2+3s+6} \tag{26} \end{array} W(s)=[N(s)+C(s)]Rp(s)+kpZp(s)[d0N(s)+D(s)]kckpZp(s)N(s)=[s+l+c](s25s+6)+(s+1)[d0(s+l)+d]kc(s+1)(s+l)=Rm(s)kmZm(s)=s2+3s+6s+2(26)
根据第二节 e q ( 12 ) eq(12) eq(12)分析,要求
N ( s ) = Z m ( s ) ⇒ s + l = s + 2 ⇒ l = 2 N(s)=Z_m(s) \Rightarrow s+l=s+2 \Rightarrow l=2 N(s)=Zm(s)s+l=s+2l=2
再根据等式两边分子分母多项式阶次相同(前面提到的有 n − 1 n-1 n1的相同的零极点相消)可得,分母应该存在因式 ( s + 1 ) (s+1) (s+1)

因此,
s + l + c ˉ = s + 1 ⇒ c ˉ = − 1 s+l+\bar c = s+1 \Rightarrow \bar c=-1 s+l+cˉ=s+1cˉ=1
e q ( 26 ) eq(26) eq(26)分子分母同时消去 ( s + 1 ) (s+1) (s+1)可得
W ( s ) = k c ( s + 1 ) ( s + 2 ) [ s + 1 ] ( s 2 − 5 s + 6 ) + ( s + 1 ) [ d 0 ( s + 2 ) + d ] = k c ( s + 2 ) s 2 − 5 s + 6 + d 0 ( s + 2 ) + d = s + 2 s 2 + 3 s + 6 \begin{array}{c} W(s) =\frac{k_c(s+1)(s+2)}{[s+1](s^{2}-5s+6)+(s+1)[d_0(s+2)+d]}\\= \frac{k_c(s+2)}{s^{2}-5s+6+d_0(s+2)+d} =\frac{s+2}{s^2+3s+6} \end{array} W(s)=[s+1](s25s+6)+(s+1)[d0(s+2)+d]kc(s+1)(s+2)=s25s+6+d0(s+2)+dkc(s+2)=s2+3s+6s+2
可得
k c ˉ = 1 , d ˉ 0 = 8 , d = − 16 \bar{k_c}=1, \quad \bar{d}_0=8, \quad d=-16 kcˉ=1,dˉ0=8,d=16
e q ( 24 ) : θ ˙ = Ψ ˙ + θ ˉ ˙ = − Γ ω e 1 eq(24):\dot{\theta}=\dot{\Psi} + \dot{\bar{\theta}}=-\Gamma \omega e_1 eq(24)θ˙=Ψ˙+θˉ˙=Γωe1可得,取 Γ = E \Gamma =E Γ=E
k ˙ c = − r e 1 , c ˙ = v 1 e 1 , d ˙ 0 = − y p e 1 , d ˙ = v 2 e 1 \dot{k}_c=-re_1, \quad \dot{c}=v_1e_1, \quad \dot{d}_0=-y_pe_1, \quad \dot{d}=v_2e_1 k˙c=re1,c˙=v1e1,d˙0=ype1,d˙=v2e1

k c ( t ) = − ∫ 0 t r ( τ ) e 1 ( τ ) d τ + 1 , c ( t ) = ∫ 0 t v 1 ( τ ) e 1 ( τ ) d τ − 1 d 0 ( t ) = − ∫ 0 t y p ( τ ) e 1 ( τ ) d τ + 8 , d ( t ) = ∫ 0 t v 2 ( τ ) e 1 ( τ ) d τ − 16 k_{c}(t)=-\int_{0}^{t}r(\tau)e_{1}(\tau)\mathrm{d}\tau+1,\quad c(t)=\int_{0}^{t}v_{1}(\tau)e_{1}(\tau) \mathrm{d}\tau-1\\\\ d_{0}(t)=-\int_{0}^{t}y_{p}(\tau)e_{1}(\tau)\mathrm{d}\tau+8,\quad d(t)=\int_{0}^{t}v_{2}(\tau)e_{1}(\tau)\mathrm{d}\tau-16 kc(t)=0tr(τ)e1(τ)dτ+1,c(t)=0tv1(τ)e1(τ)dτ1d0(t)=0typ(τ)e1(τ)dτ+8,d(t)=0tv2(τ)e1(τ)dτ16

simulink搭建仿真为
结构图中的子模块分别对应输入和输出之间的关系
其中 F 1 F1 F1模块为
在这里插入图片描述
C C C模块为
在这里插入图片描述
其他几个模块依次类推。

仿真结果如下
在这里插入图片描述
四个可调整参数变化情况为
在这里插入图片描述

4、总结

为了避免自适应率中出现误差的导数,Narendra自适应控制方案通过引入两个辅助信号 F 1 , F 2 F_1,F_2 F1,F2,实现自适应率设计,但通过第二节推导可以看出,比单纯从李雅普诺夫稳定性推导要复杂。

至此,基于李雅普诺夫稳定性理论设计MRACS就到这了,下一篇将从超稳定性理论来设计MRACS

相关文章:

Narendra自适应控制器设计

上一篇介绍了在系统结构中引入前馈和反馈的结构,然后利用李雅普诺夫稳定性理论设计MRACS,在基于输入输出形式中,利用李雅普诺夫稳定性设计的自适应率中包含了误差的导数,这降低了系统的抗干扰性,为了避免这一缺点&…...

为什么大模型偏爱Markdown

Markdown 的简洁之美 我们常见的文档格式&#xff0c;比如HTML、JSON、XML或者Markdown&#xff0c;Markdown是最简洁的。 比如要展示一行标题&#xff0c;相比复杂的HTML标签&#xff0c;使用Markdown我们只需要在文本前加个井号&#xff1a; <heading level“1”>这是…...

【kafka系列】消费者组

目录 消费者组功能点 1. 动态负载均衡 2. 容错高可用 3. 消费进度管理 4. 并行消费能力 5. 消费隔离性 其他要点 1. Rebalance过程详解 2. 位移提交的精确语义 3. 消费者限速策略 4. 跨机房消费设计 消费者组功能点 1. 动态负载均衡 核心机制&#xff1a;通过Rebal…...

2025五一杯数学建模C题:社交媒体平台用户分析问题;思路分析+模型代码

&#xff08;一&#xff09;问题背景 想象一下&#xff0c;社交媒体平台是一个充满活力的生态系统&#xff0c;博主们如同才华横溢的创作者&#xff0c;凭借专业知识或独特兴趣&#xff0c;精心打造出各种高质量内容&#xff0c;吸引着众多用户的目光。用户则像热情的参与者&a…...

Kotlin-运算符重载函数

在 Kotlin 里&#xff0c;运算符重载函数允许为自定义类型重新定义现有的运算符(如 -…)行为&#xff0c;从而让自定义类型能像内置类型那样使用运算符 文章目录 基本语法作用场景类对象数据类型接口 注意事项 基本语法 若要重载运算符&#xff0c;需要定义一个带有 operato…...

哈希表笔记(三)Java Hashmap

一、基本介绍 HashMap 是 Java 集合框架中的核心类之一&#xff0c;基于哈希表实现&#xff0c;提供了 Map 接口的主要实现。 1.1 主要特点 实现了 Map<K,V> 接口允许 null 键和 null 值&#xff08;不同于 Hashtable&#xff09;非同步实现&#xff08;非线程安全&am…...

2025五一杯C题五一杯数学建模思路代码文章教学:社交媒体平台用户分析问题

完整内容请看文章最下面的推广群 问题一详细分析&#xff1a;逐步思考与建模过程 第1步&#xff1a;问题理解与数学建模目标明确 目标明确&#xff1a; 平台希望根据2024年7月11日至7月20日的用户与博主交互数据&#xff0c;预测2024年7月21日各博主新增的关 注数&#xff0c;…...

2025五一数学建模竞赛B题完整分析论文(共42页)(含模型、可运行代码、数据)

2025年五一数学建模竞赛B题完整分析论文 摘 要 一、问题分析 二、问题重述 三、模型假设 四、符号定义 五、 模型建立与求解 5.1问题1 5.1.1问题1思路分析 5.1.2问题1模型建立 5.1.3问题1代码 5.1.4问题1求解结果 5.2问题2 5.2.1问题2思路分析 5.2.…...

[蓝桥杯 2021 省 AB] 砝码称重 Java

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[] w new int[n 1];int sum 0; // 所有砝码重量之和for (int i 1; i < n; i) {w[i] sc.nextInt();sum w[i];}sc.close()…...

Linux 命令如何同时支持文件参数与管道输入?

文章目录 Linux 命令如何同时支持文件参数与管道输入&#xff1f;命令输入方式与管道机制概述常见输入控制方式常见使用示例程序实现思路&#xff1a;统一处理输入的方式判定输入来源的基本模式为何命令应支持参数与标准输入&#xff1f; GNU Coreutils wc 源码解析&#xff1a…...

Lucene多种数据类型使用说明

Lucene 作为一款高性能的全文检索引擎库&#xff0c;其核心功能围绕索引和搜索文本数据&#xff0c;但它也支持多种数据类型以满足复杂的应用场景。以下是 Lucene 支持的主要数据类型及其用途的详细说明&#xff1a; 1. 文本类型&#xff08;Text&#xff09; 用途&#xff1a;…...

使用CubeMX新建DMA工程——存储器到外设模式

目录 1、新建板级支持包 1、usart.c: 2、修改的地方&#xff1a;在usart.c中添加了这些 3、usart.h: 4、在usart.h中添加了这些&#xff1a; 5、dma.c: 6、dma.h: 2、修改main.c文件 1、在main.c文件中添加头文件 2、添加外部变量声明 3、添加简单延时函数 4、添加…...

基于Redis实现-附近商铺查询

基于Redis实现-附近查询 这个功能将使用到Redis中的GEO这种数据结构来实现。 1.GEO相关命令 GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入到了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据&#…...

【Redis】Another Redis Desktop Manager 安装指南

目录 一、Another Redis Desktop Manager 介绍 ​二、下载安装指南 三、效果预览 一、Another Redis Desktop Manager 介绍 国人开发的更快、更好、更稳定的 Redis 桌面客户端工具&#xff0c;功能强大&#xff0c;支持集群、哨兵、SSL 认证、 树状视图、自定义格式化脚本等功…...

装饰器设计模式(Decorator Pattern)详解

装饰器设计模式(Decorator Pattern)详解 装饰器模式是一种结构型设计模式,它允许动态地向对象添加额外行为,而无需修改其原始类。这种模式通过包装对象的方式提供灵活的扩展功能替代继承。 1. 核心概念 (1)模式定义 装饰器模式:动态地给一个对象添加一些额外的职责,就…...

LiteOS与SLE透传实战案例

文章目录 硬件设计EDA 软件介绍创建元件及封装原理图绘制Layout元件焊接 软件设计LiteOS 入门核心概念TaskWorkflow参考 API&#xff08;参考 osal_task. h&#xff09; 时间片任务轮转练习&#xff1a;仿写 example/peripheral/blinkyQueue参考 API&#xff08;参考 osal_msgq…...

MCAL学习(1)——AutoSAR

1.了解AutoSAR及一些概念 AutoSAR是Automotive Open System Architecture ,汽车开放系统架构。 针对汽车ECU的软件开发架构。已经是汽车电子软件开发的标准。 OS服务&#xff1a;Freertos 整车厂&#xff08;OEM&#xff09;主要负责应用层算法 一级供应商&#xff1a;生产制…...

前端vue3项目学习

鸽王经过一个多月的学习&#xff08;断断续续吧&#xff0c;毕竟还有其他杂事&#xff09;&#xff0c;学的昏天黑地&#xff0c;终于把主线捋的差不多了。只能说&#xff0c;前端真不是人学的&#xff0c;涉及的语言语法太杂乱了&#xff0c;入门真的太难了。而后端&#xff0…...

ActiveMQ 性能优化与网络配置实战(二)

五、性能优化实战 5.1 基础配置调整 5.1.1 增加并发消费者 在 ActiveMQ 中&#xff0c;增加并发消费者是提高消息处理效率的重要手段之一。通过配置多个消费者并行处理消息&#xff0c;可以充分利用系统资源&#xff0c;加快消息的消费速度&#xff0c;从而提高系统的整体吞…...

Python 函数装饰器和闭包(装饰器基础知识)

本章内容&#xff1a; Python 如何计算装饰器句法 Python 如何判断变量是不是局部的 闭包存在的原因和工作原理 nonlocal 能解决什么问题 掌握这些基础知识后&#xff0c;我们可以进一步探讨装饰器&#xff1a; 实现行为良好的装饰器 标准库中有用的装饰器 实现一个参数化装饰器…...

“Everything“工具 是 Windows 上文件名搜索引擎神奇

01 Everything 和其他搜索引擎有何不同 轻量安装文件。 干净简洁的用户界面。 快速文件索引。 快速搜索。 快速启动。 最小资源使用。 轻量数据库。 实时更新。 官网&#xff1a;https://www.voidtools.com/zh-cn/downloads/ 通过网盘分享的文件&#xff1a;Every…...

【Machine Learning Q and AI 读书笔记】- 04 彩票假设

Machine Learning Q and AI 中文译名 大模型技术30讲&#xff0c;主要总结了大模型相关的技术要点&#xff0c;结合学术和工程化&#xff0c;对LLM从业者来说&#xff0c;是一份非常好的学习实践技术地图. 本文是Machine Learning Q and AI 读书笔记的第4篇&#xff0c;对应原…...

linux下安装ollama网不好怎么办?

文章目录 前言kkgithub下载脚本,而不是直接运行修改脚本修改权限还是不行?前言 今天想在linux上面更新一下ollama,于是去到官网: https://ollama.com/download/linux linux下安装ollama还是挺简单的: curl -fsSL https://ollama.com/install.sh | sh我也是特别嗨皮地就…...

(A题|支路车流量推测问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…...

RDMA高性能网络通信实践

RDMA高性能网络通信实践 一、背景介绍二、方法设计A.实现方案B.关键技术点三、代码及注释四、注意事项一、背景介绍 远程直接内存访问(RDMA)技术通过绕过操作系统内核和CPU直接访问远程内存,实现了超低延迟、高吞吐量的网络通信。该技术广泛应用于高性能计算、分布式存储和…...

【LeetCode Hot100】图论篇

前言 本文用于整理LeetCode Hot100中题目解答&#xff0c;因题目比较简单且更多是为了面试快速写出正确思路&#xff0c;只做简单题意解读和一句话题解方便记忆。但代码会全部给出&#xff0c;方便大家整理代码思路。 200. 岛屿数量 一句话题意 求所有上下左右的‘1’的连通块…...

图论---有向图的强连通分量(Tarjan求SCC)

强连通分量作用&#xff1a;有向图——>&#xff08;缩点&#xff09;有向无环图&#xff08;DAG&#xff09; 缩点&#xff1a;将所有连通的分量缩成一个点。 有向无环图作用/好处&#xff1a;求最短路/最长路 可以递推&#xff0c;按照拓扑图从前往后递推. x 是否在某个…...

2025年- H17-Lc125-73.矩阵置零(矩阵)---java版

1.题目描述 2.思路 &#xff08;1&#xff09;计算矩阵的行数 &#xff08;2&#xff09;计算矩阵的列数 &#xff08;3&#xff09;设计一个行列的bool数组 &#xff08;4&#xff09;遍历矩阵&#xff08;二维数组&#xff09;&#xff0c;如果遇到元素0&#xff0c;则把…...

【信息系统项目管理师-论文真题】2023下半年论文详解(包括解题思路和写作要点)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题(第一批):论信息系统项目的干系人管理1、写作要点2、解题思路项目干系人管理的过程和执行要点项目中所有干系人如何进行分类管理?试题(第二批):论信息系统项目的工作绩效域1、写作要点2、解题思路绩…...

分享5款开源、美观的 WinForm UI 控件库

前言 今天大姚给大家分享5款开源、美观的 WinForm UI 控件库&#xff0c;助力让我们的 WinForm 应用更好看。 WinForm WinForm是一个传统的桌面应用程序框架&#xff0c;它基于 Windows 操作系统的原生控件和窗体。通过简单易用的 API&#xff0c;开发者可以快速构建基于窗体…...

微软推出数款Phi 4“开放式”人工智能模型

微软周三推出了几款新的“开放式”人工智能模型&#xff0c;其中功能最强大的模型至少在一个基准测试上可与 OpenAI 的 o3-mini 相媲美。所有新的授权模型——Phi 4 mini reasoning、Phi 4 reasoning 和 Phi 4 reasoning plus——都是“推理”模型&#xff0c;这意味着它们能够…...

Python实例题:Python实现Python解释器

目录 Python实例题 题目 实现思路 代码实现 代码解释 词法分析器&#xff08;Lexer&#xff09;&#xff1a; 词法单元类&#xff08;Token&#xff09;&#xff1a; 抽象语法树节点类&#xff08;AST&#xff09;&#xff1a; 语法分析器&#xff08;Parser&#xff…...

【IP101】图像滤波技术详解:从均值滤波到高斯滤波的完整指南

&#x1f31f; 图像滤波魔法指南 &#x1f3a8; 在图像处理的世界里&#xff0c;滤波就像是给图片"美颜"的魔法工具。让我们一起来探索这些神奇的滤波术吧&#xff01; &#x1f4d1; 目录 1. 均值滤波&#xff1a;图像的"磨皮"大法2. 中值滤波&#xff1…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(六)

个人笔记整理---仅供参考 第六章项目管理概论 6.1PMBOK的发展 6.2项目基本要素 组织过程资产指的是项目上的&#xff0c;国产数据库的使用----安保和安全指的是环境因素 6.3项目经理的角色 6.4价值驱动的项目管理知识体系...

算法-堆、排序算法、矩阵乘法

满二叉树、完全二叉树 二叉树遵循下面的规律&#xff0c;当前节点i&#xff08;但是其实就是逐级填充&#xff09;: 左节点为 ix2右节点为 i*21父节点为 [i/2] 向下取整 使用数组表示二叉树&#xff1a; &#xff08;二叉树的深度自上而下&#xff0c;高度自下…...

Java 进阶--集合:告别数组的“僵硬”,拥抱灵活的数据容器

作者&#xff1a;IvanCodes 发布时间&#xff1a;2025年5月1日&#x1fae1; 专栏&#xff1a;Java教程 大家好&#xff01;&#x1f44b; 还记得我们上次聊的数组 (Array) 吗&#xff1f;它很基础&#xff0c;性能也不错&#xff0c;但有个致命的缺点&#xff1a;长度一旦定…...

Python 数据智能实战 (6):用户评论深度挖掘

写在前面 —— 从繁杂评论到精准洞察:主题发现与情感趋势分析,驱动产品优化与体验提升 在上篇内容中,我们学习了如何利用 LLM 提升用户分群的精度,以及如何超越传统购物篮分析,挖掘商品间的语义关联。今天,我们将聚焦于电商领域 价值密度最高 的非结构化数据之一——用…...

podman/docker国内可用的docker镜像源(2025-05)

一、添加Docker国内镜像 1、修改 /etc/docker/daemon.json 设置 registry mirror&#xff0c;具体命令如下: sudo vim /etc/docker/daemon.json <<EOF {"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me",&q…...

机器人--底盘

机器人底盘 底盘是机器人传感器和机器人主机的载体&#xff0c;也是移动机器人的基本形式。移动机器人通常可以采用轮式和足式进行移动。 也就是机器人底盘可以分为轮式底盘和足式底盘。 足式底盘控制复杂&#xff0c;这里只讨论轮式底盘。 底盘运动学模型 轮式机器人底盘按…...

Seata服务端同步提交事务核心源码解析

文章目录 前言一、doGlobalCommit&#xff08;同步提交&#xff09;2.1、closeAndClean()2.2、changeGlobalStatus2.3、doGlobalCommit2.3.1、findGlobalSession 总结 前言 本篇介绍Seata服务端TC如何驱动RM提交事务。 一、doGlobalCommit&#xff08;同步提交&#xff09; doG…...

2025五一杯B题五一杯数学建模思路代码文章教学: 矿山数据处理问题

完整内容请看文章最下面的推广群 问题1. 根据附件1中的数据和&#xff0c;建立数学模型&#xff0c;对数据A进行某种变换&#xff0c;使得变换后的结果与数据尽可能接近。计算变换后的结果与数据的误差&#xff0c;并分析误差的来源&#xff08;如数据噪声、模型偏差等&#xf…...

C++11新特性_自动类型推导

decltype 和 auto 均为 C 里用于类型推导的关键字&#xff0c;不过它们在使用方式、推导规则和应用场景上存在显著差异。下面为你详细介绍它们的区别&#xff1a; 1. 推导依据 auto&#xff1a;它依据变量的初始化表达式来推导类型。也就是说&#xff0c;auto 定义的变量必须有…...

【AI论文】ReasonIR:为推理任务训练检索器

摘要&#xff1a;我们提出了ReasonIR-8B&#xff0c;这是第一个专门针对一般推理任务进行训练的检索器。 现有的检索器在推理任务上表现出的收益有限&#xff0c;部分原因是现有的训练数据集侧重于与直接回答它们的文档相关的简短事实查询。 我们开发了一个合成数据生成管道&am…...

嵌入式AI还是一片蓝海

发现其实还是挺多人关注嵌入式和人工智能交叉领域的&#xff0c;随便一个问题&#xff0c;浏览量就27万了&#xff0c;但是这方面的内容确实少得可怜……所以干脆我自己来补点干货。 推荐一本最近很热门的新书——《边缘人工智能&#xff1a;用嵌入式机器学习解决现实问题》。 …...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(13): ておきます ています & てあります

日语学习-日语知识点小记-构建基础-JLPT-N4阶段&#xff08;13&#xff09;&#xff1a; ておきます &ています &#xff06; てあります 。 1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师的信仰 2、知识点&#xff08;1&#xff09;&#x…...

CMake管理外部依赖的模块

在 CMake 中&#xff0c;FetchContent 和 ExternalProject 都是管理外部依赖的模块&#xff0c;但它们的 设计目标、使用场景和执行时机 有本质区别。以下通过对比表格、代码示例和场景分析详细说明它们的区别。 核心区别对比表 特性FetchContentExternalProject执行阶段配置阶…...

[计算机科学#7]:CPU的三阶段,取指令、解码、执行

【核知坊】&#xff1a;释放青春想象&#xff0c;码动全新视野。 我们希望使用精简的信息传达知识的骨架&#xff0c;启发创造者开启创造之路&#xff01;&#xff01;&#xff01; 内容摘要&#xff1a;本文详细介绍了CPU的工作原理&#xff0c;包括其结构…...

向量数据库和关系型数据库的区别,优点,缺点和典型应用场景

向量数据库与关系型数据库的全面对比 向量数据库和关系型数据库是两种截然不同的数据管理系统&#xff0c;各自针对特定的数据模型和查询模式进行了优化。随着人工智能和大数据技术的发展&#xff0c;向量数据库作为新兴的数据库类型&#xff0c;在处理非结构化数据方面展现出…...

《跨越边界:探索跨端框架中通用状态管理方案设计》

一款应用往往需要在多个终端&#xff0c;如Web、移动端、桌面端等同时运行&#xff0c;以满足用户多元化的使用场景。在这复杂的跨端开发领域中&#xff0c;状态管理堪称关键枢纽&#xff0c;直接关乎应用的性能、稳定性以及开发与维护的效率。如何设计一套通用的状态管理方案&…...

PHP之CURL通过header传参数及接收

一、传参数之冒号 注意一点&#xff0c;这里的header数据不是KV结构&#xff0c;而是一个一维数组。 看清楚&#xff0c;注意一点&#xff0c;是这样的结构&#xff1a; $ch curl_init(); $headers [X-Custom-Header: value123,Authorization: Bearer your_token_here // …...