自动控制原理 (四): 时域下的性能分析

2024-03-08 09:10

本文主要是介绍自动控制原理 (四): 时域下的性能分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一章中已经简单介绍过调节时间、 超调量等一些性能的定性分析和定量计算。 本章主要介绍在时域下的系统稳定性分析和稳态误差分析。

系统稳定性分析

对于一个控制系统, 如果其受到扰动, 偏离了原来的平衡状态, 而当扰动消失后, 系统又能够逐渐恢复到原来的平衡状态, 则称系统是稳定的, 如果扰动消失后系统无法恢复至原来的平衡状态, 甚至偏差越来越大, 则称系统是不稳定的, 或不具有稳定性。

稳定性是系统的一种固有属性, 对于现在讨论的线性定常系统来说, 稳定性只与系统的内部结构参数有关, 而与 初始条件外作用 无关。

稳定还可以定义为: 在有界的输入下, 系统输出响应也是有界的。 这种定义被称作 BIBO 稳定。

稳定的数学条件

设一个 LTI (线性定常) 系统的闭环传递函数为 G(s)=N(s)/D(s) ; 脉冲响应函数为 g(t) , 则该闭环系统稳定的充分必要条件是:
∫ 0 + ∞ ∣ g ( t ) ∣ d t < K \int^{+\infty}_{0}\left|g(t)\right|\text{d}t<K 0+g(t)dt<K
系统 BIBO 稳定的充要条件为: G(s) 的极点均具有负实部, 或者说都位于复平面虚轴以左

也可以说系统稳定的充要条件是系统的特征方程 D(s) 所有根都具有负实部。

系统的特征方程是指令闭环传递函数分母等于 0 的方程。 如果系统的开环传递函数为 G(s), 反馈通路传递函数为 H(s), 则闭环传递函数即为: G c ( s ) = G ( s ) 1 + G ( s ) H ( s ) G_c(s)=\frac{G(s)}{1+G(s)H(s)} Gc(s)=1+G(s)H(s)G(s)1​, 因为一般是负反馈, 所以分母里是+号, 所以如果给出的是开环传递函数, 应当经过上式的计算, 令 1+G(s)H(s)=0 得系统的特征方程。

对于所有情况, 总结如下:

  • 所有根实部小于0: 稳定
  • 单根实部等于0: 临界情况, 系统既不发散, 也不能恢复, 不属于稳定
  • 重根实部等于0: 系统会发散, 不稳定
  • 有根实部大于0: 系统会发散, 不稳定

稳定性判据

经过上面的分析, 我们知道通过求解系统的特征根可以用来判断系统的稳定性。 但如果系统阶数高, 则特征方程很难求解, 此时可以用下面介绍的判据:

赫尔维茨 (Hurwitz) 判据

系统稳定的充分必要条件是: 特征方程的赫尔维茨行列式全部为正。

各阶赫尔维茨行列式分别为:
D 1 = a 1 , D 2 = ∣ a 1 a 3 a 0 a 2 ∣ , D 3 = ∣ a 1 a 3 a 5 a 0 a 2 a 4 0 a 1 a 3 ∣ , … , D n = ∣ a 1 a 3 a 5 … a 2 n − 1 a 0 a 2 a 4 … a 2 n − 2 0 a 1 a 3 … a 2 n − 3 0 a 0 a 2 … a 2 n − 4 ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 … a n ∣ \begin{gathered} D_1=a_1,\quad D_2=\left|\begin{matrix}a_1&a_3\\a_0&a_2\end{matrix}\right|,\quad D_3=\left|\begin{matrix}a_1&a_3&a_5\\a_0&a_2&a_4\\0&a_1&a_3\end{matrix}\right|,\quad \dots,\\ D_n=\left|\begin{matrix}a_1&a_3&a_5&\dots&a_{2n-1}\\a_0&a_2&a_4&\dots&a_{2n-2}\\0&a_1&a_3&\dots&a_{2n-3}\\0&a_0&a_2&\dots&a_{2n-4}\\\vdots&\vdots&\vdots&\ddots&\vdots\\0&0&0&\dots&a_n\end{matrix}\right| \end{gathered} D1=a1,D2= a1a0a3a2 ,D3= a1a00a3a2a1a5a4a3 ,,Dn= a1a0000a3a2a1a00a5a4a3a20a2n1a2n2a2n3a2n4an

