自动控制原理(来自于b站的笔记整理,深入理解自动控制框架)

article/2025/5/19 20:36:36

一、自动控制原理 1

文章目录

    • 一、自动控制原理 [^1]
      • 1. 控制原理
        • 1.1 开环与闭环系统
        • 1.2 稳定性分析[^2]
        • 1.3 一起燃烧卡路里/科学减肥(系统分析实例_数学建模部分)
        • 1.4 终值定理与稳态误差[^3]
          • 1)比例控制
          • 2)比例积分控制
        • 1.5 根轨迹
        • 1.6 PID控制
      • 2. 数学工具
        • 2.2 拉普拉斯逆变换[^4]
        • 2.3 矩阵的性质[^5]
        • 2.4 bode图
          • 1. 如何去理解bode[图](https://www.bilibili.com/video/BV1gx411X7k6)?
          • 2. 从一个实例出发理解bode图
          • 3. bode图的作用是什么?
        • 2.5 单位冲激函数
    • 二、 现代控制原理串讲
        • 1. 现代控制理论概要
        • 2. 怎样去分析一个状态空间方程系统呢?
    • 三、最后的一些思考
          • 轨迹跟踪与制导之间的关系

1. 控制原理

1.1 开环与闭环系统

下面是开环系统与闭环系统的示例。以给水壶加热的过程举例,开环系统只是简单的利用开关信号控制水壶的加热。而下图的闭环控制系统中,将添加温度传感器所测量的信号作为系统的反馈量。设计控制系统的核心就是通过对闭环系统的控制器进行调整,利用反馈量信号,完成闭环的稳定控制。

同时,这就是反馈的过程。

20200817144157

简单的开环系统有如下描述:(这里以流体力学的公式作为举例)
DraggedImage-1.png

添加控制器D(s),并增加测量H(s),构成如下闭环系统。但是在分析闭环系统的稳定性时,一般的做法是将其转换成为开环系统,并将新构造的开环系统传递函数作为研究对象,分析系统的稳定性。
DraggedImage-2.png

1.2 稳定性分析2

DraggedImage-3.png
对于一个系统,如果没有稳定性的先决条件,那么其他的(稳态误差分析、瞬态误差分析)将无从说起。稳定性:传递函数极点在复平面的左半边。(横坐标为极点,纵坐标为零点)

所以对于系统稳定性的讨论,实际上是在分析输入为单位冲激函数时,系统输出的传递函数。最后观察系统输出随时间变化的曲线是否到达稳定的位置。

零点和极点的定义如下:
DraggedImage-4.png
分析为什么极点为负的,系统是稳定的:
DraggedImage-5.png
下面这个图要更加直观:
DraggedImage-6.png
那么我们如何设计控制器?就是将最终的传递函数的极点在左边平面,叫做极点配置。现代控制理论中,研究的是状态矩阵的特征值,对应的就是传递函数的极点。

1.3 一起燃烧卡路里/科学减肥(系统分析实例_数学建模部分)

DraggedImage-7.png

DraggedImage-8.png
框图表示如下:
DraggedImage-9.png
设计比例控制器(最为简单的控制器)如下:
u = k p e u=k_{p} e u=kpe
那么如何设计该控制器,让最终的系统趋向于稳定状态呢?(也就是说传递函数的极点在左半边平面)
DraggedImage-10.png

学习控制理论一定要从微分方程入手,弄清楚微分方程与传递函数之间的关系就会容易理解很多。

通过对于比例控制器的分析之后发现,单纯的比例控制最终产生稳态误差

DraggedImage-11.png

1.4 终值定理与稳态误差3

下面讨论的系统是存在参考信号的系统,类似于下图。终值定理,用来算系统输出的极限的工具。(FVT)
DraggedImage-12.png
下图解释了弹簧阻尼系统的传递函数,还有在冲激响应下系统的终值定理的使用方式。
DraggedImage-13.png
DraggedImage-14.png
DraggedImage-15.png
这里需要注意的是第二种情况,代表了输入参考信号为c时(相当于r)的情况。
条件如下:
DraggedImage-16.png
最终求出来的极限值经过运算就是系统的稳态误差。
DraggedImage-17.png

1)比例控制

