信号处理仿真:滤波器设计与仿真_24.滤波器设计与仿真在控制工程中的应用
24. 滤波器设计与仿真在控制工程中的应用在控制工程中滤波器设计与仿真是一个非常重要的环节。滤波器可以用于信号的预处理、噪声的抑制、系统的稳定性分析以及控制律的实现等。本节将详细介绍滤波器在控制工程中的应用包括常见的滤波器类型、设计方法以及仿真工具的使用。24.1 常见的滤波器类型及其应用在控制工程中常用的滤波器类型包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器。这些滤波器在不同的应用场景中发挥着重要的作用。24.1.1 低通滤波器低通滤波器允许低频信号通过而抑制高频信号。在控制工程中低通滤波器常用于信号平滑、噪声抑制以及系统的稳定性分析。原理低通滤波器的频率响应特性是随着频率的增加滤波器的增益逐渐降低。常见的低通滤波器有RC滤波器、巴特沃斯滤波器、切比雪夫滤波器等。其中RC滤波器是最简单的低通滤波器其传递函数为H(s)11RCs H(s) \frac{1}{1 RCs}H(s)1RCs1​其中RRR是电阻CCC是电容sss是复频率变量。应用在控制系统中低通滤波器可以用于平滑输入信号减少高频噪声的影响。例如在PID控制器中低通滤波器可以用于平滑误差信号提高控制系统的稳定性。例子假设我们有一个PID控制器输入信号中包含高频噪声。我们可以使用低通滤波器来平滑输入信号。importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.signalimportbutter,filtfilt# 定义PID控制器参数Kp1.0Ki0.1Kd0.05# 生成带有高频噪声的输入信号tnp.linspace(0,10,1000)input_signalnp.sin(2*np.pi*t)0.5*np.random.randn(t.size)# 设计低通滤波器defbutter_lowpass(cutoff,fs,order5):nyq0.5*fs normal_cutoffcutoff/nyq b,abutter(order,normal_cutoff,btypelow,analogFalse)returnb,adefbutter_lowpass_filter(data,cutoff,fs,order5):b,abutter_lowpass(cutoff,fs,orderorder)yfiltfilt(b,a,data)returny# 参数设置cutoff3.0# 截止频率fs100.0# 采样频率order6# 滤波器阶数# 应用低通滤波器filtered_signalbutter_lowpass_filter(input_signal,cutoff,fs,order)# 绘制结果plt.figure(figsize(10,5))plt.plot(t,input_signal,labelInput Signal with Noise)plt.plot(t,filtered_signal,labelFiltered Signal)plt.xlabel(Time [s])plt.ylabel(Amplitude)plt.legend()plt.grid(True)plt.show()描述在这个例子中我们首先生成了一个带有高频噪声的正弦输入信号。然后我们设计了一个截止频率为3 Hz的六阶低通滤波器并使用scipy.signal库中的filtfilt函数对输入信号进行滤波。最后我们绘制了原始信号和滤波后的信号可以看出滤波后的信号更加平滑高频噪声被有效抑制。24.1.2 高通滤波器高通滤波器允许高频信号通过而抑制低频信号。在控制工程中高通滤波器常用于信号的高频成分提取、去除直流分量以及动态信号的处理。原理高通滤波器的频率响应特性是随着频率的增加滤波器的增益逐渐增加。常见的高通滤波器有RC高通滤波器、巴特沃斯高通滤波器等。其中RC高通滤波器的传递函数为H(s)RCs1RCs H(s) \frac{RCs}{1 RCs}H(s)1RCsRCs​其中RRR是电阻CCC是电容sss是复频率变量。应用在控制系统中高通滤波器可以用于去除输入信号中的直流分量提取高频动态信号。例如在振动控制系统中高通滤波器可以用于提取振动信号中的高频成分。例子假设我们有一个包含直流分量和高频振动信号的输入信号。我们可以使用高通滤波器来去除直流分量提取高频振动信号。importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.signalimportbutter,filtfilt# 生成带有直流分量和高频振动信号的输入信号tnp.linspace(0,10,1000)input_signal1.0np.sin(2*np.pi*10*t)0.5*np.random.randn(t.size)# 设计高通滤波器defbutter_highpass(cutoff,fs,order5):nyq0.5*fs normal_cutoffcutoff/nyq b,abutter(order,normal_cutoff,btypehigh,analogFalse)returnb,adefbutter_highpass_filter(data,cutoff,fs,order5):b,abutter_highpass(cutoff,fs,orderorder)yfiltfilt(b,a,data)returny# 参数设置cutoff5.0# 截止频率fs100.0# 采样频率order6# 滤波器阶数# 应用高通滤波器filtered_signalbutter_highpass_filter(input_signal,cutoff,fs,order)# 绘制结果plt.figure(figsize(10,5))plt.plot(t,input_signal,labelInput Signal with DC and Noise)plt.plot(t,filtered_signal,labelFiltered Signal)plt.xlabel(Time [s])plt.ylabel(Amplitude)plt.legend()plt.grid(True)plt.show()描述在这个例子中我们生成了一个包含1.0的直流分量和10 Hz的高频振动信号的输入信号。然后我们设计了一个截止频率为5 Hz的六阶高通滤波器并使用scipy.signal库中的filtfilt函数对输入信号进行滤波。最后我们绘制了原始信号和滤波后的信号可以看出滤波后的信号已经去除了直流分量高频振动信号得到了保留。24.1.3 带通滤波器带通滤波器允许特定频带范围内的信号通过而抑制其他频率的信号。在控制工程中带通滤波器常用于信号的频带选择、特定频率成分的提取以及系统的频率响应分析。原理带通滤波器的频率响应特性是在特定的频带范围内增益较大而在其他频率范围内增益较小。常见的带通滤波器有巴特沃斯带通滤波器、切比雪夫带通滤波器等。其中巴特沃斯带通滤波器的传递函数为H(s)1(sω0)2n(ω0s)2n H(s) \frac{1}{\left(\frac{s}{\omega_0}\right)^{2n} \left(\frac{\omega_0}{s}\right)^{2n}}H(s)(ω0​s​)2n(sω0​​)2n1​其中ω0\omega_0ω0​是中心频率nnn是滤波器阶数。应用在控制系统中带通滤波器可以用于提取特定频率范围内的信号。例如在音频处理中带通滤波器可以用于提取人声或特定乐器的声音。例子假设我们有一个包含多个频率成分的音频信号。我们可以使用带通滤波器来提取特定频率范围内的信号。importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.signalimportbutter,filtfilt# 生成包含多个频率成分的音频信号tnp.linspace(0,10,1000)input_signalnp.sin(2*np.pi*5*t)np.sin(2*np.pi*15*t)0.5*np.random.randn(t.size)# 设计带通滤波器defbutter_bandpass(lowcut,highcut,fs,order5):nyq0.5*fs lowlowcut/nyq highhighcut/nyq b,abutter(order,[low,high],btypeband,analogFalse)returnb,adefbutter_bandpass_filter(data,lowcut,highcut,fs,order5):b,abutter_bandpass(lowcut,highcut,fs,orderorder)yfiltfilt(b,a,data)returny# 参数设置lowcut10.0# 低截止频率highcut20.0# 高截止频率fs100.0# 采样频率order6# 滤波器阶数# 应用带通滤波器filtered_signalbutter_bandpass_filter(input_signal,lowcut,highcut,fs,order)# 绘制结果plt.figure(figsize(10,5))plt.plot(t,input_signal,labelInput Signal with Multiple Frequencies)plt.plot(t,filtered_signal,labelFiltered Signal (10-20 Hz))plt.xlabel(Time [s])plt.ylabel(Amplitude)plt.legend()plt.grid(True)plt.show()描述在这个例子中我们生成了一个包含5 Hz、15 Hz和高频噪声的音频信号。然后我们设计了一个通带为10 Hz到20 Hz的六阶带通滤波器并使用scipy.signal库中的filtfilt函数对输入信号进行滤波。最后我们绘制了原始信号和滤波后的信号可以看出滤波后的信号主要保留了15 Hz的频率成分其他频率成分被有效抑制。24.1.4 带阻滤波器带阻滤波器允许特定频带范围外的信号通过而抑制特定频带范围内的信号。在控制工程中带阻滤波器常用于信号的特定频率成分抑制、系统的频率响应分析以及噪声的抑制。原理带阻滤波器的频率响应特性是在特定的频带范围内增益较小而在其他频率范围内增益较大。常见的带阻滤波器有巴特沃斯带阻滤波器、切比雪夫带阻滤波器等。其中巴特沃斯带阻滤波器的传递函数为H(s)1(sω0)2n(ω0s)2n2 H(s) \frac{1}{\left(\frac{s}{\omega_0}\right)^{2n} \left(\frac{\omega_0}{s}\right)^{2n} 2}H(s)(ω0​s​)2n(sω0​​)2n21​其中ω0\omega_0ω0​是中心频率nnn是滤波器阶数。应用在控制系统中带阻滤波器可以用于抑制特定频率范围内的噪声。例如在电机控制中带阻滤波器可以用于抑制特定频率的电磁干扰。例子假设我们有一个包含多个频率成分的电机控制信号其中有一个特定频率的电磁干扰。我们可以使用带阻滤波器来抑制该频率的干扰。importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.signalimportbutter,filtfilt# 生成包含多个频率成分的电机控制信号tnp.linspace(0,10,1000)input_signalnp.sin(2*np.pi*5*t)np.sin(2*np.pi*15*t)0.5*np.random.randn(t.size)# 设计带阻滤波器defbutter_bandstop(lowcut,highcut,fs,order5):nyq0.5*fs lowlowcut/nyq highhighcut/nyq b,abutter(order,[low,high],btypebandstop,analogFalse)returnb,adefbutter_bandstop_filter(data,lowcut,highcut,fs,order5):b,abutter_bandstop(lowcut,highcut,fs,orderorder)yfiltfilt(b,a,data)returny# 参数设置lowcut10.0# 低截止频率highcut20.0# 高截止频率fs100.0# 采样频率order6# 滤波器阶数# 应用带阻滤波器filtered_signalbutter_bandstop_filter(input_signal,lowcut,highcut,fs,order)# 绘制结果plt.figure(figsize(10,5))plt.plot(t,input_signal,labelInput Signal with Multiple Frequencies)plt.plot(t,filtered_signal,labelFiltered Signal (10-20 Hz Notch))plt.xlabel(Time [s])plt.ylabel(Amplitude)plt.legend()plt.grid(True)plt.show()描述在这个例子中我们生成了一个包含5 Hz、15 Hz和高频噪声的电机控制信号。然后我们设计了一个通带为10 Hz到20 Hz的六阶带阻滤波器并使用scipy.signal库中的filtfilt函数对输入信号进行滤波。最后我们绘制了原始信号和滤波后的信号可以看出滤波后的信号已经去除了15 Hz的频率成分其他频率成分被保留。24.2 滤波器设计方法滤波器设计方法多种多样常见的方法包括频率响应法、阶跃响应法、脉冲响应法等。在控制工程中最常用的是频率响应法和阶跃响应法。24.2.1 频率响应法频率响应法是通过设计滤波器的频率响应特性来实现滤波器的设计。这种方法适用于需要精确控制滤波器在不同频率上的增益和相位的应用。原理频率响应法通过定义滤波器在频率域上的传递函数来设计滤波器。常见的传递函数形式包括巴特沃斯、切比雪夫、贝塞尔等。这些传递函数可以通过解析方法或数值方法来求解。应用在控制系统中频率响应法常用于设计低通、高通、带通和带阻滤波器。例如在飞行控制系统中频率响应法可以用于设计低通滤波器来平滑飞行器的姿态信号。例子假设我们需要设计一个巴特沃斯低通滤波器其截止频率为5 Hz。我们可以使用scipy.signal库中的butter函数来设计滤波器。importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.signalimportbutter,freqz# 参数设置cutoff5.0# 截止频率fs100.0# 采样频率order6# 滤波器阶数# 设计巴特沃斯低通滤波器nyq0.5*fs normal_cutoffcutoff/nyq b,abutter(order,normal_cutoff,btypelow,analogFalse)# 绘制频率响应w,hfreqz(b,a,worN8000)plt.figure(figsize(10,5))plt.plot(0.5*fs*w/np.pi,np.abs(h),b)plt.title(Frequency Response of a 6th Order Butterworth Low-pass Filter)plt.xlabel(Frequency [Hz])plt.ylabel(Amplitude)plt.grid(True)plt.show()描述在这个例子中我们设计了一个截止频率为5 Hz的六阶巴特沃斯低通滤波器。使用scipy.signal库中的butter函数生成滤波器的系数然后使用freqz函数绘制滤波器的频率响应。从图中可以看出滤波器在5 Hz以下的频率范围内增益接近1而在5 Hz以上的频率范围内增益迅速降低。24.2.2 阶跃响应法阶跃响应法是通过设计滤波器的阶跃响应特性来实现滤波器的设计。这种方法适用于需要精确控制滤波器在时域上的响应的应用。原理阶跃响应法通过定义滤波器对阶跃输入的响应来设计滤波器。常见的阶跃响应包括一阶、二阶等。这些响应可以通过解析方法或数值方法来求解。应用在控制系统中阶跃响应法常用于设计低通滤波器和高通滤波器。例如在温度控制系统中阶跃响应法可以用于设计低通滤波器来平滑温度信号。例子假设我们需要设计一个一阶低通滤波器其时间常数为1秒。我们可以使用阶跃响应法来设计滤波器。importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.signalimportlti,step# 参数设置tau1.0# 时间常数# 定义一阶低通滤波器num[1]den[tau,1]systemlti(num,den)# 绘制阶跃响应t,ystep(system)plt.figure(figsize(10,5))plt.plot(t,y,labelStep Response of a 1st Order Low-pass Filter)plt.title(Step Response of a 1st Order Low-pass Filter)plt.xlabel(Time [s])plt.ylabel(Amplitude)plt.legend()plt.grid(True)plt.show()描述在这个例子中我们定义了一个时间常数为1秒的一阶低通滤波器。

