自动控制原理快速入门+理解

2023-10-27

用最简单的话认识全貌。
PS:默认都是线性系统,即输入和输出之间是线性的(默认你知道什么是线性)。

初步认识控制

假设你在推箱子,你推的力气是 f f f,箱子位移是 x x x,质量是 1 1 1,没有摩擦力,那么根据简单物理知识:
在这里插入图片描述
f = m a = x ¨ f=ma=\ddot{x} f=ma=x¨
需要格外注意的一点,不管是f还是x都是关于时间t的函数,这个式子其实长这样,这就是系统的模型
f ( t ) = m a = x ¨ ( t ) f(t)=ma=\ddot{x}(t) f(t)=ma=x¨(t)
假设 f ( t ) = 1 f(t)=1 f(t)=1,解为 x ( t ) = 1 2 t 2 x(t)=\frac{1}{2}t^2 x(t)=21t2,得到了非常重要的输出关于时间的函数。

我们思考一个问题,因为F不会每次都是一样的,我们推动的力气可能是任何关于时间的函数,难道我们要每次都带入F去求解一个复杂的微分方程吗,有没有一个更好的办法?答案是拉普拉斯变换。
拉普拉斯变换很多,记住几个关键的,剩下查表就行了。但是拉普拉斯变换的微分性质是一定要会的重中之重。记住下面两个就够了,高阶形式也是一样的,不过题目一般不会有。真的到高阶了也肯定是软件求解了。
L [ d f ( t ) d t ] = s F ( s ) − f ( 0 ) L\left[\frac{d f(t)}{d t}\right]=s F(s)-f(0) L[dtdf(t)]=sF(s)f(0)
L [ d 2 f ( t ) d t ] = s 2 F ( s ) − s f ( 0 ) − f ′ ( 0 ) L\left[\frac{d^{2} f(t)}{d t}\right]=s^{2} F(s)-s f(0)-f^{\prime}(0) L[dtd2f(t)]=s2F(s)sf(0)f(0)

我们用拉普拉斯变换求解一下看看吧(统一小写代表时域,大写代表s域),我们假设初始值都是0:
F ( t ) = s 2 X ( s ) − s x ( 0 ) − x ˙ ( 0 ) = s 2 X ( s ) F(t)=s^2X(s)-sx(0)-\dot{x}(0)=s^2X(s) F(t)=s2X(s)sx(0)x˙(0)=s2X(s)
G ( s ) = X ( s ) F ( s ) = 1 s 2 G(s)=\frac{X(s)}{F(s)}=\frac{1}{s^2} G(s)=F(s)X(s)=s21

现在你知道了s域中输出和输入的比值,当你的输出 f ( t ) f(t) f(t)换了后,你只需要求拉普拉斯变换后的 F ( s ) F(s) F(s)带入即可求出 X ( s ) X(s) X(s),然后拉式反变换即可得到结果。无论你的 f ( t ) f(t) f(t)如何改变,都不会对 G ( s ) G(s) G(s)产生影响,这是这个系统中永远不变的式子,即表示了这个系统的内部性质

我们试试看 f ( t ) = 1 f(t)=1 f(t)=1,则 F ( s ) = 1 s F(s)=\frac{1}{s} F(s)=s1,则 X ( s ) = G ( s ) F ( s ) = 1 s 3 X(s)=G(s)F(s)=\frac{1}{s^3} X(s)=G(s)F(s)=s31,求拉式反变换 x ( t ) = 1 2 t 2 x(t)=\frac{1}{2}t^2 x(t)=21t2

对于控制系统来说,我们的任务通产是让输出稳定在某个值,比如我们推物体是希望它正好停在某个地方,但是现在 f ( t ) f(t) f(t)显然是发散的,也就是说系统是不稳定的,关于稳定我们后面再细说。

控制需要做些什么:
你当然会想轻轻推箱子最后力气归于0,但是这个系统没有摩擦力,所以x永远不会稳定,这个系统压根就是不可能稳定的。所以你需要对系统进行改变,比如加入摩擦力。并且你也要更改推箱子的方式,你可能需要快快推但是箱子就会不稳,慢慢推时间很会长。而这些就是控制要做的事情。

幅频响应和相频响应

