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

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

相关文章

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重