EF类和E/F类功率放大器(能量转换器)的波形推导和理想仿真--基于Matlab和ADS

news2025/6/18 13:36:02

EF类和E/F类功率放大器(能量转换器)的波形推导和理想仿真–基于Matlab和ADS

参考论文:Modeling and Analysis of Class EF and Class E/F Inverters With Series-Tuned Resonant Networks(2016)

这篇文章的思路和MTT的文章A Generalized High-Efficiency Broadband Class-E/F3 Power Amplifier Based on Design Space Expanding of Load Network还有CAS的文章Novel Design Space of Broadband High-Efficiency Parallel-Circuit Class-EF Power Amplifiers的底层理论是相似的。

全部工程下载(Matlab+ADS):EF类和E/F类的波形推导和理想电路仿真工程-基于Matlab和ADS

这个论文我当时手推非常慢,花了一周搞推导吧,搞了个基于Matlab的syms推出的解析表达式和分析流程

众所周期,EF类和E/F类都是混合的模式类型,EF是在E类的基础上控制了偶次谐波使其短路,E/F类是在E类的基础上控制奇次谐波短路。但是,EF类和E/F类都是有其对应的原始电路实现的,下面对Matlab推导和ADS验证过程进行介绍。

目录

  • EF类和E/F类功率放大器(能量转换器)的波形推导和理想仿真--基于Matlab和ADS
    • 1 、EF类和E/F类的简单理论
    • 2 、使用MATLAB计算EF类和E/F类的波形与参数
    • 3 、ADS的理想仿真
    • 4 、EF类和E/F类的基于MATLAB推导过程

1 、EF类和E/F类的简单理论

尽管 E 类PA可以用相对简单的电路拓扑实现100%的理论效率,但它面临着高峰值开关电压的问题。将E类开关模式和谐波调谐技术相结合,可以得到 Class-EF 或 E/F 模式。经典的Class-EF与Class-E/F的电路图与其等效电路如下图所示:
在这里插入图片描述
其中 L 1 L1 L1为射频扼流圈, C 1 C1 C1为并联电容, C 3 {C_3} C3和部分 L 3 {L_3} L3谐振在基频(和L谐振在基频) C 2 L 2 {C_2}{L_2} C2L2起到谐波调谐的作用对于Class-EF类PA,其需要控制偶次谐波,因此n为偶数。类似的,对于Class-E/F类PA,其需要控制奇次谐波,因此n为奇数

但是,虽然EF类和E/F类控制的谐波次数不同,但都需要满足ZVDS和ZVS条件,这也是推导的关键步骤之一

但是,在开始推导之前,我们需要关注一些需要预先设置的变量。参考上面的论文,我们需要优先设置要控制的谐波次数q占空比D,和电容C1与C2的比值 k = C 1 C 2 k=\frac{C_{1}}{C_{2}} k=C2C1。当然,这些参数也会影响波形:

在这里插入图片描述

2 、使用MATLAB计算EF类和E/F类的波形与参数

main.m,运行前设置q,D,k参数!!!
这部分的推导参考 (4 、EF类和E/F类的推导过程),这边直接给出计算代码的效果。首先,我们需要确定的是设置要控制的谐波次数q占空比D,和电容C1与C2的比值 k = C 1 C 2 k=\frac{C_{1}}{C_{2}} k=C2C1。此处以q=2,D=0.375,k=0.869为例,得到的结果为:
在这里插入图片描述
同时,命令行也会给出对应的设计参数,这些参数对应的是归一化电压和电流,也就是理想的输出功率为1W:
在这里插入图片描述

3 、ADS的理想仿真

使用上面的计算参数,q=2,D=0.375,k=0.869:
在这里插入图片描述
运行仿真,得到的仿真波形如下所示:
在这里插入图片描述
对应的阻抗空间如下所示,其中二次谐波短路正是EF2类的典型特征
在这里插入图片描述

4 、EF类和E/F类的基于MATLAB推导过程

推导的过程主要是解方程,需要满足下面几个ZVDS和ZVS条件:
在这里插入图片描述
直接解也太麻烦了,所以我们可以使用Matlab的辅助推导来进行求解(classEF_solve.m文件),首先要解出文章中定义变量(A1,B1,A2,B2,p,phi)的表达式,结合上面的条件可以使用solve进行求解,我也是在注释给出了每个等式对应哪个方程

