【控制理论】矩形脉冲响应曲线法 Python 绘图

article/2025/11/10 18:31:01

前言

过程控制系统的学习中,测量一个被控对象的阶跃响应非常重要,因为根据阶跃响应曲线可以得到被控对象的许多非常重要的参数。而有一个非常重要的测量阶跃响应曲线的方法是矩形脉冲响应曲线法。在学习的过程中,我走了一些弯路,便在这里把自己的学习经验分享给大家。

本文主要包含以下几个内容:

  • 矩形脉冲响应曲线的定义;
  • 矩形脉冲响应曲线和阶跃响应曲线之间的关系及绘制阶跃响应曲线;
  • 使用 Python 完成阶跃响应曲线的绘制。

本文主要参考书籍为:李国勇.《过程控制系统》(第3版). 北京. 电子工业出版社. 2017

下面,我们正式开始👇


一、矩形脉冲响应曲线的定义

矩形脉冲响应曲线的定义:用矩形脉冲输入代替通常的阶跃输入,即大幅度的阶跃扰动施加一小段时间之后立即将它切除。这样得到的矩形脉冲响应不同于正规的阶跃响应,但两者之间关系密切,可以用矩形脉冲响应曲线求取对应的阶跃响应曲线。

用矩形脉冲响应曲线的原因:为防止被控量变化超过允许范围,生产实际不允许有较长时间和较大幅度的输入变化。这时可用矩形脉冲信号作为过程的输入信号,测出过程的矩形脉冲响应曲线(阶跃响应曲线由于测试时间较长而不合适),转化为阶跃响应曲线对参数估计。


二、绘制阶跃响应曲线

4829l8.png
变换方法:输出响应可看作由两个时间相差 t 0 t_0 t0、极性相反、形状完全相同的阶跃响应的叠加而成。所以: y 2 ( t ) = y 1 ( t − t 0 ) y_2(t)=y_1(t-t_0) y2(t)=y1(tt0) y ( t ) = y 1 ( t ) + y 2 ( t ) = y 1 ( t ) − y 1 ( t − t 0 ) y(t)=y_1(t)+y_2(t)=y_1(t)-y_1(t-t_0) y(t)=y1(t)+y2(t)=y1(t)y1(tt0) y 1 ( t ) = y ( t ) + y 1 ( t − t 0 ) y_1(t)=y(t)+y_1(t-t_0) y1(t)=y(t)+y1(tt0),其中 y 1 ( t ) y_1(t) y1(t) 为阶跃响应值, y ( t ) y(t) y(t) 为矩形脉冲响应值。

注意

  • 并不是一直叠加即可,一直叠加只是采样时间和脉冲时长相等时的特殊情况。
  • 由于变换方法的限制,采样的时间点一定是等间隔的。

例题:已知某一液位对象,其矩形脉冲相应的实验数据如下:

t/s01020406080100120140160180
h/cm000.20.61.21.61.82.01.91.71.6
t/s200220240260280300320340360380400
h/cm1.00.80.70.650.60.50.40.30.20.150.1

已知矩形脉冲赋值 Δ u ( t ) = 20 % \Delta u(t)=20\% Δu(t)=20% 阀门开度变化,脉冲宽度 Δ t = 20 s \Delta t=20s Δt=20s,试将矩形脉冲响应转化为阶跃响应。

解答:找到 20 s 20s 20s 点,其实际值为 2.0 + 0 2.0+0 2.0+0 20 s 20s 20s 之前的均为阶跃响应的值,之后的就是矩形脉冲响应值。所以 y 1 ( 40 ) = y ( 40 ) + y 1 ( 40 − 20 ) y_1(40)=y(40)+y_1(40-20) y1(40)=y(40)+y1(4020),即 y 1 ( 40 ) = 0.6 + 0.2 = 0.8 y_1(40)=0.6+0.2=0.8 y1(40)=0.6+0.2=0.8。之后依次计算,即可得到最终的阶跃响应曲线的值。


三、编程绘制阶跃响应曲线

1、流程图

请添加图片描述

2、Python

使用较为常用的 Python 进行编程实现,使用 Numpy、Matplotlib 两个常用库。

源码如下:

import numpy as np
import matplotlib.pyplot as plt# 初始化
t0 = 20
t1 = 20
n = int(t0 / t1)
y = np.array([0, 0.2, 0.6, 1.2, 1.6, 1.8, 2.0, 1.9, 1.7, 1.6, 1,0.8, 0.7, 0.7, 0.6, 0.6, 0.4, 0.2, 0.2, 0.15, 0.15])
x = np.linspace(start=0, stop=400, num=y.size)
y1 = np.zeros([y.size])# 找阶跃响应消失点
# 消失点之前直接赋值
y1[0:n] = y[0:n]
# print(y1)# 消失点之后加间隔数
index = 0
while index <= (y.size - n - 1):y1[n + index] = y1[index] + y[n + index]index += 1# 绘图
plot = plt.plot(x, y1)
plt.show()

