【机器人】振动分析和控制工具之Bode图
Bode 图完整介绍
Bode 图由两个部分组成:
- 幅值图 (Magnitude Plot):描述系统对不同频率输入信号的增益大小(幅值响应)。
- 相位图 (Phase Plot):描述系统输出信号相对于输入信号的相位差。
Bode 图的横轴是频率,以对数刻度显示(单位:rad/s)。纵轴则分别显示幅值(以分贝 dBdB 为单位)和相位(以角度为单位)。
相位图的完整解释
什么是相位图
相位图表示系统输出信号相对于输入信号的相位差,反映了信号的延迟或超前行为。相位的单位是角度(°),常见的范围是 [−360°,0°][-360°, 0°] 或 [−180°,180°][-180°, 180°]。
相位图的特征
-
低频段:
- 在低频区域(频率接近 0),系统的相位通常接近 0° 或一个稳定值。
- 表明此时系统几乎没有延迟,输出信号能较好地跟随输入信号。
-
中频段:
- 随着频率增加,相位开始下降。
- 如果系统包含极点或零点,会导致相位快速变化,这通常对应于系统的特征频率(如谐振频率)。
-
高频段:
- 在高频区域,相位趋于一个负的稳定值(如 −90°-90°、−180°-180° 等),反映出系统对高频信号具有较大的延迟。
实际意义
-
信号延迟和超前:
- 相位的正值表示信号超前,负值表示信号延迟。
- 控制系统中,如果相位延迟过大,可能导致系统不稳定。
-
系统动态行为:
- 相位的变化率和方向反映了系统在不同频率下的动态性能。例如,相位快速变化的区域可能是谐振频率或系统的重要特征点。
-
稳定性分析:
- 结合幅值图,可以计算增益裕度和相位裕度,判断闭环系统是否稳定。
幅值图的完整解释
什么是幅值图
幅值图描述系统对不同频率输入信号的放大或衰减程度。幅值通常以分贝 dBdB 为单位,其公式为:

其中 H(jω) 是系统的频率响应。
幅值图的特征
-
低频段:
- 在低频区域(频率接近 0),幅值通常较高,表示系统能很好地通过低频信号。
- 如果系统是稳定的低通滤波器,此时幅值接近直流增益值(例如 0 dB 或其他值)。
-
中频段:
- 中频区域的幅值可能会出现一个峰值(如果系统存在谐振)。
- 谐振频率对应幅值最大的位置。谐振频率由系统的阻尼比和自然频率决定。
-
高频段:
- 在高频区域,幅值通常下降,以一个固定的斜率递减(例如 -20 dB/decade 或 -40 dB/decade)。
- 反映出系统对高频信号的衰减特性。
实际意义
-
频率选择性:
- 幅值图显示系统对不同频率信号的放大或衰减能力。通过观察幅值图,可以判断系统是低通、高通、带通还是带阻滤波器。
-
增益分析:
- 控制系统中,幅值图用于确定增益裕度,确保系统在反馈时的稳定性。
-
噪声抑制:
- 对高频噪声的衰减程度可通过高频段的幅值特性分析。
-
动态范围:
- 幅值图可以帮助理解系统能处理的最大和最小信号幅度范围。
结合相位图和幅值图的整体意义
-
系统特征频率:
- 幅值图中谐振峰值对应的频率,通常会在相位图中表现为相位快速变化的点。这些频率是系统的特征频率。
-
稳定性判断:
- 使用幅值图和相位图可以计算系统的增益裕度和相位裕度,判断闭环系统的稳定性。
- 增益裕度:当相位为 -180° 时,幅值距离 0 dB 的距离。
- 相位裕度:当幅值为 0 dB 时,相位距离 -180° 的距离。
-
滤波性能:
- 幅值图显示系统对不同频率信号的处理能力,相位图则补充了延迟和动态行为的分析。
总结
Bode 图是控制系统和信号处理领域中最常用的工具之一,提供了频域内关于系统增益和相位的全方位信息。它直观地展示了系统如何响应不同频率的输入信号,为稳定性分析、滤波器设计和控制器优化提供了重要依据。
代码摘抄