%% 基本变量计算
clc
clear all
% 已知变量q1 D k,未知变量A1 B1 A2 B2 p phi
syms q1 D k
syms A1 B1 A2 B2 p phi
% Eqn14
q2=(q1*sqrt((k+1)/k));

% Eqn5、Eqn12、Eqn16---连续性
eqn1=A1*cos(q1*2*pi*D)+B1*sin(q1*2*pi*D)==A2*cos(q2*2*pi*D)+B2*sin(q2*2*pi*D)-q2^2*p/(q2^2-1)*sin(2*pi*D+phi)+1/(k+1);
% Eqn5、Eqn12、Eqn17---连续性
eqn2=A1==A2*cos(q2*2*pi)+B2*sin(q2*2*pi)-q2^2*p/(q2^2-1)*sin(phi)+1/(k+1);
% Eqn5、Eqn12、Eqn18---导数连续性
eqn3=-A1*q1*sin(q1*2*pi*D)+B1*q1*cos(q1*2*pi*D)==-A2*q2*sin(q2*2*pi*D)+B2*q2*cos(q2*2*pi*D)-q2^2*p/(q2^2-1)*cos(2*pi*D+phi);
% Eqn5、Eqn12、Eqn19---导数连续性
eqn4=B1*q1==-A2*q2*sin(q2*2*pi)+B2*q2*cos(q2*2*pi)-q2^2*p/(q2^2-1)*cos(phi);
% Eqn23
eqn5=2*pi*k*(1-D)/(k+1)+p*(cos(2*pi*D+phi)-cos(phi))*(q2^2/(q2^2-1)-(k+1))+A2/q2*(sin(2*pi*D*q2)-sin(2*pi*q2))+B2/q2*(cos(2*pi*q2)-cos(2*pi*D*q2))==0;
% Eqn24
eqn6=k/(k+1)+p*sin(phi)*(q2^2/(q2^2-1)-(k+1))-(A2*cos(q2*2*pi)+B2*sin(q2*2*pi))==0;

[A1,B1,A2,B2,p,phi]=solve(eqn1,eqn2,eqn3,eqn4,eqn5,eqn6,A1,B1,A2,B2,p,phi);

simplify(A1)
simplify(B1)
simplify(A2)
simplify(B2)
simplify(p)
simplify(phi)

解出了这些变量就可以继续求目标的波形了,对应的公式也给出了:

%% 波形的计算
clear

syms q1 D k theta
syms A1 B1 A2 B2 p phi
syms tao
% Eqn14
q2=(q1*sqrt((k+1)/k));
assume((D>0)&(D<1))

% Eqn12
il2_norm=A2*cos(q2*tao)+B2*sin(q2*tao)-q2^2*p/(q2^2-1)*sin(tao+phi)+1/(k+1);
% Eqn21
ic1_norm=1-p*(k+1)*sin(tao+phi)-il2_norm;
% Eqn26
beta_temp=simplify(int(ic1_norm,tao,2*pi*D,theta));
% Eqn28
vds_norm=simplify(2*pi*beta_temp/(int(beta_temp,theta,2*pi*D,2*pi)));
% Eqn29
is_norm=1-p*(k+1)*sin(theta+phi)-(A1*cos(q1*theta)+B1*sin(q1*theta));

最后是需要计算电路的相关参数,对应的公式也给出在注释,值得注意的是,vx算出来是分段函数,所以最终实现需要用if else语句实现:

%% 电路参数计算
clear

