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

自动控制:反馈控制

自动控制:反馈控制

反馈控制(Feedback Control)是一种在控制系统中通过测量输出信号,并将其与期望信号进行比较,产生误差信号,再根据误差信号调整输入来达到控制目标的方法。反馈控制是自动控制系统中最常见和最重要的控制策略之一,广泛应用于工业、自动化、机器人、航空航天等各个领域。

反馈控制的基本原理

反馈控制的基本原理可以概括如下:

  1. 测量输出:通过传感器或测量装置,实时测量系统的输出信号。
  2. 计算误差:将测量得到的输出信号与期望的参考信号进行比较,计算误差信号。
  3. 控制律:根据预先设计的控制律(如比例-积分-微分控制器,PID),计算控制输入。
  4. 施加控制输入:将计算得到的控制输入施加到系统中,以减小误差,使输出信号逐渐趋近期望值。

反馈控制系统的基本框图如下:

          +---------------------+|                     ||        系统         ||                     |+----------+----------+|v+---------+----------+|                    ||     传感器/测量     ||                    |+---------+----------+|v+----------+----------+|                     ||       误差计算       ||     e = r - y       ||                     |+----------+----------+|v+----------+----------+|                     ||       控制律         ||                     |+----------+----------+|v+----------+----------+|                     ||     控制输入 u       ||                     |+---------------------+

其中:

  • r r r 是期望的参考信号
  • y y y 是系统的实际输出信号
  • e e e是误差信号,即 e = r − y e = r - y e=ry
  • u u u 是控制输入信号

反馈控制的优点

  1. 稳定性:反馈控制能够自动调节系统的输入,使系统稳定在期望的输出值附近,即使存在扰动或参数变化。
  2. 鲁棒性:反馈控制对系统参数的不确定性和外界扰动具有较强的鲁棒性,能够在一定程度上克服模型的不准确性。
  3. 自动校正:反馈控制能够根据误差自动调整控制输入,使系统输出迅速趋近期望值。
  4. 广泛适用性:反馈控制适用于各种类型的系统,包括线性系统和非线性系统、时不变系统和时变系统。

常见的反馈控制策略

比例控制(P控制)

比例控制(Proportional Control, P控制)是一种最简单的反馈控制策略。它根据误差信号的比例调整控制输入。其控制律如下:

u ( t ) = K p ⋅ e ( t ) u(t) = K_p \cdot e(t) u(t)=Kpe(t)

其中, K p K_p Kp 是比例增益。

比例-积分-微分控制(PID控制)

PID控制是一种广泛应用的反馈控制策略,由比例控制、积分控制和微分控制三部分组成。其控制律如下:

u ( t ) = K p ⋅ e ( t ) + K i ∫ e ( t ) d t + K d ⋅ d e ( t ) d t u(t) = K_p \cdot e(t) + K_i \int e(t) \, dt + K_d \cdot \frac{d e(t)}{dt} u(t)=Kpe(t)+Kie(t)dt+Kddtde(t)

其中:

  • K p K_p Kp是比例增益
  • K i K_i Ki 是积分增益
  • K d K_d Kd 是微分增益
滑模控制(Sliding Mode Control, SMC)

滑模控制是一种处理非线性系统和不确定性系统的有效控制策略。它通过设计一个滑模面,并驱动系统状态达到并保持在该滑模面上,从而实现控制目标。

反馈控制的应用

反馈控制在工业和日常生活中有着广泛的应用。例如:

  • 温度控制:通过反馈控制,恒温器可以自动调节加热器的功率,使房间温度保持在设定值附近。
  • 速度控制:在电动机控制中,反馈控制能够根据速度传感器的反馈信号,调整电动机的输入电压或电流,使电动机的转速保持在期望值。
  • 自动驾驶:在自动驾驶系统中,反馈控制能够根据车辆的实际位置和速度,与预定的轨迹进行比较,调整转向角度和速度,使车辆沿着预定路线行驶。

Python代码示例

下面是一个简单的Python代码示例,演示反馈控制的基本原理。假设我们有一个简单的温度控制系统,通过反馈控制保持系统温度在期望值。

