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

PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析

PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析

目录

  • PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析
    • 1. 引言
    • 2. PID控制器的基本概念
      • 2.1 PID控制器的定义
      • 2.2 PID控制器的核心思想
      • 2.3 PID控制器的应用领域
    • 3. PID控制器的主要组成部分
      • 3.1 比例控制 (Proportional Control)
      • 3.2 积分控制 (Integral Control)
      • 3.3 微分控制 (Derivative Control)
    • 4. PID控制器的数学基础
      • 4.1 PID控制器的数学模型
      • 4.2 PID控制器的参数调节
      • 4.3 PID控制器的稳定性分析
    • 5. 案例分析
      • 5.1 案例一:温度控制系统的 PID 控制
        • 问题描述
        • 控制目标
        • 代码实现
        • 流程图
      • 5.2 案例二:电机转速的 PID 控制
        • 问题描述
        • 控制目标
        • 代码实现
        • 流程图
      • 5.3 案例三:倒立摆系统的 PID 控制
        • 问题描述
        • 控制目标
        • 代码实现
        • 流程图
    • 6. 结论


1. 引言

PID控制器(Proportional-Integral-Derivative Controller)是一种经典的控制策略,广泛应用于工业控制、机器人控制、自动化系统等领域。PID控制器通过比例、积分和微分三个部分的组合,实现对系统的精确控制。

本文将详细介绍PID控制器的基本概念、主要组成部分、数学基础,并通过三个实际案例(温度控制系统的 PID 控制、电机转速的 PID 控制、倒立摆系统的 PID 控制)展示 PID 控制器的应用。每个案例均提供完整的 Python 实现代码,代码符合设计规范,算法封装为类或函数。此外,使用 Mermaid 语法绘制流程图,帮助读者更好地理解控制流程。


2. PID控制器的基本概念

2.1 PID控制器的定义

PID控制器是一种通过比例、积分和微分三个部分的组合,实现对系统的精确控制的控制器。其输出控制量 u ( t ) u(t) u(t) 可以表示为:

u ( t ) = K p e ( t ) + K i ∫ 0 t e ( τ ) d τ + K d d e ( t ) d t u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt} u(t)=Kpe(t)+Ki0te(τ)dτ+Kddtde(t)

其中, e ( t ) e(t) e(t) 是误差信号, K p K_p Kp K i K_i Ki K d K_d Kd 分别是比例、积分和微分增益。

2.2 PID控制器的核心思想

PID控制器(比例-积分-微分控制器)是一种经典的反馈控制算法,其核心思想是通过比例(Proportional)、积分(Integral)和微分(Derivative)三个部分的协同作用,实现对系统的精确、稳定和高效控制。PID控制器的设计基于对系统误差(即设定值与实际值之间的偏差)的处理,通过动态调整控制量来最小化误差,从而使系统输出能够快速、准确地达到目标值。

2.3 PID控制器的应用领域

PID控制器因其结构简单、调节方便且适用性广泛,成为工业控制和自动化领域中最常用的控制算法之一。以下是PID控制器的主要应用领域:

  1. 工业控制

    • 温度控制:在化工、冶金、食品加工等行业中,PID控制器被广泛用于加热炉、反应器和温控设备的温度调节,确保温度稳定在设定值附近。
    • 压力控制:在石油、天然气和水处理系统中,PID控制器用于调节管道和容器的压力,保证系统的安全运行。
  2. 机器人控制

    • 路径规划:在移动机器人和机械臂的控制中,PID控制器用于实现精确的路径跟踪和位置控制,确保机器人能够按照预定轨迹运动。
    • 姿态控制:在无人机和飞行器的控制中,PID控制器用于调节飞行器的姿态角(如俯仰、横滚和偏航),保持飞行器的稳定性。
  3. 自动化系统

    • 电机控制:在工业自动化和电动汽车中,PID控制器用于调节电机的转速和扭矩,实现高效的能量转换和运动控制。
    • 过程控制:在化工、制药和能源行业中,PID控制器用于调节流量、液位和浓度等过程变量,确保生产过程的稳定性和效率。