想想我们的机器人是用什么控制的?当然是电路啊。那一般来说电路肯定都是交流电吧,也就是不同频率正弦信号的组合(当然任何波通过傅里叶变换都可以变成正弦信号的组合,这样更好)。实验和理论告诉我们对于线性系统,输入正弦波,输出也是同频率正弦波,改变的只有幅值和相位(想想线性系统其次叠加性很容易理解)。那么,要是我们知道对于系统对于不同频率信号的响应不是就可以很容易的分析输入输出的关系了吗?

我们换一个复杂一点的系统:
在这里插入图片描述
系统方程:
m ⋅ d 2 r d t 2 + b ⋅ d r d t + k ⋅ r = k F ( t ) m \cdot \frac{d^{2} r}{d t^{2}}+b \cdot \frac{d r}{d t}+k \cdot r=k F(t) mdt2d2r+bdtdr+kr=kF(t)
转移函数:
Y ( s ) = R ( s ) F ( s ) = k m s 2 + b s + k = ω n 2 s 2 + 2 ξ ω n s + ω n 2 Y(s)=\frac{R(s)}{F(s)}=\frac{k}{m s^{2}+b s+k}=\frac{\omega_{n}^{2}}{s^{2}+2 \xi_{\omega_{n}} s+\omega_{n}^{2}} Y(s)=F(s)R(s)=ms2+bs+kk=s2+2ξωns+ωn2ωn2
其中 ω n = k m , ξ = b 2 k m \omega_{n}=\sqrt{\frac{k}{m}},\xi=\frac{b}{2\sqrt{km}} ωn=mk ,ξ=2km b
带入 s = j ω s=j\omega s=jω,则:(这里非常关键,换完的拉普拉斯变换其实就是傅里叶变换,也就是根据频率展开了)
∣ Y ( j ω ) ∣ = 1 ( 1 − ( ω ω n ) 2 ) 2 + 4 ξ 2 ( ω ω n ) 2 , ∠ Y ( j ω ) = − artan ⁡ 2 ξ ω ω n 1 − ( ω ω n ) 2 |Y(j \omega)|=\frac{1}{\sqrt{\left(1-\left(\frac{\omega}{\omega_{n}}\right)^{2}\right)^{2}+4 \xi^{2}\left(\frac{\omega}{\omega_{n}}\right)^{2}}},\angle Y(j \omega)=-\operatorname{artan} \frac{2 \xi \frac{\omega}{\omega_{n}}}{1-\left(\frac{\omega}{\omega_{n}}\right)^{2}} Y(jω)=(1(ωnω)2)2+4ξ2(ωnω)2 1,Y(jω)=artan1(ωnω)22ξωnω

上面两个式子一个是幅值,一个是相位,对于某个输入频率来说,这是两个定值。我们把这两个函数画出来。
在这里插入图片描述
上面是幅值响应设输出比输入为K,幅值取了20logK,因为值域范围很大,这个就是波特图。当输入等于输出时,就是0。
下面是频率响应,因为是因果信号,总是相位滞后的(频域相位滞后表现为时域上时间的延迟,你状态一开始是0不能一下子变成1吧,总得有个时间差)。
我们可以发现这是个低通系统,频率低的输入信号可以通过,频率高的则基本衰减没了。
假设输入是一个阶跃信号:
在这里插入图片描述
输出长这样,低频信号被保留了,你通过修改系统参数可以改变系统延迟时间,但是超调量(吐出去的部分)会增加,如何权衡也是你设计控制系统的要考虑的:
在这里插入图片描述

系统稳定性

零极点:
G ( s ) = ( s − b 1 ) ( s − b 2 ) 2 ( s − a 1 ) ( s − a 2 ) 2 G(s)=\frac{(s-b_1)(s-b_2)^2}{(s-a_1)(s-a_2)^2} G(s)=(sa1)(sa2)2(sb1)(sb2)2
s = b 1 s=b_1 s=b1是一阶零点, s = b 2 s=b_2 s=b2是二阶零点, s = a 1 s=a_1 s=a1是一阶极点, s = a 2 s=a_2 s=a2是二阶极点
如果存在 a i = b j a_i=b_j ai=bj,则存在零极点对消

