【状态估计】非线性非高斯系统的状态估计——离散时间的批量估计

上一篇文章介绍了离散时间的递归估计,本文着重介绍离散时间的批量估计。

上一篇位置:【状态估计】非线性非高斯系统的状态估计——离散时间的递归估计。


离散时间的批量估计问题

最大后验估计

目标函数

利用高斯-牛顿法来解决估计问题的非线性版本,这种优化方法也可以认为是MAP方法

首先建立最小化的目标函数,然后考虑如何解决它。

构建目标函数,优化变量为:

x = [ x 0 x 1 ⋮ x K ] x=\begin{bmatrix}x_0\\x_1\\\vdots\\x_K\end{bmatrix} x= x0x1xK

即需要估计整条轨迹。

对于非线性情况,定于相对于先验和测量的误差为:

e v , 0 ( x ) = x ˇ 0 − x 0 e v , k ( x ) = f ( x k − 1 , v k , 0 ) − x k \begin{aligned}e_{v,0}(x)&=\check x_0-x_0 \\ e_{v,k}(x)&=f(x_{k-1},v_k,0)-x_k\end{aligned} ev,0(x)ev,k(x)=xˇ0x0=f(xk1,vk,0)xk

其中, k = 1 , 2 , . . . , K k=1,2,...,K k=1,2,...,K

e y , k ( x ) = y k − g ( x k , 0 ) e_{y,k}(x)=y_k-g(x_k,0) ey,k(x)=ykg(xk,0)

其中, k = 0 , 1 , . . . , K k=0,1,...,K k=0,1,...,K

它们对目标函数的贡献为:

J v , k ( x ) = 1 2 e v , k ( x ) T W v , k − 1 e v , k ( x ) J y , k ( x ) = 1 2 e y , k ( x ) T W y , k − 1 e y , k ( x ) \begin{aligned}J_{v,k}(x)&=\frac{1}{2}e_{v,k}(x)^TW_{v,k}^{-1}e_{v,k}(x) \\ J_{y,k}(x)&=\frac{1}{2}e_{y,k}(x)^TW_{y,k}^{-1}e_{y,k}(x)\end{aligned} Jv,k(x)Jy,k(x)=21ev,k(x)TWv,k1ev,k(x)=21ey,k(x)TWy,k1ey,k(x)

那么完整的代价函数为:

J ( x ) = ∑ k = 0 K ( J v , k ( x ) + J y , k ( x ) ) J(x)=\sum_{k=0}^K(J_{v,k}(x)+J_{y,k}(x)) J(x)=k=0K(Jv,k(x)+Jy,k(x))

通常,可以 W v , k W_{v,k} Wv,k W y , k W_{y,k} Wy,k简单的认为是对称正定的权重矩阵。通过设置权重矩阵和测量噪声的协方差相关联,则最小化目标函数等同于最大化状态的联合似然函数

同时,定义:

e ( x ) = [ e v ( x ) e y ( x ) ] e v ( x ) = [ e v , 0 ( x ) e v , 1 ( x ) ⋮ e v , K ( x ) ] e y ( x ) = [ e y , 0 ( x ) e y , 1 ( x ) ⋮ e y , K ( x ) ] \begin{aligned}e(x)&=\begin{bmatrix}e_v(x)\\e_y(x)\end{bmatrix} \\ e_v(x)&=\begin{bmatrix}e_{v,0}(x)\\e_{v,1}(x)\\\vdots\\e_{v,K}(x)\end{bmatrix} \\ e_y(x)&=\begin{bmatrix}e_{y,0}(x)\\e_{y,1}(x)\\\vdots\\e_{y,K}(x)\end{bmatrix}\end{aligned} e(x)ev(x)ey(x)=[ev(x)ey(x)]= ev,0(x)ev,1(x)ev,K(x) = ey,0(x)ey,1(x)ey,K(x)