举例说明。下面是一个最为简单的一阶系统,采用的控制方式是比例控制。
DraggedImage-18.png
利用定理分析稳态误差如下:
DraggedImage-19.png
这里说明了比例控制的局限性,必须采用更加实用性的控制算法。比例控制充法消除稳态误差

2)比例积分控制

DraggedImage-20.png
并有下面变换方式:
DraggedImage-21.png
通过引入一个积分信号,让本来的一阶系统变成一个二阶系统。

1.5 根轨迹

再回到弹簧系统,是一个二阶系统。
DraggedImage-22.png
对于高阶系统不过也是几个一阶系统的叠加,如下:
DraggedImage-23.png
这一节评估了根的位置对于控制器的影响。

DraggedImage-24.png

1.6 PID控制

  • 比例控制
  • 微分控制:调节水温变化的速度,
  • 积分控制:误差的累计量

注意:

  • 比例积分控制没有单独的比例控制收敛快
  • 微分控制解决了超调量问题
  • 微分控制的问题是初始状态下的输入值很大
  • 同时,微分控制的控制量受到测量误差的影响非常大。他对噪声非常敏感

示例

在无人机中,利用串联PID控制完成姿态和高度控制是比较经典的方法,参考博客。

20200817130408

如果想增加飞行器的稳定性(增加阻尼)并提高它的控制品质,我们可以进一步的控制它的角速度,于是角度/角速度-串级PID控制算法应运而生。在这里,相信大多数朋友已经初步了解了角度单环PID的原理,但是依旧无法理解串级PID究竟有什么不同。其实很简单:它就是两个PID控制算法,只不过把他们串起来了(更精确的说是套起来)。那这么做有什么用?答案是,它增强了系统的抗干扰性(也就是增强稳定性),因为有两个控制器控制飞行器,它会比单个控制器控制更多的变量,使得飞行器的适应能力更强。为了更为清晰的讲解串级PID,这里笔者依旧画出串级PID的原理框图。

2. 数学工具

2.2 拉普拉斯逆变换4

DraggedImage-25.png

2.3 矩阵的性质[^5]

矩阵有下面的性质,现代控制理论的分析中常常会用到。

image-20200602174555806

2.4 bode图

给信号滤波的过程中,需要注意幅频响应。如果在带通范围内不是1的话,就会改变信号的幅值,就会改变最终加速度输出的信号。另外,上面的图就是bode图,但是是基于离散系统的

1. 如何去理解bode图?

bode图是针对于传递函数而言的,用在连续系统上。(因为控制系统常常用传递函数来表示。)

%% 这个是正解
b = [1,2,3];
a = [2,1,3];
figure;bode(b,a)
% 
[h1 , ftp] = freqs(b,a);
mag = 20*log10(abs(h1));    % get magnitude of spectrum in dB
phase = angle(h1)/pi*180;     % get phase in deg.
figure
semilogx(ftp,mag)
xlabel('Frequency (Hz)'),ylabel('Magnitude (dB)')

(这样描述是和真实系统不一致的,具体参考滤波器性质)

20200625173832

总结来说有以下几点:

  • 振幅的比较用10log10就行,但是能量的比较需要20log10

image-20200625180223445

  • 振幅与功率/能量之间的关系如下:

x

2. 从一个实例出发理解bode图

对于系统传递函数:
G ( s ) = a s + a G(s)=\frac{a}{s+a} G(s)=s+aa
分析频率响应:
∣ G ( j ω ) ∣ = 1 1 + ( ω a ) 2 |G(j \omega)|=\sqrt{\frac{1}{1+\left(\frac{\omega}{a}\right)^{2}}} G(jω)=1+(aω)21

∠ G ( j ω ) = − arctan ⁡ ( w a ) \angle G(j \omega)=-\arctan \left(\frac{w}{a}\right) G(jω)=arctan(aw)

  • 低频:w<<a