一般来说,传递函数的极点全在左半平面就是稳定的,有一个在右半平面就是不稳定的。有极点在原点则是会有稳态分量(不稳定),在原点以外的纵轴会有正弦信号(临界稳定)。很好理解,下面是拉普拉斯变换平移性质:
L [ f ( t ) e − a t ] = F ( s + a ) L\left[f(t) e^{-a t}\right]=F(s+a) L[f(t)eat]=F(s+a)
一旦a<0,就会出现右半面极点,也就会出现不稳定的 e ∣ a ∣ t e^{|a|t} eat分量。

PS:如果你学习自动控制原理,会学到很多判断稳定性的方法,因为手动求解非常高次的方程(但是现在都用电脑了,所以实际用起来也没啥用)。我不想花很多在这里,这部分内容很多当然对于考试来说很重要,但是不细讲,先有个理解就好。

系统稳定性和零极点位置:
传递函数的极点代表了系统的模态,也就是说,当激励的频率与极点代表的频率接近或相同时,系统将产生共振,系统的响应达到最大值。
那零点代表什么呢?——与极点相反,代表系统能够屏蔽的的模态,也就是反共振点,换句话说,当激励的频率与零点代表的频率相同时,系统将没有任何响应或响应非常小。
综合起来来说:**系统瞬态响应取决于极点代表的模态;稳态响应取决于激励频率离零点和极点的距离,离极点越近,稳态响应越大,离零点越近,稳态响应越小。**这显然和离极点越近越不稳定想矛盾(对立),所以也要做好权衡。

所以我们通过配置零极点的位置,可以获得满意的频响特性。比如我们希望对某个特定频率放大(带通)就在那个频率放个极点,我们希望某个频率被抑制(陷波器)可以在那里放个零点,具体怎么配置看后面,需要使用反馈。

另外,关于化简有两点。
一是删除过小的零极点,这个很容易想到,比如你输出关于时间的函数是 x ( t ) = e − x + e − 10 x + e − 100 x x(t)=e^{-x}+e^{-10x}+e^{-100x} x(t)=ex+e10x+e100x,显然你的x和第一项关系最大,后面两项基本可以忽略。一般来说差了一个数量级就可以忽略小的。
二是当零极点靠的足够近的时候,可以对消。

另外还有最小相位系统的知识我就不细讲了,大家可以看最小相位系统理解

反馈

内容比较多,后面再补充,可以先看参考知乎JPAN
我这里补充一点对文章中例子的理解:
假设一个系统的传递函数是: G ( s ) = 1 s + 1 G(s)=\frac{1}{s+1} G(s)=s+11
这个系统的阶跃响应为:
在这里插入图片描述

响应到稳定值的63.2%时所需要的时间约为1s,很慢,原因就是截止频率太低了,其伯德图为

在这里插入图片描述
为了解决这个问题,我么使用如下结果,这是一个比例控制。如果K很大,等于猛踩油门,肯定会非常快到达我们想要的值。但是如果不加控制,那最后我们就会超出希望到的速度,需要有东西来抑制住,负反馈就是起这个作用,如果输出超过了输入值,则超过的部分会成为反作用力让你的油门踩不下去。
可见,当输入大于 [公式] 时,系统幅值响应急剧衰减,那我们假如输入是 [公式] ,幅值衰减到 [公式] ,也就是输入的10%,输出很小!假如我们想输入维持在 [公式] ,输出又不怎么衰减,怎么办呢?——负反馈系统!
当kp取100的时候,截止频率大幅上升,跟随特性变好。
在这里插入图片描述

前面我们说,只要截止频率足够高,输出就能很好的跟随输入,这种说法不是很严谨,因为文章开头就说了,各个频率分量通过系统时,不仅仅是幅值有衰减,相位也是有延迟了,如果相位延迟过多,信号重新叠加后也有可能和输入差别比较大。因此严谨的说法是:当相位延迟在一定范围内,截止频率越高,输出和输入就越接近。怎么定量说这个事呢?——相位裕度。

前面提到,加入PI控制器后,系统的闭环传递函数变得很复杂了,既有极点,又有零点,不太容易分析,因此,自动控制领域的前辈呢想了一个办法,那就是先设计开环前项通道的截止频率和相位裕度,再来分析闭环系统的响应。
在这里插入图片描述