W = d i a g ( W v , W y ) W v = d i a g ( W v , 0 , W v , 1 , . . . , W v , K ) W y = d i a g ( W y , 0 , W y , 1 , . . . , W y , K ) \begin{aligned}W&=diag(W_v,W_y) \\ W_v&=diag(W_{v,0},W_{v,1},...,W_{v,K}) \\ W_y&=diag(W_{y,0},W_{y,1},...,W_{y,K})\end{aligned} WWvWy=diag(Wv,Wy)=diag(Wv,0,Wv,1,...,Wv,K)=diag(Wy,0,Wy,1,...,Wy,K)

因此,目标函数可以写成:

J ( x ) = 1 2 e ( x ) T W − 1 e ( x ) J(x)=\frac{1}{2}e(x)^TW^{-1}e(x) J(x)=21e(x)TW1e(x)

定义一个修改版本的误差项:

u ( x ) = L e ( x ) u(x)=Le(x) u(x)=Le(x)

其中, L T L = W − 1 L^TL=W^{-1} LTL=W1。使用这些定义,可以得到更简单的目标函数:

J ( x ) = 1 2 u ( x ) T u ( x ) J(x)=\frac{1}{2}u(x)^Tu(x) J(x)=21u(x)Tu(x)

这正是二次型的形式,但不是关于设定变量 x x x的二次型。目标是最小化目标函数,得到最优参数 x ^ \hat x x^

x ^ = a r g m i n ( J ( x ) ) \hat x=argmin(J(x)) x^=argmin(J(x))

可以使用许多非线性优化的方法来求解这个二次型的表达式。最经典的方法是高斯牛顿优化方法,但还有许多其他的选择。

牛顿法

牛顿法是指,以迭代的方式,不断用二次函数来近似目标函数,朝着二次近似极小值移动的方法。假设自变量的初始估计,或者说工作点为 x o p x_{op} xop,那么可对原函数 J ( ) J() J()在工作点附近进行二阶泰勒展开:

J ( x o p + δ x ) ≈ J ( x o p ) + ( ∂ J ( x ) ∂ x ∣ x o p ) δ x + 1 2 δ x T ( ∂ 2 J ( x ) ∂ x ∂ x T ∣ x o p ) δ x J(x_{op}+\delta x)\approx J(x_{op})+(\frac{\partial J(x)}{\partial x}|_{x_{op}})\delta x+\frac{1}{2}\delta x^T(\frac{\partial^2 J(x)}{\partial x\partial x^T}|_{x_{op}})\delta x J(xop+δx)J(xop)+(xJ(x)xop)δx+21δxT(xxT2J(x)xop)δx

其中, δ x \delta x δx表示相对于初始估计 x o p x_{op} xop的微小增量,一阶偏导称为雅可比矩阵,二阶偏导称为海塞矩阵。注意,海塞矩阵必须是正定的,才能判断该二次近似的极小值存在,才能使用牛顿法

下一步是找到 δ x \delta x δx的值,最小化该二次近似。令 δ x \delta x δx的导数为0:

∂ J ( x o p + δ x ) ∂ δ x = ( ∂ J ( x ) ∂ x ∣ x o p ) + δ x T ( ∂ 2 J ( x ) ∂ x ∂ x T ∣ x o p ) = 0 \frac{\partial J(x_{op}+\delta x)}{\partial \delta x}=(\frac{\partial J(x)}{\partial x}|_{x_{op}}) + \delta x^T(\frac{\partial^2 J(x)}{\partial x\partial x^T}|_{x_{op}})=0 δxJ(xop+δx)=(xJ(x)xop)+δxT(xxT2J(x)xop)=0

化简,求得:

( ∂ 2 J ( x ) ∂ x ∂ x T ∣ x o p ) δ x = − ( ∂ J ( x ) ∂ x ∣ x o p ) T (\frac{\partial^2 J(x)}{\partial x\partial x^T}|_{x_{op}})\delta x=-(\frac{\partial J(x)}{\partial x}|_{x_{op}})^T (xxT2J(x)xop)δx=(xJ(x)xop)T

当海塞矩阵可逆时(必定可逆,因为前面假设为正定的),可以得到方程的解,然后根据下面的公式来更新工作点:

