当前位置:网站首页>自动控制原理快速入门+理解
自动控制原理快速入门+理解
2022-07-04 13:18:00 【季马宝宝】
用最简单的话认识全貌。
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) m⋅dt2d2r+b⋅dtdr+k⋅r=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,ξ=2kmb
带入 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ω)21,∠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)=(s−a1)(s−a2)2(s−b1)(s−b2)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)e−at]=F(s+a)
一旦a<0,就会出现右半面极点,也就会出现不稳定的 e ∣ a ∣ t e^{|a|t} e∣a∣t分量。
PS:如果你学习自动控制原理,会学到很多判断稳定性的方法,因为手动求解非常高次的方程(但是现在都用电脑了,所以实际用起来也没啥用)。我不想花很多在这里,这部分内容很多当然对于考试来说很重要,但是不细讲,先有个理解就好。
系统稳定性和零极点位置:
传递函数的极点代表了系统的模态,也就是说,当激励的频率与极点代表的频率接近或相同时,系统将产生共振,系统的响应达到最大值。
那零点代表什么呢?——与极点相反,代表系统能够屏蔽的的模态,也就是反共振点,换句话说,当激励的频率与零点代表的频率相同时,系统将没有任何响应或响应非常小。
综合起来来说:**系统瞬态响应取决于极点代表的模态;稳态响应取决于激励频率离零点和极点的距离,离极点越近,稳态响应越大,离零点越近,稳态响应越小。**这显然和离极点越近越不稳定想矛盾(对立),所以也要做好权衡。
所以我们通过配置零极点的位置,可以获得满意的频响特性。比如我们希望对某个特定频率放大(带通)就在那个频率放个极点,我们希望某个频率被抑制(陷波器)可以在那里放个零点,具体怎么配置看后面,需要使用反馈。
另外,关于化简有两点。
一是删除过小的零极点,这个很容易想到,比如你输出关于时间的函数是 x ( t ) = e − x + e − 10 x + e − 100 x x(t)=e^{-x}+e^{-10x}+e^{-100x} x(t)=e−x+e−10x+e−100x,显然你的x和第一项关系最大,后面两项基本可以忽略。一般来说差了一个数量级就可以忽略小的。
二是当零极点靠的足够近的时候,可以对消。
另外还有最小相位系统的知识我就不细讲了,大家可以看最小相位系统理解
反馈
内容比较多,后面再补充,可以先看参考知乎JPAN
我这里补充一点对文章中例子的理解:
假设一个系统的传递函数是: G ( s ) = 1 s + 1 G(s)=\frac{1}{s+1} G(s)=s+11
这个系统的阶跃响应为:
响应到稳定值的63.2%时所需要的时间约为1s,很慢,原因就是截止频率太低了,其伯德图为
为了解决这个问题,我么使用如下结果,这是一个比例控制。如果K很大,等于猛踩油门,肯定会非常快到达我们想要的值。但是如果不加控制,那最后我们就会超出希望到的速度,需要有东西来抑制住,负反馈就是起这个作用,如果输出超过了输入值,则超过的部分会成为反作用力让你的油门踩不下去。
当kp取100的时候,截止频率大幅上升,跟随特性变好。
前面我们说,只要截止频率足够高,输出就能很好的跟随输入,这种说法不是很严谨,因为文章开头就说了,各个频率分量通过系统时,不仅仅是幅值有衰减,相位也是有延迟了,如果相位延迟过多,信号重新叠加后也有可能和输入差别比较大。因此严谨的说法是:当相位延迟在一定范围内,截止频率越高,输出和输入就越接近。怎么定量说这个事呢?——相位裕度。
前面提到,加入PI控制器后,系统的闭环传递函数变得很复杂了,既有极点,又有零点,不太容易分析,因此,自动控制领域的前辈呢想了一个办法,那就是先设计开环前项通道的截止频率和相位裕度,再来分析闭环系统的响应。
当校正后的系统(控制器与G(s)组成的开环前向通道)的幅值响应开始衰减时(输出幅值小于输入,也就是0dB),信号的相位延迟与-180°的距离就是相位裕度。可见,相位裕度越大越好,理论上如果相位裕度达到180°,那就没有任何相位延迟,当然实际上是达不到的,一般来说相位裕度在40°以上,当然根据不同的应用场合会不一样。总结一下:
系统的幅值响应可以用截止频率来约束,相位响应用相位裕度来约束。
边栏推荐
- remount of the / superblock failed: Permission denied
- flink sql-client. SH tutorial
- 为什么国产手机用户换下一部手机时,都选择了iPhone?
- Industrial Internet has greater development potential and more industry scenarios
- 程序员自曝接私活:10个月时间接了30多个单子,纯收入40万
- 利用Shap值进行异常值检测
- 【云原生】我怎么会和这个数据库杠上了?
- LVLG 8.2 circular scrolling animation of a label
- R language uses follow up of epidisplay package The plot function visualizes the longitudinal follow-up map of multiple ID (case) monitoring indicators, and uses stress The col parameter specifies the
- 数据湖(十三):Spark与Iceberg整合DDL操作
猜你喜欢
Red envelope activity design in e-commerce system
一文概览2D人体姿态估计
Map of mL: Based on Boston house price regression prediction data set, an interpretable case of xgboost model using map value
Classify boost libraries by function
Excel quickly merges multiple rows of data
Xcode abnormal pictures cause IPA packet size problems
Ultrasonic distance meter based on 51 single chip microcomputer
LVGL 8.2 Line
软件测试之测试评估
Test evaluation of software testing
随机推荐
Redis daily notes
First experience of ViewModel
NowCoder 反转链表
opencv3.2 和opencv2.4安装
Leetcode T49: 字母异位词分组
毕业季-个人总结
Chapter 16 string localization and message Dictionary (2)
Leetcode 61: rotating linked list
[C language] Pointer written test questions
Compile oglpg-9th-edition source code with clion
No servers available for service: xxxx
C language small commodity management system
A collection of classic papers on convolutional neural networks (deep learning classification)
Test evaluation of software testing
Learn kernel 3: use GDB to track the kernel call chain
Programmer turns direction
《opencv学习笔记》-- 线性滤波:方框滤波、均值滤波、高斯滤波
Some problems and ideas of data embedding point
scratch古堡历险记 电子学会图形化编程scratch等级考试三级真题和答案解析2022年6月
Scratch Castle Adventure Electronic Society graphical programming scratch grade examination level 3 true questions and answers analysis June 2022