∣ G ( j ω ) ∣ = 1 20 log ⁡ ∣ G ( j ω ) ∣ = 0 ∠ G ( j ω ) = 0 \begin{array}{l} | G(j \omega)| = 1\\ 20 \log|G(j \omega)|=0 \\ \angle G(j \omega)=0 \end{array} G(jω)=120logG(jω)=0G(jω)=0

  • 截止频率:w=a

这个-3dB很重要,表达的是输出的振幅是输入的振幅的sqrt(1/2),能量是一半的关系。

20200625182534
∠ G ( g w ) = − arctan ⁡ 1 = − 4 5 ∘ \angle G(g w)=-\arctan 1=-45^{\circ} G(gw)=arctan1=45

  • 高频:w>>a

20200625182749

bode图如下:

20200625182844

3. bode图的作用是什么?

20200625233414

实际上,我们可以将级联系统的子系统bode图进行累加,那么我们就得到了新的级联系统的真正的bode图了。原理如上。

20200817112457

2.5 单位冲激函数

20200817145053

二、 现代控制原理串讲

1. 现代控制理论概要

首先要了解一个简单的弹簧阻尼模型,作为控制的对象,其满足胡克定律。
x ˙ = k x x ¨ = B x \begin{array}{l} \dot{x}=k x \\ \ddot{x}=B x \end{array} x˙=kxx¨=Bx
描述现代控制理论中的系统,最基础的当然是状态空间表示法

20200602153435

当然,通过拉普拉斯变换可以转换成下面的形式,控制对象是弹簧阻尼块。

20200602162941

其中有一条重要的信息,实际上矩阵A的特征值就是G(s)的极点,决定了系统的稳定性。上面的右式时通用的。

去分析一个系统,主要需要考虑以下几个重要的性质。

(那么对于自动控制,只需要极点就够了)

  • 可控性

    20200602175003

  • 李雅普诺夫稳定性:确定系统的稳定状态,控制系统可以满足数学的条件。在一阶系统中,常常用极点分析的方法去观察稳定性。现代控制理论中常用到的分析系统的方法就是去找系统的V函数,得到最后是不是能够

  • 可观性:状态观测器。系统状态加入不可直接测量,那么就需要通过输出和控制量去估计状态。状态观测器需要达到一个收敛的状态。建立观测器时,实际上是建立一个反馈系统,使得误差等于0。(这里是不是有误差状态量的部分?)

    对于可观测性,需要问一个问题:是不是所有系统都是可测的?借鉴可控性的推导,有下面的结论:

    20200602175542

2. 怎样去分析一个状态空间方程系统呢?

实际上看到设计控制器就是去配置特征值的过程。这里的特征值有点像自动控制原理中的极点的概念,决定了系统随时间是收敛的,还是振动的,还是逼近于无穷的。

下面是对于一个控制系统的分析过程,利用配置特征值的方法可以确定比例控制的控制系数u与状态量x之间的关系。

20200618123905

三、最后的一些思考

轨迹跟踪与制导之间的关系

轨迹跟踪的目标是使状态和参考状态的误差保持在0附近。举例,对深空飞行器而言,按照轨迹优化+轨迹跟踪这两个步骤实现控制。参考轨迹是人为设计的,可以是全局最优的,也可以是次优的。然后把跟踪误差保持在0附近,这也有一套控制律,比如LQR轨迹跟踪器。

状态控制按照给定的控制律,在航天器轨迹控制中叫做制导;在姿态控制中好像没见过先设计好姿态运动规律的,都是即时控制。制导律必须全局渐进稳定,适用于高动态的环境,比如空空导弹采用比例导引法。


  1. https://www.bilibili.com/video/av62276712 ↩︎

  2. https://www.bilibili.com/video/BV1s4411X7qd/?spm_id_from=333.788.videocard.0 ↩︎

  3. https://www.bilibili.com/video/BV14J411A7M2 ↩︎

  4. https://www.bilibili.com/video/BV1NE411d78U ↩︎


http://chatgpt.dhexx.cn/article/Qi8h76D9.shtml

相关文章

《自动控制原理》个人笔记(来自ppt课件)