syms q1 D k theta f
syms A1 B1 A2 B2 p phi
syms tao
% Eqn14
q2=(q1*sqrt((k+1)/k));
assume((D>0)&(D<1))
% Eqn12
il2_norm=A2*cos(q2*tao)+B2*sin(q2*tao)-q2^2*p/(q2^2-1)*sin(tao+phi)+1/(k+1);
% Eqn21
ic1_norm=1-p*(k+1)*sin(tao+phi)-il2_norm;
% Eqn26
beta_temp=simplify(int(ic1_norm,tao,2*pi*D,theta));
% Eqn51
beta_integral=int(beta_temp,theta,2*pi*D,2*pi);
% Eqn35
RDC_RL=0.5*((2*pi*(1-D)+A1/q1*sin(2*pi*D*q1)+2*B1/q1*sin(pi*D*q1)^2)/(cos(2*pi*D+phi)-cos(phi)))^2;
% Eqn52
reactance_C1=simplify(2*pi*RDC_RL/beta_integral);
% Eqn58
vx=simplify(2*(int(beta_temp*cos(theta+phi),theta,2*pi*D,2*pi))/(int(beta_temp,theta,2*pi*D,2*pi)));
% Eqn32
im=(2*pi*(1-D)+A1/q1*sin(2*pi*D*q1)+2*B1/q1*sin(pi*D*q1)^2)/(cos(2*pi*D+phi)-cos(phi));
% Eqn51-60
reactance_C2=reactance_C1*k;
reactance_L2=reactance_C2/q1^2;
reactance_Lx=vx/im*RDC_RL;

Q_RLC=100;
RL=1/RDC_RL;
C1=1/(2*pi*f*RL*reactance_C1);
C2=1/(2*pi*f*RL*reactance_C2);
L2=reactance_L2*RL/(2*pi*f);
Lx=reactance_Lx*RL/(2*pi*f);
C3=1/(2*pi*f*Q_RLC*RL);
L3=Q_RLC^2*RL^2*C3;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Angular基础---HelloWorld---Day2

文章目录 1.循环语句&#xff1a; *ngfor2.循环语句&#xff1a;ngSwitch4.事件的绑定:click5.事件的绑定:input6.模版引用变量7.数据双向绑定ngModel8.动态表单控件9.动态表单空间组 文末附有代码仓库地址&#xff01;&#xff01;&#xff01; 1.循环语句&#xff1a; *ngfor…

变换,动画

面试题——需求&#xff1a;在不知道父元素与子元素的宽高时 如何让子元素在父元素内居中&#xff1f; 1.定位 父相子绝 2.子元素 top&#xff1a;50% left:50% 3.子元素 transform: translate(-50%,-50%) .parent{height: 500px;background-color: red;position: relative;}.c…

宿主机连接不上vmware中的虚拟机排查思路

1、简介 在前文中&#xff0c;我们遇到了电脑连接网络后无法浏览网页的情况&#xff0c;其中有一种方式就是将网络适配器卸载&#xff0c;然后重启机器。今天在使用vmware中的虚拟机时&#xff0c;发现和宿主机网段不一致&#xff0c;导致宿主机访问不了虚拟机&#xff0c;主要…

数字化转型导师坚鹏:科技金融政策、案例及发展研究

科技金融政策、案例及发展研究 课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不清楚科技金融有哪些利好政策&#xff1f; 不知道科技金融有哪些成功案例&#xff1f; 不知道科技金融未来发展方向&#xff1f; 课程特色&#xff1a; 以案例的方式解读原创方…