此外,PID控制器还被应用于家用电器(如空调、冰箱)、汽车电子(如巡航控制)以及航空航天等领域。随着现代控制理论的发展,PID控制器也在不断优化和改进,例如与模糊控制、自适应控制等算法结合,进一步提升了其控制性能和适用范围。总之,PID控制器作为一种经典而强大的控制工具,在现代工业和技术发展中发挥着不可替代的作用。


3. PID控制器的主要组成部分

3.1 比例控制 (Proportional Control)

比例控制是 PID 控制器的基础部分,其输出控制量与误差信号成正比。比例控制的数学模型可以表示为:

u p ( t ) = K p e ( t ) u_p(t) = K_p e(t) up(t)=Kpe(t)

其中, K p K_p Kp 是比例增益, e ( t ) e(t) e(t) 是误差信号。

3.2 积分控制 (Integral Control)

积分控制用于消除系统的稳态误差,其输出控制量与误差信号的积分成正比。积分控制的数学模型可以表示为:

u i ( t ) = K i ∫ 0 t e ( τ ) d τ u_i(t) = K_i \int_0^t e(\tau) d\tau ui(t)=Ki0te(τ)dτ

其中, K i K_i Ki 是积分增益, e ( t ) e(t) e(t) 是误差信号。

3.3 微分控制 (Derivative Control)

微分控制用于抑制系统的振荡,其输出控制量与误差信号的微分成正比。微分控制的数学模型可以表示为:

u d ( t ) = K d d e ( t ) d t u_d(t) = K_d \frac{de(t)}{dt} ud(t)=Kddtde(t)

其中, K d K_d Kd 是微分增益, e ( t ) e(t) e(t) 是误差信号。


4. PID控制器的数学基础

4.1 PID控制器的数学模型

PID控制器的数学模型可以表示为:

u ( t ) = K p e ( t ) + K i ∫ 0 t e ( τ ) d τ + K d d e ( t ) d t u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt} u(t)=Kpe(t)+Ki0te(τ)dτ+Kddtde(t)

其中, e ( t ) e(t) e(t) 是误差信号, K p K_p Kp K i K_i Ki K d K_d Kd 分别是比例、积分和微分增益。

4.2 PID控制器的参数调节

PID控制器的参数调节是 PID 控制器设计的关键部分,常用的参数调节方法包括 Ziegler-Nichols 方法和试凑法。

4.3 PID控制器的稳定性分析

PID控制器的稳定性分析是研究 PID 控制器在闭环系统中的稳定性的理论。常用的稳定性分析方法包括根轨迹法和 Nyquist 稳定性判据。


5. 案例分析

5.1 案例一:温度控制系统的 PID 控制

问题描述

温度控制系统的目标是通过控制加热器的功率,使温度保持在设定值。

控制目标

最小化温度误差:

e ( t ) = T s e t − T ( t ) e(t) = T_{set} - T(t) e(t)=TsetT(t)

其中, T s e t T_{set} Tset 是设定温度, T ( t ) T(t) T(t) 是当前温度。

代码实现
class PIDController:def __init__(self, Kp, Ki, Kd):"""初始化 PID 控制器:param Kp: 比例增益:param Ki: 积分增益:param Kd: 微分增益"""self.Kp = Kpself.Ki = Kiself.Kd = Kdself.prev_error = 0self.integral = 0def control(self, setpoint, measured_value, dt):"""计算控制量:param setpoint: 设定值:param measured_value: 测量值:param dt: 时间步长:return: 控制量"""error = setpoint - measured_valueself.integral += error * dtderivative = (error - self.prev_error) / dtoutput = self.Kp * error + self.Ki * self.integral + self.Kd * derivativeself.prev_error = errorreturn output# 示例
pid = PIDController(Kp=1.0, Ki=0.1, Kd=0.01)
setpoint = 100
measured_value = 90
dt = 0.1
control_output = pid.control(setpoint, measured_value, dt)
print("控制量:", control_output)
C:\Users\Administrator\Documents\code\yhsf>C:/software/python39/python.exe c:/Users/Administrator/Documents/code/yhsf/demo1.py
控制量: 11.1
流程图
开始
读取设定值和测量值
计算误差
计算积分项
计算微分项
计算控制量
输出控制量
结束

