简介:介绍如何使用Matlab和Python绘制系统函数的零极点图和频率响应。通过对比两种语言的实现方法,展示各自的优缺点。
在控制理论和信号处理中,系统函数的零极点图和频率响应是非常重要的概念。通过这些图,我们可以深入了解系统的稳定性和性能。下面分别介绍使用Matlab和Python绘制这些图的方法。
Matlab实现
在Matlab中,我们可以使用tf函数创建传递函数模型,然后使用zplane函数获取零点,pplane函数获取极点,bode函数获取频率响应。
% 创建传递函数num = [1 2]; % 分子den = [1 3 2]; % 分母sys = tf(num, den);% 绘制零点图z = zplane(sys);% 绘制极点图p = pplane(sys);% 绘制幅频特性和相频特性bode(sys);
Python实现
在Python中,我们可以使用scipy库中的signal模块进行系统函数的零极点图和频率响应的绘制。
首先,安装必要的库:
pip install numpy scipy matplotlib
然后,使用以下代码进行绘制:
import numpy as npimport scipy.signal as signalimport matplotlib.pyplot as plt# 定义传递函数分子和分母系数num = np.array([1, 2])den = np.array([1, 3, 2])# 创建传递函数模型sys = signal.TransferFunction(num, den)# 绘制零点图和极点图plt.figure()plt.title('Zero-Pole Plot')signal.plot_zero_pole_response(sys)plt.xlabel('Frequency (rad/s)')plt.ylabel('Amplitude')plt.grid(True)plt.show()