卡尔曼滤波学习笔记

news2024/11/17 7:47:18

Kalman Filter

  • Ⅰ、直观理解
    • 1、描述
    • 2、例子
  • Ⅱ、适用范围
    • 1、线性系统
    • 2、噪声服从高斯分布
  • Ⅲ、相关公式
    • 1、原始公式
    • 2、预测公式
    • 3、更新公式
    • 4、初值赋予
    • 5、总结
  • Ⅳ、应用例子
  • Ⅴ、代码实现
  • Ⅵ、公式理解
    • 1、协方差矩阵的理解
      • 1.1 协方差
      • 1.2 协方差矩阵
      • 1.3、相关数学公式
    • 2、状态方程的理解

Ⅰ、直观理解

1、描述

从直观上来看,卡尔曼滤波是把两个存在误差的结果融合在一起,得到一个从数学上可以得到证明的最优估计值
而这两个存在误差的结果,一个是从理论上推导出来的,称之为先验估计值;一个是用传感器测量出来的,称之为测量值。它们之所以存在误差,是因为前者的理论模型存在现实干扰,后者的测量仪器存在不可避免的精度问题。
图片的具体解释比较复杂,此处可以且看且过。

图片解释:以上三个颜色都符合正太分布,其中橙色部分的期望是先验估计值,绿色部分的期望是测量值,蓝色部分的期望便是融合绿色和橙色之后的最优估计值。
Q1:为什么它们都呈现出正太分布呢?
图中橙色部分和绿色部分之所以呈现出正太分布,是因为前者存在过程噪声,后者存在测量噪声的缘故。而这两个噪声被假定为符合正太分布。至于蓝色部分,解释起来就复杂许多,下文再说了。
Q2:噪声从哪里来?
过程噪声正式前文提到的:“理论模型存在现实干扰” 中的现实干扰。测量噪声则是:“测量仪器存在不可避免的精度问题” 中的精度误差。也就是说,以上这个图是在理论之上考虑了现实干扰和仪器误差的图。
Q3:为什么噪声会符合正太分布?
事实上,噪声不可能完美的符合正太分布,只是自然界大多数噪声,甚至许多统计学的例子,都可以被近似为正太分布。比如世界上人的身高、智商、体重等的分布情况,大体上是符合正太分布的。
Q4:过程噪声和测量噪声的方差如何知道?
这是通过工程实际,试出来的,并非理论推导。想PID算法一样,P、I、D这三个量得试出来。这些无法确定的量,被称为超参数

2、例子

前提:现已知小车当下的位置、速度、加速,并有一卫星实施监测小车的位置。
目标:求小车下一时刻的位置。
分析:从由于存在阻力,人为因素等原因。我们所知道的小车当前位置、速度、加速度存在一定程度的误差。所以利用这些条件求得的小车下一时刻的位置存在偏差。而由于卫星精度的问题,仅仅靠卫星也无法得到小车下一时刻的准确位置。
解决:卡尔曼认为,可以取长补短,综合考虑理论上得出的结果和卫星的测量结果,得出最优解。比如理论上得出的小车下一时刻的位置是10m,卫星得出的是11m。那我们大致可以推断真实的小车位置大概介于10m和11m之间,至于最优解到底因该是多少m,这是卡尔曼滤波要解决的问题,。

Ⅱ、适用范围

1、线性系统

线性系统要求系统同时满足齐次性可加性
齐次性:输入扩大N倍,其输出也扩大N倍。

齐次性的数学表达: 如果: y 1 ( t ) = M { f 1 ( t ) } f 2 ( t ) = a f 1 ( t ) 则: y 2 ( t ) = M { f 2 ( t ) } = a y 1 ( t ) \begin{array}{l} 如果:\\{y_1}(t) = M\{ {f_1}(t)\} \\ {f_2}(t) = a{f_1}(t)\\ 则:\\{y_2}(t) = M\{ {f_2}(t)\} = a{y_1}(t) \end{array} 如果:y1(t)=M{f1(t)}f2(t)=af1(t)则:y2(t)=M{f2(t)}=ay1(t)

可加性:N个输入,输出等于N个输入独立的输出之和。