5.2 案例二:电机转速的 PID 控制

问题描述

电机转速控制的目标是通过控制电压,使电机转速达到设定值。

控制目标

最小化转速误差:

e ( t ) = ω s e t − ω ( t ) e(t) = \omega_{set} - \omega(t) e(t)=ωsetω(t)

其中, ω s e t \omega_{set} ωset 是设定转速, ω ( t ) \omega(t) ω(t) 是当前转速。

代码实现
class PIDController:def __init__(self, Kp, Ki, Kd):"""初始化 PID 控制器:param Kp: 比例增益:param Ki: 积分增益:param Kd: 微分增益"""self.Kp = Kpself.Ki = Kiself.Kd = Kdself.prev_error = 0self.integral = 0def control(self, setpoint, measured_value, dt):"""计算控制量:param setpoint: 设定值:param measured_value: 测量值:param dt: 时间步长:return: 控制量"""error = setpoint - measured_valueself.integral += error * dtderivative = (error - self.prev_error) / dtoutput = self.Kp * error + self.Ki * self.integral + self.Kd * derivativeself.prev_error = errorreturn output# 示例
pid = PIDController(Kp=1.0, Ki=0.1, Kd=0.01)
setpoint = 1000
measured_value = 900
dt = 0.1
control_output = pid.control(setpoint, measured_value, dt)
print("控制量:", control_output)
流程图
开始
读取设定值和测量值
计算误差
计算积分项
计算微分项
计算控制量
输出控制量
结束

5.3 案例三:倒立摆系统的 PID 控制

问题描述

倒立摆系统是一个典型的非线性不稳定系统,其目标是通过控制底部的力使摆杆保持直立。

控制目标

最小化角度误差:

e ( t ) = θ s e t − θ ( t ) e(t) = \theta_{set} - \theta(t) e(t)=θsetθ(t)

其中, θ s e t \theta_{set} θset 是设定角度, θ ( t ) \theta(t) θ(t) 是当前角度。

代码实现
class PIDController:def __init__(self, Kp, Ki, Kd):"""初始化 PID 控制器:param Kp: 比例增益:param Ki: 积分增益:param Kd: 微分增益"""self.Kp = Kpself.Ki = Kiself.Kd = Kdself.prev_error = 0self.integral = 0def control(self, setpoint, measured_value, dt):"""计算控制量:param setpoint: 设定值:param measured_value: 测量值:param dt: 时间步长:return: 控制量"""error = setpoint - measured_valueself.integral += error * dtderivative = (error - self.prev_error) / dtoutput = self.Kp * error + self.Ki * self.integral + self.Kd * derivativeself.prev_error = errorreturn output# 示例
pid = PIDController(Kp=1.0, Ki=0.1, Kd=0.01)
setpoint = 0
measured_value = 0.1
dt = 0.1
control_output = pid.control(setpoint, measured_value, dt)
print("控制量:", control_output)
流程图
开始
读取设定值和测量值
计算误差
计算积分项
计算微分项
计算控制量
输出控制量
结束

6. 结论

PID控制器是一种经典且强大的控制策略,能够有效地实现对系统的精确控制。本文详细介绍了PID控制器的基本概念、主要组成部分、数学基础,并通过三个实际案例展示了 PID 控制器的应用。每个案例均提供了完整的 Python 实现代码,代码符合设计规范,算法封装为类或函数。此外,使用 Mermaid 语法绘制流程图,帮助读者更好地理解控制流程。希望本文的内容能够为读者在实际应用中提供有价值的参考和启发。