import numpy as np
import matplotlib.pyplot as plt
from scipy import signal# Define the transfer function
# Example: Second-order system H(s) = ω_n^2 / (s^2 + 2ζω_ns + ω_n^2)# Parameters for the system
zeta = 0.5 # Damping ratio (controls how oscillatory the system is)
omega_n = 10 # Natural frequency (rad/s), determines the frequency of oscillation# Numerator and denominator of the transfer function
numerator = [omega_n**2] # The numerator of the transfer function (constant gain)
denominator = [1, 2*zeta*omega_n, omega_n**2] # The denominator (s^2 + 2ζω_ns + ω_n^2)# Create the transfer function
# signal.TransferFunction represents the system in the Laplace domain
system = signal.TransferFunction(numerator, denominator)# Frequency range for the Bode plot
frequencies = np.logspace(0, 2, 500) # From 10^0 (1 rad/s) to 10^2 (100 rad/s), 500 points# Compute the Bode plot data
w, mag, phase = signal.bode(system, frequencies) # Get magnitude and phase responses# Plot the Bode magnitude and phase
plt.figure(figsize=(10, 8)) # Set the figure size# Magnitude plot
plt.subplot(2, 1, 1) # First subplot: Magnitude
plt.semilogx(w, mag, color='orange') # Logarithmic x-axis for frequency, y-axis in dB
plt.title('Bode Plot') # Plot title
plt.ylabel('Magnitude (dB)') # y-axis label
plt.grid(True, which='both', linestyle='--', linewidth=0.5) # Add grid lines for better readability# Phase plot
plt.subplot(2, 1, 2) # Second subplot: Phase
plt.semilogx(w, phase, color='orange') # Logarithmic x-axis for frequency, y-axis in degrees
plt.ylabel('Phase (degrees)') # y-axis label
plt.xlabel('Frequency (rad/s)') # x-axis label
plt.grid(True, which='both', linestyle='--', linewidth=0.5) # Add grid lines for better readability# Adjust layout to prevent overlap between subplots
plt.tight_layout()# Display the plots
plt.show()
Key Points:
-
System Definition:
- The transfer function is defined as H(s)=ωn2s2+2ζωns+ωn2H(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_ns + \omega_n^2}.
- The numerator and denominator coefficients represent the system's dynamics.
-
Frequency Range:
- A logarithmic frequency range (
logspace) is chosen to visualize behavior over multiple orders of magnitude.
- A logarithmic frequency range (
-
Bode Plot:
signal.bodecomputes the magnitude (in dB) and phase (in degrees) for the specified frequency range.
-
Visualization:
- Two subplots: one for magnitude and one for phase.
semilogxis used for a logarithmic x-axis to match standard Bode plot conventions.
-
Customization:
- Grid lines (
grid) improve readability. tight_layoutensures that the labels and titles don't overlap.
- Grid lines (
You can adjust the damping ratio (zeta), natural frequency (omega_n), or even replace the transfer function to analyze different systems. Let me know if you'd like further customization!
相关文章:
【机器人】振动分析和控制工具之Bode图
Bode 图完整介绍 Bode 图由两个部分组成: 幅值图 (Magnitude Plot):描述系统对不同频率输入信号的增益大小(幅值响应)。相位图 (Phase Plot):描述系统输出信号相对于输入信号的相位差。 Bode 图的横轴是频率&#x…...
生成:安卓证书uniapp
地址: https://ask.dcloud.net.cn/article/35777 // 使用keytool -genkey命令生成证书: 官网: keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore ----------------------------------…...
酒店/电影推荐系统里面如何应用深度学习如CNN?
【1】酒店推荐系统里面如何应用CNN?具体过程是什么 在酒店推荐系统中应用卷积神经网络(CNN)并不是一个常见的选择,因为 CNN 主要用于处理具有空间结构的数据,如图像、音频和某些类型的序列数据。然而,在某…...
【CSS in Depth 2 精译_069】11.3 利用 OKLCH 颜色值来处理 CSS 中的颜色问题(上)
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 11 章 颜色与对比】 ✔️ 11.1 通过对比进行交流 11.1.1 模式的建立11.1.2 还原设计稿 11.2 颜色的定义 11.2.1 色域与色彩空间11.2.2 CSS 颜色表示法 11.2.2.1 RGB…...
Redis篇-6--原理篇5--单线程模型
1、概述 Redis 采用单线程模型来处理客户端请求,这意味着在任意时刻只有一个命令被执行。这种设计简化了 Redis 的实现,并确保了高并发环境下的数据一致性。尽管 Redis 是单线程的,但它通过高效的内存管理和网络 I/O 操作,仍然能…...
Java版-图论-最小生成树-Prim算法
实现描述 如图: Prim算法的基本思想是从一个顶点开始,逐步构建最小生成树。具体步骤如下: 随机选取一个顶点作为起始点,并将其加入最小生成树的集合中。从该顶点出发,选择一条边连接到其他未被访问的顶点中的最小权…...
Python 基础学习(一)
一.基础语法 注释 Python中单行注释以 # 开头,如下: #!/usr/bin/python3# 第一个注释 print ("Hello, Python!") # 第二个注释多行注释可以用多个 # 号,还有 ‘’’ 和 “”": #!/usr/bin/python3# 第一个注释…...
vue2使用rtsp视频流接入海康威视摄像头(纯前端)
一.获取海康威视rtsp视频流 海康威视官方的RTSP最新取流格式如下: rtsp://用户名:密码IP:554/Streaming/Channels/101 用户名和密码 IP就是登陆摄像头时候的IP(笔者这里IP是192.168.1.210) 所以笔者的rtsp流地址就是rtsp://用户名:密码192.168.1.210:554/Streaming/Channel…...
利用PHP和GD库实现图片拼接的方法
利用PHP和GD库实现图片拼接的方法主要涉及到加载图片资源、创建目标画布、将图片资源绘制到目标画布上,并最终输出或保存拼接后的图片。以下是实现图片拼接的基本步骤: 加载图片资源: 使用imagecreatefromjpeg()、imagecreatefrompng()或ima…...
自动驾驶领域常用的软件与工具
CarSim:专门针对车辆动力学的仿真软件,能够预测和仿真汽车整车的操纵稳定性、制动性、平顺性、动力性和经济性。CarMaker:德国IPG公司推出的动力学、ADAS和自动驾驶仿真软件,提供精准的车辆本体模型和闭环仿真系统。VTD (Virtual …...
uniapp-内部项目使用文档
uniapp-内部项目使用文档 目录 uniapp-内部项目使用文档阶段1自行实现内容:阶段1问题记录: 阶段2自行实现内容: 阶段3 APP项目介绍及规范阶段4 公共组件方法UseList 列表页面HooksListItem 列表项uni-load-more 列表加载更多组件CardTitle 列…...
ASP .NET Core 中的环境变量
在本文中,我们将通过组织一场小型音乐会(当然是在代码中)来了解 ASP .NET Core 中的环境变量。让我们从创建项目开始: dotnet new web --name Concert 并更新Program.cs: // replace this: app.MapGet("/"…...
学科竞赛管理系统
文末获取源码和万字论文,制作不易,感谢点赞支持。 摘 要 随着国家教育体制的改革,全国各地举办的竞赛活动数目也是逐年增加,面对如此大的数目的竞赛信息,传统竞赛管理方式已经无法满足需求,为了提高效率&am…...
unity 让文字变形
效果: using TMPro; using UnityEngine; using NaughtyAttributes;[ExecuteInEditMode] public class TMTextPerpective : MonoBehaviour {[OnValueChanged("DoPerspective")][Range(-1f, 1f)]public float CenterBias 0f;[OnValueChanged("DoPers…...
Linux高并发服务器开发 第一天(Linux的目录结构 cd用法 终端提示符格式)
目录 1.命令解析器:shell 2.LINUX下的目录结构 3.cd的使用 3.1cd 绝对路径 3.2cd 相对路径 3.3cd 回车 3.4cd - 4. 终端提示符格式 1.命令解析器:shell 默认运行与计算机系统终端的 用来解析用户输入命令的工具 内核:操作系统的核…...
可造成敏感信息泄露!Spring Boot之Actuator信息泄露漏洞三种利用方式总结
1.介绍 Spring Boot是一个基于Spring的套件,它提供了一个即开即用的应用程序架构,可以简化Spring应用的创建及部署流程,帮助开发者更轻松快捷地构建出企业及应用。 Spring Boot项目中Actuator模块提供了众多HTTP接口端点(Endpoi…...
支持图像和视频理解多模态开源大模型:CogVLM2 CogVLM2-Video
CogVLM2和CogVLM2-Video是新一代的开源模型,支持图像和视频理解,具有显著的性能提升。最近发布的更新包括CogVLM2论文的发表、在线演示和对视频理解的支持,能够处理最多1分钟的视频。新模型支持中英文,文本长度可达8K,…...
ClouderaManager 集群搭建
前提:服务器之前做过域名映射、免密登录 ClouderaManager 集群 1. 组件分布规划 服务器服务器h1zk、hdfs(dn)、yarn(nm)、spark、kafka、flumeh2hdfs(nn-standy)、yarn(rm-active)、sparkh3hdfs(nn-active)、yarn(rm-standy)、hive、sparkh4zk、hdfs(dn)、yarn(n…...
Docker 搭建 gitlab 服务器卡顿问题解决方法(创建:swap分区)
Docker 安装系列 服务器搭建了一个 gitlab 服务器以供自己开发使用,服务器搭建很简单,但是使用起来是相当的卡顿,在代码 pull,push 过程中都会有相应的延迟。gitlab 启动运行就占用了大量的内存,4G内存在启动后已经所…...
PVE修改IP地址
一、在局域网的电脑浏览器输入PVE的IP地址登录后台,从左边的菜单找到“PVE”—“_Shell”菜单,进入网页版的ssh界面下;或者在主机的控制台下输入root密码后登录到ssh下; 二、输入以下命令回车: vi /etc/network/inter…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
【java】【服务器】线程上下文丢失 是指什么
目录 ■前言 ■正文开始 线程上下文的核心组成部分 为什么会出现上下文丢失? 直观示例说明 为什么上下文如此重要? 解决上下文丢失的关键 总结 ■如果我想在servlet中使用线程,代码应该如何实现 推荐方案:使用 ManagedE…...
6.计算机网络核心知识点精要手册
计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法:数据与控制信息的结构或格式,如同语言中的语法规则语义:控制信息的具体含义和响应方式,规定通信双方"说什么"同步:事件执行的顺序与时序…...
C++ Saucer 编写Windows桌面应用
文章目录 一、背景二、Saucer 简介核心特性典型应用场景 三、生成自己的项目四、以Win32项目方式构建Win32项目禁用最大化按钮 五、总结 一、背景 使用Saucer框架,开发Windows桌面应用,把一个html页面作为GUI设计放到Saucer里,隐藏掉运行时弹…...
rk3506上移植lvgl应用
本文档介绍如何在开发板上运行以及移植LVGL。 1. 移植准备 硬件环境:开发板及其配套屏幕 开发板镜像 主机环境:Ubuntu 22.04.5 2. LVGL启动 出厂系统默认配置了 LVGL,并且上电之后默认会启动 一个LVGL应用 。 LVGL 的启动脚本为/etc/init.d/pre_init/S00-lv_demo,…...