可加性的数学表达: 如果 : y 1 ( t ) = M { f 1 ( t ) } y 2 ( t ) = M { f 2 ( t ) } 且 : f 3 ( t ) = f 1 ( t ) + f 2 ( t ) y 3 ( t ) = M { f 3 ( t ) } 则 : y 3 ( t ) = y 1 ( t ) + y 2 ( t ) \begin{array}{l} 如果:\\ {y_1}\left( t \right) = M\{ {f_1}\left( t \right)\} \\ {y_2}\left( t \right) = M\{ {f_2}\left( t \right)\} \\ 且:\\ {f_3}\left( t \right) = {f_1}\left( t \right) + {f_2}\left( t \right)\\ {y_3}\left( t \right) = M\left\{ {{f_3}\left( t \right)} \right\}\\ 则:\\ {y_3}\left( t \right) = {y_1}\left( t \right) + {y_2}\left( t \right) \end{array} 如果:y1(t)=M{f1(t)}y2(t)=M{f2(t)}:f3(t)=f1(t)+f2(t)y3(t)=M{f3(t)}:y3(t)=y1(t)+y2(t)

简而言之:线性系统满足”和的响应等于响应的和“。

2、噪声服从高斯分布

高斯分布又称正态分布,而前文提到自然界中许多噪声都可以近似为正态分布,所以在一般情况下这个条件是满足的。

一维正态分布表达式: P ( a ) − N ( u , ∂ 2 ) P(a) -N\left( {u,{\partial ^2}} \right) P(a)N(u,2)

二维正态分布表达式: P ( a ) − N ( u 1 , u 2 , ∂ 1 2 , ∂ 2 2 , ρ ) P(a)-N\left( {{u_1},{u_2},{\partial _1}^2,{\partial _2}^2,\rho } \right) P(a)N(u1,u2,12,22,ρ)

二维正态分布的另一种表达式: P ( A ) − N ( U , P ) P\left( A \right)-N\left( {U,P} \right) P(A)N(U,P)
其中A,U分别是一个2x1的系数矩阵,而P则是一个协方差矩阵。如图
在这里插入图片描述

Ⅲ、相关公式

1、原始公式

i : x k = A x k − 1 + B u k − 1 + w k − 1 i:{x_k} = A{x_{k - 1}} + B{u_{k - 1}} + {w_{k - 1}} i:xk=Axk1+Buk1+wk1
i i : z k = H x k − v k ii:{z_k} =H{x_k} - {v_k} ii:zk=Hxkvk

即:

i:本次实际值 = 上一次的实际值 + 控制量 + 过程扰动
ii:本次测量值 = 实际值 - 测量误差

如果不加上噪声,那将推导出存在误差的计算值(先验估计值)和测量值。

i : x ^ k − = A x ^ k − 1 + B u k − 1 i: {\hat x_k}^- = A{{\hat x}_{k - 1}} + B{u_{k - 1}} i:x^k=Ax^k1+Buk1
i i : x ^ k m e a = H − z k ii: {{\hat x}_{kmea}} =H^-{z_k} ii:x^kmea=Hzk

即:

i:本次计算值 = 上一此最优估计值+ 控制量
ii:本次测量值 = 转化关系 x 本次传感器测量值

x k {x_k} xk是实际的目标状态的值, x ^ k − {{\hat x}_k}^ - x^k表示先验估计值, x ^ k m e a {{\hat x}_{kmea}} x^kmea表示测量值。A表示状态转移矩阵, x ^ k − 1 {{\hat x}_{k - 1}} x^k1表示上一次的最优估计值,B表示控制矩阵, u k − 1 {u_{k - 1}} uk1表示控制变量(即输入), w k {w_{k}} wk表示过程噪音, z k {z_k} zk表示传感器的测量值,H表示 z k {z_k} zk x ^ m e a {{\hat x}_{mea}} x^mea之间的关系矩阵, v k {v_{k}} vk表示测量噪音。
注:之所以需要H,是因为传感器测量出来的值不一定就是目标值,比如某项任务中,传感器测量出来的是开尔文,但我们需要的是摄氏度之类的。

2、预测公式

( 1 ) x ^ k − = A x ^ k − 1 + B u k − 1 (1){{\hat x}_k}^ - = A{{\hat x}_{k - 1}} + B{u_{k - 1}} 1x^k=Ax^k1+Buk1

( 2 ) P k − = A P k − 1 A T + Q (2){P_k}^ - =A{P_{k - 1}}{A^T} + Q 2Pk=APk1AT+Q

