自动控制——过阻尼、欠阻尼、临界阻尼及无阻尼

CSDN 2024-09-13 15:07:02 阅读 58

自动控制——过阻尼、欠阻尼、临界阻尼及无阻尼

引言

在自动控制系统和振动分析中,系统的阻尼特性对于系统的动态响应至关重要。阻尼决定了系统在受到扰动或输入信号后,如何恢复到稳定状态。本文将详细介绍过阻尼(overdamped)、欠阻尼(underdamped)、临界阻尼(critically damped)和无阻尼(undamped)的定义、公式,并通过Python代码演示不同阻尼条件下系统的响应。

系统的阻尼特性

考虑一个典型的二阶线性系统,其传递函数可以表示为:

H

(

s

)

=

ω

n

2

s

2

+

2

ζ

ω

n

s

+

ω

n

2

H(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2}

H(s)=s2+2ζωn​s+ωn2​ωn2​​

其中:

-

ω

n

\omega_n

ωn​是系统的自然频率。

-

ζ

\zeta

ζ是阻尼比,定义为

ζ

=

c

2

m

k

\zeta = \frac{c}{2\sqrt{mk}}

ζ=2mk

​c​,其中

c

c

c是阻尼系数,

m

m

m是质量,

k

k

k是弹簧常数。

根据阻尼比

ζ

\zeta

ζ的不同,系统的动态响应分为以下几种类型:

1. 无阻尼(Undamped)

ζ

=

0

\zeta = 0

ζ=0时,系统没有阻尼力的影响,其响应为纯粹的正弦波动,永不衰减。无阻尼系统在自然频率

ω

n

\omega_n

ωn​下振荡。

x

(

t

)

=

A

cos

(

ω

n

t

)

+

B

sin

(

ω

n

t

)

x(t) = A \cos(\omega_n t) + B \sin(\omega_n t)

x(t)=Acos(ωn​t)+Bsin(ωn​t)

2. 欠阻尼(Underdamped)

0

<

ζ

<

1

0 < \zeta < 1

0<ζ<1时,系统处于欠阻尼状态。系统响应在频率

ω

d

=

ω

n

1

ζ

2

\omega_d = \omega_n \sqrt{1-\zeta^2}

ωd​=ωn​1−ζ2

​下振荡,并随着时间指数衰减。

x

(

t

)

=

e

ζ

ω

n

t

(

A

cos

(

ω

d

t

)

+

B

sin

(

ω

d

t

)

)

x(t) = e^{-\zeta\omega_n t} \left( A \cos(\omega_d t) + B \sin(\omega_d t) \right)

x(t)=e−ζωn​t(Acos(ωd​t)+Bsin(ωd​t))

欠阻尼系统的特征是系统会振荡几次,然后逐渐趋于平衡。

3. 临界阻尼(Critically Damped)

ζ

=

1

\zeta = 1

ζ=1时,系统处于临界阻尼状态。此时系统响应速度最快,不会出现振荡,但也不会像过阻尼那样慢慢回到平衡状态。

x

(

t

)

=

(

A

+

B

t

)

e

ω

n

t

x(t) = (A + Bt) e^{-\omega_n t}

x(t)=(A+Bt)e−ωn​t

临界阻尼是最理想的阻尼状态,它能确保系统迅速回到平衡而不出现振荡。

4. 过阻尼(Overdamped)

ζ

>

1

\zeta > 1

ζ>1时,系统处于过阻尼状态。系统响应不再振荡,但相比于临界阻尼系统,它恢复到平衡所需的时间更长。

x

(

t

)

=

A

e

(

λ

1

t

)

+

B

e

(

λ

2

t

)

x(t) = A e^{(\lambda_1 t)} + B e^{(\lambda_2 t)}

x(t)=Ae(λ1​t)+Be(λ2​t)

其中,

λ

1

\lambda_1

λ1​和

λ

2

\lambda_2

λ2​是系统的特征根,且

λ

1

,

λ

2

<

0

\lambda_1, \lambda_2 < 0

λ1​,λ2​<0。

Python代码实现

下面的Python代码演示了一个简单的二阶系统在不同阻尼条件下的时间响应。

<code>import numpy as np

import matplotlib.pyplot as plt

from scipy.signal import lti, step

# 定义系统的自然频率和时间范围

omega_n = 5.0 # 自然频率

t = np.linspace(0, 5, 500)

# 定义不同阻尼比的系统

systems = {

'Undamped (ζ=0)': lti([omega_n**2], [1, 0, omega_n**2]),

'Underdamped (ζ=0.5)': lti([omega_n**2], [1, 2*0.5*omega_n, omega_n**2]),

'Critically Damped (ζ=1)': lti([omega_n**2], [1, 2*1.0*omega_n, omega_n**2]),

'Overdamped (ζ=2)': lti([omega_n**2], [1, 2*2.0*omega_n, omega_n**2])

}

# 绘制每个系统的阶跃响应

plt.figure(figsize=(10, 6))

for label, system in systems.items():

t, y = step(system, T=t)

plt.plot(t, y, label=label)

# 图表设置

plt.title('不同阻尼条件下的系统阶跃响应')

plt.xlabel('时间 [s]')

plt.ylabel('响应')

plt.grid(True)

plt.legend()

plt.show()

代码解释

lti: scipy.signal.lti 函数用于定义线性时不变(LTI)系统。step: step 函数用于计算系统的阶跃响应。systems: 定义了四种不同阻尼比

ζ

\zeta

ζ的系统:无阻尼、欠阻尼、临界阻尼和过阻尼。

在这里插入图片描述

结论

通过上述分析和代码演示,我们可以看到阻尼比

ζ

\zeta

ζ对系统动态响应的影响:

无阻尼系统

ζ

=

0

\zeta = 0

ζ=0)会永远振荡,不会衰减。欠阻尼系统

0

<

ζ

<

1

0 < \zeta < 1

0<ζ<1)会振荡几次,随着时间的推移逐渐平稳。临界阻尼系统

ζ

=

1

\zeta = 1

ζ=1)是理想的,它在不振荡的情况下快速回到平衡。过阻尼系统

ζ

>

1

\zeta > 1

ζ>1)不会振荡,但比临界阻尼系统更慢地回到平衡状态。

理解和设计适当的阻尼对于工程应用至关重要,能够有效避免系统的过冲、延迟或持续振荡。在实际应用中,通常会设计系统使其接近临界阻尼状态,以确保快速而稳定的响应。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。