当前位置: 首页 > news >正文

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

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

引言

在自动控制系统和振动分析中,系统的阻尼特性对于系统的动态响应至关重要。阻尼决定了系统在受到扰动或输入信号后,如何恢复到稳定状态。本文将详细介绍过阻尼(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ζωns+ω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(ωnt)+Bsin(ωnt)

2. 欠阻尼(Underdamped)

0 < ζ < 1 0 < \zeta < 1 0<ζ<1时,系统处于欠阻尼状态。系统响应在频率 ω d = ω n 1 − ζ 2 \omega_d = \omega_n \sqrt{1-\zeta^2} ωd=ωn1ζ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ζωnt(Acos(ωdt)+Bsin(ωdt))

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

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ωnt

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

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(λ1t)+Be(λ2t)

其中, λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2是系统的特征根,且 λ 1 , λ 2 < 0 \lambda_1, \lambda_2 < 0 λ1,λ2<0

Python代码实现

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

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)不会振荡,但比临界阻尼系统更慢地回到平衡状态。

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

http://www.lryc.cn/news/421198.html

相关文章:

  • 从AlphaGo到AlphaPong:AI乒乓球机器人将如何改变乒乓球竞技?
  • 荒原之梦:考研期间可以玩游戏吗?
  • Hive SQL ——窗口函数源码阅读
  • 用python的Manim 创建大括号
  • 白骑士的Matlab教学附加篇 5.2 代码规范与最佳实践
  • Javaweb--SpringBoot
  • 【数据结构】算法的时间复杂度与空间复杂度
  • PyCharm环境python开发上位机
  • ROS 2 参数使用
  • QT的Model-View实现大批量数据展示
  • 2024年8月7日(mysql主从 )
  • 接口/自动化测试 面试集合
  • 菜鸡勇闯第136场双周赛
  • 趋动科技陈飞:从小模型到大模型,AI时代下的数据中心建设
  • yolo v8 + flask部署到云服务器,以及问题记录
  • 【科研必备插件】easyscholar如何使文章显示期刊影响因子与分区等级
  • UE5 UrlEncode转换
  • 【QML】Qt.rgba()的正确使用方法
  • centos7.9 docker安装
  • spring操作数据库
  • Apache Flink中TaskManager,SubTask,TaskSlot,并行度之间的关系
  • 马斯克xAI新计划:人工智能模型Grok 2测试版即将发布
  • 【机器人学】6-4.六自由度机器人运动学参数辨识-机器人精度验证【附MATLAB代码】
  • 分销商城小程序系统渠道拓展
  • WPF篇(14)-ProgressBar进度条+Calendar日历控件+DatePicker日期控件
  • 链表高频题目和必备技巧
  • Vue3详细介绍,正则采集器所用前端框架
  • 数据集--COCO2017(快速下载)
  • 【管理咨询宝藏159】顶级咨询公司人力三支柱建设方案思路
  • 跨时钟域总结