(2)中 P k − {P_k}^ - Pk表示( x k − x ^ k − {x_k} - {{\hat x}_k}^ - xkx^k)的协方差矩阵, P k {P_{k }} Pk表示( x k − x ^ k {x_k} - {{\hat x}_k} xkx^k)的协方差矩阵,Q表示噪音 w k {w_{k}} wk的协方差矩阵。

3、更新公式

( 3 ) K k = P k − H T H P k − H T + R (3){K_k} = \frac{{{P_k}^ - {H^T}}}{{H{P_k}^ - {H^T} + R}} 3Kk=HPkHT+RPkHT

( 4 ) x ^ k = x ^ k − + K k ( Z k − H x ^ k − ) (4){{\hat x}_k} = {{\hat x}_k}^ - + {K_k}\left( {{Z_k} - H{{\hat x}_k}^ - } \right) 4x^k=x^k+Kk(ZkHx^k)

( 5 ) P k = ( I − K k H ) P k − (5){P_k} = \left( {I - {K_k}H} \right){P_k}^ - 5Pk=(IKkH)Pk
其中的 K k ∈ [ 0 , H − ] {K_k} \in \left[ {0,{H^ - }} \right] Kk[0,H]{K_k}是卡尔曼增益系数, I I I为单位矩阵,R表示测量噪声 v k {v_{k}} vk的协方差矩阵, x ^ k {{\hat x}_k} x^k表示最优估计值。

4、初值赋予

一般只要 P 0 {P_0} P0不等与零即可,不妨设 x 0 {x_0} x0= 0, P 0 {P_0} P0 = 1

5、总结

(4)公式也正是卡尔曼滤波的核心公式,由 { x ^ k = x ^ k − + G ( x ^ k m e a − x ^ k − ) K k = G H , G ∈ ( 0 , 1 ) } \left\{ \begin{array}{l} {{\hat x}_k} = {{\hat x}_k}^ - + G\left( {{{\hat x}_{kmea}} - {{\hat x}_k}^ - } \right)\\ {K_k} = GH,G \in \left( {0,1} \right) \end{array} \right\} {x^k=x^k+G(x^kmeax^k)Kk=GH,G(0,1)}变化而来。
在(4)中,当 K k {K_k} Kk = H − {H^ - } H时, x ^ k {{\hat x}_k} x^k = x ^ k − {{\hat x}_k}^ - x^k,表示完全相信计算值(即预估值)。同理,当 K k {K_k} Kk = 0 时, x ^ k {{\hat x}_k} x^k = H − z k H^-{z_k} Hzk = x ^ m e a {{\hat x}_{mea}} x^mea,表示完全相信测量值。而卡尔曼滤波的核心便是寻找合适的 K k {K_k} Kk使得最优估计值 x ^ k {{\hat x}_k} x^k,它可以在计算值和测量值之间”取长补短“,使 x ^ k {{\hat x}_k} x^k最接近于真实值。
至于 K k {K_k} Kk如何求,公式(3)已经给出了。而通过公式(2)、(3)也b不难知道由于A、H、 P k {P_k} Pk 是已知的,所以 K k {K_k} Kk取值最终是多少取决于与超参数Q和R。在上文Ⅰ章节,已经对Q和R做出过解释了。

另外:本小结唐突的给出了卡尔曼滤波的五个公式,其原因是这五个公式背后的推导过于复杂,而且如果不具备相关的数学知识以及控制理论的知识,理解起来也十分费劲,所以不妨先囫囵吞枣的接受,希望接下来的应用举例能有更加直观的理解。

Ⅳ、应用例子

1、前提条件:
条件一、小车在二维平面上以匀加速直线运动(系统满足线性)。
条件二、有一个卫星可以观测小车的位置,每 Δ t {\Delta t} Δt观测一次。
2、目的
每隔 Δ t {\Delta t} Δt时间,求一次小车的位置。
3、状态方程和测量方程的构建
在这里插入图片描述

其中p表示位置,v表示速度,a是加速度常数,然后下面的 p s a t e l l i t e _ k {p_{satellite\_k}} psatellite_k是卫星所测量得的数据。其他数据对照本文Ⅲ给出的公式。
以上这两个等式已经给出了A,B,H, u k 、 z k 、 x ^ k − {u_k}、{z_k}、{{\hat x}_k}^ - ukzkx^k等参数,接下来只需找到合适的Q和R,便可以带入本文Ⅲ的公式进行运算,完成卡尔曼滤波。