相关文章:

PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析

PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析 目录 PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析1. 引言2. PID控制器的基本概念2.1 PID控制器的定义2.2 PID控制器的核心思想2.3 PID控制器的应用领域 3. PID控…...

Vue中nextTick实现原理

源码实现思路(面试高分回答) 面试官问我 Vue 的 nextTick 原理是怎么实现的,我这样回答: 在调用 this.$nextTick(cb) 之前: 存在一个 callbacks 数组,用于存放所有的 cb 回调函数。存在一个 flushCallbac…...

【MATLAB】subplot如何增加title

在 Matlab 中,使用 subplot 函数将图形窗口划分为多个子图,并使用 title 函数为每个子图添加标题。以下是一个示例: matlab % 生成示例数据 x 0:0.1:10; y1 sin(x); y2 cos(x); % 创建一个 2 行 1 列的子图布局,并选…...

vue3+ts的<img :src=““ >写法

vue3ts的<img :src"" >写法<img :src"datasetImage" alt"数据分布示意图" /><script setup lang"ts">const datasetImage ref();datasetImage.value new URL(../../../assets/images/login-background.jpg, impo…...

Vue+Echarts+百度地图 实现 路径规划

实现功能: 通过选择 相关调拨&#xff0c;系统自动规划 路径&#xff0c;并且以地图的形式呈现最佳路径 技术难点: 1. vue 结合使用 echarts 2.echarts 在 vue嵌入百度地图&#xff0c;并且做出路径 曲线 最终结果:...

uniapp 小程序 textarea 层级穿透,聚焦光标位置错误怎么办?

前言 在开发微信小程序时&#xff0c;使用 textarea 组件可能会遇到一些棘手的问题。最近我在使用 uniapp 开发微信小程序时&#xff0c;就遇到了两个非常令人头疼的问题&#xff1a; 层级穿透&#xff1a;由于 textarea 是原生组件&#xff0c;任何元素都无法遮盖住它。当其…...

IGP协议的双点双向注入(路由引入)

一、拓扑环境 二、单向注入 以上拓扑为例&#xff0c;单点注入存在路由回包问题 在AR5上注入直连路由 55.5.5.5 需求&#xff1a;AR1上的10.1.1.1 需访问AR5上的55.5.5.5 1、在AR2和AR3上查看注入的55.5.5.5的路由信息 2、现在边界设备以学习到目的网段的路由信息&#xff0…...

【React】新建React项目

目录 create-react-app基础运用React核心依赖React 核心思想&#xff1a;数据驱动React 采用 MVC体系package.jsonindex.html好书推荐 官方提供了快速构建React 项目的脚手架&#xff1a; create-react-app &#xff0c;目前使用它安装默认是19版本&#xff0c;我们这里降为18…...

“AI 自动化效能评估系统:开启企业高效发展新征程

在当今数字化飞速发展的时代&#xff0c;企业面临着日益激烈的市场竞争&#xff0c;如何提升效率、降低成本成为了企业生存与发展的关键。AI 自动化效能评估系统应运而生&#xff0c;它如同一把智能钥匙&#xff0c;为企业开启了高效发展的新征程。 AI 自动化效能评估系统&…...

免 root 开启 Pixel 手机 VoLTE 功能

部分运营商需要开启 VoLTE 功能才可以正常通话和接收短信&#xff0c;但是默认情况下&#xff0c;Pixel 是无法开启的&#xff0c;需要我们手动开启一下。经过网友的确认&#xff0c;这种方法还适用于荣耀 MAGIC 等其他品牌的手机。 具体流程如下&#xff1a; 1.打开开发者选…...

华为2024嵌入式研发面试题

01 你认为最好的排序算法是什么&#xff1f; 在实际的编程中&#xff0c;最好的排序算法要根据实际需求和数据规模来选择&#xff0c;因为每种排序算法都有其优势和劣势。以下是一些常见排序算法及其优缺点&#xff1a; 冒泡排序 冒泡排序是一种简单直观的排序算法&#xff0…...

Android Room 报错:too many SQL variables (code 1 SQLITE_ERROR) 原因及解决方法

报错信息&#xff1a; android.database.sqlite.SQLiteException: too many SQL variables (code 1 SQLITE_ERROR): while compiling: SELECT * FROM points WHERE id IN (?,?,?,...,?,?,?)SQLiteException: too many SQL variables 通常是由于一次查询或插入的 SQL 语句…...

PHP 字符串

PHP 字符串 引言 在 PHP 中&#xff0c;字符串是一种非常基础且重要的数据类型。字符串可以包含字母、数字、标点符号以及特殊字符。PHP 提供了丰富的字符串函数&#xff0c;使得字符串操作变得简单而高效。本文将详细介绍 PHP 中字符串的常用操作&#xff0c;包括字符串的创…...

Android15源码编译问题处理

最近想在Raspberry Pi5上面运行自己编译的Android15镜像,参考如下链接来处理: GitHub - raspberry-vanilla/android_local_manifest GitHub - raspberry-vanilla/android_kernel_manifest 代码同步完后,编译就出问题了,总是提示: FAILED: analyzing Android.bp files and…...

Transformer架构和Transformers 库和Hugging Face

Transformer架构 和 Hugging Face 之间的关系非常紧密&#xff0c;Hugging Face 是推动 Transformer 架构普及和应用的重要力量。以下是两者的关系及其具体联系&#xff1a; 1. Transformer 架构 背景: Transformer 是由 Google 在 2017 年提出的革命性架构&#xff0c;基于自…...

【机器学习 | 数据挖掘】离群点检测

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈智能大数据分析 ⌋ ⌋ ⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘&#xff0c;以提取有价值的信息和洞察。它结合了大数据技术、人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&a…...

【极速版 -- 大模型入门到进阶】除了 Prompting, 大模型还能如何被应用?

文章目录 大模型应用 -- Generative AI Projects&#x1f30a; 大模型应用的时效优势&#x1f30a; 大模型应用的方式 - Technology Options应用方式一 &#x1f41f; Prompting&#xff1a;最简单快速应用方式二&#x1f41f; Retrieval augmented generation (RAG)&#xff1…...

[Unity]发包前遇到的坑之GridLayoutGroup

发包前禁用了UI上面一个调试页面A后&#xff0c;发现无法正确获取某一个用了GridLayoutGroup组件的所有子物体的世界坐标。 一顿研究之后发现&#xff0c;在Start的时候想要正确获取其坐标&#xff0c;需要强制刷新一次布局&#xff0c;方法如下&#xff1a; UnityEngine.U…...

【C++】IO 流

文章目录 &#x1f449;C 语言的输入与输出&#x1f448;&#x1f449;流是什么&#x1f448;&#x1f449;C IO 流&#x1f448;C 标准 IO 流C 和 C 语言的输入格式问题C 的多次输入内置类型和自定义类型的转换日期的多次输入C 文件 IO 流文本文件和二进制文件的读写 &#x1…...

Public Key Retrieval is not allowed 解决方法

如图&#xff1a;我的报错是Public Key Retrieval is not allowed&#xff0c;我的前后端都能正常加载&#xff0c;但是在请求数据库时就会报错如下&#xff1a; 解决办法&#xff1a; 在 application.yaml 中的数据库设置地方加上allowPublicKeyRetrievaltrue&#xff0c;然后…...

大数据原生集群 (Hadoop3.X为核心) 本地测试环境搭建二

本篇安装软件版本 mysql5.6 spark3.2.1-hadoop3.2 presto0.272 zeppelin0.11.2 kafka_2.13_3.7.2 mysql 安装步骤见-》 https://blog.csdn.net/dudadudadd/article/details/110874570 spark 安装步骤见-》https://blog.csdn.net/dudadudadd/article/details/109719624 安装…...

服务器引导异常,Grub报错: error: ../../grub-core/fs/fshelp.c:258:file xxxx.img not found.

服务器引导异常,Grub报错: error: ../../grub-core/fs/fshelp.c:258:file xxxx.img not found. 1. 故障现象2. 解决思路3. 故障分析4. 案件回溯5. 解决问题 1. 故障现象 有一台服务器业务报无法连接. 尝试用Ping命令发现无法ping通. 通过控制台查看发现有以下报错: error: ..…...

RabbitMQ-消息入队

1 分布式异步的问题 对于一个业务线的处理&#xff0c;如果是一个完整的处理&#xff0c;应该是消息正 常进入队列&#xff0c;同时消息正常被消费掉。 问题来了&#xff1a; 生产者发送消息&#xff0c;在传输过程中&#xff0c;消息丢失了&#xff0c;咋办&#xff1f; 消息发…...

Angular-生命周期及钩子函数

什么是生命周期 Angular 创建和渲染组件及其子组件&#xff0c;当它们绑定的属性发生变化时检查它们&#xff0c;并在从 DOM 中移除它之前销毁它们。生命周期函数通俗的讲就是组件创建、组件更新、组件销毁的时候会触发的一系列的方法。当 Angular 使用构造函数新建一个组件或…...

算法-高精度问题(带图详细解读~)

今天来分享四道大数运算的模板题. 目录 1. 大数相加2. 大数相减3. 大数相乘4. 大数相除 1. 大数相加 题目链接: LINK 基本思路: 存入数组, 模拟运算. 逆序字符串补零操作依次取数据, 依次相加 3-1 加: (t-ret s1[i] s2[i] carry) % 10; 3-2 进: (t-ret s1[i] s2[i] car…...

MC1.12.2 macOS高清修复OptiFine运行崩溃

最近在玩RLCraft&#xff0c;在windows中运行正常的&#xff0c;移植到macOS中发现如果加载OptiFine模组就会崩溃 报错日志 报错日志如下&#xff0c;其中已经包含了各种版本信息&#xff0c;我就不单独说明了。这里说一下&#xff0c;报错的时候用的是oracle jdk x64的&…...

Spring Boot教程之五十六:用 Apache Kafka 消费 JSON 消息

Spring Boot | 如何使用 Apache Kafka 消费 JSON 消息 Apache Kafka 是一个流处理系统&#xff0c;可让您在进程、应用程序和服务器之间发送消息。在本文中&#xff0c;我们将了解如何使用 Apache Kafka 在 Spring Boot 应用程序的控制台上发布 JSON 消息。 为了了解如何创建 …...

远程和本地文件的互相同步

文章目录 1、rsync实现类似git push pull功能1. 基础概念2. 示例操作3. 定制化和进阶用法4. 定时同步&#xff08;类似自动化&#xff09; 2 命令简化1. 动态传参的脚本2. Shell 函数支持动态路径3. 结合环境变量和参数&#xff08;更简洁&#xff09;4. Makefile 支持动态路径…...

在ES6模块中导入和导出

在ES6模块中导入和导出 以最简单的例子举例 //shoppingCart.js //导出模块 console.log(导出模块);//script.js //导出模块 import ./shoppingCart.js; console.log(导入模块);所以要导入其他模块必须指定类型 <script type"Modules" defer src"script.js&…...

centos使用dpdk库

yum -y install dpdk dpdk-devel 在 C 中使用 DPDK&#xff08;Data Plane Development Kit&#xff09;库通常涉及到以下几个步骤&#xff1a;安装 DPDK、配置编译环境、编写 C 代码并链接 DPDK 库。以下是如何在 C 中引用和使用 DPDK 的详细步骤。 1. 安装 DPDK 首先&#…...

ChatGLM:从GLM-130B到GLM-4全系列大语言模型

摘要 我们介绍了ChatGLM&#xff0c;这是一个不断进化的大语言模型系列&#xff0c;我们一直在持续开发中。本报告主要聚焦于GLM-4语言系列&#xff0c;包括GLM-4、GLM-4-Air和GLM-4-9B。它们代表了我们从ChatGLM前三代中汲取的所有见解和经验教训所训练出的最强大模型。迄今为…...

EF Core分页

Skip(3).Take(8) 最好显式指定排序规则需要知道满足条件的数据的总条数&#xff1a; 用IQueryable的复用 LongCount和Count页数&#xff1a;long pageCount (long)Math.Ceiling(count * 1.0 / pageSize); class Program {static async Task Main(string[] args){using (MyDbC…...

一种ESP8266+OLED时间天气显示

在当今这个信息爆炸的时代&#xff0c;人们对于获取实时信息的需求日益增长&#xff0c;尤其是在时间与天气这两个与日常生活息息相关的方面。而将 ESP8266 与 OLED 显示屏相结合制作的时钟兼天气显示设备&#xff0c;凭借其便携性、实时性以及低成本等优势&#xff0c;成为了众…...

LabVIEW光流跟踪算法

1. 光流跟踪算法的概述 光流&#xff08;Optical Flow&#xff09;是一种图像处理技术&#xff0c;用于估算图像中像素点的运动。通过比较连续帧图像&#xff0c;光流算法可以分析图像中的运动信息&#xff0c;广泛用于目标跟踪、运动检测和视频处理等场景。该示例使用了NI Vi…...

Nacos 配置与服务注册问题排查指南

Nacos 配置与服务注册问题排查指南 1. Nacos 配置文件优先级 在 Spring Boot 应用中&#xff0c;配置文件的优先级从高到低依次为&#xff1a; bootstrap.propertiesbootstrap.ymlapplication.propertiesapplication.yml 2. Nacos 配置中心配置示例 以下是一个典型的 Naco…...

浅谈云计算06 | 云管理系统架构

云管理系统架构 一、云管理系统架构&#xff08;一&#xff09;远程管理系统&#xff08;二&#xff09;资源管理系统&#xff08;三&#xff09;SLA 管理系统&#xff08;四&#xff09;计费管理系统 二、安全与可靠性保障&#xff08;一&#xff09;数据安全防线&#xff08;…...

system securiry: supervisor password required

报错解释&#xff1a; 这个错误表明系统安全模块&#xff08;如SELinux或AppArmor&#xff09;需要超级用户&#xff08;通常是root&#xff09;的密码来确认一个操作。这通常发生在尝试进行某些需要高级权限的系统更改时。 解决方法&#xff1a; 如果你拥有root权限&#xff0…...

【Python基础知识】pdb-Python的调试器的常用命令和使用示例

使用pdb的情形 多数时候&#xff0c;可以使用PyCharm、VSCode等现代化IDE进行代码的调试 对于远程服务器中运行的服务&#xff0c;本地无法复现时&#xff0c;可以使用 Python自带的pdb进行调试 1 代码中断点埋桩 中断进入调试器的典型用法是 在需要调试的地方插入以下代码: …...

C++ STL之容器介绍(vector、list、set、map)

1 STL基本概念 C有两大思想&#xff0c;面向对象和泛型编程。泛型编程指编写代码时不必指定具体的数据类型&#xff0c;而是使用模板来代替实际类型&#xff0c;这样编写的函数或类可以在之后应用于各种数据类型。而STL就是C泛型编程的一个杰出例子。STL&#xff08;Standard …...

【向量数据库 Milvus】Milvus 2.5版本CPU 安装单机版

以下是Milvus 2.5版本单机安装的步骤&#xff1a; 前提条件 系统可以使用centos或者ubuntu。系统已经安装docker和docker-compose。 下载并编辑docker-compose.yml 进入Milvus的GitHub项目主页查看最新版本的Milvus&#xff0c;下载对应版本的docker-compose.yml文件&#…...

[Do374]Ansible一键搭建sftp实现用户批量增删

[Do374]Ansible一键搭建sftp实现用户批量增删 1. 前言2. 思路3. sftp搭建及用户批量新增3.1 配置文件内容3.2 执行测试3.3 登录测试3.4 确认sftp服务器配置文件 4. 测试删除用户 1. 前言 最近准备搞一下RHCA LV V,外加2.9之后的ansible有较大变化于是练习下Do374的课程内容. 工…...

系统认识数据分析

什么是数据分析&#xff1f; 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析&#xff0c;将它们加以汇总和理解并消化&#xff0c;以求最大化地开发数据的功能&#xff0c;发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的…...

Cherno C++学习笔记 P52 处理多返回值

在这篇文章当中&#xff0c;我们解决一下如何用C的函数处理多返回值的问题。 在有些情况下&#xff0c;我们希望我们的函数可以返回多个返回值&#xff0c;比如返回两个string或者是一个int加上一个string。如果我们用的是python之类的语言的话&#xff0c;那这个事情其实是很…...

Android车机DIY开发之学习篇(一)编译UBOOT以正点原子为例

Android车机DIY开发之学习篇(一)编译UBOOT以正点原子为例 1.代码在u-boot文件夹下 2.在 U-Boot 源码目录下执行如下命令编译 U-Boot&#xff1a; ./make.sh rk3588生成两个文件 ### uboot.img 对应<SDK>/uboot/uboot.img ### rk3588_spl_loader_v1.13.113.bin 对应<…...

扩散模型、原型网络以及肿瘤微环境解析等名词出现在基金立项名单中,它们各自的应用现状如何?|文献速递·25-01-10

小罗碎碎念 昨晚看到了云南省2025年自然科学基金立项的名单&#xff0c;今天把医工交叉的项目挑出来和大家分享一下。 今天分享的文献&#xff0c;灵感来源于2025年的基金&#xff0c;我会先简单分析一下基金的情况&#xff0c;然后再和大家分享三篇与立项基金相关的文献。 总共…...

【Java设计模式-4】策略模式,消灭if/else迷宫的利器

各位Java编程小伙伴们&#xff01;今天咱们要一起探索一个超级厉害的Java设计模式——策略模式&#xff0c;它就像是一把神奇的魔法剑&#xff0c;专门用来斩断那些让我们代码变得乱糟糟的if/else语句迷宫&#xff01; 一、if/else的烦恼 在编程的奇妙世界里&#xff0c;我们…...

10分钟快速了解OceanGPT(沧渊)

10分钟快速了解OceanGPT(沧渊) 海洋科学任务的大语言模型——OceanGPT OceanGPT是如何训练的?为了训练 OceanGPT (沧渊) ,收集了一个跨越多个领域的海洋科学语料库。由于每个子领域和主题都有其独特的数据特征和模式,因此提出了一个特定于领域的指令生成框架,称为 DoDirec…...

学习及笔记

1、计算md5 md5sum 文件名 2、跨服务器复制 scp 文件 目标用户名目标Ip:目标路径 3、curl curl -X POST http://10.105.2.46/getUerls -H "Content-Type: application/json" -d {"id": 379, "userId": "lyc", "password":…...

TensorFlow Quantum快速编程(基本篇)

一、TensorFlow Quantum 概述 1.1 简介 TensorFlow Quantum(TFQ)是由 Google 开发的一款具有开创性意义的开源库,它宛如一座桥梁,巧妙地将量子计算与 TensorFlow 强大的机器学习功能紧密融合。在当今科技飞速发展的时代,传统机器学习虽已取得诸多瞩目成就,然而面对日益…...

Vue.js组件开发-实现图片裁剪

在Vue.js中开发一个图片裁剪组件&#xff0c;可以使用cropperjs库&#xff0c;它是一个功能强大的JavaScript库&#xff0c;专门用于图片裁剪。在Vue项目中&#xff0c;可以通过vue-cropperjs这个Vue包装器来更方便地使用cropperjs。 步骤&#xff1a; 1. 安装依赖 首先&…...