HTML静态网页成品作业(HTML+CSS+JS)——和平精英介绍设计制作(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码实现图片轮播&#xff0c;共有4个页面。 二、作品…

基于机器学习的网络入侵检测与特征选择及随机森林分类器性能评估(NSL-KDD数据集)

简介 本文将详细介绍如何利用Python和相关机器学习库对NSL-KDD数据集进行预处理&#xff0c;特征选择&#xff0c;并通过随机森林算法构建网络入侵检测模型。同时&#xff0c;还将展示如何计算并可视化模型的ROC曲线以评估其性能。 首先&#xff0c;我们导入了必要的库&#…

【机器学习】在Python中进行K-Means聚类和层次聚类

Python中聚类算法API的使用指南 聚类分析是数据分析中一种常见的无监督学习方法&#xff0c;通过将相似的对象分组在一起&#xff0c;我们能够识别出数据集中的自然分群。本文将介绍如何使用Python中的聚类算法接口&#xff0c;KMeans和层次聚类方法。 K-Means 聚类 K-Means…

保姆级讲解字符串函数(上篇)

目录 字符分类函数 导图 函数介绍 1.getchar 2. isupper 和 islower 字符转换函数&#xff1a;&#xff08;toupper , tolower&#xff09; 与 putchar 字符串函数 导图 string函数的使用和模拟实现 string的使用 求字符串长度 字符串的比较 string函数的模拟实现…

苍穹外卖-day01

苍穹外卖-day01 目录 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库环境…

【考研数学】129高分学姐二战经验+资料分享

21年数学三87分 22年数学三129分 可以说这两年该踩的雷我都踩了、该做的题我都做了。 进来看看是什么使我突然醒悟让我数学提分40多分的叭。 李林的880题我也做过&#xff0c;先来说说这本书的优缺点以及适用人群吧。 习题优点 李林老师的880题难度适中&#xff0c;很贴近…

013 Linux_互斥

前言 本文将会向你介绍互斥的概念&#xff0c;如何加锁与解锁&#xff0c;互斥锁的底层原理是什么 线程ID及其地址空间布局 每个线程拥有独立的线程上下文&#xff1a;一个唯一的整数线程ID, 独立的栈和栈指针&#xff0c;程序计数器&#xff0c;通用的寄存器和条件码。 和其…

基于springboot实现大学外卖管理系统项目【项目源码+论文说明】

基于springboot实现大学外卖管理系统演示 摘要 如今&#xff0c;信息化不断的高速发展&#xff0c;社会也跟着不断进步&#xff0c;现今的社会&#xff0c;各种工作都离不开信息化技术&#xff0c;更离不开电脑的管理。信息化技术也越来越渗透到各小型的企业和公司中&#xff…

pytorch(九)卷积神经网络

文章目录 卷积神经网络全连接神经网络与卷积神经网络的区别概念性知识mnist数据集(卷积神经网络) GoogLeNetInception 残差网络ResNet残差块结构 卷积神经网络 全连接神经网络与卷积神经网络的区别 全连接神经网络是一种最为基础的前馈神经网络&#xff0c;他的每一个神经元都…

AndroidStudio跑马灯实现

在activity_main.xml中编写如下代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_h…

【考研数学】打基础,张宇《30讲》还是武忠祥《基础篇》?

张宇的30讲还是不太适合零基础的考研党去听...因为宇哥整体节奏较快&#xff0c;如果目标分较高&#xff0c;有一定的基础还是建议的 身边真的很多130-140的大佬都是跟着张宇从头到尾&#xff0c;张宇老师的习题册非常适合基础扎实&#xff0c;想冲刺高分的考研党 我是属于基…

R语言的数据类型与数据结构:向量、列表、矩阵、数据框及操作方法

R语言的数据类型与数据结构&#xff1a;向量、列表、矩阵、数据框及操作方法 介绍向量列表矩阵数据框 介绍 R语言拥有丰富的数据类型和数据结构&#xff0c;以满足各类数据处理和分析的需求。本文将分享R语言中的数据类型&#xff0c;包括向量、列表、矩阵、数据框等&#xff…

Skywalking官方的实战模拟项目Live-Demo

Skywalking 官方的实战模拟项目Live-Demo Live-Demo 是 Skywalking 官方的实战模拟项目&#xff0c;其中包含4个子模块项目 projectA访问projectB、projectC两个SpringBoot项目 projectB访问本地的H2数据库 projectC访问www.baidu.com并同时向一台Kafka消息队列写入数据 proje…

VSCODE解决git合并过程中的冲突问题;error: failed to push some refs to

1&#xff1a;异常现象 推送有冲突的git修改到远端的时候&#xff0c;会有如下提示 git.exe push --progress “origin” master:master To http://gitlab.xxx.com/dujunqiu/test.git ! [rejected] master -> master (fetch first) error: failed to push some refs to ‘…

解决“ModuleNotFoundError: No module named ‘RPi._GPIO‘”

背景描述 树莓派4B Ubuntu20.04 Python3.9安装RPi.GPIO后无法使用 解决办法 使用sudo pip3 install RPi.GPIO --upgrade尝试更新&#xff0c;发生红字报错&#xff0c;提示在编译过程中缺少Python开发头文件&#xff08;Python.h&#xff09;&#xff0c;因此应该先安装他&…

短视频矩阵系统--抖去推---年后技术还能迭代更新开发运营吗?

短视频矩阵系统#短视频矩阵系统已经开发3年&#xff0c;年后这个市场还能继续搞吗&#xff1f;目前市面上开发短视频账号矩阵系统的源头公司已经不多了吧&#xff0c;或者说都已经被市场被官方平台的政策影响的不做了吧&#xff0c;做了3年多的矩阵系统开发到现在真的是心里没有…