Ⅴ、代码实现

Ⅵ、公式理解

1、协方差矩阵的理解

1.1 协方差

协方差表示两个变量之间的关联程度,数学符号为cov()。在此不妨设有两个数a和b。当a增大时,b也增大。a减小时,b也减小。那么可以认为a和b正相关,其协方差cov(a,b)>0。反之a增大,b减小,那么a和b负相关,cov(a,b)<0。而若a的变化与b的变化毫无关系,则cov(a,b)=0。

协方差的相关性质:
1、cov(a,b)=E{(a-E(a))(b-E(b))}    //这是协方差的原始公式
2、cov(a,b)=E(ab)-E(a)E(b)
3、cov(a+C,b+D)=cov(a,b)   //其中C和D为常数,下同
4、cov(Ca,Db)=CDcov(a,b)
5、cov(a,b)=cov(b,a)

1.2 协方差矩阵

协方差矩阵用于描述多个变量之间的关程度,以及自身的方差。不妨设有三个变量a,b,c,其协方差矩阵为P。P的对角线分别是a,b,c三个变量的方差。其他则存放则三个变量之间的协方差。根据上文的协方差性质5可知,该矩阵为对称矩阵。
在这里插入图片描述
如果a,b,c三个变量没用任何关系,那么P矩阵便可以这样表达。
在这里插入图片描述
而再如果a,b,c的期望都为零,那么P矩阵可以进一步这样写。
在这里插入图片描述
值得注意的是,从宏观的角度来看,协方差矩阵只是在描述一个向量的内部各个变量自身的离散程度和各个变量之间的联系。

1.3、相关数学公式

1、方差公式: D ( a ) = E ( a 2 ) − E 2 ( a ) D\left( a \right) = E\left( {{a^2}} \right) - {E^2}\left( a \right) D(a)=E(a2)E2(a)
2、矩阵性质:
k ( a b c d e f g h y ) = ( k a k b k c k d k e k f k g k h k y ) k \left( \begin{matrix} a&b&c\\ d&e&f\\ g&h&y \end{matrix} \right)=\left( \begin{matrix} ka&kb&kc\\ kd&ke&kf\\ kg&kh&ky \end{matrix} \right) k adgbehcfy = kakdkgkbkekhkckfky
备注:之所以写这么一大堆,是因为卡尔曼滤波中的噪声通常是多个的,而这几个噪声一般被视为期望为零相互独立正态分布。所以以上的知识在推导卡尔曼滤波的数学公式中至关重要,但仅从应用的角度来说,其实不了解也罢

2、状态方程的理解