x o p ⟵ x o p + δ x x_{op}\longleftarrow x_{op}+\delta x xopxop+δx

不停地迭代上述过程,直到 δ x \delta x δx变得足够小为止。对于牛顿法,有几点需要注意:

  • 局部收敛,这意味着当初始估计已经足够接近解时,不断地改进可以保证结果收敛到一个解

  • 收敛速度是二次的(比简单梯度下降收敛得快得多)

  • 海塞矩阵的计算可能很复杂,使得牛顿法在现实中应用存在困难。

高斯牛顿法

最优化目标函数,对 u ( ) u() u()进行泰勒展开,而不是对 J ( ) J() J()进行泰勒展开:

u ( x o p + δ x ) ≈ u ( x o p ) + ( ∂ u ( x ) ∂ x ∣ x o p ) δ x u(x_{op}+\delta x)\approx u(x_{op})+(\frac{\partial u(x)}{\partial x}|_{x_{op}})\delta x u(xop+δx)u(xop)+(xu(x)xop)δx

将其代入 J ( ) J() J()中,则:

J ( x o p + δ x ) ≈ 1 2 ( u ( x o p ) + ( ∂ u ( x ) ∂ x ∣ x o p ) δ x ) T ( u ( x o p ) + ( ∂ u ( x ) ∂ x ∣ x o p ) δ x ) J(x_{op}+\delta x)\approx \frac{1}{2}(u(x_{op})+(\frac{\partial u(x)}{\partial x}|_{x_{op}})\delta x)^T(u(x_{op})+(\frac{\partial u(x)}{\partial x}|_{x_{op}})\delta x) J(xop+δx)21(u(xop)+(xu(x)xop)δx)T(u(xop)+(xu(x)xop)δx)

针对 δ x \delta x δx最小化:

∂ J ( x o p + δ x ) ∂ δ x = ( u ( x o p ) + ( ∂ u ( x ) ∂ x ∣ x o p ) δ x ) T ( ∂ u ( x ) ∂ x ∣ x o p ) = 0 \frac{\partial J(x_{op}+\delta x)}{\partial \delta x}=(u(x_{op})+(\frac{\partial u(x)}{\partial x}|_{x_{op}})\delta x)^T(\frac{\partial u(x)}{\partial x}|_{x_{op}})=0 δxJ(xop+δx)=(u(xop)+(xu(x)xop)δx)T(xu(x)xop)=0

化简,求得:

( ∂ u ( x ) ∂ x ∣ x o p ) T ( ∂ u ( x ) ∂ x ∣ x o p ) δ x = − ( ∂ u ( x ) ∂ x ∣ x o p ) T u ( x o p ) (\frac{\partial u(x)}{\partial x}|_{x_{op}})^T(\frac{\partial u(x)}{\partial x}|_{x_{op}})\delta x=-(\frac{\partial u(x)}{\partial x}|_{x_{op}})^Tu(x_{op}) (xu(x)xop)T(xu(x)xop)δx=(xu(x)xop)Tu(xop)

高斯牛顿法的另一种推导方式

从牛顿法到高斯牛顿法,主要就是海塞矩阵的近似。那么我们看:

J ( x ) = 1 2 u ( x ) T u ( x ) J(x)=\frac{1}{2}u(x)^Tu(x) J(x)=21u(x)Tu(x)

它的雅可比矩阵为:

∂ J ( x ) ∂ x ∣ x o p = u ( x o p ) T ( ∂ u ( x ) ∂ x ∣ x o p ) \frac{\partial J(x)}{\partial x}|_{x_{op}} = u(x_{op})^T(\frac{\partial u(x)}{\partial x}|_{x_{op}}) xJ(x)xop=u(xop)T(xu(x)xop)

海塞矩阵为:

∂ 2 J ( x ) ∂ x ∂ x T ∣ x o p = ( ∂ u ( x ) ∂ x ∣ x x o p ) T ( ∂ u ( x ) ∂ x ∣ x o p ) + ∑ i = 1 M u i ( x o p ) ( ∂ 2 u i ( x ) ∂ x ∂ x T ∣ x o p ) \frac{\partial^2 J(x)}{\partial x\partial x^T}|_{x_{op}} = (\frac{\partial u(x)}{\partial x}|x_{x_{op}})^T(\frac{\partial u(x)}{\partial x}|_{x_{op}})+\sum_{i=1}^M u_i(x_{op})(\frac{\partial^2u_i(x)}{\partial x\partial x^T}|_{x_{op}}) xxT2J(x)xop=(xu(x)xxop)T(xu(x)xop)+i=1Mui(xop)(xxT2ui(x)xop)

其中: u ( x ) = ( u 1 ( x ) , u 2 ( x ) , . . . , u M ( x ) u(x)=(u_1(x),u_2(x),...,u_M(x) u(x)=(u1(x),u2(x),...,uM(x)

注意到在海塞矩阵的表达式中,我们可以假设在 J J J的极小值附近,第二项相对于第一项是很小的。直观上看,在极小值附近 u i ( x ) u_i(x) ui(x)的值应该是很小的(理想情况下为零)。因此在忽略了包含二阶导的项时,海塞可以近似为:

∂ 2 J ( x ) ∂ x ∂ x T ∣ x o p ≈ ( ∂ u ( x ) ∂ x ∣ x x o p ) T ( ∂ u ( x ) ∂ x ∣ x o p ) \frac{\partial^2 J(x)}{\partial x\partial x^T}|_{x_{op}} \approx (\frac{\partial u(x)}{\partial x}|x_{x_{op}})^T(\frac{\partial u(x)}{\partial x}|_{x_{op}}) xxT2J(x)xop(xu(x)xxop)T(xu(x)xop)

将雅可比矩阵和海塞矩阵的近似,带入到牛顿法的公式,可以得到:

( ∂ u ( x ) ∂ x ∣ x o p ) T ( ∂ u ( x ) ∂ x ∣ x o p ) δ x = − ( ∂ u ( x ) ∂ x ∣ x o p ) T u ( x o p ) (\frac{\partial u(x)}{\partial x}|_{x_{op}})^T(\frac{\partial u(x)}{\partial x}|_{x_{op}})\delta x=-(\frac{\partial u(x)}{\partial x}|_{x_{op}})^Tu(x_{op}) (xu(x)xop)T(xu(x)xop)δx=(xu(x)xop)Tu(xop)

这个上面的推导结果保持一致。

高斯牛顿法的改进

由于高斯牛顿法不能保证收敛(因为对海塞矩阵进行了近似),可以使用两个实际的方法对其进行改进:

  1. 一旦计算出最优增量 δ x \delta x δx,则实际的更新为:

x o p ⟵ x o p + α δ x x_{op}\longleftarrow x_{op}+\alpha\delta x xopxop+αδx

其中, α ∈ [ 0 , 1 ] \alpha\in[0,1] α[0,1]为自定义的参数。在实际上,常常通过线搜索的方式求得 α \alpha α的最优值。该方法能够有效的原因在于, δ x \delta x δx是下降方向;而只是调整了在该方向上的行进距离,使得收敛性质更加鲁棒(而不是更快)

  1. 可以使用列文伯格-马夸尔特(LM)改进高斯牛顿法:

( ( ∂ u ( x ) ∂ x ∣ x o p ) T ( ∂ u ( x ) ∂ x ∣ x o p ) + λ D ) δ x = − ( ∂ u ( x ) ∂ x ∣ x o p ) T u ( x o p ) ((\frac{\partial u(x)}{\partial x}|_{x_{op}})^T(\frac{\partial u(x)}{\partial x}|_{x_{op}})+\lambda D)\delta x=-(\frac{\partial u(x)}{\partial x}|_{x_{op}})^Tu(x_{op}) ((xu(x)xop)T(xu(x)xop)+λD)δx=(xu(x)xop)Tu(xop)

其中, D D D为正定对角矩阵。当 D = 1 D=1 D=1时,随着 λ ≥ 0 \lambda\ge0 λ0变大,海塞矩阵近似所占的比重相对较小,此时:

δ x = − 1 λ ( ∂ u ( x ) ∂ x ∣ x o p ) T u ( x o p ) \delta x=-\frac{1}{\lambda}(\frac{\partial u(x)}{\partial x}|_{x_{op}})^Tu(x_{op}) δx=λ1(xu(x)xop)Tu(xop)

即最速下降(即负梯度)中非常小的一个步长。当 λ = 0 \lambda=0 λ=0时,则恢复为通常的高斯牛顿更新。

LM法通过缓慢增加 λ \lambda λ的值,可以在海塞矩阵近似较差或病态的情况下工作

关于误差项的高斯牛顿法

前面提到:

J ( x ) = 1 2 u ( x ) T u ( x ) u ( x ) = L e ( x ) \begin{aligned}J(x)&=\frac{1}{2}u(x)^Tu(x) \\ u(x)&=Le(x)\end{aligned} J(x)u(x)=21u(x)Tu(x)=Le(x)

其中, L T L = W − 1 L^TL=W^{-1} LTL=W1是一个常量。

将上式代入高斯牛顿的更新方程中,可以得到关于误差项 e ( x ) e(x) e(x)的更新:

( L H ) T L H δ x = − ( L H ) T L e ( x o p ) (LH)^TLH\delta x=-(LH)^TLe(x_{op}) (LH)TLx=(LH)TLe(xop)

其中,

H = − ∂ e ( x ) ∂ x ∣ x o p = [ 1 − F 0 1 − F 1 ⋱ ⋱ 1 − F K − 1 1 G 0 G 1 G 2 ⋱ G K ] F k − 1 = ∂ f ( x k − 1 , v k , w k ) ∂ x k − 1 ∣ x o p , k − 1 , v k , 0 G k = ∂ g ( x k , n k ) ∂ x k ∣ x o p , k , 0 \begin{aligned}H&=-\frac{\partial e(x)}{\partial x}|_{x_{op}}=\begin{bmatrix}1\\-F_0&1\\&-F_1&\ddots\\&&\ddots&1\\&&&-F_{K-1}&1\\G_0\\&G_1\\&&G_2\\&&&\ddots\\&&&&G_K\end{bmatrix} \\ F_{k-1}&=\frac{\partial f(x_{k-1},v_k,w_k)}{\partial x_{k-1}}|_{x_{op},k-1,v_k,0} \\ G_{k}&=\frac{\partial g(x_{k},n_k)}{\partial x_{k}}|_{x_{op},k,0}\end{aligned} HFk1Gk=xe(x)xop= 1F0G01F1G1G21FK11GK =xk1f(xk1,vk,wk)xop,k1,vk,0=xkg(xk,nk)xop,k,0

化简可得:

( H T W − 1 H ) δ x = H T W − 1 e ( x o p ) (H^TW^{-1}H)\delta x=H^TW^{-1}e(x_{op}) (HTW1H)δx=HTW1e(xop)

贝叶斯推断

从贝叶斯推断的角度也可以得到相同的更新方程。

MAP方法是通过定义目标函数,通过高斯-牛顿法得到 ( H T W − 1 H ) δ x = H T W − 1 e ( x o p ) (H^TW^{-1}H)\delta x=H^TW^{-1}e(x_{op}) (HTW1H)δx=HTW1e(xop)。当然,也可以使用捷径,对 e ( x ) e(x) e(x)进行线性化,再使用线性高斯系统的方法进行推导,最后会得到相同的结果。

贝叶斯推断,也可以使用线性化的方法进行讨巧,再证明得到。这里就不赘述了。


讨论

如果把EKF看作是全非线性高斯牛顿方法的近似,那么它的表现是不尽如人意的。主要原因是,EKF没有迭代至收敛的过程,其雅可比矩阵也只计算一次(可能远离最优估计)。从本质上看,EKF可以做得比单次高斯牛顿迭代更好,因为它没有一次性计算所有的雅可比矩阵。即EKF中,一部分雅可比计算是在运动先验中,另一部分在观测中,但是观测部分的雅可比是在推导运动先验之后再计算的。而单次高斯牛顿迭代中,两部分雅可比是一起计算的。

EKF的主要缺陷在于缺少迭代的过程。目前,在提升EKF的表现方面已经有不少的工作,包括IEKF。IEKF的问题在于,它仍然依赖于马尔可夫假设。它仅在一个时刻上进行了迭代,而非在整个轨迹上。

不过高斯牛顿的批量式的估计也存在一些问题。它必须离线运行,且不是一个恒定时间的算法。而EKF既可以是在线方法,也可以是恒定时间方法。所谓的滑动窗口滤波器(SWF),则是在由多个时间步长组成的窗口内进行选代,并且将这个窗口进行滑动,从而达到在线和恒定时间的实现

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

了解Adam和RMSprop优化算法

优化算法是机器学习和深度学习模型训练中至关重要的部分。本文将详细介绍Adam(Adaptive Moment Estimation)和RMSprop(Root Mean Square Propagation)这两种常用的优化算法,包括它们的原理、公式和具体代码示例。 RMS…

Studying-代码随想录训练营day34| 62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树

第34天,动态规划part02,牢记五部曲步骤,编程语言:C 目录 62.不同路径 63.不同路径II 343.整数拆分 96.不同的二叉搜索树 总结 62.不同路径 文档讲解:代码随想录不同路径 视频讲解:手撕不同路径 题目…

AI赋能,全面筑牢防线:重点非煤矿山重大灾害风险防控系统探析

一、背景需求 随着工业化和现代化的快速发展,非煤矿山作为重要的资源开采基地,其安全生产问题日益受到社会各界的广泛关注。非煤矿山在开采过程中,面临着诸多重大灾害风险,如滑坡、坍塌、水害、火灾等,这些灾害一旦发…

C基础day7

一、思维导图 二、课后练习 1、提示并输入一个字符串&#xff0c;统计该字符串中字母、数字、空格以及其他字符的个数 #include<myhead.h> #define M 20 int main(int argc, const char *argv[]) {int sum_a0,sum_b0,sum_c0,sum_d0;char str[M];printf("please en…

用流式数据库解决「自动化检测服务器性能异常」难题

对 DevOps 团队来说&#xff0c;检测大量服务器的性能异常并尽快响应一直是个挑战。他们设置了各种指标来监控服务器性能&#xff0c;但诊断性能问题复杂且耗时&#xff0c;因为诊断数据的量可能非常大。越来越多的人认为这个过程应该自动化。但怎么做呢&#xff1f; 流式系统…

Chromium编译指南2024 Linux篇-同步Chromium第三方库(四)

1.引言 在成功拉取Chromium源码并创建新分支后&#xff0c;我们需要进一步配置开发环境。这包括拉取必要的第三方库以及设置hooks&#xff0c;以确保我们能够顺利进行编译和开发工作。以下步骤将详细介绍如何进行这些配置。 2.拉取第三方库以及hooks Chromium 使用了大量的第…

2024年7月1日,公布的OpenSSH的漏洞【CVE-2024-6387】

目录 ■概要 ■概要&#xff08;日语&#xff09; ■相关知识 openssh 和 ssh 有区别吗 如何查看 openssh的版本 漏洞描述 glibc Linux是什么 如何查看系统是不是基于 Gibc RHEL Linux 是基于Glibc的Linux吗 还有哪些 Linux版本是基于 GNU C库&#xff08;glibc&…

opencv读取视频文件夹内视频的名字_时长_帧率_分辨率写入excel-cnblog

看视频的时候有的视频文件名贼长。想要翻看&#xff0c;在文件夹里根本显示不出来&#xff0c;缩短又会丢失一些信息&#xff0c;所以我写了一份Python代码&#xff0c;直接获取视频的名字&#xff0c;时长&#xff0c;帧率&#xff0c;还有分辨率写到excel里。 实际效果如下图…

【2024——CUMCM】Matlab快速入门

目录 常识 disp and input 字符串合并 sum 提取矩阵指定位置的元素 指定行列 指定行or指定列&#xff08;返回行/列向量&#xff09; 指定某些行 指定全部元素&#xff0c;按列拼接 size repmat 矩阵的运算 基本运算 形状相同的矩阵运算 每个元素同时和常数相乘或相…

gitee及git的简单使用、下载教(保姆级教程)

前言&#xff1a; GitHub&#xff0c;一个由外国研发的代码开源网站&#xff0c;我们可以通过它获得别人优秀的项目源码&#xff0c;也可以在上面上传自己的劳动成果。但是&#xff0c;我们很难访问外网。于是&#xff0c;我们将目光转向国内一个类似的网站---码云&#xff08…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(四)支持json和xml的显示

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、相应的界面前端代码 <template><div class"formDesign"><FlowDesign :process"process" :fields"fields" :readOnly"readOnly&quo…

OR-3H7-4晶体管光耦,可对标替代TLP281-4等

提供隔离反馈 逻辑电路之间的接口 提供1通道和4通道 电平转换 DC和AC输入 SMPS中的调节反馈电路 消除接地环路 特征 电流传输比&#xff1a;IF 1mA&#xff0c;VCE 5V&#xff0c;Ta 25 C时最小50% 高输入输出隔离电压。&#xff08;VISO3&#xff0c;750Vrms&#xf…

MySQL GROUP_CONCAT 函数详解与实战应用

提示&#xff1a;在需要将多个值组合成一个列表时&#xff0c;GROUP_CONCAT() 函数为 MySQL 提供了一种强大的方式来处理数据 文章目录 前言什么是 GROUP_CONCAT()基本语法 示例使用 GROUP_CONCAT()去除重复值排序结果 前言 提示&#xff1a;这里可以添加本文要记录的大概内容…

16:9横屏短视频素材库有哪些?横屏短视频素材网站分享

在这个视觉内容至关重要的时代&#xff0c;16:9横屏视频因其宽广的画面和优越的观赏体验&#xff0c;已经成为无数创作者和营销专家的首选格式。但要创造出吸引人的横屏视频&#xff0c;高质量的视频素材库是不可或缺的。不管你是资深视频制作人还是刚入行的新手&#xff0c;下…

Proteus + Keil单片机仿真教程(五)多位LED数码管的静态显示

Proteus + Keil单片机仿真教程(五)多位LED数码管 上一章节讲解了单个数码管的静态和动态显示,这一章节将对多个数码管的静态显示进行学习,本章节主要难点: 1.锁存器的理解和使用; 2.多个数码管的接线封装方式; 3.Proteus 快速接头的使用。 第一个多位数码管示例 元件…

Maven在Windows中的配置方法

本文介绍在Windows电脑中&#xff0c;下载、配置Maven工具的详细方法。 Maven是一个广泛使用的项目管理工具&#xff0c;主要针对Java项目&#xff0c;但也可以用于其他类型的项目&#xff1b;其由Apache软件基金会维护&#xff0c;旨在简化和标准化项目构建过程&#xff0c;依…

库存软件有永久免费版吗?

随着商品种类的增加和供应链的日益复杂&#xff0c;如何高效、准确的追踪库存数量&#xff0c;预测需求&#xff0c;减少积压或缺货&#xff0c;成为许多商家头疼的问题&#xff0c;找一款合适的库存管理软件成为当务之急。但是&#xff0c;高昂的购买成本让中小企业望而却步。…

职场必看:如何用AI打造完美简历和面试准备

如何用AI打造完美简历和面试准备 1. 未来简历AI平台:开启个性化简历制作 想要在职场上留下深刻印象?首先,你需要一份出色的简历。未来简历AI平台让你通过简单的扫码和输入信息,快速开始简历制作。 2. 简历模板:选择适合你的岗位模板 面对众多简历模板,如何挑选?平…

鸿蒙语言基础类库:【@ohos.util.ArrayList (线性容器ArrayList)】

线性容器ArrayList 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 …

Windows11配置WSL2支持代理上网

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装WSL2分发版二、配置步骤三、测试总结 前言 说起来本来这个功能我也不需要的&#xff0c;只是最近突然有个需求就顺便研究了下&#xff0c;WSL2默认的网…