💡 例: 系统特征方程为:
a 0 s 3 + a 1 s 2 + a 2 s + a 3 = 0 ( a 0 > 0 ) a_0s^3+a_1s^2+a_2s+a_3=0\quad(a_0>0) a0s3+a1s2+a2s+a3=0(a0>0)
则系统稳定的充分必要条件为:
D 1 = a 1 > 0 D 2 = ∣ a 1 a 3 a 0 a 2 ∣ = a 1 a 2 − a 0 a 3 > 0 D 3 = ∣ a 1 a 3 a 5 a 0 a 2 a 4 0 a 1 a 3 ∣ = a 1 a 2 a 3 − a 0 a 3 2 > 0 \begin{aligned} D_1&=a_1>0\\ D_2&=\left|\begin{matrix}a_1&a_3\\a_0&a_2\end{matrix}\right|=a_1a_2-a_0a_3>0\\ D_3&=\left|\begin{matrix}a_1&a_3&a_5\\a_0&a_2&a_4\\0&a_1&a_3\end{matrix}\right|=a_1a_2a_3-a_0a_3^2>0 \end{aligned} D1D2D3=a1>0= a1a0a3a2 =a1a2a0a3>0= a1a00a3a2a1a5a4a3 =a1a2a3a0a32>0

林纳德-奇帕特 (Lienard-Chipard) 判据

该判据其实是赫尔维茨判据的推广, 减少了计算量

系统稳定的充分必要条件为:

  1. 系统特征方程的各项系数均大于0, 即 a i > 0 , ( i = 0 , 1 , 2 , … , n ) a_i>0,\;(i=0,1,2,\dots,n) ai>0,(i=0,1,2,,n)
  2. 奇数阶或偶数阶的赫尔维茨行列式大于0, 即 D 奇 > 0 D_{\text奇}>0 D>0​ 或 D 偶 > 0 D_{\text偶}>0 D>0
劳斯 (Routh) 判据

以上两个判据计算较为复杂, 三阶及以下可以使用 (直接套上面例子里的式子就好), 阶数较高的一般直接用劳斯判据。

使用劳斯判据时先列出劳斯表:

s n s^n sn a 0 a_0 a0 a 2 a_2 a2 a 4 a_4 a4 a 6 a_6 a6 … \dots
s n − 1 s^{n-1} sn1 a 1 a^1 a1 a 3 a_3 a3 a 5 a_5 a5 a 7 a_7 a7 … \dots
s n − 2 s^{n-2} sn2 c 13 = a 1 a 2 − a 0 a 3 a 1 c_{13}=\frac{a_1a_2-a_0a_3}{a_1} c13=a1a1a2a0a3 c 23 = a 1 a 4 − a 0 a 5 a 1 c_{23}=\frac{a_1a_4-a_0a_5}{a_1} c23=a1a1a4a0a5 c 33 = a 1 a 6 − a 0 a 7 a 1 c_{33}=\frac{a_1a_6-a_0a_7}{a_1} c33=a1a1a6a0a7
s n − 3 s^{n-3} sn3 c 14 = c 13 a 3 − a 1 c 23 c 13 c_{14}=\frac{c_{13}a_3-a_1c_{23}}{c_{13}} c14=c13c13a3a1c23 c 24 = c 13 a 5 − a 1 c 33 c 13 c_{24}=\frac{c_{13}a_5-a_1c_{33}}{c_{13}} c24=c13c13a5a1c33
⋮ \vdots ⋮ \vdots ⋮ \vdots
s 2 s^2 s2 c 1 , n − 1 c_{1,n-1} c1,n1 c 2 , n − 1 c_{2,n-1} c2,n1
s s s c 1 , n c_{1,n} c1,n
s 0 s^0 s0 c 1 , n + 1 = a n c_{1,n+1}=a_n c1,n+1=an

Routh 判据:

  • 闭环系统稳定当且仅当:
    1. 特征方程 D(s) 的所有系数为正;
    2. Routh 表的第一列所有元素为正。
  • D(s) 正实部根的个数等于 Routh 表第一列元素符号改变的次数。

从劳斯表的构造过程可以看出, 劳斯表的每一行都取决于其前两行。 但有些特殊情况会让劳斯表无法计算下去, 比如第一列的元素为0, 或某一行的元素全为0。 这两种特殊情况的处理方法如下:

  • 当某一行的第一列元素为0时:

    • 可以用一个极小的正数 ε \varepsilon ε 来代替0, 继续运算。
    • 也可以给原特征方程乘以 (s+1) 后, 再构造新特征方程的劳斯表。 用该劳斯表判稳, 结果与原特征方程一样。
  • 当某行的元素全为0时:

    用上一行构造辅助函数 F ( s ) = c 1 , n − k s k + c 2 , n − k s k − 2 + … F(s)=c_{1,n-k}s^k+c_{2,n-k}s^{k-2}+\dots F(s)=c1,nksk+c2,nksk2+; 对辅助函数求导, 将求导后各项的系数作为零行的元素。

    💡 辅助函数的次数通常为偶数, 求解 F ( s ) = 0 F(s)=0 F(s)=0​​ 可以得到数值相等, 符号相反的根, 这些根同样也是系统特征方程的根

