瞬态响应分析

2023-10-08 00:40
文章标签 响应分析 瞬态

本文主要是介绍瞬态响应分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇文章介绍当输入为时域输入时获得系统响应的MATLAB方法,这些时域输入可以是阶跃 函数、冲激函数或斜坡函数。同时作出推广,讨论系统对初始条件和任意时间函数的响应。

目录

阶跃响应

标准二阶系统的MATLAB描述

 阶跃响应

 线性系统的MATLAB表达式

冲激响应

冲激函数

 获得冲激响应的另一种方法

 斜坡响应

在状态空间中定义的系统的单位斜坡响应。

对任意输入的响应

获得对任意输入的响应。

 对任意初始条件的响应

​​​​  拉普拉斯变换方法

对初始条件的响应(状态空间方法,第一种情况)。

对初始条件的响应(状态空间方法,第二种情况)。 

采用命令initial求对初始条件的响应。


阶跃响应

标准二阶系统的MATLAB描述

如下形式的二阶系统

G(s)=\frac{w_{n}^{^{2}}}{s^{2}+2\zeta w_{n}s+w_{n}^{2}}

称为标准二阶系统。给定w_{n}\zeta后,命令

printsys(num,den)或者 printsys(num,den,'s')

会将num/den显示成s的多项式。

使用ord2命令来能够生成二阶系统,但分子部分没有常数的平方,形如:

举例来说,现在考虑% = 5 rad/s和,=0.4的情况。

>> wn = 5;
>> damping_ratio = 0.4; 
>> [num0,den] = ord2(wn,damping_ratio)
num0 =1
den =1     4    25
>> num = 5^2*(num0)
num =25
>> printsys(num,den,'x') 
num/den =  25--------------x^2 + 4 x + 25

 阶跃响应

如果已知numden(传递函数的分子和分母),就可以用

sys = tf(num,den)

来定义该系统。然后,采用

step(sys)或者 step(num,den)

这类命令来产生单位阶跃响应的图形,并在屏幕上显示一条响应曲线。计算的时间间隔和响应时间的长度由MATLAB确定。

如果希望MATLAB每隔秒计算一次响应值,而且画出0 WtWT的响应曲线(其中7'是 At的整数倍),就可以在程序中输入语句

t = 0:\Delta t:T;

然后采用命令

step(sys,t)step(num,den,t)

其中的t就是用户指定的时间。

如果step命令具有左端参数,例如

y = step(sys,t)或者 y = step(num,den,t)

[y,t] = step(sys,t)或者[y,t] = step(num,den,t)

那么MATLAB会产生该系统的阶跃响应,但是不在屏幕上显示图形。为了观察响应曲线,必 须再采用plot命令。

>> num=25num =25>> den=[1 4 25]den =1     4    25>> sys = tf(num,den)sys =25--------------s^2 + 4 s + 25Continuous-time transfer function.>> step(sys)

执行>> step(sys)后,会显示图像。

定义时间间隔:

>> t=0:0.1:2;
>> step(sys,t)

 

发现曲线是不光滑的,说明MATLAB每隔\Delta t后计算一次响应值。

 需要求得输出值时:

>> [y,t] = step(sys,t)y =00.10770.35990.65820.92711.12211.22811.25321.21891.15171.07611.01000.96370.94000.93620.94650.96430.98330.99951.01041.0156t =00.10000.20000.30000.40000.50000.60000.70000.80000.90001.00001.10001.20001.30001.40001.50001.60001.70001.80001.90002.0000>> plot(t,y)

 线性系统的MATLAB表达式

当二阶系统不是标准二阶系统时,系统的传递函数采用两个数组表示即可。

对于以状态空间形式定义的控制系统,如果已知状态方程的状态矩阵A控制矩阵B输 出矩阵C和直接传输矩阵D,那么

step(A,B,C,D)

会产生单位阶跃响应的图形。当step命令中没有明确包含t时,时间向量会自动确定。 值的注意的是,命令step(sys)可用来获得系统的单位阶跃响应。首先要通过 sys = tf(num,den)或者

sys = ss(A,B,C,D) 来定义系统。然后,为了获得单位阶跃响应,可以输入 step(sys)

step命令具有左端参数时例如

[y,x,t] = step(num,den,t)

[y,x,t] = step(A,B,C,D,iu) 

[y,x,t] = step(A,B,C,D,iu,t)

这时屏幕上不会显示图形。所以,必须还要采用某个绘图命令来观察响应曲线。矩阵yx 分别包含在计算时间点t求得的系统输出和状态响应(y的列数和输出数目相同,t中的每个元 素对应y的一行;X的列数和状态数目相同,t中的每个元素对应X的一行)。

其中x,y指的是系统

\dot{x}=Ax+Bu

y=Cx+Du

中的x,y。 

回顾一下:

状态空间到传递函数的变换。
为了从状态空间方程获得传递函数,可以采用命令

[num,den] = ss2tf(A,B,C,D,iu)

对于输入量多于1个的系统必须指定iu。例如,如果该系统具有3个输入(“u1, u2,u3),那么 iu必须是1,2或3,其中1表示u1, 2表示u2, 3表示u3。

冲激响应

冲激函数

冲激输入。当机械系统在很短的时间内受到很大的力时,例如当弹簧-质量-阻尼器系统 被榔头或子弹打击时,可以观察到系统的冲激响应。从数学意义上讲,这种冲激输入可以表示 为冲激函数。

冲激函数是没有任何实际物理对应物的数学函数。但是,如图3.28(a)所示,如果实际输 入持续很短的时间(A秒),但具有很大幅值(方),以至于时间图形中的区域。Af)不可忽略, 就可以用冲激函数来近似。如图3.28(b)所示,冲激函数通常用一个垂直箭头来表示它具有 很短的持续时间和很大的高度。

 

在处理冲激函数时,重要的只是函数的幅值(或区域),它的实际形状并不重要。换句话 说,幅值为2奴持续时间为At/2的冲激函数被认为和幅值为奴持续时间为At的冲激函数相 同,只要也趋于是有限值即可。

控制系统的单位冲激响应可以采用下述MATLAB命令中的一条命令来求取:

impulse(num,den)impulse(sys)

impulse(A,B,C,D)

impulse(num,den,t)impulse(sys,t)

y = impulse(num,den) y = impulse(sys)

[y,t] = impulse(num,den,t) [y,t] = impulse(sys,t)

[y,x,t] = impulse(num,den)

[y,x,t] = impulse(num,den,t)

[y,x,t] = impulse(A,B,C,D)

[y,x,t] = impulse(A,B,C,D,iu)

[y,x,t] = impulse(A,B,C,D,iu,t)

其具体用法用前面提到的阶跃函数具体用法一样.

求如下系统的单位冲激响应:

\frac{C(s)}{R(s)}=G(s)=\frac{1}{s^2+0.2s+1}

>> num = [1];
>> den = [1 0.2 1];
>> impulse(num,den);
>> grid
>> title('Unit-lmpulse Response of G(s) = 1/(s^2 + 0.2s + 1)')

 获得冲激响应的另一种方法

我们知道,当初始条件为0时,G(s)的单位冲激响应与sG(s)的 单位阶跃响应相同。s为微分因子。

对单位冲激输入而言,由于R(s) =1,所以有

\frac{C(s)}{R(s)}=C(s)=G(s)=\frac{1}{s^2+0.2s+1}=\frac{s}{s^2+0.2s+1}\frac{1}{s}

于是,可以将G(s)的单位冲激响应转化为sG(s)的单位阶跃响应。

>> num = [1 0];
>> den = [1 0.2 1];
>> impulse(num,den)

采用阶跃函数命令求系统的冲激响应

>> num=[1 0];
>> den=[1 0.2 1];
>> step(num,den);
>> grid
>> title('Unit-step Response of sG(s)=s/(s^2+0.2s+1)')
>> 

 

 显然,这两种方式求得的图像是相同的。

 斜坡响应

MATLAB中没有关于斜坡响应的命令。所以必须采用step命令或Isim命令(见下文) 来获得斜坡响应。具体地讲,要得到传递函数系统G(s)在零初始条件下的斜坡响应,可以将 G(s)除以s,再采用阶跃响应命令。

对单位斜坡输入,由于R(s) =1/s^2,所以

C(s)=\frac{1}{s^2+s+1}\frac{1}{s^2}=\frac{1}{(s^2+s+1)s}\frac{1}{s}

其求解方法与上文中 获得冲激响应的另一种方法相同。 

在状态空间中定义的系统的单位斜坡响应。

 对以状态空间形式表示的系统,可以按照如 下方式获得单位斜坡响应。设系统的定义如下:

x = Ax + Bu

y = Cx + Du

其中u是单位斜坡函数。假设初始条件为零。

 问题求解的核心是:

当初始条件为零时,单位斜坡响应是单位阶跃响应的积分。所以,单位斜坡响应可以表示为

z=\int_{0}^{t}ydt

根据这个关系,建立新的状态空间表达式。 

对任意输入的响应

获得对任意输入的响应。

为了求得时不变系统对任意输入的响应,可以使用lsim命令。 下述命令:

lsim(num,den,u,t), 

lsim(sys,u,t),

y = lsim(A,B,C,D,u,t),

[y,t] = lsim(sys,u,t)

lsim(A,B,C,D,u,t)

y = lsim(num,den,u,t)

y = lsim(sys,u,t)

在初始条件为零时会产生对 输入时间函数 u的响应。如果t由下式给定: t = 0: \Delta t: T

则从\Delta t=0开始到t=T结束的区间内,每隔\Delta t秒计算一次响应,其中T是t的正整数倍。值得注意的是,带有左端参数的如下命令:

y = lsim(sys,u,t)

会返回输出响应y矩阵y的各列是输出,它的行数等于t的长度。但它不绘制图形,要绘制响应曲线,必须再使用命令plot(t, y)。

如果状态空间模型的初始条件不为零,那么命令

lsim(sys,u,t,x0)

会生成系统对输入u和初始条件x0的响应,其中x0是初始状态。

 还要注意的是,命令

Isim(sys1, sys2,..., u,t)

可以在同一幅图中绘制多个系统(sysl, sys2,...)的响应。

采用Isim命令求如下系统的单位斜坡响应:

即求对任意输入的响应,即将其时间信号的表达式赋给r,如r=t;

num = [1];
den = [1 1 1];
t = 0:0.1:8;
r = t;
y = lsim(num,den,r,t);
>> plot(t,r,'-',t,y,'o')
>> grid
title('Unit-Ramp Response Obtained by Use of Command "isim1"')
xlabel('t Sec')
ylabel('Unit-Ramp Input and System Output')
>> text(2.1,4.65,'Unit-Ramp Input')
>> text(4.5,2.0,'Output')

 绘制的曲线为:

 对任意初始条件的响应

​​​​  拉普拉斯变换方法

我们直接看一道例题:

 即根据传递函数的定义、初始条件等,改写方程来求解。

对初始条件的响应(状态空间方法,第一种情况)。

对初始条件的响应(状态空间方法,第二种情况)。 

这两种状态空间方法的情况即将系统在给定初始条件下的响应转换为求新的系统的阶跃响应。

原先的系统为:

\dot{x}=Axx(0)=x_{0}

新的系统为:

 \dot{z}=Az+Bu

x=Az+Bu

其中 B=x(0),u=1(t)

采用命令initial求对初始条件的响应。

如果系统以状态空间形式给出,那么命令
                                                        initial(A,B,C,D,[initial condition],t)

会生成对该初始条件的响应。

[initial condition]规定了x(0)的初始条件,见下面例题。

 注意前提条件:假设不存在外力函数,即求的是零输入响应。

>> t = 0:0.05:10;
>> A = [0 1 0;0 0 1;-10 -17 -8];
>> B = [0;0;0];
>> C=[1 0 0];
>> D=[0];
>> y=initial(A,B,C,D,[2;1;0.5],t);
>> plot(t,y)
>> grid
>> title('Response to Initial Condition')
>> xlabel('t(sec)')
>> ylabel('Output y')

我是小韩每天进步一点点,一名研0的研究生,刚开始写博客。希望和大家多多交流,一起进步!

求朋友点赞、收藏、关注哈,鼓励一下新人博主,或者提出建议。

这篇关于瞬态响应分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/161516

相关文章

智能优化算法:瞬态搜索优化算法 -附代码

智能优化算法:瞬态搜索优化算法 文章目录 智能优化算法:瞬态搜索优化算法1.算法原理2.算法结果3.参考文献4.Matlab代码 摘要:瞬态搜索优化算法(Transient search optimization (TSO))是于2020年提出的,一种新的基于物理的启发式优化算法。该算法的灵感来自于包含电感和电容等存储元件的开关电路的瞬态行为。 1.算法原理 该算法的灵感

基于优化Morlet小波的一维信号瞬态特征提取方法(MATLAB R2018A)

小波分析方法近些年逐步得到发展的一门数学分析技术,它对许多学科都有十分重要的影响。与傅立叶变换等其他传统方法相比,小波分解的方法中所用的小波基有着多种多样的结构,总结来说又包括正交小波系与非正交小波系。正交小波在信号处理领域目前有着最多的应用,如Haar小波、Daubechies小波系等。非正交小波这些年来也逐步得到发展和应用,最具有代表性之一的就是Morlet小波。 1988年S.Mallat

鼓式瞬态成型机 XLN Audio DS-10 Drum Shaper 1.0.5 WiN-MAC

XLN Audio DS-10 Drum Shaper 1.0.5 WiN-MAC | 60M 鼓式瞬态成型机 XLN Audio在软件开发和鼓录制方面拥有10年的经验。所有这些专业知识已被精炼成功能强大且简单的DS-10鼓式成型机。DS-10是新Addictive FX系列中的第一个插件,可让您轻松地在鼓混音中拨入适量的力度。 3种模式-全部针对鼓混合进行了优化 DS-10鼓整形器具

ESD5304D-10/TRDFN2510-10LWILLSEMI韦尔4线路单向超低电容瞬态电压抑制器ESD5304D-MSDFN2510MSKSEMITPESD5304D-10TECHPUBLI

ESD5304D-10/TRDFN2510-10LWILLSEMI韦尔4线路单向超低电容瞬态电压抑制器    4线,单向,超低电容瞬态电压抑制器 描述 ESD5304D是一种超低电容TVS(瞬态电压抑制器)阵列,用于保护高速数据接口。它专门设计用于保护连接到数据和传输线的敏感电子元件免受ESD(静电放电)引起的过度应力。 ESD5304D包含四对超低电容转向

SELC03CI、SELC05CI、SELC08CI、SELC12CI、SELC15CI、SELC18CI、SELC24CI、超低电容瞬态电压抑制器阵列SOD-323封装结电容1PF

SELCxxCI系列是超低电容瞬态电压抑制器阵列 SELC03CI系列是超低电容瞬态电压抑制器阵列,设计用于保护便携式电子设备和智能手机等应用。 该系列的额定功率为350瓦,适用于8/20μs波形。SELC03CI系列符合IEC 61000-4-2(ESD)和IEC 61000-4-4(EFT)要求。 在更高的工作频率或更快的边缘速率下,插入损耗和信号完整性是一个主要问题。这个系列提供了超低

6.5V/1.5A线性稳压器负载瞬态响应快可调输出电压

概述 PCD3932 是一款低噪声、低压差线性稳压器 (LDO),可提供 1.5A 输出电流,最大压降仅为 160mV。该器件提供两种输出电压范围。 PCD3932 的输出电压可通过外部电阻分压器在 0.5V 至 5.5V 范围内进行调节。PCD3932 集低噪声、高 PSRR 和高输出电流能力等特性于一体,非常适合为高速通信、视频、医疗或测试和测量应用等噪声敏感型组件供电。 PCD3932 高

(负载点电源)18V/2A同步降压芯片快速瞬态响应逐周期限流保护

1. 产品特性 ➢ 输入电压范围: 4.5V~18V ➢ 最大负载: 2A ➢ 内部 PWM 控制器以达到快速瞬时响应 ➢ 软启保护时间 tss: 1ms ➢ 逐周期限流保护 ➢ 内部补偿 ➢ 可调的输入欠压锁定 ➢ 短路保护,过温保护 2. 功能描述 PCD3205是一款具有高转换效率的同步降压转换器,在4.5V~18V输入电压范围内, 输出负载能达到2A。 PCD3205集

MATLAB环境下基于K-SVD的一维时间序列信号瞬态特征提取

当旋转机械某一零部件发生故障时,其振动信号中就会产生周期性循环冲击响应—瞬态成分,这些瞬态成分往往包含着重要的故障信息。因此,利用合适的方法对振动信号中因局部故障引起的瞬态冲击响应成分进行提取是一种较为有效的旋转机械零部件故障诊断方法。然而在实际的振动信号中,往往包含着较多的工频振动、谐波振动以及背景噪声成分,要提取湮没在众多干扰成分中的瞬态特征成分,历来是旋转机械故障诊断领域的一大难点。 根据

【PINN物理信息网络】基于PINN物理信息网络求解瞬态薛定谔方程(python)

【PINN物理信息网络】基于PINN物理信息网络求解瞬态薛定谔方程(python) 文章目录 【PINN物理信息网络】基于PINN物理信息网络求解瞬态薛定谔方程(python)运行结果文章介绍基本步骤代码分享参考资料 运行结果

EDR(Endpoint Detection and Response)终端检测与响应分析

EDR(Endpoint Detection and Response:终端检测与响应) 统一体的另一端,凸显的是高级检测与响应, EDR的重点不在于阻止漏洞利用和恶意软件,而在于监视终端以检测可疑活动,并捕获可疑数据以进行安全取证及调查。 EDR解决方案应具备四大基本功能:安全事件检测、安全事件调查、遏制安全事件,以及将端点修复至感染前的状态。EDR工具通过记录大量终端与网络事件,并将这些数