import numpy as np
import matplotlib.pyplot as plt# 定义系统参数
dt = 0.1  # 时间步长
t = np.arange(0, 10, dt)  # 时间数组
n = len(t)# 初始化状态变量
temperature = np.zeros(n)  # 系统温度
desired_temperature = np.ones(n) * 0  # 期望温度
external_disturbance = np.sin(t) * 10  # 外界扰动# 控制器参数
Kp = 2.0  # 比例增益
Ki = 1.0  # 积分增益
Kd = 0.5  # 微分增益# 初始化误差变量
e_prev = 0  # 上一时刻的误差
integral = 0  # 误差积分# 模拟系统
for i in range(1, n):# 计算误差e = desired_temperature[i] - temperature[i-1]# 误差积分integral += e * dt# 误差微分derivative = (e - e_prev) / dt# PID控制器u = Kp * e + Ki * integral + Kd * derivative# 更新系统温度temperature[i] = temperature[i-1] + (u + external_disturbance[i]) * dt# 更新上一时刻的误差e_prev = e# 绘制结果
plt.figure(figsize=(10, 4))
plt.plot(t, desired_temperature, label='Desired Temperature')
plt.plot(t, temperature, label='Actual Temperature')
plt.plot(t, external_disturbance, label='External Disturbance')
plt.xlabel('Time [s]')
plt.ylabel('Temperature')
plt.legend()
plt.title('Feedback Control for Temperature System')
plt.grid(True)
plt.show()

在这里插入图片描述

代码解释
  1. 系统参数和时间数组:定义了时间步长 dt 和时间数组 t,用来模拟系统在一段时间内的行为。
  2. 状态变量初始化:初始化了系统温度 temperature、期望温度 desired_temperature 和外界扰动 external_disturbance
  3. 控制器参数:定义了PID控制器的比例增益 Kp、积分增益 Ki 和微分增益 Kd
  4. 误差变量初始化:初始化了上一时刻的误差 e_prev 和误差积分 integral
  5. 系统模拟:通过迭代计算,在每个时间步长内根据PID控制律计算控制输入,并更新系统温度。
  6. 结果绘制:使用 matplotlib 绘制系统温度、期望温度和外界扰动的变化曲线。

结论

反馈控制是一种通过实时测量系统输出并根据误差调整输入的控制策略,能够有效地提高系统的稳定性、鲁棒性和控制精度。常见的反馈控制策略包括比例控制、比例-积分-微分控制(PID控制)和滑模控制。在实际应用中,反馈控制广泛用于温度控制、速度控制和自动驾驶等领域。结合Python代码示例,可以更直观地理解反馈控制的基本原理和实现方法。

相关文章:

自动控制:反馈控制

自动控制:反馈控制 反馈控制(Feedback Control)是一种在控制系统中通过测量输出信号,并将其与期望信号进行比较,产生误差信号,再根据误差信号调整输入来达到控制目标的方法。反馈控制是自动控制系统中最常…...

sqlite 数据库 介绍

文章目录 前言一、什么是 SQLite ?二、语法三、SQLite 场景四、磁盘文件 前言 下载 目前已经出到了, Version 3.46.0 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是…...

【机器学习】机器学习重塑广告营销:精准触达,高效转化的未来之路

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 📒1. 引言📙2. 机器学习基础与广告营销的结合🧩机器学习在广告营销中的核心应用领域🌹用…...

常见的Java运行时异常

