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

【机器人】振动分析和控制工具之Bode图

Bode 图完整介绍

Bode 图由两个部分组成:

  1. 幅值图 (Magnitude Plot):描述系统对不同频率输入信号的增益大小(幅值响应)。
  2. 相位图 (Phase Plot):描述系统输出信号相对于输入信号的相位差。

Bode 图的横轴是频率,以对数刻度显示(单位:rad/s)。纵轴则分别显示幅值(以分贝 dBdB 为单位)和相位(以角度为单位)。


相位图的完整解释

什么是相位图

相位图表示系统输出信号相对于输入信号的相位差,反映了信号的延迟或超前行为。相位的单位是角度(°),常见的范围是 [−360°,0°][-360°, 0°] 或 [−180°,180°][-180°, 180°]。

相位图的特征
  1. 低频段

    • 在低频区域(频率接近 0),系统的相位通常接近 0° 或一个稳定值。
    • 表明此时系统几乎没有延迟,输出信号能较好地跟随输入信号。
  2. 中频段

    • 随着频率增加,相位开始下降。
    • 如果系统包含极点或零点,会导致相位快速变化,这通常对应于系统的特征频率(如谐振频率)。
  3. 高频段

    • 在高频区域,相位趋于一个负的稳定值(如 −90°-90°、−180°-180° 等),反映出系统对高频信号具有较大的延迟。
实际意义
  1. 信号延迟和超前

    • 相位的正值表示信号超前,负值表示信号延迟。
    • 控制系统中,如果相位延迟过大,可能导致系统不稳定。
  2. 系统动态行为

    • 相位的变化率和方向反映了系统在不同频率下的动态性能。例如,相位快速变化的区域可能是谐振频率或系统的重要特征点。
  3. 稳定性分析

    • 结合幅值图,可以计算增益裕度和相位裕度,判断闭环系统是否稳定。

幅值图的完整解释

什么是幅值图

幅值图描述系统对不同频率输入信号的放大或衰减程度。幅值通常以分贝 dBdB 为单位,其公式为:

其中 H(jω) 是系统的频率响应。

幅值图的特征
  1. 低频段

    • 在低频区域(频率接近 0),幅值通常较高,表示系统能很好地通过低频信号。
    • 如果系统是稳定的低通滤波器,此时幅值接近直流增益值(例如 0 dB 或其他值)。
  2. 中频段

    • 中频区域的幅值可能会出现一个峰值(如果系统存在谐振)。
    • 谐振频率对应幅值最大的位置。谐振频率由系统的阻尼比和自然频率决定。
  3. 高频段

    • 在高频区域,幅值通常下降,以一个固定的斜率递减(例如 -20 dB/decade 或 -40 dB/decade)。
    • 反映出系统对高频信号的衰减特性。
实际意义
  1. 频率选择性

    • 幅值图显示系统对不同频率信号的放大或衰减能力。通过观察幅值图,可以判断系统是低通、高通、带通还是带阻滤波器。
  2. 增益分析

    • 控制系统中,幅值图用于确定增益裕度,确保系统在反馈时的稳定性。
  3. 噪声抑制

    • 对高频噪声的衰减程度可通过高频段的幅值特性分析。
  4. 动态范围

    • 幅值图可以帮助理解系统能处理的最大和最小信号幅度范围。

结合相位图和幅值图的整体意义

  1. 系统特征频率

    • 幅值图中谐振峰值对应的频率,通常会在相位图中表现为相位快速变化的点。这些频率是系统的特征频率。
  2. 稳定性判断

    • 使用幅值图和相位图可以计算系统的增益裕度和相位裕度,判断闭环系统的稳定性。
    • 增益裕度:当相位为 -180° 时,幅值距离 0 dB 的距离。
    • 相位裕度:当幅值为 0 dB 时,相位距离 -180° 的距离。
  3. 滤波性能

    • 幅值图显示系统对不同频率信号的处理能力,相位图则补充了延迟和动态行为的分析。

总结

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:

  1. 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.
  2. Frequency Range:

    • A logarithmic frequency range (logspace) is chosen to visualize behavior over multiple orders of magnitude.
  3. Bode Plot:

    • signal.bode computes the magnitude (in dB) and phase (in degrees) for the specified frequency range.
  4. Visualization:

    • Two subplots: one for magnitude and one for phase.
    • semilogx is used for a logarithmic x-axis to match standard Bode plot conventions.
  5. Customization:

    • Grid lines (grid) improve readability.
    • tight_layout ensures that the labels and titles don't overlap.

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…...

智能合约的离线签名(EIP712协议)解决方案