当校正后的系统(控制器与G(s)组成的开环前向通道)的幅值响应开始衰减时(输出幅值小于输入,也就是0dB),信号的相位延迟与-180°的距离就是相位裕度。可见,相位裕度越大越好,理论上如果相位裕度达到180°,那就没有任何相位延迟,当然实际上是达不到的,一般来说相位裕度在40°以上,当然根据不同的应用场合会不一样。总结一下:

系统的幅值响应可以用截止频率来约束,相位响应用相位裕度来约束。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动控制原理快速入门+理解 的相关文章

  • 【CSS】4步教你绘制爱心图案

    实现原理 所谓爱心是指同情怜悯之心态 包括相应的一定行动 它是一种奉献精神 更是关怀 爱护人的思想感情 包括于所有情感之中 今天就用CSS实现一个爱心图案 绘制一个正方形 利用伪元素绘制2个圆形 利用transform移动2个圆形拼成爱心
  • tracert与traceroute命令详解

    tracert 一 tracert 介绍 tracert 是一个简单的网络诊断工具 用于确定 IP 数据报访问目标所经过的路径 Tracert 命令用 IP 生存时间 TTL 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由
  • 基于Matlab的深度学习LSTM模型时间序列多步预测——多对单

    LSTM在时间序列预测方面的应用非常广 但有相当一部分没有考虑使用多长的数据预测下一个 类似AR模型中的阶数P 我基于matlab2021版编写了用LSTM模型实现多步预测时间序列的程序代码 可以自己调整使用的数据 阶数 序列数据是我随机生
  • java ---- 逻辑控制

    目录 一 顺序结构 二 分支结构 1 if 结构 2 switch结构 三 循环结构 1 while结构 2 休息并继续 3 for结构 4 do while结构 四 输入和输出 3个输出 从键盘输入 循环输入 一 顺序结构 按照代码书写的