3、结果

请添加图片描述

总结

本文先介绍了矩形脉冲响应曲线的定义,后分析了使用矩形脉冲响应曲线的原因。之后讲解了如何将矩形脉冲响应曲线转换为阶跃响应曲线,并提供了 Python 的程序绘制阶跃响应曲线。


http://chatgpt.dhexx.cn/article/ShDJ9hmb.shtml

相关文章

【视频】向量自回归VAR数学原理及R软件经济数据脉冲响应分析实例

最近我们被客户要求撰写关于向量自回归VAR的研究报告&#xff0c;包括一些图形和统计输出。 向量自回归 (VAR) 是一种用于多变量时间序列分析的统计模型&#xff0c;尤其是在变量具有相互影响关系的时间序列中&#xff0c;本视频中我们介绍了向量自回归并在R软件中进行实现。…

用脉冲响应不变法设计IIR 滤波器 MATLAB实现

一、实验目的 1&#xff0e; 掌握脉冲响应不变法设计IIR 数字滤波器的原理及具体设计方法。 2&#xff0e; 观察用脉冲响应不变法设计的滤波器的时域特性和频域特性&#xff0c;比较所设计的数 字滤波器的和相应模拟滤波器的频域特性&#xff0c;观察脉冲响应不变法设计中产生的…

非参数模型辨识:脉冲响应曲线

1.1 问题描述 1.2 方法思路 首先根据系统脉冲响应函数G(t)计算出51(0-50)个真值数据G,再利用以下公式产生550组带噪声的仿真数据。 最后利用上述仿真矩阵构造相应的数据矩阵&#xff0c;再用最小二乘法求解系统的脉冲响应估计值&#xff0c;其构造公式如下所示。 1.3 实验…

R语言VAR模型的不同类型的脉冲响应分析

目录 模型与数据 估算值 预测误差脉冲响应 识别问题 正交脉冲响应 结构脉冲反应 广义脉冲响应 参考文献 最近我们被客户要求撰写关于脉冲响应分析的研究报告&#xff0c;包括一些图形和统计输出。脉冲响应分析是采用向量自回归模型的计量经济学分析中的重要一步。它们的…

R语言用向量自回归(VAR)进行经济数据脉冲响应研究分析

自从Sims&#xff08;1980&#xff09;发表开创性的论文以来&#xff0c;向量自回归模型已经成为宏观经济研究中的关键工具。最近我们被客户要求撰写关于向量自回归&#xff08;VAR&#xff09;的研究报告&#xff0c;包括一些图形和统计输出。这篇文章介绍了VAR分析的基本概念…

matlab单位阶跃响应与单位脉冲响应,python 已知响应函数求单位阶跃响应或脉冲响应...

最近学习自动控制原理,关于控制系统的一些,老师用布置了一些作业说要用matlab画,我试试python 首先介绍一下所使用的库:control matplotlib sympy 1.control库:用来计算脉冲响应与阶跃响应 Paste_Image.png 2.sympy:用以化简多项式为和的形式方便写参数 比如我们使用 sym…

使用扫频信号测量房间脉冲响应

使用指数扫频正弦信号&#xff0c;信号生成方法如下&#xff1a; 其中: &#xff0c;是扫频信号的起始频率和结束频率 是扫频信号的时长 是扫频率 逆信号是通过缩放时间翻转的信号计算&#xff0c;计算方法如下&#xff1a; 其中 信号的脉冲响应 扫频信号、逆信号、IR&#xf…

matlab一直系统函数画脉冲响应,【 MATLAB 】使用 impz 函数计算并画出脉冲响应

这篇博文在于讨论 impz 函数的使用。 我在 MATLAB 中查看 impz 的帮助文档时,始终看的不是太明白这个函数的使用,于是我根据一个例子,对这个函数做了一点分析,解决了一些我的疑惑,记录于此。 帮助文档上对这个函数的概括是数字滤波器的脉冲响应。 所谓的数字滤波器不就是一…

相关分析法辨识系统脉冲响应

背景介绍 在实际工程中&#xff0c;由于系统的测量都是载噪的&#xff0c;而且噪声对观测数据的影响常常达到不可忽略的地步&#xff0c;因此当噪声影响足以使得要求的精度不足时&#xff0c;就必须考虑噪声的影响。实际中&#xff0c;系统噪声存在各种难以精确描述的因素&…

