连续类功放通解2:连续类单管功率放大器底层实现原理

连续类功放通解2:连续类单管功率放大器底层实现原理

本次内容理论性较强,适合对功率放大器理论研究比较感兴趣以及想发论文的小朋友,着重探讨现有的一些带宽拓展模式(也就是连续类)的基本实现原理,并给出其通用的分析求解方法

前置介绍:
连续类功放通解1:连续类单管功率放大器现有理论

0、思路与直觉

连续类功率放大器能够在不牺牲效率的情况下拓展带宽,因此得到的广泛的研究。从数学角度去理解,连续模式的宽带设计空间(以及其对应的波形)实际上就是一个恒定效率方程的解

0.1简单回顾

功率放大器的Smith圆图(频域)上的设计空间和其时域波形直接相关,如连续类功放通解1:连续类单管功率放大器现有理论文章中所给出的计算公式那样(基于原始电压电流波形的傅里叶分量,使用阻抗求解公式进行各次阻抗的求解):
V d s ( θ ) = a V , 0 2 + ∑ n = 1 ∞ a V , n cos ⁡ ( n θ ) + ∑ n = 1 ∞ b V , n sin ⁡ ( n θ ) a V , 0 = 2 \begin{aligned} & V_{ds}(\theta)=\frac{a_{V, 0}}{2}+\sum_{n=1}^{\infty} a_{V, n} \cos (n \theta)+\sum_{n=1}^{\infty} b_{V, n} \sin (n \theta) \\ & a_{V, 0}=2 \end{aligned} Vds(θ)=2aV,0+n=1aV,ncos(nθ)+n=1bV,nsin(nθ)aV,0=2
I d s ( θ ) = a I , 0 2 + ∑ n = 1 ∞ a I , n cos ⁡ ( n θ ) + ∑ n = 1 ∞ b I , n sin ⁡ ( n θ ) a I , 0 = 2 \begin{aligned} & I_{ds}(\theta)=\frac{a_{I, 0}}{2}+\sum_{n=1}^{\infty} a_{I, n} \cos (n \theta)+\sum_{n=1}^{\infty} b_{I, n} \sin (n \theta) \\ & a_{I, 0}=2 \end{aligned} Ids(θ)=2aI,0+n=1aI,ncos(nθ)+n=1bI,nsin(nθ)aI,0=2
Z n f = − a V c , n ( β ) + j b V c , n ( β ) a I , n + j b I , n {Z_{nf}} = - \frac{{{a_{Vc,n}}(\beta ) + j{b_{Vc,n}}(\beta )}}{{{a_{I,n}} + j{b_{I,n}}}} Znf=aI,n+jbI,naVc,n(β)+jbVc,n(β)
因此,所有的带宽拓展模式的直观解释就是因为时域波形的拓展,由此导致了频域设计空间由单点变成连续的线段,由此实现了宽带性能。

那么连续类功率放大器牺牲了什么呢?连续类PA的波形的峰值在不同阻抗条件下不固定,峰值大的波形易出现击穿,这是其主要的劣质,可参考下图中的电压峰值在2-3倍Vcc之间变化(连续B/J类波形与相应的宽带空间):
连续类功放通解2:连续类单管功率放大器底层实现原理_第1张图片

1、恒定高效率方程

之前提及,从数学角度去理解,连续模式的宽带设计空间(以及其对应的波形)实际上就是一个恒定效率方程的解。找到这个方程非常有意义,因为这样的方程可以应用于所有的波形,并有潜力给出任意波形的连续拓展模式。

在此给出这个理想的恒定效率方程的直接表达,其主要包含下面两个约束:

  1. 基波输出效率为
  2. 谐波不消耗功率