控制的含义 控制&#xff08;CONTROL&#xff09;----某个主体使某个客体按照一定的目的动作。 主体–人&#xff1a;人工控制&#xff1b; 机器&#xff1a;自动控制 客体–指一件物体&#xff0c;一套装置&#xff0c;一个物化过程&#xff0c;一个特定系统。 人工控制与自…

4. 吴恩达深度学习--优化算法

本文主要参考了 严宽 大神的学习笔记&#xff0c;并在其基础上补充了一点内容&#xff0c;点此查看原文。   本文所使用的资料已上传到百度网盘【点击下载】&#xff0c;提取码&#xff1a;hnwl &#xff0c;请在开始之前下载好所需资料。   到目前为止&#xff0c;哦我们始…

吴恩达深度学习课程第二章第三周编程作业(pytorch实现)

文章目录 声明一、问题描述二、编程实现1.加载数据集2.使用mini-batch3.利用pytorch搭建神经网络3.1 利用torch.nn简单封装模型3.2 定义优化算法和损失函数 4.整体代码 声明 本博客只是记录一下本人在深度学习过程中的学习笔记和编程经验&#xff0c;大部分代码是参考了【中文】…

吴恩达深度学习L4W4人脸识别

1、One-shot learning 人脸识别往往每个人只有一张照片&#xff0c;因此不应该用卷积神经网络配合softmax训练。 应该选择学习 Similarity 函数。详细地说&#xff0c;你想要神经网络学习这样一个用&#x1d451;表示的函数&#xff0c;&#x1d451;(&#x1d456;&#x1d45…

吴恩达深度学习Deep Learning课程笔记

1.1 前言 课程安排&#xff1a; 1.神经网络和深度学习 内容&#xff1a;神经网络的基础&#xff0c;如何建立神经网络、深度神经网络、以及如何在数据时训练它们 2.提升深度神经网络 内容&#xff1a;深度学习方面的实践&#xff0c;严密地构建神经网络以及提升其表现&…

吴恩达深度学习第一章第二周编程作业

文章目录 前言一、题目描述。二、相关库三、编程步骤1.数据预处理2.模型的封装3.模型的调用4.结果展示 总结 前言 本人处于初学阶段&#xff0c;编程能力有限&#xff0c;代码的编写参考了网上的大神。 一、题目描述。 我们需要训练得到一个逻辑回归分类器来对图片进行二分类&…

吴恩达深度学习之风格迁移

个人的学习笔记&#xff0c;一直更新中&#xff0c;如有错误&#xff0c;评论区见&#xff0c;冲冲冲&#xff01; 笔记来源&#xff1a;吴恩达深度学习 4.6 什么是神经风格转换&#xff1f;_哔哩哔哩_bilibili 1 输入输出 风格迁移输入&#xff1a;内容&#xff08;Conten…

吴恩达深度学习作业之deepleraning_L1W2_h1

#吴恩达《深度学习》L1W2作业1 知识点&#xff1a;numpy入门&#xff0c;函数向量化实现做完这个作业&#xff0c;你能学会&#xff1a;用ipython notebook 用numpy&#xff0c;包括函数调用及向量矩阵运算 理解“广播”的概念 向量化代码#我们很少在深度学习中使用“math”库。…

吴恩达深度学习编程作业报错解决方法汇总

概述及资源分享 大二结束后的暑假&#xff0c;学习吴恩达深度学习&#xff08;[双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili&#xff09;的课程&#xff0c;在做编程作业的时候总是遇到一些报错&#xff0c;尤其是导入所需要的库的时候会报一些No model。。。的…

旧版吴恩达深度学习环境搭建(anaconda+tensorflow+jupyter notebook)(呕心沥血诚意之作)

本人在参考多位博主的文章后&#xff0c;多次尝试才成功配置了tensorflow1.2.1的环境&#xff08;课程建议Python3.6tensorflow1.2.1Keras2.0.7&#xff09;。在此之前&#xff0c;曾经尝试用tensorflow2.x降级的方法&#xff08;import tensorflow.compat.v1 as tf&#xff09…

《吴恩达深度学习》编程作业-第二周