相关新闻

信号处理仿真:滤波器设计与仿真_23.滤波器设计与仿真在雷达系统中的应用

信号处理仿真:滤波器设计与仿真_23.滤波器设计与仿真在雷达系统中的应用

2026/7/8 8:27:35 阅读更多 →
信号处理仿真:滤波器设计与仿真_18.实时信号处理仿真

信号处理仿真:滤波器设计与仿真_18.实时信号处理仿真

2026/7/3 21:01:48 阅读更多 →
大模型应用文本理解OpenAI使用入门篇

大模型应用文本理解OpenAI使用入门篇

2026/7/3 17:05:54 阅读更多 →

最新新闻

智能制造场景下WMS选型参考:五家行业服务商能力特点简析

智能制造场景下WMS选型参考:五家行业服务商能力特点简析

随着制造企业数字化升级的深入,仓库管理系统在原材料出入库、生产配料、成品追溯等环节中的作用日益受到关注。与流通领域不同,制造场景下的WMS通常需要与生产计划、物料需求、质量管控等环节紧密联动,系统在数据追溯、作业协同和部署灵活性等…

2026/7/9 3:26:31 阅读更多 →
西格传动:以传动硬核实力,赋能运动外骨骼全产业链

西格传动:以传动硬核实力,赋能运动外骨骼全产业链