常见的Java运行时异常 1、ArithmeticException(算术异常)2、ClassCastException (类转换异常)3、IllegalArgumentException (非法参数异常)4、IndexOutOfBoundsException (下标越界异常&#xf…...

CANoe的capl调用Qt制作的dll

闲谈 因为Qt封装了很多个人感觉很好用的库,所以一直想通过CAPL去调用Qt实现一些功能,但是一直没机会(网络上也没看到这方面的教程),这次自己用了两天,踩了很多坑,终于是做成了一个初步的调用方…...

论如何搭建属于自己的服务器?

在现如今的数字化时代中,为了能够搭建网站和运行应用程序,很多人选择搭建属于自己的服务器,下面我们就来了解一下如何搭建服务器吧! 搭建服务器我们首先需要选择适合自身需求的硬件设备,其中包含内存、CPU和存储等配置…...

【C++ OpenCV】机器视觉-二值图像和灰度图像的膨胀、腐蚀、开运算、闭运算

原图 结果图 //包含头文件 #include <opencv2/opencv.hpp>//命名空间 using namespace cv; using namespace std;//全局函数声明部分//我的腐蚀运算 Mat Erode(Mat src, Mat Mask, uint32_t x0, uint32_t y0) {uint32_t x 0, y 0;Mat dst(src.rows, src.cols, CV_8U…...

STMF4学习笔记RTC(天空星)

前言&#xff1a;本篇笔记参考嘉立创文档&#xff0c;连接放在最后 #RTC相关概念定义 Real-Time Clock 缩写 RTC 翻译 实时时钟&#xff0c;是单片机片内外设的一种&#xff0c;作用于提供准确的时间还有日期&#xff0c;这个外设有独立的电源&#xff0c;当单片机停止供电…...

vue数组变化的侦测***

数组变化的侦测 变更方法 vue能够侦听响应式数组的变更方法&#xff0c;并在他们被调用时触发相关更新。这些变更方法包括&#xff1a; push()pop()shift()unshift()splice()sort()reverse() 替换一个数组 变更方法&#xff0c;顾名思义&#xff0c;就是会对调用他们的原数组进…...

k8s-第十节-Ingress

Ingress 介绍 Ingress 为外部访问集群提供了一个 统一 入口&#xff0c;避免了对外暴露集群端口&#xff1b;功能类似 Nginx&#xff0c;可以根据域名、路径把请求转发到不同的 Service。可以配置 https 跟 LoadBalancer 有什么区别&#xff1f; LoadBalancer 需要对外暴露…...

webrtc gcc详解

webrtc的gcc算法(Google Congestion Control)&#xff0c;貌似国内很多文章都没有细讲&#xff0c;原理是怎么样的&#xff0c;具体怎么进行计算的。这里详解一下gcc。 gcc算法&#xff0c;主要涉及到&#xff1a; 拥塞控制的关键信息和公式 卡曼滤波算法 gcc如何使用卡曼滤…...

Linux多进程和多线程(七)进程间通信-信号量

进程间通信之信号量 资源竞争 多个进程竞争同一资源时&#xff0c;会发生资源竞争。 资源竞争会导致进程的执行出现不可预测的结果。 临界资源 不允许同时有多个进程访问的资源, 包括硬件资源 (CPU、内存、存储器以及其他外 围设备) 与软件资源(共享代码段、共享数据结构) …...

【项目日记(一)】梦幻笔耕-数据层实现

❣博主主页: 33的博客❣ ▶️文章专栏分类:项目日记◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多项目内容 目录 1.前言2.后端模块3数据库设计4.mapper实现4.1UserInfoMapper4.2BlogMapper 5.总结 1.…...

ElementUI的中国省市区级联数据插件element-china-area-data

安装 npm install element-china-area-data -S import 使用 import {provinceAndCityData,pcTextArr,regionData,pcaTextArr,codeToText, } from "element-china-area-data"; provinceAndCityData省市二级联动数据,汉字+coderegionData省市区三级联动数据pcTextAr…...

Kotlin算法:把一个整数向上取值为最接近的2的幂指数值

Kotlin算法&#xff1a;把一个整数向上取值为最接近的2的幂指数值 import kotlin.math.ln import kotlin.math.powfun main(args: Array<String>) {val number intArrayOf(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)number.forEach {println("$…...

简单且循序渐进地查找软件中Bug的实用方法

“Bug”这个词常常让许多开发者感到头疼。即使是经验丰富、技术娴熟的开发人员在开发过程中也难以避免遭遇到 Bug。 软件中的故障会让程序员感到挫败。我相信在你的软件开发生涯中&#xff0c;也曾遇到过一些难以排查的问题。软件中的错误可能会导致项目无法按时交付。因此&…...

基于springboot+vue+uniapp的高校宿舍信息管理系统小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

(完整音频)DockerHub、OpenAI、GitCode,脱钩时代,我们该如何自处?

本期主播 朱峰&#xff1a;「津津乐道播客网络」创始人&#xff0c;产品及技术专家。&#xff08;微博&#xff1a;zhufengme&#xff09;高春辉&#xff1a;「科技乱炖」主播。“中国互联网站长第一人”&#xff0c;科技、互联网领域的连续创业者。&#xff08;微博&#xff1…...

macos 10.15系统下载包,macOS Catalina for mac

macOS Catalina 让你喜欢的种种 Mac 体验都更进一步。你可以领略音乐、播客这两款全新 Mac app 的表演&#xff1b;在 Mac 上畅享各款自己心爱的 iPad app&#xff1b;拿起 iPad 和 Apple Pencil&#xff0c;拓展工作空间&#xff0c;释放创意灵感&#xff1b;再打开那些平时常…...

uni.showShareMenu({}) 和 uni.showShareImageMenu({}) 的区别

ChatGPT uni.showShareMenu({}) 和 uni.showShareImageMenu({}) 是 Uni-app 中两个不同的 API&#xff0c;它们的作用和用法有所不同&#xff1a; uni.showShareMenu({}) 作用&#xff1a;用于显示当前页面的分享菜单&#xff0c;通常显示在页面的右上角&#xff08;类似于微…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...