基于0.1简单回顾小节中的傅里叶分解假设,将上面的方程转化为数学形式,如下所示:
η = P 1 f P i n = − a I , 1 a V c , 1 + b I , 1 b V c , 1 2 P i n P n f = − a I , n a V c , n + b I , n b V c , n 2 = 0 ( n > 1 ) \begin{aligned} &\eta = \frac{{{P_{1f}}}}{{{P_{in}}}} = - \frac{{{a_{I,1}}{a_{Vc,1}} + {b_{I,1}}{b_{Vc,1}}}}{{2{P_{in}}}}\\ &{P_{nf}} = - \frac{{{a_{I,n}}{a_{Vc,n}} + {b_{I,n}}{b_{Vc,n}}}}{2} = 0(n>1) \end{aligned} η=PinP1f=2PinaI,1aVc,1+bI,1bVc,1Pnf=2aI,naVc,n+bI,nbVc,n=0(n>1)
P i n = V D C ⋅ I D C = a I , 0 2 ⋅ a V c , 0 2 \begin{aligned} & {P_{in}} = {V_{DC}} \cdot {I_{DC}} = \frac{{{a_{I,0}}}}{2} \cdot \frac{{{a_{Vc,0}}}}{2} \end{aligned} Pin=VDCIDC=2aI,02aVc,0
简单验证连续F类是否满足上面的方程,连续F类的波形表达式如下所示:
V C F = ( 1 − 2 3 cos ⁡ θ ) 2 ⋅ ( 1 + 1 3 cos ⁡ θ ) ⋅ ( 1 − γ sin ⁡ θ ) = 1 − 2 3 cos ⁡ θ − γ sin ⁡ θ + 7 γ 6 3 sin ⁡ 2 θ + 1 3 3 cos ⁡ 3 θ − 7 γ 6 3 cos ⁡ 4 θ I C F = 1 π + 1 2 cos ⁡ θ + 2 3 π cos ⁡ ( 2 θ ) \begin{aligned} &{V_{CF}} = {\left( {1 - \frac{2}{{\sqrt 3 }}\cos \theta } \right)^2} \cdot \left( {1 + \frac{1}{{\sqrt 3 }}\cos \theta } \right) \cdot (1 - \gamma \sin \theta )\\ &{\rm{ = 1}} - \frac{2}{{\sqrt 3 }}\cos \theta - \gamma \sin \theta {\rm{ + }}\frac{{{\rm{7}}\gamma }}{{{\rm{6}}\sqrt 3 }}\sin {\rm{2}}\theta {\rm{ + }}\frac{{\rm{1}}}{{{\rm{3}}\sqrt 3 }}\cos 3\theta - \frac{{{\rm{7}}\gamma }}{{{\rm{6}}\sqrt 3 }}\cos 4\theta \\ &{I_{CF}} = \frac{1}{\pi } + \frac{1}{2}\cos \theta + \frac{2}{{3\pi }}\cos (2\theta ) \end{aligned} VCF=(13 2cosθ)2(1+3 1cosθ)(1γsinθ)=13 2cosθγsinθ+63 7γsin2θ+33 1cos3θ63 7γcos4θICF=π1+21cosθ+3π2cos(2θ)
基于上面的傅里叶分量对效率进行计算,可得:
P 1 f = − a I , 1 a V , 1 + b I , 1 b V , 1 2 = − 1 2 × ( − 2 3 ) + 0 × ( − γ ) 2 = 1 2 3 P n f = − a I , n a V , n + b I , n b V , n 2 = 0 ( n > 1 ) η = P 1 f P i n = 1 2 3 1 π ≈ 0.907 \begin{aligned} &{P_{1f}} = - \frac{{{a_{I,1}}{a_{V,1}} + {b_{I,1}}{b_{V,1}}}}{2} = - \frac{{\frac{1}{2} \times \left( { - \frac{2}{{\sqrt 3 }}} \right) + 0 \times \left( { - \gamma } \right)}}{2} = \frac{1}{{2\sqrt 3 }}\\ &{P_{nf}} = - \frac{{{a_{I,n}}{a_{V,n}} + {b_{I,n}}{b_{V,n}}}}{2} = 0(n > 1)\\ &\eta = \frac{{{P_{1f}}}}{{{P_{in}}}} = \frac{{\frac{1}{{2\sqrt 3 }}}}{{\frac{1}{\pi }}} \approx 0.907 \end{aligned} P1f=2aI,1aV,1+bI,1bV,1=221×(3 2)+0×(γ)=23 1Pnf=2aI,naV,n+bI,nbV,n=0(n>1)η=PinP1f=π123 10.907
由此可见,虽然连续F类在连续F类的基础上乘以了 ( 1 − γ sin ⁡ ( θ ) ) (1 - \gamma \sin (\theta )) (1γsin(θ)),但是最终的效率结果和 γ \gamma γ无关,由此在维持效率不变的同时拓展了波形,由此拓展了宽带的设计空间。

2、如何对波形进行拓展

上面的分析是一个正向的过程,我们已知了连续因子 ( 1 − γ sin ⁡ ( θ ) ) (1 - \gamma \sin (\theta )) (1γsin(θ)),并使用得到的一簇波形解带入方程进行分析,最终发现其满足恒定效率方程。

实际上,如果知道原始的波形,我们也可以通过方程的求解来解得这个连续因子。如果我们能够使用这样的思路进行求解,我们自然能够将这样的方法拓展到任意的波形中去。打个简单的例子,我们事先知道了F类的电流和电压波形,我们如何求解出 ( 1 − γ sin ⁡ ( θ ) ) (1 - \gamma \sin (\theta )) (1γsin(θ))呢?在此简单介绍。

我们不知道乘以什么样的连续因子才能实现带宽的拓展,因此我们需要将连续因子F设为傅里叶分解的形式:
F ( θ , β ) = a F v , 0 ( β ) 2 + ∑ n = 1 ∞ a F v , n ( β ) cos ⁡ ( n θ ) + ∑ n = 1 ∞ b F v , n ( β ) sin ⁡ ( n θ ) F(\theta,\beta)=\frac{a_{F v, 0}(\beta)}{2}+\sum_{n=1}^{\infty} a_{F v, n}(\beta) \cos (n \theta)+\sum_{n=1}^{\infty} b_{F v, n}(\beta) \sin (n \theta) F(θ,β)=2aFv,0(β)+n=1aFv,n(β)cos(nθ)+n=1bFv,n(β)sin(nθ)
相应的,将原始的归一化波形和连续因子相乘,可以得到连续波形 V d − c ( θ , β ) V_{d_{-} c}(\theta,\beta) Vdc(θ,β)
V d − c ( θ , β ) = V d − n ( θ ) ⋅ F ( θ , β ) V_{d_{-} c}(\theta,\beta)=V_{d_{-} n}(\theta) \cdot F(\theta,\beta) Vdc(θ,β)=Vdn(θ)F(θ,β)
对于此处得到的连续波形 V d − c ( θ , β ) V_{d_{-} c}(\theta,\beta) Vdc(θ,β),我们也可以将其写为傅里叶分解的形式:
V d − c ( θ , β ) = a V c , 0 2 + ∑ n = 1 ∞ ( a V c , n cos ⁡ ( n θ ) + b V c , n sin ⁡ ( n θ ) ) V_{d_{-} c}(\theta,\beta)=\frac{a_{V c, 0}}{2}+\sum_{n=1}^{\infty} \left(a_{V c, n} \cos (n \theta)+b_{V c, n} \sin (n \theta)\right) Vdc(θ,β)=2aVc,0+n=1(aVc,ncos(nθ)+bVc,nsin(nθ))
连续波形 V d − c ( θ , β ) V_{d_{-} c}(\theta,\beta) Vdc(θ,β)的傅里叶分量一定会满足恒定效率方程,由此可以构建方程组。到此为止,需要强调的是,我们的未知数只有连续因子F的傅里叶分量,其余的一切都是已知的(例如初始电压、电流波形的傅里叶分量等等)。