运动外骨骼是集人体生物力学、智能控制、精密机械于一体的高端智能装备,从户外登山助力、专业体能训练到康复运动辅助,整机穿戴体验、动力输出、运动跟随性、长期耐用度,全部由核心传动关节模组决定。传动系统是外骨骼的 “动力骨骼”&#x…

2026/7/9 3:26:31 阅读更多 →
企业预算管控落地难?这款预算管理系统的技术实现逻辑值得参考

企业预算管控落地难?这款预算管理系统的技术实现逻辑值得参考

作为实测过多款企业数智化管理工具的博主,最近接触到的栎偲预算管理系统,刚好解决了不少企业IT和产品负责人在预算管控上遇到的共性技术痛点,今天从落地角度拆解核心逻辑。1. 行业共性技术痛点当前多数企业在用的传统预算工具普遍存在三个核心…

2026/7/9 3:24:31 阅读更多 →
艺学启航:Python异步避坑指南,边界比写法更重要

艺学启航:Python异步避坑指南,边界比写法更重要

艺学启航:Python的async/await语法早已推出,但早期配套生态不完善,各类工具兼容性不足,难以商用落地。近几年,数据库驱动、HTTP客户端、缓存组件等主流工具全面支持asyncio,异步生态彻底完善。如今开发的重…