随机推荐

  • 9.荔枝派 zero(全志V3S)-移植最新版Uboot

    上面是我的微信和QQ群 欢迎新朋友的加入 1 获取源码 https gitlab denx de u boot u boot 文件拉下来要花点时间 将老版本的配置文件拷贝过来 编译 生成UBoot的bin文件和设备树文件 make ARCH
  • 二、TCP/IP协议之网络接口层(MAC地址、CSMA/CD、ARP协议)

    2 2 网络接口层 2 2 1 相关介绍 TCP IP模型的网络接口层实际上没有规定任何具体的协议 各物理网络可以使用自己的物理层协议和数据链路层协议 仅仅提供一个各种网络和TCP IP接口的要求 在TCP IP模型中 网络接口层对应ISO
  • git 命令行 创建分支_从命令行创建Git补丁

    git 命令行 创建分支 如果您不想执行常规的提交 请求 请求流程 Git修补程序是将更改应用于项目的一种简便方法 补丁是包含等效Git提交差异的文件 您可以使用git diff创建修改后的工作状态补丁 diff输出采用正确的补丁格式 gt
  • Python vitualenv环境下用pyinstaller打包exe程序,及报错解决:No module named ‘sklearn.metrics,xgboost.libpath

    问题 之前直接用命令打包 默认的是系统的python环境 没有用到虚拟环境 打包出来会特别大一个多G 1 cd E Users 13626 PycharmProjects pythonProject3 venv Scripts 虚拟环境项目
  • Hadoop分布式集群时间同步(ntp)配置

    目录 时间服务器配置 必须root用户 1 查看所有节点ntpd 时间服务器 服务状态和开机自启状态 2 修改hadoop102的ntp conf配置文件 3 重新启动ntpd服务并设置开机自启 配置其他服务器 1 关闭所有节点上的ntpd
  • vm options什么意思_什么是锂电池保护板,保护板的基础知识和不良分析!

    点击上面 电动知家 可以订阅哦 锂电池保护板是对串联锂电池组的充放电保护 在充满电时能保证各单体电池之间的电压差异小于设定值 一般 20mV 实现电池组各单体电池的均充 有效地改善了串联充电方式下的充电效果 同时检测电池组中各个单体电池的过
  • SiriKit 新变化:让 Intent 更强大

    Python实战社群 Java实战社群 长按识别下方二维码 按需求添加 扫码关注添加客服 进Python社群 扫码关注添加客服 进Java社群 作者 wiilen iOS 开发者 来源丨老司机技术周报 ID LSJCoding Sessio
  • mysql 视图的作用

    转自 http blog csdn net fm0517 article details 5625949 视图是从一个或几个基本表 或视图 导出的表 它与基本表不同 是一个虚表 数据库只存放视图的定义 而不存放视图对应的数据 这些数据仍存放
  • JS赋值运算符详解

    赋值运算符左侧的操作数必须是变量 对象属性或数组元素 也称为左值 例如 下面的写法是错误的 因为左侧的值是一个固定的值 不允许操作 1 100 返回错误 赋值运算有以下两种形式 简单的赋值运算 把等号右侧操作数的值直接复制给左侧的操作数 因
  • [下载演讲稿]数字藏品与元宇宙存储—数字新世界的“土壤”

    和上次 下载 元宇宙存储 演讲稿 相比 增加了 1 两厅印发的 关于推进实施国家文化数字化战略的意见 对数字藏品的发展有积极促进作用 2 NFT和数字藏品的分类 新玩法 高质量体验 守诺 受朱嘉明老师 朱嘉明 数字经济和非同质时代 NFT
  • Java BigInteger的使用

    前言 在Java中 由CPU原生提供的整型最大范围是64位 long 型整数 使用 long 型整数可以直接通过CPU指令进行计算 速度非常快 但是如果我们使用的整数范围超过了 long 型怎么办 这个时候 就只能用软件来模拟一个大整数 j
  • unity 3D RPG高级教程(十)

    目录 声明 1 Action Button 快捷栏按键 2 Stats Info 显示 Player 相关信息 3 Change Animator 切换动画控制器 4 Item Tooltip 物品信息显示栏 5 Loot Items 掉落
  • misc.func.php,完美解决 discuz 您的管理面板已经锁定!

    出现 对不起 由于您多次输入错误密码 所以管理面板暂时锁定 您现在无法进入管理面板 15 分钟以后 锁定会自动解除 的提示 是出于安全的考虑 在您连续输入五次密码 仍然没有成功登陆的情况下所提示的 并且会在 15 分钟内禁止此 IP 再次登
  • mysql怎样设置默认值约束_MySQL默认值约束怎么用

    本篇文章将介绍default 默认约束 如何使用和改动后的效果 常用数据库约束 default 默认约束 not null 非空约束 指定某列不为NULL unique 唯一约束 指定某列和几列组合的数据不能重复 primary key 主
  • 【C/C++多线程编程之九】pthread读写锁

    多线程编程之读写锁 Pthread 是 POSIX threads 的简称 是POSIX的 线程标准 pthread读写锁把对共享资源的访问者分为读者和写者 读者只对共享资源进行读访问 写者只对共享资源进行写操作 在互斥机制 读者和写者都需
  • 详解Nodejs中的模块化

    Nodejs是一个基于Chrome V8引擎的JavaScript运行时环境 它允许开发者使用JavaScript在服务器端运行代码 在Nodejs中 模块化是一种组织和重用代码的重要方式 模块化允许我们将代码拆分成小块 使得代码结构更清晰
  • Windows10访问Ubuntu子系统(WSL)的桌面环境

    Windows10访问Ubuntu子系统 WSL 的桌面环境 文章目录 Windows10访问Ubuntu子系统 WSL 的桌面环境 Why Linux Why WSL 开启WSL Ubuntu换源 更新与升级 安装桌面环境xubuntu
  • Pytorch-YOLOV4-火焰目标检测

    首先感谢大佬提供的代码bubbliiiing 0 效果展示 1 所需环境 torch 1 2 0 2 注意事项 代码中的yolo4 weights pth是基于608x608的图片训练的 代码中的默认anchors是基于608x608的图片
  • SystemC在Ubuntu16.04上安装测试

    使用SystemC进行硬件仿真 环境 linux x86 64 bash g 下载解压SystemC SystemC下载地址 解压下载的包 tar zxvf systemc 2 3 3 tar gz 进入解压出来的目录 准备编译安装 cd
  • 自动控制原理快速入门+理解

    用最简单的话认识全貌 PS 默认都是线性系统 即输入和输出之间是线性的 默认你知道什么是线性 初步认识控制 假设你在推箱子 你推的力气是 f f f 箱子位移是 x x x 质量是