引言:本文由天玄链开源开发者提供,欢迎报名公益天玄链训练营 https://blockchain.163.com/trainingCamp 一、解决核心问题 项目方不支付gas费,由用户自己发起交易,用户支付gas费。用户的数据保存在链下服务器中,tok…...

大模型Qwen面试内容整理-应用场景与案例分析

Qwen模型凭借其强大的自然语言理解和生成能力,在多个实际应用场景中得到了广泛应用。以下是Qwen模型的主要应用场景及一些典型的案例分析,展示了它如何解决具体问题和带来实际价值。 智能对话系统 ● 应用场景 ○ 客服机器人:Qwen被用于开发智能客服机器人,能够理解客户的问…...

spring boot的统一异常处理,使用@RestControllerAdvice

RestControllerAdvice 是 Spring Boot 中用于全局异常处理的注解,它结合了 ControllerAdvice 和 ResponseBody 的功能。这意味着使用 RestControllerAdvice 注解的类将应用于所有 RequestMapping 方法,并且任何从这些方法返回的对象都会被转换为 HTTP 响…...

OFCA-OpenHarmony课后习题答案

本文是 OFCA-OpenHarmony 认证模拟考试的习题答案,涵盖 OpenHarmony 的多内核设计、权限申请、通知发布、系统线程、启动过程、分布式软总线、模块导入、文件管理、公共事件等多个方面。每道题目均提供了详细的选择项和正确答案,旨在帮助考生熟悉考试内容…...

Open AI 推出 ChatGPT Pro

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

利用PHP和GD库实现图片切割

利用PHP和GD库实现图片切割的详细步骤如下: 一、检查GD库是否安装 确保服务器上已经安装了PHP和GD库。可以使用phpinfo()函数来检查GD库是否已经安装和启用。 二、加载原始图片 使用PHP提供的imagecreatefromjpeg()、imagecreatefrompng()或imagecreatefromgif(…...

【css】基础(一)

本专栏内容为:前端专栏 记录学习前端,分为若干个子专栏,html js css vue等 💓博主csdn个人主页:小小unicorn ⏩专栏分类:css专栏 🚚代码仓库:小小unicorn的代码仓库🚚 &a…...

springboot415社区网格化管理平台的构建-(论文+源码)_kaic

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本社区网格化管理平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…...

如何在 Ubuntu 上安装开源监控工具 Uptime Kuma

简介 Uptime Kuma(或简称 Kuma)是一个开源监控工具,用于监控 HTTP、HTTPS、DNS 等协议的服务。Uptime Kuma 提供多种功能,如多语言支持、多个状态页面、代理支持等。 接下来,我将一步一步教大家如何进行安装和部署&am…...

复习 part one

synchronized 和 ReentrantLock的区别 synchronized 和 ReentrantLock 都是 Java 中提供的可重入锁,二者的主要区别有以下 5 个: 用法不同:synchronized 可以用来修饰普通方法、静态方法和代码块,而 ReentrantLock 只能用于代码块…...

企业所得税2020最新/深圳seo优化电话

直接取value即可。 refurl:http://bbs.csdn.net/topics/300110528...

广州响应网站建设/在线网页制作系统搭建

首先说一下, href属性 和 onclick事件 的执行顺序,当鼠标点击a标签的时候会先执行 onclick事件, 然后才是 href 属性下的动作(页面跳转,或 javascript 伪链接),如果不想执行href 属性下的动作执行,onclick …...

阿里巴巴企业网站怎么做/sem分析

贵州2019年3月全国计算机四级考试报名入口已开通,报名时间为2018年12月18日00:00至12月28日24:00,考生可登录全国计算机等级考试贵州信息网(http://210.40.13.97/)进行报名。根据《贵州省2019年3月全国计算机等级考试报名通知》得知&#xff…...

广东万高建设网站/哪家建设公司网站

您将在本节继续团队介绍页面的制作,为另一个团队成员制作动画展示效果。首先使用键盘上的快捷键,复制当前幻灯片。 选择此处的椭圆图片。 在视图比例滑杆上点击,缩小幻灯片的显示比例。 按下键盘上的shift键。 在按下该键的同时,点击此处以同时选择多个对象。 向左侧拖…...

济南做网站个人/商丘seo博客

[通讯]如何设置集团电话的等级? (集团电话的具体型号忘了汗 好像是 180I )客户要求分机号为826的电话 可以打出国际长途和国内长途,原来只可以打市话。注明一点,这里的编程必须使用专用话机才可以第一步首先按“转换”键,输入800(设定编程代码),再输入…...

盱眙有做网站开发的吗/如何建立自己的网站

forin的原理forin语句是JDK5版本的新特性,在此之前,遍历数组或集合的方法有两种:通过下标遍历和通过迭代器遍历。先举个例子:Testpublic void demo() {String arr[] { "abc", "def", "opq" };for …...