2026/7/9 3:24:31 阅读更多 →
基于51/STM32单片机水温控制系统 温度检测控制报警12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于51/STM32单片机水温控制系统 温度检测控制报警12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于51/STM32单片机水温控制系统 温度检测控制报警12(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 版本一/二 温度采集加热片蜂鸣器报警LCD1602/数码管显示当前温度按键可以设置温度上限和下限当温度低于下限,继电器闭合进行加热…

2026/7/9 3:22:30 阅读更多 →
Codex实战指南:从提示工程到团队协作的AI编程全流程

Codex实战指南:从提示工程到团队协作的AI编程全流程

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在整理一些旧项目时,我遇到了一个典型的“代码考古”场景:一个几年前写的Python脚本,注释寥寥…

2026/7/9 3:20:30 阅读更多 →

日新闻

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000找不到高质…

2026/7/9 0:01:04 阅读更多 →
ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍 【免费下载链接】ElegantBook Elegant LaTeX Template for Books 项目地址: https://gitcode.com/gh_mirrors/el/ElegantBook 你是否曾经为学术书籍的封面设计而烦恼?想要一个既专业又美观的封…

2026/7/9 0:03:06 阅读更多 →
如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南 【免费下载链接】pyodbc Python ODBC bridge 项目地址: https://gitcode.com/gh_mirrors/py/pyodbc 在当今数据驱动的商业环境中,企业级数据库连接已成为现代应用开发的核心需求。pyodbc作为一款强大…

2026/7/9 0:07:11 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/8 16:59:55 阅读更多 →

月新闻