三参数陷波器

传统陷波器特性

传统陷波器的传递函数为:
在这里插入图片描述
传统陷波器的 Bode 图如图所示,根据图中曲线表明,当ξ = 0.1、ξ = 1、
ξ = 10 时,随着ξ 值的增加,陷波宽度增大,陷波幅值也增大,此时,陷波器陷波深度和陷波宽度两个特性均由ξ 一个值控制,无法做到单独控制两个指标。显然,这种陷波器在很多时候无法得到一个满意的参数,导致陷波失败。wn =2pi100 =628rad/s
在这里插入图片描述

针对传统陷波器的不足,为了能对陷波深度和陷波宽度进行单独控制,目前大多数时候均采用如下形式的三参数陷波器,其传递函数形式为:
在这里插入图片描述
常用三参数陷波器 Bode 图如下图所示,由图 1可知,当 p = 0.05时,改变d 的值,使d 分别等于 0.5、5、20,随着d 值的增大,陷波深度不变,陷波宽度增加,因此通常称d 为陷波宽度参数;由图 2可知,当d = 0.5时,改变p 的值,使 p 分别等于 0.05、0.005、0.0005,随着 p 值的减小,陷波宽度不变,陷波深度增大,因此通常称 p 为陷波深度参数; wn = 2 f π 代表陷波器陷波中心点角频率。

在这里插入图片描述
在这里插入图片描述

数字化陷波器

双线性变化法将 S 平面与 Z 平面的值一一对应,因此不存在频率混迭现象,但是此离散化转化会存在频率畸变的现象,此现象则需要做畸变预处理。

预畸变处理

Wd为中心频率,T为采样周期,wa是经过预畸变后的中心频率。后文中的离散变化参数和代码中的预畸变处理就是根据此公式而来。
在这里插入图片描述

现在采用三参数陷波器设计100hz的陷波器;
深度p = 0.00004 宽度 d=0.5,wn=628rad/s
连续域传递函数为:在这里插入图片描述
经过双线性变化后的传递函数为:
在这里插入图片描述
经过预畸变处理后的传递函数为:
在这里插入图片描述
可以看出处理和未处理之间的系数相差不太大,但是效果却比较明显。看下面的仿真对比分析。

时域仿真对比

连续域仿真:
在这里插入图片描述
输入纹波为20的工频纹波,经过陷波器后,基本将工频纹波滤掉,切滤波器输出的中心值在400.

离散仿真模型如图所示:
在这里插入图片描述
按照如上滤波结构,将离散传递函数的参数调入,观察scope中的波形如下。
未做与畸变处理:
在这里插入图片描述
输入纹波为20的工频纹波,经过双线性变化后的离散陷波器后,基本将工频纹波滤掉,切滤波器输出的中心值在399,与连续与的有些差别。

畸变处理后:
在这里插入图片描述
输入纹波为20的工频纹波,经过双线性变化后的离散陷波器后,基本将工频纹波滤掉,切滤波器输出的中心值在400.1,与连续域更加接近。

从上面的对比分析可以知道,经过预畸变处理过后的双线性变化更加接近理论。

代码参考

void omputeNotchFltrCoeff(DCL_DF22 *coeff, float32_t Fs,
                                   float32_t notch_freq,
                                   float32_t c1, float32_t c2)
{
    float32_t temp1;
    float32_t temp2;
    float32_t wn2;
    float32_t Ts;
    Ts = 1 / Fs;

    //
    // 预畸变处理
    //
    wn2 = 2 * Fs * tanf(notch_freq * TTPLPFC_PI_VALUE * Ts);
  //离散化处理
  
    temp1 = 4 * Fs * Fs + 4 * wn2 * c2 * Fs + wn2 * wn2;
    temp2 = 1 / ( 4 * Fs * Fs + 4 * wn2 * c1 * Fs + wn2 * wn2);

    coeff->b0 = temp1 * temp2;
    coeff->b1 = (-8 * Fs * Fs + 2 * wn2 * wn2) * temp2;
    coeff->b2 = (4 * Fs * Fs - 4 * wn2 * c2 * Fs + wn2 * wn2) * temp2;
    coeff->a1 = (-8 * Fs * Fs + 2 * wn2 * wn2) * temp2;
    coeff->a2 = (4 * Fs * Fs - 4 * wn2 * c1 * Fs + wn2 * wn2) * temp2;

}

参考文献

《Research_on_Harmonic_Suppression_of_OW_PMSM_with_Common_DC_Bus_for_Three_parameter_Digital_Notch_Filter_Based_on_Voltage_Compensation》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/798478.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线程安全(五)volatile 修饰共享变量(JIT即时编译器、指令重排序)

目录 一、volatile 简介1.1 定义1.2 volatile 的两个特性二、特性1:保证线程间的可见性示例1:普通场景1)代码示例:2)执行结果:3)总结:示例2:被 JIT 即时编译器优化1)代码示例:2)执行结果:3)原因分析:4)什么是 JIT 即时编译器?4)解决方案一:5)解决方案二:三…

三相PWM整流器PI双闭环控制Simulink

1.模型简介 本仿真模型基于MATLAB/Simulink(版本MATLAB 2017Rb)软件。建议采用matlab2017 Rb及以上版本打开。(若需要其他版本可联系代为转换) 2.拓扑结构: 3.模型算法架构: 4.仿真算法: &am…

Camunda如何通过外部任务与其他系统自动交互