状态方程和输出方程是描述一个系统的两个极为重要的方程,下面以连续型系统为例,讲解一下这两个方程。
请添加图片描述
Y ( s ) = 1 s ( F ( s ) − 2 Y ( S ) ) ⇒ Y ( s ) / F ( s ) = H ( s ) = 1 s + 2 Y\left( s \right) = \frac{1}{s}\left( {F\left( s \right) - 2Y\left( S \right)} \right) \Rightarrow Y\left( s \right)/F\left( s \right) = H\left( s \right) = \frac{1}{{s + 2}} Y(s)=s1(F(s)2Y(S))Y(s)/F(s)=H(s)=s+21
由于现实生活中时间是向前推进的,所以节点1和节点2之间采用的是积分算子 1 s \frac{1}{s} s1,因此可以知道节点2的导数正是节点1,故可以设节点1为 x ′ {x'} x,节点2为 x {x} x
如果在节点1建立方程便得到: x ′ = − 2 x + f ( t ) {x'} = - 2x + f\left( t \right) x=2x+f(t),这个方程正式这个系统的状态方程。
而输出方程则是: y ( t ) = x + 0 f ( t ) y\left( t \right) = x + 0f\left( t \right) y(t)=x+0f(t)
由此可以引出连续系统状态方程和输出方程的通用表达式:

x ′ ( t ) = A x ( t ) + B f ( t ) y ( t ) = C x ( t ) + D f ( t ) \begin{array}{l} x'\left( t \right) = Ax\left( t \right) + Bf\left( t \right)\\ y\left( t \right) = Cx\left( t \right) + Df\left( t \right) \end{array} x(t)=Ax(t)+Bf(t)y(t)=Cx(t)+Df(t)
推广到离散系统:
x k + 1 = A x k + B f k y k = C x k + D f k \begin{array}{l} {x_{k + 1}} = A{x_k} + B{f_k}\\ {y_k} = C{x_k} + D{f_k} \end{array} xk+1=Axk+Bfkyk=Cxk+Dfk

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

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

相关文章

实例043 如何实现Office助手

实例说明 用过Office的人都知道&#xff0c;Office助手是一个非常漂亮的小工具&#xff0c;有了它&#xff0c;即使对Office不太熟悉的用户也可以操作自如。本实例使用C#制作了一个类似Office助手的程序&#xff0c;实例效果如图1.44所示。 技术要点 要实现Office助手效果&a…

2023年Java毕业设计题目推荐,怎样选题?500道毕业设计题目推荐

大家好&#xff0c;我是程序员徐师兄&#xff0c;最近有很多同学咨询&#xff0c;说毕业设计了&#xff0c;不知道选怎么题目好&#xff0c;有哪些是想需要注意的。 今天&#xff0c;我整理了一些Java毕业设计的题目,可以参考一下&#xff0c;希望对大家有所帮助 文章目录 一、…

uniapp中解析markdown支持网页和小程序

对于markdown相信大家都不陌生&#xff0c;日常写文档或日常记录都用到的比较多&#xff0c;书写的是markdown的格式&#xff0c;实时预览的是转换后的html样式。本次实现的需求是在uniapp中转换markdown文本展示在不同的平台&#xff0c;主要平台是浏览器使用和微信小程序使用…

Instagram安全运营的10条策略

Instagram每月活跃用户15亿&#xff0c;是跨境外贸开发客户与广告引流的常用工具。本文总结10条Instagram运营基本策略与原则&#xff0c;帮助各位跨境人更好的了解平台规则&#xff0c;规避风险&#xff0c;提高投放效率&#xff01; 1、使用商业账号 企业在instagram 上进行…

北斗RTK高精度定位技术原理及优势

北斗RTK&#xff08;Real-Time Kinematic&#xff09;高精度定位技术是一种利用卫星导航系统进行实时定位的方法&#xff0c;它通过测量卫星信号的相位差来获得非常精确的位置信息。其原理和优势如下&#xff1a; 原理&#xff1a; 1. 载波相位差测量&#xff1a; RTK技术通过…

卷积过程详细讲解

1&#xff1a;单通道卷积 以单通道卷积为例&#xff0c;输入为&#xff08;1,5,5&#xff09;&#xff0c;分别表示1个通道&#xff0c;宽为5&#xff0c;高为5。假设卷积核大小为3x3&#xff0c;padding0&#xff0c;stride1。 卷积过程如下&#xff1a; 相应的卷积核不断…

保姆级教程之VMD-SABO-KELM优化核极限学习机的西储大学轴承诊断

从数据处理&#xff0c;优化VMD特征提取&#xff0c;再到SABO&#xff08;减法平均优化器&#xff09;优化核极限学习机的故障诊断&#xff0c;实现故障诊断的全流程&#xff0c;其他类型的故障诊断均可参考此流程。 友情提示&#xff1a;对于刚接触故障诊断的新手来说&#xf…

安装Node(脚手架)

目录 一&#xff0c;安装node&#xff08;脚手架&#xff09;1.1&#xff0c; 配置vue.config.js1.2&#xff0c; vue-cli3x的目录介绍1.3&#xff0c; package.json 最后 一&#xff0c;安装node&#xff08;脚手架&#xff09; 从官网直接下载安装即可&#xff0c;自带npm包管…

spring依赖注入详解(下)

Autowired注解依赖注入过程 一、findAutowireCandidates()实现 找出BeanFactory中类型为type的所有的Bean的名字&#xff0c;注意是名字&#xff0c;而不是Bean对象&#xff0c;因为我们可以根据BeanDefinition就能判断和当前type是不是匹配&#xff0c;不用生成Bean对象把re…

【多天线传输技术】BPSK调制信号在复高斯瑞利信道下Alamouti的误码率分析

%% [预处理] clc; clear; close all;%% [配置参数] N3000000; %数据点数&#xff08;个&#xff09; SNR_dB0:1:45; %信噪比&#xff08;dB形式&#xff09; SNR10.^(SNR_dB/10); %信噪比&#xff08;一般形式&#xff0c;Eb/N0&#xff09; Ps1; …

Linux Day10 ---Mybash

目录 一、Mybash介绍 1.1.mybash.c 打印函数 分割函数 命令函数 二、Mybash实现 2.1.打印函数 2.1.1需要使用到的功能函数 1.获取与当前用户关联的UID 2.获取与当前用户的相关信息---一个结构体&#xff08;passwd&#xff09; 3.获取主机信息 4.获取当前所处位置 5.给…

论文阅读 FOCUS-AND-DETECT: A SMALL OBJECT DETECTION FRAMEWORK FOR AERIAL IMAGES

文章目录 FOCUS-AND-DETECT: A SMALL OBJECT DETECTION FRAMEWORK FOR AERIAL IMAGESABSTRACT1 Introduction2 Related Work3 Focus-and-Detect3.1 Overview3.2 Focus Stage3.2.1 Generating Ground-Truth Boxes of Focal Regions Using Gaussian Mixture Model 3.3 Detection …

物种气候生态位动态量化与分布特征模拟

在全球气候快速变化的背景下&#xff0c;理解并预测生物种群如何应对气候变化&#xff0c;特别是它们的地理分布如何变化&#xff0c;已经变得至关重要。利用R语言进行物种气候生态位动态量化与分布特征模拟&#xff0c;不仅可以量化描述物种对环境的需求和适应性&#xff0c;预…

StableVideo:使用Stable Diffusion生成连续无闪烁的视频

使用Stable Diffusion生成视频一直是人们的研究目标&#xff0c;但是我们遇到的最大问题是视频帧和帧之间的闪烁&#xff0c;但是最新的论文则着力解决这个问题。 本文总结了Chai等人的论文《StableVideo: Text-driven consistency -aware Diffusion Video Editing》&#xff…

高性能网络模式-Reactor

事实上&#xff0c;Reactor 模式也叫Dispatcher模式&#xff0c;即I/O 多路复⽤监听事件&#xff0c;收到事件后&#xff0c;根据事件类型分配&#xff08;Dispatch&#xff09;给某个进程/线程。Reactor 模式也是一种非阻塞同步网络模式。 Reactor 模式主要由 Reactor部分和处…

Django基础3——视图函数

文章目录 一、基本了解1.1 Django内置函数1.2 http请求流程 二、HttpRequest对象&#xff08;接受客户端请求&#xff09;2.1 常用属性2.2 常用方法2.3 服务端接收URL参数2.4 QueryDict对象2.5 案例2.5.1 表单GET提交2.5.2 表单POST提交2.5.3 上传文件 三、HttpResponse对象&am…

NV PTX ISA 文档的增量说明

无它&#xff0c;维截图尔&#xff0c;汇总一下&#xff0c;找找规律&#xff1b; cuda 12.0 PTX 8.0 关键字&#xff1a; 从cuda 8.0开始&#xff1a; 显然&#xff0c;每次增量的主要因素是对应着对新的硬件功能的提炼&#xff1b;

构建 NodeJS cinema API 网关并部署到 Docker(04/4)

一、说明 构建一个微服务的电影网站&#xff0c;需要Docker、NodeJS、MongoDB&#xff0c;这样的案例您见过吗&#xff1f;如果对此有兴趣&#xff0c;您就继续往下看吧。 我们前几章的快速回顾 第一篇文章介绍了微服务架构模式&#xff0c;并讨论了使用微服务的优缺点。第二篇…

Unity报错DllNotFoundException:sqlite3

Unity项目中要使用轻型数据库sqlite&#xff0c;除了导入sqlite3.dll外&#xff0c;还需要导入Mono.Data.Sqlite.dll和System.Data.dll&#xff08;工程里或者编辑器里面有System.Data.dll时就不需要&#xff09;两个文件。 如果在编辑器中运行出现 “DllNotFoundException:sql…

pyside6最小化的核心调用代码

pyside6最小化的核心调用代码&#xff1a; 一、格式代码 你认为是 制式代码&#xff0c;下面图中的就是核心代码&#xff0c;以后就是这样记住以及使用即可 二、图形代码【生成代码】 2.1designer设计界面 2.2设计的界面转换为代码 注意图纸划线的地方&#xff0c;后续导入…