在实际分析时,我们都是最多考虑到5次谐波,因此实际的未知量有11个,就是连续因子F的傅里叶分量(5个正弦分量、5个余弦分量、1个直流分量),但是我们的恒定效率方程只有五个,这意味着方程组的解并不唯一。如何直观的理解这个含义呢,下面我们举例介绍

假设我们对F类的波形使用上面的方法进行求解,我们假设了一个连续因子F,我们会得到下面这样的线性方程组:
M − C ⋅ M − F v = [ M − c 1 f M − c 2 f M − c 3 f M − c 4 f M − c 5 f ] ⋅ M − F v = 0 M_{-} C \cdot M_{-} F_v=\left[\begin{array}{l} M_{-} c_{1 f} \\ M_{-} c_{2 f} \\ M_{-} c_{3 f} \\ M_{-} c_{4 f} \\ M_{-} c_{5 f} \end{array}\right] \cdot M_{-} F_v=0 MCMFv= Mc1fMc2fMc3fMc4fMc5f MFv=0
其中 M − F v M_{-} F_v MFv是连续因子F的傅里叶分量,在考虑5次谐波时一共有11个, M − c n f M_{-} c_{n f} Mcnf为第n个方程的系数,我们假设的未知数只有连续因子F的傅里叶分量,因此 M − c n f M_{-} c_{n f} Mcnf也是已知的。
M − F v = [ a F v , 0 a F v , 1 a F v , 2 a F v , 3 a F v , 4 a F v , 5 b F v , 1 b F v , 2 b F v , 3 b F v , 4 b F v , 5 ] T M − c n f = [ c n f a , 0 c n f a , 1 c n f a , 2 c n f a , 3 c n f a , 4 c n f a , 5 c n f b , 1 c n f b , 2 c n f b , 3 c n f b , 4 c n f b , 5 ] \begin{aligned} &M_{-} F_v=\left[\begin{array}{lllllllllll} a_{Fv,{0} } & a_{Fv,{1} } & a_{Fv,{2} } & a_{Fv,{3} } & a_{Fv,{4} } & a_{Fv,{5} } & b_{Fv,{1} } & b_{Fv,{2} } & b_{Fv,{3} } & b_{Fv,{4} } & b_{Fv,{5} } \end{array}\right]^T\\ &M_{-} c_{n f}=\left[\begin{array}{lllllllllll} c_{nf a, 0} & c_{nf a, 1} & c_{nf a, 2} & c_{nf a, 3} & c_{nf a, 4} & c_{nf a, 5} & c_{nf b, 1} & c_{nf b, 2} & c_{nf b, 3} & c_{nf b, 4} & c_{nf b, 5}\\ \end{array}\right]\\ \end{aligned} MFv=[aFv,0aFv,1aFv,2aFv,3aFv,4aFv,5bFv,1bFv,2bFv,3bFv,4bFv,5]TMcnf=[cnfa,0cnfa,1cnfa,2cnfa,3cnfa,4cnfa,5cnfb,1cnfb,2cnfb,3cnfb,4cnfb,5]
实际的未知量有11个恒定效率方程只有五个,方程组一定有多组解,我们需要对方程组的通解进行求取。对于连续F类,我们必定可以解得恒定效率方程的通解一定包含以下两个:
M − F 0 = [ 2 0 0 0 0 0 0 0 0 0 0 ] T M − F 1 = [ 0 0 0 0 0 0 1 0 0 0 0 ] T \begin{aligned} &M_{-} F_0=\left[\begin{array}{lllllllllll} 2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{array}\right]^T\\ &M_{-} F_1=\left[\begin{array}{lllllllllll} 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \end{array}\right]^T\\ \end{aligned} MF0=[20000000000]TMF1=[00000010000]T
使用线性代数的知识,我们必知 M − F 0 − β M − F 1 M_{-} F_0- \beta M_{-} F_1 MF0βMF1也是方程组的解,因此得到一组解为:
M − F v = [ 2 0 0 0 0 0 − β 0 0 0 0 ] T \begin{aligned} &M_{-} F_v=\left[\begin{array}{lllllllllll} 2 & 0 & 0 & 0 & 0 & 0 & -\beta & 0 & 0 & 0 & 0 \end{array}\right]^T\\ \end{aligned} MFv=[200000β0000]T
这样我们就可以得到连续F类的一个连续因子:
F ( θ , β ) = a F v , 0 ( β ) 2 + ∑ n = 1 ∞ a F v , n ( β ) cos ⁡ ( n θ ) + ∑ n = 1 ∞ b F v , n ( β ) sin ⁡ ( n θ ) = ( 1 − β sin ⁡ ( θ ) ) F(\theta,\beta)=\frac{a_{F v, 0}(\beta)}{2}+\sum_{n=1}^{\infty} a_{F v, n}(\beta) \cos (n \theta)+\sum_{n=1}^{\infty} b_{F v, n}(\beta) \sin (n \theta)=(1 - \beta\sin (\theta )) F(θ,β)=2aFv,0(β)+n=1aFv,n(β)cos(nθ)+n=1bFv,n(β)sin(nθ)=(1βsin(θ))
这边还有一个细节问题,就是 M − F 0 、 M − F 1 M_{-} F_0、 M_{-} F_1 MF0MF1是方程的通解,那么 F ( θ , β ) = 1 、 2 、 3 、 4...... F(\theta,\beta)=1、2、3、4...... F(θ,β)=1234......以及 F ( θ , β ) = s i n ( θ ) 、 2 s i n ( θ ) 、 3 s i n ( θ ) 、 4 s i n ( θ ) . . . . . . F(\theta,\beta)=sin(\theta)、2sin(\theta)、3sin(\theta)、4sin(\theta)...... F(θ,β)=sin(θ)2sin(θ)3sin(θ)4sin(θ)......应该都能满足拓展的要求,但是在实际过程中,我们需要要求被拓展后得到的波形的直流分量保持不变(供电电压总是不变的),因此乘以了这些数之后还需要进行重新的归一化。只乘以 s i n ( θ ) sin(\theta) sin(θ)也是同理。

而单独乘以 s i n ( θ ) sin(\theta) sin(θ)会导致直流分量消失,得到无解,我们需要将 s i n ( θ ) sin(\theta) sin(θ)看成 S + s i n ( θ ) S+sin(\theta) S+sin(θ),其中S为无穷小:
V C F = ( 1 − 2 3 cos ⁡ θ ) 2 ⋅ ( 1 + 1 3 cos ⁡ θ ) ⋅ ( S − γ sin ⁡ θ ) = S − 2 3 S cos ⁡ θ − γ sin ⁡ θ + 7 γ 6 3 sin ⁡ 2 θ + 1 3 3 S cos ⁡ 3 θ − 7 γ 6 3 cos ⁡ 4 θ I C F = 1 π + 1 2 cos ⁡ θ + 2 3 π cos ⁡ ( 2 θ ) \begin{aligned} &{V_{CF}} = {\left( {1 - \frac{2}{{\sqrt 3 }}\cos \theta } \right)^2} \cdot \left( {1 + \frac{1}{{\sqrt 3 }}\cos \theta } \right) \cdot (S - \gamma \sin \theta )\\ &{{ = S}} - \frac{2}{{\sqrt 3 }}S\cos \theta - \gamma \sin \theta {\rm{ + }}\frac{{{\rm{7}}\gamma }}{{{\rm{6}}\sqrt 3 }}\sin {\rm{2}}\theta {\rm{ + }}\frac{{\rm{1}}}{{{\rm{3}}\sqrt 3 }}S\cos 3\theta - \frac{{{\rm{7}}\gamma }}{{{\rm{6}}\sqrt 3 }}\cos 4\theta \\ &{I_{CF}} = \frac{1}{\pi } + \frac{1}{2}\cos \theta + \frac{2}{{3\pi }}\cos (2\theta ) \end{aligned} VCF=(13 2cosθ)2(1+3 1cosθ)(Sγsinθ)=S3 2Scosθγsinθ+63 7γsin2θ+33 1Scos3θ63 7γcos4θICF=π1+21cosθ+3π2cos(2θ)
结合高数中等价无穷小的知识进行化简,得到如下结果:
P 1 f = − a I , 1 a V , 1 + b I , 1 b V , 1 2 = − 1 2 × ( − 2 3 S ) + 0 × ( − γ ) 2 = S 2 3 P n f = − a I , n a V , n + b I , n b V , n 2 = 0 ( n > 1 ) η = P 1 f P i n = S 2 3 S π ≈ 0.907 \begin{aligned} &{P_{1f}} = - \frac{{{a_{I,1}}{a_{V,1}} + {b_{I,1}}{b_{V,1}}}}{2} = - \frac{{\frac{1}{2} \times \left( { - \frac{2}{{\sqrt 3 }}}S \right) + 0 \times \left( { - \gamma } \right)}}{2} = \frac{S}{{2\sqrt 3 }}\\ &{P_{nf}} = - \frac{{{a_{I,n}}{a_{V,n}} + {b_{I,n}}{b_{V,n}}}}{2} = 0(n > 1)\\ &\eta = \frac{{{P_{1f}}}}{{{P_{in}}}} = \frac{{\frac{S}{{2\sqrt 3 }}}}{{\frac{S}{\pi }}} \approx 0.907 \end{aligned} P1f=2aI,1aV,1+bI,1bV,1=221×(3 2S)+0×(γ)=23 SPnf=2aI,naV,n+bI,nbV,n=0(n>1)η=PinP1f=πS23 S0.907

3、恒定高效率方程的求解

简要的思路在上一小节中已经介绍过了,详细的推导过程可以参考下面的论文:
A continuous Class-EF power amplifier based on the general continuous mode design theory

计算过程相对复杂,此处给出Matlab代码来帮助大家实际分析求解。

%计算基底
clc
clear all
syms afv0 afv1 afv2 afv3 afv4 afv5 bfv1 bfv2 bfv3 bfv4 bfv5
% 初始化F类波形的傅里叶分量
Vds_fouier=[1,-2/sqrt(3),0,1/(3*sqrt(3)),0,0,0,0,0,0,0];
Ids_fouier=pi*[1/pi,0.5,2/(3*pi),0,0,0,0,0,0,0,0];


av0=Vds_fouier(1)*2;av1=Vds_fouier(2);av2=Vds_fouier(3);av3=Vds_fouier(4);av4=Vds_fouier(5);av5=Vds_fouier(6);
bv1=Vds_fouier(7);bv2=Vds_fouier(8);bv3=Vds_fouier(9);bv4=Vds_fouier(10);bv5=Vds_fouier(11);
ai0=Ids_fouier(1)*2;ai1=Ids_fouier(2);ai2=Ids_fouier(3);ai3=Ids_fouier(4);ai4=Ids_fouier(5);ai5=Ids_fouier(6);
bi1=Ids_fouier(7);bi2=Ids_fouier(8);bi3=Ids_fouier(9);bi4=Ids_fouier(10);bi5=Ids_fouier(11);
eta=-(ai1*av1+bi1*bv1)/2/(av0/2*ai0/2);

c_afv0=(ai1*av1)/4 + (bi1*bv1)/4 + (av0*eta)/4;
c_afv1=(bi1*bv2)/4 + (av1*eta)/2 + (ai1*(av0/2 + av2/2))/2;
c_afv2=(av2*eta)/2 + (ai1*(av1/2 + av3/2))/2 - (bi1*(bv1/2 - bv3/2))/2;
c_afv3=(av3*eta)/2 + (ai1*(av2/2 + av4/2))/2 - (bi1*(bv2/2 - bv4/2))/2;
c_afv4=(av4*eta)/2 + (ai1*(av3/2 + av5/2))/2 - (bi1*(bv3/2 - bv5/2))/2;
c_afv5=(ai1*av4)/4 - (bi1*bv4)/4 + (av5*eta)/2;
c_bfv1=(ai1*bv2)/4 + (bv1*eta)/2 + (bi1*(av0/2 - av2/2))/2;
c_bfv2=(bv2*eta)/2 + (bi1*(av1/2 - av3/2))/2 + (ai1*(bv1/2 + bv3/2))/2;
c_bfv3=(bv3*eta)/2 + (bi1*(av2/2 - av4/2))/2 + (ai1*(bv2/2 + bv4/2))/2;
c_bfv4=(bv4*eta)/2 + (bi1*(av3/2 - av5/2))/2 + (ai1*(bv3/2 + bv5/2))/2;
c_bfv5=(ai1*bv4)/4 + (av4*bi1)/4 + (bv5*eta)/2;
coff_1nd=[c_afv0 c_afv1 c_afv2 c_afv3 c_afv4 c_afv5 c_bfv1 c_bfv2 c_bfv3 c_bfv4 c_bfv5];

c_afv0=(ai2*av2)/2 + (bi2*bv2)/2;
c_afv1=ai2*(av1/2 + av3/2) + bi2*(bv1/2 + bv3/2);
c_afv2=(bi2*bv4)/2 + ai2*(av0/2 + av4/2);
c_afv3=ai2*(av1/2 + av5/2) - bi2*(bv1/2 - bv5/2);
c_afv4=(ai2*av2)/2 - (bi2*bv2)/2;
c_afv5=(ai2*av3)/2 - (bi2*bv3)/2;
c_bfv1=bi2*(av1/2 - av3/2) - ai2*(bv1/2 - bv3/2);
c_bfv2=(ai2*bv4)/2 + bi2*(av0/2 - av4/2);
c_bfv3=bi2*(av1/2 - av5/2) + ai2*(bv1/2 + bv5/2);
c_bfv4=(ai2*bv2)/2 + (av2*bi2)/2;
c_bfv5=(ai2*bv3)/2 + (av3*bi2)/2;
coff_2nd=[c_afv0 c_afv1 c_afv2 c_afv3 c_afv4 c_afv5 c_bfv1 c_bfv2 c_bfv3 c_bfv4 c_bfv5];

c_afv0=(ai3*av3)/2 + (bi3*bv3)/2;
c_afv1=ai3*(av2/2 + av4/2) + bi3*(bv2/2 + bv4/2);
c_afv2=ai3*(av1/2 + av5/2) + bi3*(bv1/2 + bv5/2);
c_afv3=(ai3*av0)/2;
c_afv4=(ai3*av1)/2 - (bi3*bv1)/2;
c_afv5=(ai3*av2)/2 - (bi3*bv2)/2;
c_bfv1=bi3*(av2/2 - av4/2) - ai3*(bv2/2 - bv4/2);
c_bfv2=bi3*(av1/2 - av5/2) - ai3*(bv1/2 - bv5/2);
c_bfv3=(av0*bi3)/2;
c_bfv4=(ai3*bv1)/2 + (av1*bi3)/2;
c_bfv5=(ai3*bv2)/2 + (av2*bi3)/2;
coff_3nd=[c_afv0 c_afv1 c_afv2 c_afv3 c_afv4 c_afv5 c_bfv1 c_bfv2 c_bfv3 c_bfv4 c_bfv5];

c_afv0=(ai4*av4)/2 + (bi4*bv4)/2;
c_afv1=ai4*(av3/2 + av5/2) + bi4*(bv3/2 + bv5/2);
c_afv2=(ai4*av2)/2 + (bi4*bv2)/2;
c_afv3=(ai4*av1)/2 + (bi4*bv1)/2;
c_afv4=(ai4*av0)/2;
c_afv5=(ai4*av1)/2 - (bi4*bv1)/2;
c_bfv1=bi4*(av3/2 - av5/2) - ai4*(bv3/2 - bv5/2);
c_bfv2=(av2*bi4)/2 - (ai4*bv2)/2;
c_bfv3=(av1*bi4)/2 - (ai4*bv1)/2;
c_bfv4=(av0*bi4)/2;
c_bfv5=(ai4*bv1)/2 + (av1*bi4)/2;
coff_4nd=[c_afv0 c_afv1 c_afv2 c_afv3 c_afv4 c_afv5 c_bfv1 c_bfv2 c_bfv3 c_bfv4 c_bfv5];

c_afv0=(ai5*av5)/2 + (bi5*bv5)/2;
c_afv1=(ai5*av4)/2 + (bi5*bv4)/2;
c_afv2=(ai5*av3)/2 + (bi5*bv3)/2;
c_afv3=(ai5*av2)/2 + (bi5*bv2)/2;
c_afv4=(ai5*av1)/2 + (bi5*bv1)/2;
c_afv5=(ai5*av0)/2;
c_bfv1=(av4*bi5)/2 - (ai5*bv4)/2;
c_bfv2=(av3*bi5)/2 - (ai5*bv3)/2;
c_bfv3=(av2*bi5)/2 - (ai5*bv2)/2;
c_bfv4=(av1*bi5)/2 - (ai5*bv1)/2;
c_bfv5=(av0*bi5)/2;
coff_5nd=[c_afv0 c_afv1 c_afv2 c_afv3 c_afv4 c_afv5 c_bfv1 c_bfv2 c_bfv3 c_bfv4 c_bfv5];

matrix_coff=zeros(11,11);
matrix_coff(1,1:11)=coff_1nd;
matrix_coff(2,1:11)=coff_2nd;
matrix_coff(3,1:11)=coff_3nd;
matrix_coff(4,1:11)=coff_4nd;
matrix_coff(5,1:11)=coff_5nd;

[m,n]=eig(matrix_coff);


b1=1;
b2=8;
beta1=m(:,b1);
% beta1=m(:,b1);
beta2=m(:,b2)-beta1*(m(:,b2)'*beta1)/(beta1'*beta1);

disp(['正交特征向量1为:'])
disp(num2str(beta1'))
disp(['正交特征向量2为:'])
disp(num2str(beta2'))
disp('-------------------------------------------------------------------------------------------------------------------------------')

lamda = sym('lamda','real');
fv_arrary=beta1+lamda*beta2;
fv_arrary(1)=fv_arrary(1);
tmp=simplify(sum(fv_arrary'.*Vds_fouier));
disp(['Norm Factor is:'])
disp(tmp);
disp('-------------------------------------------------------------------------------------------------------------------------------')
%对得出的波形进行验证,验证要求是关于虚轴对称分布
beta = sym('beta','real');
fv_arrary_tmp1=beta1;
fv_arrary_tmp2=beta2;
fv_arrary=fv_arrary_tmp1+fv_arrary_tmp2*beta;
afv0=fv_arrary(1);afv1=fv_arrary(2);afv2=fv_arrary(3);afv3=fv_arrary(4);afv4=fv_arrary(5);afv5=fv_arrary(6);
bfv1=fv_arrary(7);bfv2=fv_arrary(8);bfv3=fv_arrary(9);bfv4=fv_arrary(10);bfv5=fv_arrary(11);

avc0=(afv0*av0)/4 + (afv1*av1)/2 + (afv2*av2)/2 + (afv3*av3)/2 + (afv4*av4)/2 + (afv5*av5)/2 + (bfv1*bv1)/2 + (bfv2*bv2)/2 + (bfv3*bv3)/2 + (bfv4*bv4)/2 + (bfv5*bv5)/2;
avc1=(afv0*av1)/2 + (afv1*av0)/2 + (afv1*av2)/2 + (afv2*av1)/2 + (afv2*av3)/2 + (afv3*av2)/2 + (afv3*av4)/2 + (afv4*av3)/2 + (afv4*av5)/2 + (afv5*av4)/2 + (bfv1*bv2)/2 + (bfv2*bv1)/2 + (bfv2*bv3)/2 + (bfv3*bv2)/2 + (bfv3*bv4)/2 + (bfv4*bv3)/2 + (bfv4*bv5)/2 + (bfv5*bv4)/2;
bvc1=(afv0*bv1)/2 + (av0*bfv1)/2 + (afv1*bv2)/2 - (afv2*bv1)/2 + (av1*bfv2)/2 - (av2*bfv1)/2 + (afv2*bv3)/2 - (afv3*bv2)/2 + (av2*bfv3)/2 - (av3*bfv2)/2 + (afv3*bv4)/2 - (afv4*bv3)/2 + (av3*bfv4)/2 - (av4*bfv3)/2 + (afv4*bv5)/2 - (afv5*bv4)/2 + (av4*bfv5)/2 - (av5*bfv4)/2;
avc2=(afv0*av2)/2 + (afv1*av1)/2 + (afv2*av0)/2 + (afv1*av3)/2 + (afv3*av1)/2 + (afv2*av4)/2 + (afv4*av2)/2 + (afv3*av5)/2 + (afv5*av3)/2 - (bfv1*bv1)/2 + (bfv1*bv3)/2 + (bfv3*bv1)/2 + (bfv2*bv4)/2 + (bfv4*bv2)/2 + (bfv3*bv5)/2 + (bfv5*bv3)/2;
bvc2=(afv0*bv2)/2 + (afv1*bv1)/2 + (av0*bfv2)/2 + (av1*bfv1)/2 + (afv1*bv3)/2 - (afv3*bv1)/2 + (av1*bfv3)/2 - (av3*bfv1)/2 + (afv2*bv4)/2 - (afv4*bv2)/2 + (av2*bfv4)/2 - (av4*bfv2)/2 + (afv3*bv5)/2 - (afv5*bv3)/2 + (av3*bfv5)/2 - (av5*bfv3)/2;
avc3=(afv0*av3)/2 + (afv1*av2)/2 + (afv2*av1)/2 + (afv3*av0)/2 + (afv1*av4)/2 + (afv4*av1)/2 + (afv2*av5)/2 + (afv5*av2)/2 - (bfv1*bv2)/2 - (bfv2*bv1)/2 + (bfv1*bv4)/2 + (bfv4*bv1)/2 + (bfv2*bv5)/2 + (bfv5*bv2)/2;
bvc3=(afv0*bv3)/2 + (afv1*bv2)/2 + (afv2*bv1)/2 + (av0*bfv3)/2 + (av1*bfv2)/2 + (av2*bfv1)/2 + (afv1*bv4)/2 - (afv4*bv1)/2 + (av1*bfv4)/2 - (av4*bfv1)/2 + (afv2*bv5)/2 - (afv5*bv2)/2 + (av2*bfv5)/2 - (av5*bfv2)/2;
avc4=(afv0*av4)/2 + (afv1*av3)/2 + (afv2*av2)/2 + (afv3*av1)/2 + (afv4*av0)/2 + (afv1*av5)/2 + (afv5*av1)/2 - (bfv1*bv3)/2 - (bfv2*bv2)/2 - (bfv3*bv1)/2 + (bfv1*bv5)/2 + (bfv5*bv1)/2;
bvc4=(afv0*bv4)/2 + (afv1*bv3)/2 + (afv2*bv2)/2 + (afv3*bv1)/2 + (av0*bfv4)/2 + (av1*bfv3)/2 + (av2*bfv2)/2 + (av3*bfv1)/2 + (afv1*bv5)/2 - (afv5*bv1)/2 + (av1*bfv5)/2 - (av5*bfv1)/2;
avc5=(afv0*av5)/2 + (afv1*av4)/2 + (afv2*av3)/2 + (afv3*av2)/2 + (afv4*av1)/2 + (afv5*av0)/2 - (bfv1*bv4)/2 - (bfv2*bv3)/2 - (bfv3*bv2)/2 - (bfv4*bv1)/2;
bvc5=(afv0*bv5)/2 + (afv1*bv4)/2 + (afv2*bv3)/2 + (afv3*bv2)/2 + (afv4*bv1)/2 + (av0*bfv5)/2 + (av1*bfv4)/2 + (av2*bfv3)/2 + (av3*bfv2)/2 + (av4*bfv1)/2;


% simplify(real(48.4*conj(-(avc1+1j*bvc1)/(ai1+1j*bi1))/avc0))
%得到虚部为0的beta点
eqn1=simplify(imag(conj(-(avc1+1j*bvc1)/(ai1+1j*bi1))/avc0)==0);
[beta]=solve(eqn1,beta);
disp(['虚部为0时β为:',num2str(double(beta))])

代码实现了基于上面高效率方程的求解,求解过程和论文A continuous Class-EF power amplifier based on the general continuous mode design theory中的一致。在求解时,我们使用了F类波形的傅里叶分量作为初始值,注意给出的分量一定要直流归一化,也就是直流分量是1.运行代码查看结果。方程的求解使用了线性代数的知识,也就是这一行代码:[m,n]=eig(matrix_coff);

其中求解得到的n为对角矩阵,矩阵中的值为矩阵matrix_coff的特征值,m中的每一列为相应的特征值的特征向量。运行上面的代码,得到的矩阵n如下所示,由此可见方程共有11个特征值,其中-0.3208是一重特征值,0是十重特征值(好像是这么叫的):
连续类功放通解2:连续类单管功率放大器底层实现原理_第2张图片
0特征值所对应的特征向量就是方程组的解,查看m矩阵,除去第2列外其余都是满足方程条件的解,其中1、3、4、5、6列没啥好看的,特征向量都差不多。但是7、8、9、10、11列非常有趣,代表sin(theta)、sin(2theta)、sin(3theta)、sin(4theta)、sin(5theta)都是方程解的一部分。这意味着对F类波形乘以1+a* sin(theta)+b* sin(2theta)+c* sin(3theta)+d* sin(4theta)+e* sin(5theta),其中a、b、c、d、e为任意值都会满足要求(但是相乘后的电压波形最小值不能小于0)。
连续类功放通解2:连续类单管功率放大器底层实现原理_第3张图片

4、恒定高效率方程的解验证

( 1 − γ sin ⁡ ( θ ) ) (1 - \gamma \sin (\theta )) (1γsin(θ))这样的连续因子在实际使用中非常广泛,但对于更加高阶的表达式的分析较少,在此实际验证。使用CF=1-sin(theta)-sin(2theta);这样的因子与原始结果相乘,得到波形如下:
连续类功放通解2:连续类单管功率放大器底层实现原理_第4张图片
效率和对应阻抗如下所示,可以看到加上高阶的因子sin(2theta)任然不会改变波形的效率实现:
在这里插入图片描述
再举一个例子,使用CF=1-0.5sin(2
theta);这样的因子与原始结果相乘,得到波形如下:
连续类功放通解2:连续类单管功率放大器底层实现原理_第5张图片
效率和对应阻抗如下所示,可以看到单独的高阶的因子sin(2theta)任然不会改变波形的效率实现:
连续类功放通解2:连续类单管功率放大器底层实现原理_第6张图片
大家可以手动试试,sin(theta)、sin(2theta)、sin(3theta)、sin(4theta)、sin(5theta)都不会改变波形的实际效率,下面给出Matlab代码:

clc
clear all
close all
theta=(0:pi/180:359.*pi/180);


% 初始化F类波形的傅里叶分量,一定要直流归一化
Vds_fouier=[1,-2/sqrt(3),0,1/(3*sqrt(3)),0,0,0,0,0,0,0];
Ids_fouier=pi*[1/pi,0.5,2/(3*pi),0,0,0,0,0,0,0,0];
% 给出连续因子的表达式
% CF=1-sin(theta)-sin(2*theta);
CF=1-0.5*sin(2*theta);
% 计算初始F类的波形
v_theta_fouier=(Vds_fouier(1)+...
    Vds_fouier(2).*cos(theta)+Vds_fouier(7).*sin(theta)+...
    Vds_fouier(3).*cos(2.*theta)+Vds_fouier(8).*sin(2.*theta)+...
    Vds_fouier(4).*cos(3.*theta)+Vds_fouier(9).*sin(3.*theta)+...
    Vds_fouier(5).*cos(4.*theta)+Vds_fouier(10).*sin(4.*theta)+...
    Vds_fouier(6).*cos(5.*theta)+Vds_fouier(11).*sin(5.*theta));
i_theta_fouier=(Ids_fouier(1)+...
    Ids_fouier(2).*cos(theta)+Ids_fouier(7).*sin(theta)+...
    Ids_fouier(3).*cos(2.*theta)+Ids_fouier(8).*sin(2.*theta)+...
    Ids_fouier(4).*cos(3.*theta)+Ids_fouier(9).*sin(3.*theta)+...
    Ids_fouier(5).*cos(4.*theta)+Ids_fouier(10).*sin(4.*theta)+...
    Ids_fouier(6).*cos(5.*theta)+Ids_fouier(11).*sin(5.*theta));
% 将初始F类的波形和连续因子相乘
v_theta_fouier_C=v_theta_fouier.*CF;

% 计算波形的傅里叶分量
Vds.dc=sum(v_theta_fouier_C)/(length(theta));
Vds.fund_cos=2*sum(v_theta_fouier_C.*cos(1*theta))/(length(theta));
Vds.fund_sin=2*sum(v_theta_fouier_C.*sin(1*theta))/(length(theta));
Vds.second_cos=2*sum(v_theta_fouier_C.*cos(2*theta))/(length(theta));
Vds.second_sin=2*sum(v_theta_fouier_C.*sin(2*theta))/(length(theta));
Vds.third_cos=2*sum(v_theta_fouier_C.*cos(3*theta))/(length(theta));
Vds.third_sin=2*sum(v_theta_fouier_C.*sin(3*theta))/(length(theta));
Vds.fourth_cos=2*sum(v_theta_fouier_C.*cos(4*theta))/(length(theta));
Vds.fourth_sin=2*sum(v_theta_fouier_C.*sin(4*theta))/(length(theta));
Vds.fifth_cos=2*sum(v_theta_fouier_C.*cos(5*theta))/(length(theta));
Vds.fifth_sin=2*sum(v_theta_fouier_C.*sin(5*theta))/(length(theta));
Ids.dc=sum(i_theta_fouier)/(length(theta));
Ids.fund_cos=2*sum(i_theta_fouier.*cos(1*theta))/(length(theta));
Ids.fund_sin=2*sum(i_theta_fouier.*sin(1*theta))/(length(theta));
Ids.second_cos=2*sum(i_theta_fouier.*cos(2*theta))/(length(theta));
Ids.second_sin=2*sum(i_theta_fouier.*sin(2*theta))/(length(theta));
Ids.third_cos=2*sum(i_theta_fouier.*cos(3*theta))/(length(theta));
Ids.third_sin=2*sum(i_theta_fouier.*sin(3*theta))/(length(theta));
Ids.fourth_cos=2*sum(i_theta_fouier.*cos(4*theta))/(length(theta));
Ids.fourth_sin=2*sum(i_theta_fouier.*sin(4*theta))/(length(theta));
Ids.fifth_cos=2*sum(i_theta_fouier.*cos(5*theta))/(length(theta));
Ids.fifth_sin=2*sum(i_theta_fouier.*sin(5*theta))/(length(theta));
Vds_fouier(1)=Vds.dc;Vds_fouier(2)=Vds.fund_cos;Vds_fouier(3)=Vds.second_cos;Vds_fouier(4)=Vds.third_cos;
Vds_fouier(5)=Vds.fourth_cos;Vds_fouier(6)=Vds.fifth_cos;Vds_fouier(7)=Vds.fund_sin;
Vds_fouier(8)=Vds.second_sin;Vds_fouier(9)=Vds.third_sin;Vds_fouier(10)=Vds.fourth_sin;Vds_fouier(11)=Vds.fifth_sin;
% 根据傅里叶分量计算阻抗和效率,归一化阻抗为Ropt
Z(1)=conj(-(Vds_fouier(2)+1j*Vds_fouier(7))/(Ids_fouier(2)+1j*Ids_fouier(7)));
Z(2)=conj(-(Vds_fouier(3)+1j*Vds_fouier(8))/(Ids_fouier(3)+1j*Ids_fouier(8)));
Z(3)=conj(-(Vds_fouier(4)+1j*Vds_fouier(9))/(Ids_fouier(4)+1j*Ids_fouier(9)));
Z(4)=conj(-(Vds_fouier(5)+1j*Vds_fouier(10))/(Ids_fouier(5)+1j*Ids_fouier(10)));
Z(5)=conj(-(Vds_fouier(6)+1j*Vds_fouier(11))/(Ids_fouier(6)+1j*Ids_fouier(11)));   
Z=Z/2*pi;
disp(['Z1:',num2str(Z(1)),'   Z2:',num2str(Z(2)),'   Z3:',num2str(Z(3)),'   Z4:',num2str(Z(4)),'   Z5:',num2str(Z(5))])
P.fund=0.5*real(-(Vds.fund_cos+1j*Vds.fund_sin)*conj(Ids.fund_cos+1j*Ids.fund_sin));
P.second=0.5*real(-(Vds.second_cos+1j*Vds.second_sin)*conj(Ids.second_cos+1j*Ids.second_sin));
P.third=0.5*real(-(Vds.third_cos+1j*Vds.third_sin)*conj(Ids.third_cos+1j*Ids.third_sin));
P.fourth=0.5*real(-(Vds.fourth_cos+1j*Vds.fourth_sin)*conj(Ids.fourth_cos+1j*Ids.fourth_sin));
P.fifth=0.5*real(-(Vds.fifth_cos+1j*Vds.fifth_sin)*conj(Ids.fifth_cos+1j*Ids.fifth_sin));
disp(['P1:',num2str(P.fund),'   P2:',num2str(P.second),'   P3:',num2str(P.third),'   P4:',num2str(P.fourth),'   P5:',num2str(P.fifth)])
% 绘图
figure
plot(theta,v_theta_fouier_C);
hold on
plot(theta,i_theta_fouier);
legend('v','i')





你可能感兴趣的:(线性代数,硬件工程,5G,射频工程)