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

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

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Spring、Spring Boot、Spring Cloud 的区别与联系分析

《Spring、SpringBoot、SpringCloud的区别与联系分析》Spring、SpringBoot和SpringCloud是Java开发中常用的框架,分别针对企业级应用开发、快速开... 目录1. Spring 框架2. Spring Boot3. Spring Cloud总结1. Sprin

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工