相对稳定性分析

离虚轴越近的根对系统的影响越大, 因此通常使用实部最大的特征根2距虚轴的距离来表示系统的相对稳定性, 或叫稳定裕度。

设稳定裕度为 σ \sigma σ, 为了能用上述判据来分析系统的稳定裕度, 可以用新变量 s ′ = s + σ s'=s+\sigma s=s+σ 代入原特征方程, 即令 s = s ′ − σ s=s'-\sigma s=sσ。 求解D(s’) 或使用上面的稳定性判据分析即可。 这个操作相当于把虚轴往左平移了 σ \sigma σ , 然后看系统特征点是否还能在它的左边。

稳态误差分析与计算

误差与稳态误差

误差一般定义为期望值与实际值之差, 对于常见的负反馈闭环系统来说, 误差有两种定义:

  1. 实际值为 c(t), 期望值为 r(t) : 误差 e(t)=r(t)-c(t)
  2. 实际值为 b(t), 期望值为 r(t) : 误差 e(t)=r(t)-b(t)

稳态误差是指稳定系统的误差的终值, 当时间 t 趋于无穷时, e(t) 极限存在, 则稳态误差为
e s s = lim ⁡ t → ∞ e ( t ) e_{ss}=\lim_{t\rightarrow\infty}e(t) ess=tlime(t)
稳态误差可以使用终值定理来计算, 当且仅当 sE(s) 的极点均具有负实部时3, 稳态误差的值为:
e s s = lim ⁡ s → ∞ e ( t ) = lim ⁡ s → 0 s E ( s ) e_{ss}=\lim_{s\rightarrow\infty}e(t)=\lim_{s\rightarrow 0}sE(s) ess=slime(t)=s0limsE(s)

输入信号作用下的稳态误差与系统结构参数的关系

当只有输入 r(t) 作用时, 系统如下图所示:

此时误差定义为 E ( s ) = R ( s ) − B ( s ) E(s)=R(s)-B(s) E(s)=R(s)B(s)

根据等效变换的计算1, 可得:
E ( s ) = 1 1 + G ( s ) H ( s ) R ( s ) E(s)=\frac{1}{1+G(s)H(s)}R(s) E(s)=1+G(s)H(s)1R(s)
而 G(s)H(s) 可写作:
G ( s ) H ( s ) = K ∏ ( τ j s + 1 ) ∏ ( τ l 2 s 2 + 2 ζ k τ l s + 1 ) s V ∏ ( T i s + 1 ) ∏ ( T k 2 s 2 + ζ k T k s + 1 ) = K ⋅ N o ( s ) s V ⋅ D o ( s ) G(s)H(s)=\frac{K\prod(\tau_js+1)\prod(\tau_l^2s^2+2\zeta_k\tau_ls+1)}{s^V\prod(T_is+1)\prod(T_k^2s^2+\zeta_kT_ks+1)}=\frac{K\cdot N_o(s)}{s^V\cdot D_o(s)} G(s)H(s)=sV(Tis+1)(Tk2s2+ζkTks+1)K(τjs+1)(τl2s2+2ζkτls+1)=sVDo(s)KNo(s)
式中, K 为系统的开环增益, V 为开环传递函数中积分环节的个数。 V=0 称系统为 0 型系统, V=1 称系统为 I 型系统, V=2 称系统为 II 型系统。

则系统的稳态误差:
e s s = lim ⁡ s → 0 s E ( s ) = lim ⁡ s → 0 s V + 1 D o ( s ) s V D o ( s ) + K N o ( s ) R ( s ) = lim ⁡ s → 0 s V + 1 s V + K R ( s ) \begin{aligned} e_{ss}&=\lim_{s\rightarrow 0}sE(s)=\lim_{s\rightarrow 0}\frac{s^{V+1}D_o(s)}{s^VD_o(s)+KN_o(s)}R(s)\\ &=\lim_{s\rightarrow0}\frac{s^{V+1}}{s^V+K}R(s) \end{aligned} ess=s0limsE(s)=s0limsVDo(s)+KNo(s)sV+1Do(s)R(s)=s0limsV+KsV+1R(s)
由此可得, 系统的稳态误差主要由三方面确定:

  • 输入信号 R(s);
  • 系统的开环增益 K;
  • 系统的型别 V