文章目录 简介流程图外部系统pom.xmllogback.xml监听类 启动流程实例常见问题Public Key Retrieval is not allowed的解决方法java.lang.reflect.InaccessibleObjectException 流程图xml 简介 前面我们已经介绍了Camunda的基本操作、任务、表: Camunda组件与服务与…

OpenStack Yoga版安装笔记(六)glance练习

1、glance架构 Glance api处理来自用户端(OpenStackClient等)的请求,如果是读写镜像元数据,则对glance db进行读写操作,因为镜像元数据都保存在glance db里面;如果是存取镜像本身,则对后端存储…

Ubuntu系统上安装Apache和WordPress

** 第一步跟新系统包 ** 首先跟新系统包 sudo apt update sudo apt upgrade第二步下载安装apache sudo apt install apache2 ##查看apache的状态是否启动成功 sudo systemctl status apache2 ##查看服务器的ip地址 sudo ip a通过ip地址进行访问apache页面 第三步下载安装…

vue3+vite从零架构:写组件、构建、打包并上传个人前端组件库至私有npm仓库最终在自己项目中下载并使用(超详细的流程,小编已实现)

目录 第一章 前言 第二章 准备工作 第三章 封装组件 3.1 文件结构 3.2 编写组件代码 第四章 项目打包 第五章 发布到npm 5.1 npm准备工作 5.2 发布npm包 ​编辑 第六章 从npm安装使用 第一章 前言 在我们很多开发过程中,不管是使用vue还是react&#x…

github相关命令

如果我们要从 GitHub 上拉取一个项目到本地,进行修改并上传回去,通常需要以下步骤: 1. 克隆远程仓库到本地 使用 git clone 命令将 GitHub 上的项目克隆到本地: (网址示例如下所示) git clone https://github.com/你的…

DP- 使用最小花费爬楼梯 DAY19

使用最小花费爬楼梯 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。 …

STM32对flash中程序的加密保护

2024.7.14 今天学习了很多关于STM32对于程序的保护措施,原先一直不理解为什么DF CAR需要做加密,他的加密流程我也不是很知道,后面发现他是在控制任务初始化的时候,加了一个判断flash中某个区域的数值的程序,如果判断失…

易懂的吉文斯(Givens)变换(一)

文章目录 二阶Givens旋转矩阵作用于向量作用于矩阵更一般的情况 二阶Givens旋转矩阵 在QR分解中,Givens旋转是一种用于将矩阵变成上三角形的技术。 别的教程里面往往会直接给出一个n*n阶的通用Givens矩阵形式,但是这样太过抽象难懂了,而且难…

ceph 部署

端口号 NFS 2049 rpcbind 111 NFS 目录越深,写入性能越差 操作简单, 一.前言:存储知识 1、存储基础 单机存储设备 【1】DAS(直接附加存储,是直接接到计算机的主板总线上去的存储) IDE、SATA、SCSI、SAS…

记录些Redis题集(2)

Redis 的多路IO复用 多路I/O复用是一种同时监听多个文件描述符(如Socket)的状态变化,并能在某个文件描述符就绪时执行相应操作的技术。在Redis中,多路I/O复用技术主要用于处理客户端的连接请求和读写操作,以实现高并发…

《后端程序员 · Nacos 配置优先级动态刷新》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

J025_斗地主游戏案例开发(简版)

一、需求描述 完成斗地主游戏的案例开发。 业务:总共有54张牌; 点数:3、4、5、6、7、8、9、10、J、Q、K、A、2 花色:黑桃、红桃、方片、梅花 大小王:大王、小王 点数分别要组合4种花色,大小王各一张。…

mysql不初始化升级

1、下载mysql,下载地址:MySQL :: Download MySQL Community Server 2、解压下载好的mysql,修改配置文件的datadir指定目录为当前数据存储的目录 3、通过管理员cmd进入新版本mysql的bin目录, 然后执行命令安装mysql服务&#xff…

性能测试(2)

jmeter参数化 loadrunner Jmeter IP欺骗,也称为IP欺诈,是指通过伪装、篡改IP地址的方式,进行网络攻击或欺骗行为。这种行为可能会导致网络安全问题,包括身份盗窃、数据泄露、DDoS攻击等。为了保护自己的网络安全,用户…

「C++系列」一篇文章讲透【运算符】

文章目录 一、运算符1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 条件运算符(三元运算符)7. 成员访问运算符8. 指针和地址运算符9. 类型转换运算符10. 其他运算符 二、其他特殊运算符1. 成员访问运算符2. 指针和地址运算符3. 类…

C语言 ——— 模拟实现strcpy函数

目录 strcpy函数功能介绍 strcpy函数的模拟实现 strcpy函数功能介绍 学习并使用strcpy函数-CSDN博客 strcpy函数的模拟实现 代码演示&#xff1a; #include<stdio.h> #include<assert.h> char* my_strcpy(char* destination, const char* source) {assert(des…

OpenCV下的单目标定,双目标定与立体校正(calibrateCamera, stereoCalibrate and stereoRectify)

OpenCV下的单目标定&#xff0c;双目标定与立体校正(calibrateCamera, stereoCalibrate and stereoRectify) 文章目录 1. 杂话2. 单目标定2.1 先看代码2.2 一点解释2.3 calibrateCamera参数 3. 双目标定3.1 先看代码3.2 stereoCalibrate参数 4. 立体校正4.1 先看代码4.2 一点解…

Spring Security 授权

基于request的授权 HttpSecurity 权限配置 Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.authorizeHttpRequests(authorize -> {authorize// 放行请求:针对含有 admin 权限的用户放行 /user/get 接口.requestMatchers("/us…