卡尔曼滤波与组合导航原理(十一)区间平滑:前向滤波、反向滤波、双向区间平滑、RTS平滑

news2025/2/23 12:43:27

最优预测、估计与平滑之间的关系:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kZC8JtPg-1686234324707)(卡尔曼滤波与组合导航原理(十一)区间平滑.assets/1686229884025.png)]

三种平滑方式:

函数模型和随机模型
{ X k = Φ k / k − 1 X k − 1 + Γ k − 1 W k − 1 Z k = H k X k + V k { E [ W k ] = 0 , E [ W k W j T ] = Q k δ k j E [ V k ] = 0 , E [ V k V j T ] = R k δ k j E [ W k V j T ] = 0 \left\{\begin{array} { l } { \boldsymbol { X } _ { k } = \boldsymbol { \Phi } _ { k / k - 1 } \boldsymbol { X } _ { k - 1 } + \boldsymbol { \Gamma } _ { k - 1 } \boldsymbol { W } _ { k - 1 } } \\ { \boldsymbol { Z } _ { k } = \boldsymbol { H } _ { k } \boldsymbol { X } _ { k } + \boldsymbol { V } _ { k } } \end{array} \quad \left\{\begin{array}{ll} \mathrm{E}\left[\boldsymbol{W}_{k}\right]=\mathbf{0}, & \mathrm{E}\left[\boldsymbol{W}_{k} \boldsymbol{W}_{j}^{\mathrm{T}}\right]=\boldsymbol{Q}_{k} \delta_{k j} \\ \mathrm{E}\left[\boldsymbol{V}_{k}\right]=\mathbf{0}, & \mathrm{E}\left[\boldsymbol{V}_{k} \boldsymbol{V}_{j}^{\mathrm{T}}\right]=\boldsymbol{R}_{k} \delta_{k j} \\ \mathrm{E}\left[\boldsymbol{W}_{k} \boldsymbol{V}_{j}^{\mathrm{T}}\right]=\mathbf{0} & \end{array}\right.\right. Xk=Φk/k1Xk1+Γk1Wk1Zk=HkXk+VkE[Wk]=0,E[Vk]=0,E[WkVjT]=0E[WkWjT]=QkδkjE[VkVjT]=Rkδkj
将量测序列分成两段: Z ˉ M = [ Z 1 Z 2 ⋯ Z j ⏟ Z ‾ 1 ⋅ j Z j + 1 Z j + 2 ⋯ Z M ⏟ Z ˉ j + 1 + M ] T \bar{Z}_{M}=\underbrace{\left[\boldsymbol{Z}_{1} \boldsymbol{Z}_{2} \cdots \boldsymbol{Z}_{j}\right.}_{\overline{\boldsymbol{Z}}_{\mathrm{1} \cdot j}} \underbrace{\mathbf{Z}_{j+1} \boldsymbol{Z}_{j+2} \cdots \boldsymbol{Z}_{M}}_{\bar{Z}_{j+1+M}}]^{\mathrm{T}} ZˉM=Z1j [Z1Z2ZjZˉj+1+M Zj+1Zj+2ZM]T

先看固定点平滑,固定区间平滑只是将点的范围扩大了,将点前后平移即可

1.正向滤波(forward)

通过前面一段做正向滤波,就是普通的Kalman滤波,下标都加了 f f f 表示正向,:
{ X ^ f , k / k − 1 = Φ k / k − 1 X ^ f , k − 1 P f , k / k − 1 = Φ k / k − 1 P f , k − 1 Φ k / k − 1 T + Γ k − 1 Q k − 1 Γ k − 1 T K f , k = P f , k / k − 1 H k T ( H k P f , k / k − 1 H k T + R k ) − 1 k = 1 , 2 , ⋯   , j X ^ f , k = X ^ f , k / k − 1 + K f , k ( Z k − H k X ^ f , k / k − 1 ) P f , k = ( I − K f , k H k ) P f , k / k − 1 \left\{\begin{array}{l} \hat{\boldsymbol{X}}_{f, k / k-1}=\boldsymbol{\Phi}_{k / k-1} \hat{\boldsymbol{X}}_{f, k-1} \\ \boldsymbol{P}_{f, k / k-1}=\boldsymbol{\Phi}_{k / k-1} \boldsymbol{P}_{f, k-1} \boldsymbol{\Phi}_{k / k-1}^{\mathrm{T}}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{Q}_{k-1} \boldsymbol{\Gamma}_{k-1}^{\mathrm{T}} \\ \boldsymbol{K}_{f, k}=\boldsymbol{P}_{f, k / k-1} \boldsymbol{H}_{k}^{\mathrm{T}}\left(\boldsymbol{H}_{k} \boldsymbol{P}_{f, k / k-1} \boldsymbol{H}_{k}^{\mathrm{T}}+\boldsymbol{R}_{k}\right)^{-1} \quad k=1,2, \cdots, j \\ \hat{\boldsymbol{X}}_{f, k}=\hat{\boldsymbol{X}}_{f, k / k-1}+\boldsymbol{K}_{f, k}\left(\boldsymbol{Z}_{k}-\boldsymbol{H}_{k} \hat{\boldsymbol{X}}_{f, k / k-1}\right) \\ \boldsymbol{P}_{f, k}=\left(\boldsymbol{I}-\boldsymbol{K}_{f, k} \boldsymbol{H}_{k}\right) \boldsymbol{P}_{f, k / k-1} \end{array}\right. X^f,k/k1=Φk/k1X^f,k1Pf,k/k1=Φk/k1Pf,k1Φk/k1T+Γk1Qk1Γk1TKf,k=Pf,k/k1HkT(HkPf,k/k1HkT+Rk)1k=1,2,,jX^f,k=X^f,k/k1+Kf,k(ZkHkX^f,k/k1)Pf,k=(IKf,kHk)Pf,k/k1
求得 j j j 时刻估计 X ^ f , j , P f , j \hat{\boldsymbol{X}}_{f, j}, \boldsymbol{P}_{f, j} X^f,j,Pf,j

2.反向滤波(backward)

从后往前推,需要对Kalman滤波模型改写:把状态转移矩阵变为求逆的形式,表示由后时刻预测前时刻:
{ X k = Φ k / k − 1 X k − 1 + Γ k − 1 W k − 1 Z k = H k X k + V k ⟹ { X k = Φ k + 1 / k − 1 X k + 1 − Φ k + 1 / k − 1 Γ k W k Z k = H k X k + V k \left\{\begin{array}{l}\boldsymbol{X}_{k}={\color{red}\boldsymbol{\Phi}_{k / k-1}} \boldsymbol{X}_{k-1}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} \\ \boldsymbol{Z}_{k}=\boldsymbol{H}_{k} \boldsymbol{X}_{k}+\boldsymbol{V}_{k}\end{array} \Longrightarrow\left\{\begin{array}{l}\boldsymbol{X}_{k}={\color{red}\boldsymbol{\Phi}_{k+1 / k}^{-1}} \boldsymbol{X}_{k+1}-{\color{red}\boldsymbol{\Phi}_{k+1 / k}^{-1}} \boldsymbol{\Gamma}_{k} \boldsymbol{W}_{k} \\ \boldsymbol{Z}_{k}=\boldsymbol{H}_{k} \boldsymbol{X}_{k}+\boldsymbol{V}_{k}\end{array}\right.\right. {Xk=Φk/k1Xk1+Γk1Wk1Zk=HkXk+Vk{Xk=Φk+1/k1Xk+1Φk+1/k1ΓkWkZk=HkXk+Vk
Φ k + 1 / k ∗ = Φ k + 1 / k − 1 \boldsymbol{\Phi}_{k+1 / k}^{*}=\boldsymbol{\Phi}_{k+1 / k}^{-1} Φk+1/k=Φk+1/k1 Γ k ∗ = − Φ k + 1 / k − 1 Γ k \boldsymbol{\Gamma}_{k}^{*}=-\boldsymbol{\Phi}_{k+1 / k}^{-1} \boldsymbol{\Gamma}_{k} Γk=Φk+1/k1Γk W k + 1 ∗ = W k \boldsymbol{W}_{k+1}^{*}=\boldsymbol{W}_{k} Wk+1=Wk ,得新的函数模型:
{ X k = Φ k + 1 / k ∗ X k + 1 + Γ k ∗ W k + 1 ∗ Z k = H k X k + V k \left\{\begin{array}{l} \boldsymbol{X}_{k}=\boldsymbol{\Phi}_{k+1 / k}^{*} \boldsymbol{X}_{k+1}+\boldsymbol{\Gamma}_{k}^{*} \boldsymbol{W}_{k+1}^{*} \\ \boldsymbol{Z}_{k}=\boldsymbol{H}_{k} \boldsymbol{X}_{k}+\boldsymbol{V}_{k} \end{array}\right. {Xk=Φk+1/kXk+1+ΓkWk+1Zk=HkXk+Vk
对新的函数模型做Kalman滤波:
{ X ^ b , k / k + 1 = Φ k / k + 1 ∗ X ^ b , k + 1 P b , k / k + 1 = Φ k / k + 1 ∗ P b , k + 1 ( Φ k / k + 1 ∗ ) T + Γ k ∗ Q k Γ k ∗ K b , k = P b , k / k + 1 H k T ( H k P b , k / k + 1 H k T + R k ) − 1 k = M − 1 , M − 2 , ⋯   , j + 1 X ^ b , k = X ^ b , k / k + 1 + K b , k ( Z k − H k X ^ b , k / k + 1 ) P b , k = ( I − K b , k H k ) P b , k / k + 1 \left\{\begin{array}{l} \hat{\boldsymbol{X}}_{b, k / k+1}=\boldsymbol{\Phi}_{k / k+1}^{*} \hat{\boldsymbol{X}}_{b, k+1} \\ \boldsymbol{P}_{b, k / k+1}=\boldsymbol{\Phi}_{k / k+1}^{*} \boldsymbol{P}_{b, k+1}\left(\boldsymbol{\Phi}_{k / k+1}^{*}\right)^{\mathrm{T}}+\boldsymbol{\Gamma}_{k}^{*} \boldsymbol{Q}_{k} \boldsymbol{\Gamma}_{k}^{*} \\ \boldsymbol{K}_{b, k}=\boldsymbol{P}_{b, k / k+1} \boldsymbol{H}_{k}^{\mathrm{T}}\left(\boldsymbol{H}_{k} \boldsymbol{P}_{b, k / k+1} \boldsymbol{H}_{k}^{\mathrm{T}}+\boldsymbol{R}_{k}\right)^{-1} \quad k=M-1, M-2, \cdots, j+1 \\ \hat{\boldsymbol{X}}_{b, k}=\hat{\boldsymbol{X}}_{b, k / k+1}+\boldsymbol{K}_{b, k}\left(\boldsymbol{Z}_{k}-\boldsymbol{H}_{k} \hat{\boldsymbol{X}}_{b, k / k+1}\right) \\ \boldsymbol{P}_{b, k}=\left(\boldsymbol{I}-\boldsymbol{K}_{b, k} \boldsymbol{H}_{k}\right) \boldsymbol{P}_{b, k / k+1} \end{array}\right. X^b,k/k+1=Φk/k+1X^b,k+1Pb,k/k+1=Φk/k+1Pb,k+1(Φk/k+1)T+ΓkQkΓkKb,k=Pb,k/k+1HkT(HkPb,k/k+1HkT+Rk)1k=M1,M2,,j+1X^b,k=X^b,k/k+1+Kb,k(ZkHkX^b,k/k+1)Pb,k=(IKb,kHk)Pb,k/k+1
求得 j j j 时刻反向一步预测 X ^ b , j / j + 1 , P b , j / j + 1 \hat{\boldsymbol{X}}_{b, j / j+1}, \boldsymbol{P}_{b, j / j+1} X^b,j/j+1,Pb,j/j+1

3、j 时刻固定点信息融合(smoothing)

将利用前面观测值正向滤波得到的观测值 X ^ f , j , P f , j \hat{\boldsymbol{X}}_{f, j}, \boldsymbol{P}_{f, j} X^f,j,Pf,j ,和反向滤波得到的观测值 X ^ b , j / j + 1 , P b , j / j + 1 \hat{\boldsymbol{X}}_{b, j / j+1}, \boldsymbol{P}_{b, j / j+1} X^b,j/j+1,Pb,j/j+1 做信息融合(加权平均),并且认为两段滤波的结果不相关:
{ X ^ f , j = X j + Δ f , j X ^ b , j / j + 1 = X j + Δ b , j / j + 1 { Δ f , j ∼ N ( 0 , P f , j ) , Δ b , j / j + 1 ∼ N ( 0 , P b , j / j + 1 ) , cov ⁡ ( U f , j Δ b , j / j + 1 T ) = 0 ⟹ { P s , j = ( P f , j − 1 + P b , j / j + 1 − 1 ) − 1 X ^ s , j = P s , j ( P b , j / j + 1 − 1 X ^ f , j + P f , j − 1 X ^ b , j / j + 1 ) \begin{array}{c} \left\{\begin{array} { l } { \hat { \boldsymbol { X } } _ { f , j } = \boldsymbol { X } _ { j } + \boldsymbol { \Delta } _ { f , j } } \\ { \hat { \boldsymbol { X } } _ { b , j / j + 1 } = \boldsymbol { X } _ { j } + \boldsymbol { \Delta } _ { b , j / j + 1 } } \end{array} \quad \left\{\begin{array}{l} \boldsymbol{\Delta}_{f, j} \sim \mathrm{N}\left(\mathbf{0}, \boldsymbol{P}_{f, j}\right), \\ \boldsymbol{\Delta}_{b, j / j+1} \sim \mathrm{N}\left(\mathbf{0}, \boldsymbol{P}_{b, j / j+1}\right), \\ \operatorname{cov}\left(\boldsymbol{U}_{f, j} \boldsymbol{\Delta}_{b, j / j+1}^{\mathrm{T}}\right)=\mathbf{0} \end{array}\right.\right. \\ \Longrightarrow\left\{\begin{array}{l} \boldsymbol{P}_{s, j}=\left(\boldsymbol{P}_{f, j}^{-1}+\boldsymbol{P}_{b, j / j+1}^{-1}\right)^{-1} \\ \hat{\boldsymbol{X}}_{s, j}=\boldsymbol{P}_{s, j}\left(\boldsymbol{P}_{b, j / j+1}^{-1} \hat{\boldsymbol{X}}_{f, j}+\boldsymbol{P}_{f, j}^{-1} \hat{\boldsymbol{X}}_{b, j / j+1}\right) \end{array}\right. \end{array} X^f,j=Xj+Δf,jX^b,j/j+1=Xj+Δb,j/j+1Δf,jN(0,Pf,j),Δb,j/j+1N(0,Pb,j/j+1),cov(Uf,jΔb,j/j+1T)=0Ps,j=(Pf,j1+Pb,j/j+11)1X^s,j=Ps,j(Pb,j/j+11X^f,j+Pf,j1X^b,j/j+1)

4、基于正反向滤波的区间平滑

  1. 由前往后正向滤波, 获得并存储 X ^ f , j , P f , j ( j = 1 , 2 , ⋯   , M ) \hat{\boldsymbol{X}}_{f, j}, \boldsymbol{P}_{f, j}(j=1,2, \cdots, M) X^f,j,Pf,j(j=1,2,,M);
  2. 由后往前反向滤波, 获得 X ^ b , j / j + 1 , P b , j / j + 1 \hat{\boldsymbol{X}}_{b, j / j+1}, \boldsymbol{P}_{b, j / j+1} X^b,j/j+1,Pb,j/j+1, 融合获得 X ^ s , j , P s , j \hat{\boldsymbol{X}}_{s, j}, \boldsymbol{P}_{s, j} X^s,j,Ps,j;
  3. ( j = M − 1 , M − 2 , ⋯   , 1 ) (j=M-1, M-2, \cdots, 1) (j=M1,M2,,1) 完成整个区间平滑

5、RTS区间平滑算法

H.Rauch, F.Tung, C.Striebel, 1965 ,推导比较复杂

不需要时间更新,先由前往后正向滤波, 获得并存储 Φ j / j − 1 T , X ^ f , j / j − 1 \boldsymbol{\Phi}_{j / j-1}^{\mathrm{T}}, \hat{\boldsymbol{X}}_{f, j / j-1} Φj/j1T,X^f,j/j1, P f , j / j − 1 , X ^ f , j , P f , j ( j = 1 , 2 , ⋯   , M ) \boldsymbol{P}_{f, j / j-1}, \hat{\boldsymbol{X}}_{f, j}, \boldsymbol{P}_{f, j}(j=1,2, \cdots, M) Pf,j/j1,X^f,j,Pf,j(j=1,2,,M) 再按由后往前的量测顺序执行如下RTS算法:
{ K s , k = P f , k Φ k + 1 / k T P f , k + 1 / k − 1  初值  X ^ s , M = X ^ f , M , P s , M = P f , M X ^ s , k = X ^ f , k + K s , k ( X ^ s , k + 1 − X ^ f , k + 1 / k ) k = M − 1 , M − 2 , ⋯   , 1 P s , k = P f , k + K s , k ( P s , k + 1 − P f , k + 1 / k ) K s , k T \left\{\begin{array}{ll}\boldsymbol{K}_{s, k}=\boldsymbol{P}_{f, k} \boldsymbol{\Phi}_{k+1 / k}^{\mathrm{T}} \boldsymbol{P}_{f, k+1 / k}^{-1} & \text { 初值 } \hat{\boldsymbol{X}}_{s, M}=\hat{\boldsymbol{X}}_{f, M}, \boldsymbol{P}_{s, M}=\boldsymbol{P}_{f, M} \\ \hat{\boldsymbol{X}}_{s, k}=\hat{\boldsymbol{X}}_{f, k}+\boldsymbol{K}_{s, k}\left(\hat{\boldsymbol{X}}_{s, k+1}-\hat{\boldsymbol{X}}_{f, k+1 / k}\right) & k=M-1, M-2, \cdots, 1 \\ \boldsymbol{P}_{s, k}=\boldsymbol{P}_{f, k}+\boldsymbol{K}_{s, k}\left(\boldsymbol{P}_{s, k+1}-\boldsymbol{P}_{f, k+1 / k}\right) \boldsymbol{K}_{s, k}^{\mathrm{T}} & \end{array}\right. Ks,k=Pf,kΦk+1/kTPf,k+1/k1X^s,k=X^f,k+Ks,k(X^s,k+1X^f,k+1/k)Ps,k=Pf,k+Ks,k(Ps,k+1Pf,k+1/k)Ks,kT 初值 X^s,M=X^f,M,Ps,M=Pf,Mk=M1,M2,,1
计算量和正反向滤波的区间平滑差不多,存储量增加不少

6、平滑精度比较

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U8jzdNUC-1686234324709)(卡尔曼滤波与组合导航原理(十一)区间平滑.assets/1686232739636.png)]

  • 可平滑性问题:受系统噪声影响的状态才具可平滑性。随机常数就没有可平滑性。
  • 滤波要存的数据量比较大,可能几个G,工程上双向滤波+ P 阵对角线加权平均,可有效降低存储量。

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

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

相关文章

Kubernetes DashBoard

Kubernetes DashBoard 为了便于用户操作,k8s开发了基于Web的用户界面。方便用户容器化应用,还可以监控应用状态,执行故障排除和管理资源。 📊部署DashBoard 下载yaml,运行DashBoard #下载yaml [rootmaster ~]# wget …

chatgpt赋能python:Python图片裁剪:让您的图片变得更完美

Python 图片裁剪:让您的图片变得更完美 无论您是一名摄影师、设计师、或是一名开发者,一张完美的图片是至关重要的。然而,有时候您拍摄的图片或者设计的图形可能有一些缺陷,例如画面不够清晰、不需要的元素等等,这时候…

数据结构与算法·第7章【图】

图 大部分定义都在离散数学II中学过了&#xff0c;所以对于已知或常见的我不多赘述 弧或边带权的图分别称作有向网或无向网。若边或弧的个数 e<nlogn&#xff0c;则称作稀疏图&#xff0c;否则称作稠密图。对有向图&#xff0c;若任意两个顶点之间都存在一条有向路径&…

【深蓝学院】手写VIO第3章--基于优化的 IMU 与视觉信息融合--笔记

0. 内容 1. 基于BA的VIO融合 优化的方法学会之后&#xff0c;滤波的方法也就会了。 具体的求解BA问题参考的是SBA的论文&#xff0c;使用的是LM算法&#xff08;里面有个关于权重μ的计算方法&#xff0c;不同人的实现可能不一样&#xff0c;这些都是实现细节&#xff09; …

全新 FinClip Studio 现已上线

FinClip IDE &#xff08;FinClip Integrated Development Environment&#xff0c;简称为 FIDE&#xff09;是面向开发者推出的「小程序桌面端集成开发环境」。自 2021 年起就一直陪伴来自不同平台的小程序开发者完成小程序开发、调试、预览、上传等各类功能。 随着 FinClip …

【MySQL】初识数据库

数据库基础知识 一、什么是数据库二、mysql与mysqld三、服务器、数据库、表关系四、数据库的连接、创建与使用4.1 安装地址4.2 连接服务器4.3 数据库的基本使用4.4 数据逻辑存储 五、MySQL架构六、SQL分类七、存储引擎 一、什么是数据库 存储数据用文件就可以了&#xff0c;为…

一文即可了解!Web测试(性能测试 / 界面测试 / 兼容性测试 / 安全性测试)

目录 前言&#xff1a; 一、Web性能测试&#xff1a;&#xff08;压力测试、负载测试、连接速度测试&#xff09; 二、Web界面测试&#xff1a;&#xff08;导航测试、图形测试、内容测试、整体界面测试&#xff09; 三、Web兼容性测试&#xff1a;&#xff08;平台&#x…

Linux搭建Java环境——安装MySQL5.7(CentOS7.6)

一、使用Xftp上传MySQL安装包&#xff0c;并解压 这里可以直接使用安装包也可以使用命令直接在Xshell运行 wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 当然要提前创建好文件夹/opt/mysql&#xff0c;并cd进去&#xff0c;运行tar -xvf mysql-…

通义千问写的高考作文你觉得怎么样?

目录 一、全国卷-全国甲卷 二、北京卷 三、上海卷 今天带大家使用通义千问来体验一下2023年高考作文&#xff0c;大家一起来一睹为快吧&#xff01; 一、全国卷-全国甲卷 阅读下面的材料&#xff0c;根据要求写作。&#xff08;60分&#xff09; 人们因技术发展得以更好地掌控…

计算机网络管理-使用SNMPc开展网管活动

一、实验目的 全面学习SNMPc网络管理软件业务服务监控功能&#xff0c;了解如何使用网管软件从事网络管理工作 二、实验内容与设计思想 1&#xff09;操作映射数据库。 2&#xff09;查看管理对象的MIB数据。 3&#xff09;创建、保存长期统计数据&#xff08;要求一定时长…

django传统全栈开发一个ChatGPT应用

根据客户需求&#xff0c;开发一个能多人使用的ChatGPT平台&#xff0c;背后使用的是ChatGPT的api_key。 需求 1、可多轮对话 2、可删除对话 3、流式显示对话 4、可多人使用 5、多个api_key均衡使用 技术分析 第一次接触openai的二次开发&#xff0c;看文档、看文章&…

软件测试-金融银行项目怎么测?系统业务测试总结分析...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 银行测试人员的组…

《计算机组成原理》期末考试手写笔记——模块三:运算方法与运算器(变形补码计算+原码补码一位乘法计算+浮点运算)

本课程的期末考试复习笔记与你分享&#xff0c;祝你考试成功~ 目录 &#xff08;一&#xff09;知识点总结 知识点1&#xff1a;计算机中的运算&#xff08;不考&#xff09; 知识点2&#xff1a;定点加减法运算&#xff08;很简单&#xff09; 知识点3&#xff1a;定点乘法…

IDE/在VS2015中集成Qt开发环境

文章目录 概述安装VS2015安装Qt VS Tools 插件Qt相关配置应用到所有项目配置增加配置删除 VS项目属性下Qt工程配置&#xff08;Qt Project Settings&#xff09;Qt VersionsQt Modules编辑器找不到Qt的类 QtDesigner在VS下使用无法打开UI/打开失败找不到UI编译中间文件UI添加的…

package.json与package-lock.json区别需不需要被.gitignore文件忽略

前言 先要搞清楚package.json与package-lock.json文件分别是什么作用 .gitignore文件是干什么的-主页文章有 介绍 package.json 1.项目名称版本号&#xff0c;描述&#xff0c;以及运行命令和一些配置的node环境命令 2.记录那些包会在开发环境中用到&#xff0c;哪些包会…

【项目】从零实现一个高并发内存池

目录 一、项目介绍 1、该项目的原型 2、该项目所涉及到的技术及博主往期参考文章 3、池化技术 4、内存池的内碎片和外碎片 二、先来看一个定长内存池设计 三、高并发内存池的三层框架设计 1、thread cache的实现 1.1thread cache整体框架 1.2哈希桶映射对齐规则 1.3…

【送书福利-第九期】Web安全攻防从入门到精通

大家好&#xff0c;我是洲洲&#xff0c;欢迎关注&#xff0c;一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我&#xff01; 本文目录 一、前言二、内容介绍三、作者介…

【LeetCode】768. 最多能完成排序的块 II

768. 最多能完成排序的块 II&#xff08;困难&#xff09; 思路 对于已经分好块的数组&#xff0c;若块数大于 1&#xff0c;则可以得到以下结论&#xff1a;「 右边的块的所有数字均大于或等于左边的块的所有数字」。考虑这个问题&#xff1a;对于已经分好块的数组&#xff0…

Linux——多线程互斥

多线程互斥 抢票问题互斥锁锁的接口 理解锁锁的背景概念如何看待锁&#xff1a;加锁和解锁的原理锁的封装 可重入与线程安全死锁死锁的概念与条件 抢票问题 这里用上一篇&#xff1a; https://blog.csdn.net/qq_63580639/article/details/131054847?spm1001.2014.3001.5501 的…

LVGL lv_color_t 像素定义详解

更多源码分析请访问&#xff1a;LVGL 源码分析大全 目录 1、概述2、颜色格式详解2.1、LV_IMG_CF_RAW_X2.2、LV_IMG_CF_TRUE_COLOR_X2.3、LV_IMG_CF_INDEXED_XBIT2.4、LV_IMG_CF_ALPHA_XBIT2.5、LV_IMG_CF_RGBX 3、送显函数&#xff08;flush_cb&#xff09;中的 lv_color_t附录…