目录 1.题目&#xff1a;基于神经网络思维模式的逻辑回归 2.声明 3.知识回顾 4.Python编程分析 4.1.导入需要用的库 4.2.数据处理 4.2.1.读取数据&#xff08;包括训练集和测试集&#xff09; 4.2.2.取出数据&#xff08;包括训练集和测试集&#xff0c;还有标签的值&a…

吴恩达 深度学习 2021版 作业

练习 神经网络与深度学习神经网络基础Numpy基础1-使用numpy构建基本函数 神经网络与深度学习 神经网络基础 Numpy基础 学习目标&#xff1a; 使用numpy&#xff0c;包括函数调用及向量矩阵运算广播向量化代码 1-使用numpy构建基本函数 1.1- sigmoid function和np.exp&…

吴恩达深度学习

最近在学习吴恩达老师的深度学习&#xff0c;边学边随手记一些东西&#xff0c;留个简单的笔记&#xff0c;以便日后复习。 第一周 结构化数据&#xff1a;每个特征都有清晰的定义 非结构化数据&#xff1a;音频、图像、文本等 大规模的神经网络大规模的带标签数据 第一周习题…

吴恩达《深度学习专项》笔记(十二):目标检测与语义分割简介 (YOLO, U-Net)

这节课中&#xff0c;我们要学习计算机视觉中最重要的任务之一——目标检测任务。我们会先认识目标定位和关键点检测这两个比较简单的任务&#xff0c;慢慢过度到目标检测任务。之后&#xff0c;我们会详细学习目标检测的经典算法YOLO。最后&#xff0c;我们会稍微认识一下语义…

吴恩达:28张图全解深度学习知识

吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图&#xff0c;这套信息图优美地记录了深度学习课程的知识与亮点。因此它不仅仅适合初学者了解深度学习&#xff0c;还适合机器学习从业者和研究者复习基本概念。喜欢记得关注、收藏、点赞。 这不仅仅是一…

吴恩达深度学习深度学习概述以及优化

深度学习概述及优化 1、深度学习概述2、神经网络基础之逻辑回归3、深层神经网络4、深度学习实用层面4.1 训练集、验证集、测试集4.2 偏差、方差4.3 L1、L2正则化4.4 归一化处理4.5 Dropout4.6 其他正则化方法4.7 梯度消失和爆炸 1、深度学习概述 在之前的吴恩达机器学习课程中…

深度学习-吴恩达:一、神经网络和深度学习

文章目录 1、what is a Neural Network?&#xff08;什么是神经网络&#xff09;2、Supervised Learning with Neural Networks &#xff08;监督学习&#xff09;3、为什么深度学习会兴起&#xff1f;第一周测验测验题答案 1、what is a Neural Network?&#xff08;什么是神…

IOS开发视频教程《保卫萝卜》-任亮-专题视频课程

IOS开发视频教程《保卫萝卜》—3411人已学习 课程介绍 《保卫萝卜CarrotFantasy》是一款由开发商“凯罗天下”开发的超萌塔防小。14种防御塔保卫萝卜战怪兽。保卫萝卜是一款制作精美的超萌塔防游戏&#xff0c;游戏含有丰富的关卡和主题包&#xff0c;拥有各自风格特色…

ios游戏开发 Sprite Kit教程:初学者 1

注&#xff1a;本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点Sprite Kit vs Cocos2D-iPhone vs Cocos2D-X vs UnityHello, Sprite Kit!横屏显示移动怪兽发射炮弹碰撞检测: 概述碰撞检测: 实现收尾何去何从? 在iOS 7中内置了一个新的Sprite Kit框架…

HTML5游戏开发高级教程 | Lynda教程 中文字幕

HTML5游戏开发高级教程 | Lynda教程 中文字幕 Advanced HTML5 Game Development 课程ID: 597988 时长: 2.3小时 所属类别:Html 全部游戏开发课程 了解如何使用HTML5创建交互式&#xff0c;动态和丰富多彩的游戏 在本课程中&#xff0c;学习如何充分利用所有HTML5功能来创建…