下面对不同的情况进行讨论:

阶跃信号 R ( s ) = r 0 s R(s)=\frac{r_0}{s} R(s)=sr0

定义静态位置误差系数 K p = lim ⁡ s → 0 G ( s ) H ( s ) K_p=\lim_{s\rightarrow0} G(s)H(s) Kp=lims0G(s)H(s)

则易得:
K p = { K V = 0 ∞ V ≥ 1 ⇒ e s s = r 0 1 + K p = { r 0 1 + K V = 0 0 V ≥ 1 K_p=\begin{cases} K&V=0\\ \infty&V\geq1 \end{cases}\quad\Rightarrow\quad e_{ss}=\frac{r_0}{1+K_p}=\begin{cases} \frac{r_0}{1+K}&V=0\\ 0&V\geq1 \end{cases} Kp={KV=0V1ess=1+Kpr0={1+Kr00V=0V1
对于 0 型系统, 开环增益越大, 稳态误差越小; 对于 V ≥ 1 V\geq1 V1 型系统, 稳态误差为0。

斜坡信号 R ( s ) = v 0 s 2 R(s)=\frac{v_0}{s^2} R(s)=s2v0

定义静态速度误差系数 K v = lim ⁡ s → 0 s G ( s ) H ( s ) K_v=\lim_{s\rightarrow0} sG(s)H(s) Kv=lims0sG(s)H(s)

则易得:
K v = { 0 V = 0 K V = 1 ∞ V ≥ 2 ⇒ e s s = v 0 K v = { ∞ V = 0 v 0 K V = 1 0 V ≥ 2 K_v=\begin{cases} 0&V=0\\ K&V=1\\ \infty&V\geq2 \end{cases}\quad\Rightarrow\quad e_{ss}=\frac{v_0}{K_v}=\begin{cases} \infty&V=0\\ \frac{v_0}{K}&V=1\\ 0&V\geq2 \end{cases} Kv= 0KV=0V=1V2ess=Kvv0= Kv00V=0V=1V2
0 型系统不稳定; 对于 I 型系统, 开环增益越大, 稳态误差越小; 对于 V ≥ 2 V\geq 2 V2 型系统, 稳态误差为0。

加速度信号 R ( s ) = a 0 s 3 R(s)=\frac{a_0}{s^3} R(s)=s3a0​​

定义静态加速度误差系数 K a = lim ⁡ s → 0 s 2 G ( s ) H ( s ) K_a=\lim_{s\rightarrow0} s^2G(s)H(s) Ka=lims0s2G(s)H(s)​​​

则易得:
K a = { 0 V ≤ 1 K V = 2 ∞ V ≥ 3 ⇒ e s s = a 0 K a = { ∞ V ≤ 1 a 0 K V = 2 0 V ≥ 3 K_a=\begin{cases} 0&V\leq1\\ K&V=2\\ \infty&V\geq3 \end{cases}\quad\Rightarrow\quad e_{ss}=\frac{a_0}{K_a}=\begin{cases} \infty&V\leq1\\ \frac{a_0}{K}&V=2\\ 0&V\geq3 \end{cases} Ka= 0KV1V=2V3ess=Kaa0= Ka00V1V=2V3
V ≤ 1 V\leq1 V1​ 型系统不稳定; 对于 II 型系统, 开环增益越大, 稳态误差越小; 对于 V ≥ 3 V\geq 3 V3​​ 型系统, 稳态误差为0。

‼️ 注意上述的推导都是在只有输入信号 r(t) 作为外作用的情况下进行的, 也就是说, 系统型别与稳态误差之间的关系不适用于有干扰 n(t) 作用的情况。

计算稳态误差

计算稳态误差的步骤可归纳为:

  1. 根据误差定义计算 E(s);
  2. 判断 sE(s) 的极点是否均具有负实部 (可用系统稳定性判据来判断);
  3. 若 sE(s) 的极点均具有负实部, 应用终值定理计算稳态误差。

  1. 见第二章反馈等效变换: 自动控制原理 (二): 控制系统的微分方程 | Mond’s Page ↩︎ ↩︎

  2. 当系统稳定时, 这个根就是离虚轴最近的那个根 ↩︎

  3. 也就是闭环系统稳定时 ↩︎

这篇关于自动控制原理 (四): 时域下的性能分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/786625

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu