深入解析系统频率响应:通过MATLAB模拟积分器对信号的稳态响应

稳态响应分析与MATLAB可视化

在控制系统中,线性时不变系统的稳态响应是描述输入与输出之间关系的关键。对于一个频率为 ω i \omega_i ωi 的正弦输入 u ( t ) = M i sin ⁡ ( ω i t + φ i ) u(t) = M_i \sin(\omega_i t + \varphi_i) u(t)=Misin(ωit+φi),经过系统 G ( s ) G(s) G(s) 的作用,系统的稳态输出 x s s ( t ) x_{\mathrm{ss}}(t) xss(t) 会受到系统频率响应的影响。以下是对稳态响应的详细分析及MATLAB可视化实现。

1. 稳态输出的频率响应

假设系统的传递函数为 G ( s ) G(s) G(s),对于频率为 ω i \omega_i ωi 的输入信号,系统的稳态响应 x s s ( t ) x_{\mathrm{ss}}(t) xss(t) 可以通过以下公式表示:
x s s ( t ) = 1 2 ∣ G ( j ω i ) ∣ [ 2 B cos ⁡ ( ∠ G ( j ω i ) + ω i t ) + 2 A sin ⁡ ( ∠ G ( j ω i ) + ω i t ) ] x_{\mathrm{ss}}(t) = \frac{1}{2} \left| G(\mathrm{j}\omega_i) \right| \left[ 2B \cos(\angle G(\mathrm{j}\omega_i) + \omega_i t) + 2A \sin(\angle G(\mathrm{j}\omega_i) + \omega_i t) \right] xss(t)=21∣G(jωi)∣[2Bcos(∠G(jωi)+ωit)+2Asin(∠G(jωi)+ωit)]

通过代入公式 ( 9.2.3 ) (9.2.3) (9.2.3),得到稳态输出的简化表达式:
x s s ( t ) = ∣ G ( j ω i ) ∣ M i sin ⁡ ( ∠ G ( j ω i ) + ω i t + φ i ) (9.2.17) x_{\mathrm{ss}}(t) = \left| G(\mathrm{j}\omega_i) \right| M_i \sin \left( \angle G(\mathrm{j}\omega_i) + \omega_i t + \varphi_i \right) \quad \text{(9.2.17)} xss(t)=∣G(jωi)∣Misin(∠G(jωi)+ωit+φi)(9.2.17)

其中 M i M_i Mi 和 φ i \varphi_i φi 分别是输入信号的振幅和相位。

2. 输出振幅和相位

定义稳态输出为:
x s s ( t ) = M o sin ⁡ ( ω i t + φ o ) (9.2.18) x_{\mathrm{ss}}(t) = M_o \sin(\omega_i t + \varphi_o) \quad \text{(9.2.18)} xss(t)=Mosin(ωit+φo)(9.2.18)

其中:
M o = ∣ G ( j ω i ) ∣ M i , φ o = ∠ G ( j ω i ) + φ i M_o = \left| G(\mathrm{j}\omega_i) \right| M_i, \quad \varphi_o = \angle G(\mathrm{j}\omega_i) + \varphi_i Mo=∣G(jωi)∣Mi,φo=∠G(jωi)+φi
M o M_o Mo 和 φ o \varphi_o φo 分别表示输出信号的振幅和相位。对比式 ( 9.2.18 ) (9.2.18) (9.2.18) 和式 ( 9.2.3 ) (9.2.3) (9.2.3),可以得出结论:对于一个正弦输入信号,经过线性时不变系统 G ( s ) G(s) G(s) 后,输出信号保持相同的频率 ω i \omega_i ωi,但振幅变化了 ∣ G ( j ω i ) ∣ \left| G(\mathrm{j}\omega_i) \right| ∣G(jωi)∣ 倍,相位变化了 ∠ G ( j ω i ) \angle G(\mathrm{j}\omega_i) ∠G(jωi)。

3. 以积分器为例

考虑积分器系统,其传递函数为:
G ( s ) = 1 s G(s) = \frac{1}{s} G(s)=s1

代入 j ω i \mathrm{j}\omega_i jωi,可以得到:
G ( j ω i ) = 1 j ω i = − 1 ω i j (9.2.19) G(\mathrm{j}\omega_i) = \frac{1}{\mathrm{j}\omega_i} = -\frac{1}{\omega_i} \mathrm{j} \quad \text{(9.2.19)} G(jωi)=jωi1=−ωi1j(9.2.19)

在复平面中, G ( j ω i ) G(\mathrm{j}\omega_i) G(jωi) 的幅值和相位分别为:
∣ G ( j ω i ) ∣ = 1 ω i , ∠ G ( j ω i ) = − π 2 \left| G(\mathrm{j}\omega_i) \right| = \frac{1}{\omega_i}, \quad \angle G(\mathrm{j}\omega_i) = -\frac{\pi}{2} ∣G(jωi)∣=ωi1,∠G(jωi)=−2π

根据式 ( 9.2.18 ) (9.2.18) (9.2.18),当输入 u ( t ) = M i sin ⁡ ( ω i t + φ i ) u(t) = M_i \sin(\omega_i t + \varphi_i) u(t)=Misin(ωit+φi) 时,系统的稳态输出为:
x s s ( t ) = 1 ω i M i sin ⁡ ( ω i t + φ i − π 2 ) (9.2.20) x_{\mathrm{ss}}(t) = \frac{1}{\omega_i} M_i \sin(\omega_i t + \varphi_i - \frac{\pi}{2}) \quad \text{(9.2.20)} xss(t)=ωi1Misin(ωit+φi−2π)(9.2.20)

这表明,经过积分器系统后,输出信号的幅值变为输入信号的幅值除以 ω i \omega_i ωi,相位相对于输入信号延迟了 π 2 \frac{\pi}{2} 2π。

4. MATLAB 可视化代码

为了更直观地展示频率响应的影响,下面给出一段 MATLAB 代码,用于模拟和可视化积分器对输入信号的稳态响应。

matlab 复制代码
% 设置输入信号的参数
M_i = 1;  % 输入信号的振幅
omega_i = 2*pi*1;  % 输入信号的频率,单位为rad/s
phi_i = 0;  % 输入信号的相位

% 设置积分器系统的传递函数 G(s) = 1/s
% 计算 G(jω_i) 的幅值和相位
G_jomega_i_mag = 1 / omega_i;  % G(jω_i) 的幅值
G_jomega_i_phase = -pi/2;  % G(jω_i) 的相位

% 计算稳态输出的振幅和相位
M_o = G_jomega_i_mag * M_i;  % 输出信号的振幅
phi_o = G_jomega_i_phase + phi_i;  % 输出信号的相位

% 设置时间范围
t = 0:0.001:10;  % 时间从 0 到 10 秒,步长为 0.001 秒

% 输入信号 u(t)
u_t = M_i * sin(omega_i * t + phi_i);

% 输出信号 x_ss(t) = M_o * sin(ω_i * t + φ_o)
x_ss_t = M_o * sin(omega_i * t + phi_o);

% 绘图
figure;

% 输入信号和输出信号绘制在同一图中
plot(t, u_t, 'r', 'LineWidth', 1.5);  % 输入信号
hold on;  % 保持图形,使得输出信号可以在同一图中绘制
plot(t, x_ss_t, 'b', 'LineWidth', 1.5);  % 输出信号
hold off;  % 释放图形

% 添加标题和标签
title('积分器系统的输入输出信号');
xlabel('时间 (秒)');
ylabel('幅值');
legend('输入信号 u(t)', '输出信号 x_{ss}(t)', 'Location', 'best');
grid on;
6. 结论

通过上述分析和MATLAB可视化,我们可以看到,经过线性时不变系统(如积分器)后,输入信号的振幅和相位发生了变化。在积分器的案例中,输出信号的振幅是输入信号振幅的倒数,而相位则滞后了 π 2 \frac{\pi}{2} 2π。这一结果展示了频率响应在分析线性系统稳态响应中的重要作用。

相关推荐
uhakadotcom12 分钟前
使用NLTK和jieba进行中文情感分析的简单教程
算法·面试·github
水w18 分钟前
【Python爬虫】简单介绍2
开发语言·爬虫·python·beautifulsoup
安全菜鸟22 分钟前
DeepSeek 接入 Word 完整教程
开发语言·c#·word
小白学大数据35 分钟前
Scrapy结合Selenium实现搜索点击爬虫的最佳实践
开发语言·chrome·爬虫·selenium·scrapy
why15141 分钟前
腾讯云golang一面
开发语言·后端·golang
vil du41 分钟前
c# AI编程助手 — Fitten Code
开发语言·c#·ai编程
CodeJourney.43 分钟前
利用DeepSeek实现文档到流程图的高效转换:技术应用与实践探索
数据库·人工智能·算法·excel·流程图
电子连接器CAE与高频分析1 小时前
MATLAB求和∑怎么用?
人工智能·算法·matlab
迎风打盹儿1 小时前
MATLAB仿真多相滤波抽取与插值的频谱变化(可视化混叠和镜像)
matlab·信号处理·频谱图·抽取·内插
Born_t0ward1 小时前
基于STM32 的实时FFT处理(Matlab+MDK5)
stm32·嵌入式硬件·matlab·mdk5·快速fft