脉冲响应

使用MATLAB中的系统建模工具对热风枪Chirp激励和输出数据建立三阶模型&#xff0c;并输出该模型的离散系统传递函数&#xff1a;tf2 。 基于Chirp信号激励下系统数据数据建模响应曲线 在MATLAB中显示 tf2 的数据。可以得到该离散时间系统函数有理多项式对应的分子和分母的系…

使用Stata做脉冲响应分析

Source: Rizaudin Sahlan → Impulse Response Function with Stata (time series) 在这篇推文中&#xff0c;我们讨论 VAR 模型中的脉冲响应函数(IRFs)。 脉冲响应函数反映了当 VAR 模型某个变量受到"外生冲击"时&#xff0c;模型中其他变量受到的动态影响。我们会…

matlab 单位脉冲响应,滤波器系数、单位脉冲响应、频率响应等概念笔记

单位脉冲响应&#xff1a;单位脉冲和滤波器系数的卷积。 对于FIR滤波器来说&#xff0c;单位脉冲响应就是滤波器系数。对于IIR滤波器&#xff0c;应该是需要用matlab中的filter函数&#xff0c;得到单位脉冲响应。 频率响应&#xff1a;幅度和相位随频率的变化关系。具体地&…

单位脉冲(冲激)响应与频率响应

1.线性时不变系统 &#xff08;1&#xff09;线性系统&#xff1a;满足可加性和比例性&#xff08;齐次性&#xff09;的系统。 令y(t)为系统对输入x(t)的响应&#xff1a; 比例性&#xff1a;ay(t)为该系统对ax(t)的响应&#xff0c;其中a为复常数。 可加性&#xff1a;为…

房间脉冲响应测量与模拟方法

本文是作者投稿到“21dB声学人”公众号的文章&#xff0c;现经有允许转载到自己的博客&#xff0c;技术交流可以联系593170280qq.com 房间脉冲响应&#xff08;Room Impulse Response, RIR&#xff09;表征了房间系统的系统响应&#xff0c;可以用于房间均衡和计算房间声学参数…

时间序列分析(12)| 脉冲响应函数、格兰杰因果检验

上篇介绍到&#xff0c;VAR模型研究的是多个时间序列变量之间的相互影响关系&#xff0c;但是模型估计出的参数结果及其显著水平似乎并不能直观地反映这种影响关系&#xff0c;而要想直观地呈现这种关系&#xff0c;就需要使用本篇介绍的「脉冲响应函数」&#xff08;impulse r…

鸢尾花数据集可视化

Iris数据集 Iris数据集包含有四个属性一个标签 四个属性分别是 花萼&#xff08;Sepall&#xff09;长度花萼宽度花瓣(Petal)长度花瓣宽度 一个标签&#xff0c;用来说明是哪一种鸢尾花 山鸢尾(Setosa)变色鸢尾(versicolor)维吉尼亚鸢尾(virginica) 目标 任意两个不同的…

鸢尾花数据集分类--神经网络

1.1 鸢尾花数据集介绍 iris数据集是用来给莺尾花做分类的数据集&#xff0c;每个样本包含了花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征&#xff0c;我们需要建立一个分类器&#xff0c;该分类器可通过样本的四个特征来来判断样本属于山鸢尾&#xff08;Setosa&#xff0…

机器学习鸢尾花数据集分析

目录 1 sklearn数据集的使用2 sklearn数据集返回值介绍3 查看数据分布4 数据集的划分5 总结 1 sklearn数据集的使用 鸢尾属&#xff08;拉丁学名&#xff1a;Iris L.&#xff09;是单子叶植物纲&#xff0c;鸢尾科多年生草本植物&#xff0c;有块茎或匍匐状根茎&#xff1b;叶…

决策树可视化:鸢尾花数据集分类(附代码数据集)

决策树 数据集实战可视化评价 决策树是什么&#xff1f;决策树(decision tree)是一种基本的分类与回归方法。举个通俗易懂的例子&#xff0c;流程图就是一种决策树。 有没有车&#xff0c;没车的话有没有房&#xff0c;没房的话有没有存款&#xff0c;没存款pass。这个流程就是…

机器学习算法:基于鸢尾花(iris)数据集的数据可视化 (200+收藏)

文章目录 基于鸢尾花(iris)数据集的数据可视化1、数据导入2、查看样本数据3、特征与标签组合的散点可视化3.1、 散点图3.2、 箱型图3.2、 三维散点图想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 干货推送,微信随时解答你的疑问 😃😃😃 基于…