- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
谈 ADS 如何用 Harmonic Balance 来模拟振荡器
录入:edatop.com 点击:
一般而言,电路的仿真,就是在讨论「输入讯号」和「输出讯号」之间的关系。像放大器就是在讨论「输入讯号」和「输出讯号」之间的倍率关系。相移器是讨论「输入讯号」和「输出讯号」之间的相位关系。若是线性电路,则可以把输入讯号和输出讯号整理成矩阵形式后,解反矩阵即可得到输出讯号。然而,振荡器却无法这样子分析。
因为振荡器本身没有「输入讯号」,却有「输出讯号」。所以,模拟振荡器是件很特别的事情。站在电路求解的立场,你可以把他想象成要求一个矩阵的NULL。嗯~~~说多了。总之,就是跟典型的电路解法不同,要不就是开发一种新的计算方法,要不就是想想有没有替代方案。而在 ADS 的 Harmonic Balance 里头,就了一种替代方案,仍然可以传统的电路计算方法来找出振荡器的特性。
这个原理很简单。首先,我们来设想一个状况。假如一个振荡器在稳定振荡的时候,如果我把其中的一条线拉出来。我们可以想象,这条线,基本上是有两个方向的讯号在来来回回(图一中,就是向右的 S1 以及向左的 S2 )。运作方式如下:
一开始有一个小小的讯号叫做 S1
-> S1 因为遇到反射 (Γ1)就会反射成 S2
-> S2 因为遇到反射 (Γ2)就会反射成 S1
-> S1 再因为遇到反射 (Γ1)就会反射成 S2
-> S2 再因为遇到反射 (Γ2)就会反射成 S1
………
于是就这个样子一直循环下去。
这个样子的循环,我们可以发现,每一次循环 S1 或 S2 都会增加 Γ1 × Γ2 倍(向右以及向左各反射一次,再变回自己)。这个时候,如果我们讨论 Γ1 × Γ2 的大小。我们会发现有三种情况:
状况1:| Γ1 × Γ2 | > 1 则讯号会越来越强
状况2:| Γ1 × Γ2 |= 1 则讯号大小不变
状况3:| Γ1 × Γ2 | > 1 则讯号会越来越弱
前述三种状况,在状况3中,因为讯号会越来越弱,所以这种电路不会有振荡的行为,因为来反射几次讯号就趋近于零了。于是我们就讨论状况1,以及状况2。
在状况1当中。当讯号越来越强。因为晶体管会有饱和的现象,也就是晶体管所产生的反射能力( Γ2 )会随着讯号增强而变弱。这个时候,因为 Γ2 越来越小,而| Γ1 × Γ2 |也就越变越小。于是小到| Γ1 × Γ2 |=1 的时候。讯号大小就会维持不变,于是 Γ2 就不变。于是电路就稳定在| Γ1 × Γ2 |=1 的情况下。我们因此得知稳定振荡的条件1:
条件1:会振荡的电路,都是先从状况1 (| Γ1 × Γ2 | > 1),再变成稳定的状况2 (| Γ1 × Γ2 |= 1)。
讨论完大小,再来就是讨论相位的问题了。相位的问题其实很简单。我们在状况2当中,相位如果不等于 0 的话。那么一前循环后的讯号和自己有个相位差,这个时候频率就会改变。可以这样子想象,如循环一次,这个讯号已经跑超过 360 度了。于是再以这个超过 360度的讯号再去循环。下一次就又跑得更快了。很久很久后,不就可以发现,这个讯号的频率变快了吗? 反过来说,如果这个讯号跑不足 360 度。循环一阵子后的讯号,自然就慢了下来,频率也就变低了。在此得知稳定振荡的条件2:
条件2:当 | Γ1 × Γ2 |= 1 的时候, phase( Γ1 × Γ2) = 0 的频率,就是振荡的频率
纵合以上两个条件,我们知道,我们希望的,就是求出 Γ1 × Γ2 就可以分析出电路的稳定振荡行为了。
最简单的作法,就是把电路切断,这样子电路就有两个 Port。再计算这两个 Port 所带来的反射系数,如下图:
图二的模拟中,会发现这个讯号里头,把电路完全切成两半了。然而实际的振荡器中,如果用频率的角度来看大讯号的运作,其实一个讯号中有好多的频率成份在里头,也就是一倍频、两倍频 … 。也是这些倍频项次控制着组件的饱和现象。因此这一种切开的方法,就只能观察条件一中,| Γ1 × Γ2 | > 1 的状况,以及条件二中,| Γ1 × Γ2 |= 1 的情况。这个方法是可以用来做初始设计,但若要做完整分析,就没办法了。
于是,我们可以想一想要如何让一倍频的讯号可以反射,而其它的讯号可以通行无阻。这个在不同的软件中,都有不同的解决方法。而在 ADS 之中。他的解决方法是使用 OSC Port 这个组件
图三就是ADS组件的样式。在这边也引进了 OscTest。这个就是线性版的 OscPort。他只会分析
Γ1 × Γ2 。但不会寻找稳定振荡的点。而 OscPort,就是利用 OscTest 的原理,再配合 Harmonic Balance 的模拟方法来求出稳定振荡的解。
而 OscTest 里卖的是什么药呢? 其实是非常简单的。
OSCTest 的原理是画在图四中。可以看得出来,OscTest 中,有一个隐藏起来的 Port。图四的种种设定如下:
S21 = 1
S32 = 1
S13 = 1
S12 = 1 (只有在非主频率时才是这样,DC、 2倍频、3倍频…,在1倍频时S12 = 0 )
所以,这个设定中,其实对于非主频率,是没有影响的,因为 S21 = S12 = 1 。也就是有接没接都一样。但是对于主频率来说,S12 = 0。这个时候,回来的讯号,只能透过 Port2->Port3->Port1 这条路了。 所以,
从 Port 3 发射讯号,经 Port 1 反射,弹向 Port 2 的讯号,就等于文章一开始提到的 Γ2 ;
弹向 Port 2 的讯号,经 Port 2 反射,发射向 Port 3 发出的讯号,就等于文章一开始提到的 Γ1
于是要计算 Γ1 × Γ2 其实就等于计算 OscTest 中的 S33 。
由于这个方法,把两个反射系数的相乘化简成一个反射系数,所以是很漂亮的操作方法。因此,在起振时,应该是:
|S33| > 1
Phase(S33) =0
Harmonic Balance 找到这个起振条件之后,会逐渐增加输入到 Port 3 的功率。逐步增加到 |S33| = 1 在增加的过程中,也会调整频率,让 Phase(S33) =0。所以在不断猜解的过程中,找到稳定振荡的条件,因此振荡频率以及振荡的大小都可以很准确的找出来哦。
不过,因为这是猜解的过程,所以有时候,振荡的频率如果一开始给得太离谱,就会导致猜不出来。或者,如果这个振荡器有多重振荡条件的话,这个振荡器的模拟,也会找不出来哦。
因为振荡器本身没有「输入讯号」,却有「输出讯号」。所以,模拟振荡器是件很特别的事情。站在电路求解的立场,你可以把他想象成要求一个矩阵的NULL。嗯~~~说多了。总之,就是跟典型的电路解法不同,要不就是开发一种新的计算方法,要不就是想想有没有替代方案。而在 ADS 的 Harmonic Balance 里头,就了一种替代方案,仍然可以传统的电路计算方法来找出振荡器的特性。
这个原理很简单。首先,我们来设想一个状况。假如一个振荡器在稳定振荡的时候,如果我把其中的一条线拉出来。我们可以想象,这条线,基本上是有两个方向的讯号在来来回回(图一中,就是向右的 S1 以及向左的 S2 )。运作方式如下:
一开始有一个小小的讯号叫做 S1
-> S1 因为遇到反射 (Γ1)就会反射成 S2
-> S2 因为遇到反射 (Γ2)就会反射成 S1
-> S1 再因为遇到反射 (Γ1)就会反射成 S2
-> S2 再因为遇到反射 (Γ2)就会反射成 S1
………
于是就这个样子一直循环下去。
图一 振荡器稳定振荡的情况 |
这个样子的循环,我们可以发现,每一次循环 S1 或 S2 都会增加 Γ1 × Γ2 倍(向右以及向左各反射一次,再变回自己)。这个时候,如果我们讨论 Γ1 × Γ2 的大小。我们会发现有三种情况:
状况1:| Γ1 × Γ2 | > 1 则讯号会越来越强
状况2:| Γ1 × Γ2 |= 1 则讯号大小不变
状况3:| Γ1 × Γ2 | > 1 则讯号会越来越弱
前述三种状况,在状况3中,因为讯号会越来越弱,所以这种电路不会有振荡的行为,因为来反射几次讯号就趋近于零了。于是我们就讨论状况1,以及状况2。
在状况1当中。当讯号越来越强。因为晶体管会有饱和的现象,也就是晶体管所产生的反射能力( Γ2 )会随着讯号增强而变弱。这个时候,因为 Γ2 越来越小,而| Γ1 × Γ2 |也就越变越小。于是小到| Γ1 × Γ2 |=1 的时候。讯号大小就会维持不变,于是 Γ2 就不变。于是电路就稳定在| Γ1 × Γ2 |=1 的情况下。我们因此得知稳定振荡的条件1:
条件1:会振荡的电路,都是先从状况1 (| Γ1 × Γ2 | > 1),再变成稳定的状况2 (| Γ1 × Γ2 |= 1)。
讨论完大小,再来就是讨论相位的问题了。相位的问题其实很简单。我们在状况2当中,相位如果不等于 0 的话。那么一前循环后的讯号和自己有个相位差,这个时候频率就会改变。可以这样子想象,如循环一次,这个讯号已经跑超过 360 度了。于是再以这个超过 360度的讯号再去循环。下一次就又跑得更快了。很久很久后,不就可以发现,这个讯号的频率变快了吗? 反过来说,如果这个讯号跑不足 360 度。循环一阵子后的讯号,自然就慢了下来,频率也就变低了。在此得知稳定振荡的条件2:
条件2:当 | Γ1 × Γ2 |= 1 的时候, phase( Γ1 × Γ2) = 0 的频率,就是振荡的频率
纵合以上两个条件,我们知道,我们希望的,就是求出 Γ1 × Γ2 就可以分析出电路的稳定振荡行为了。
最简单的作法,就是把电路切断,这样子电路就有两个 Port。再计算这两个 Port 所带来的反射系数,如下图:
图二 断开电路求振荡 |
图二的模拟中,会发现这个讯号里头,把电路完全切成两半了。然而实际的振荡器中,如果用频率的角度来看大讯号的运作,其实一个讯号中有好多的频率成份在里头,也就是一倍频、两倍频 … 。也是这些倍频项次控制着组件的饱和现象。因此这一种切开的方法,就只能观察条件一中,| Γ1 × Γ2 | > 1 的状况,以及条件二中,| Γ1 × Γ2 |= 1 的情况。这个方法是可以用来做初始设计,但若要做完整分析,就没办法了。
于是,我们可以想一想要如何让一倍频的讯号可以反射,而其它的讯号可以通行无阻。这个在不同的软件中,都有不同的解决方法。而在 ADS 之中。他的解决方法是使用 OSC Port 这个组件
图三 OscTest, 以及 OscPort |
图三就是ADS组件的样式。在这边也引进了 OscTest。这个就是线性版的 OscPort。他只会分析
Γ1 × Γ2 。但不会寻找稳定振荡的点。而 OscPort,就是利用 OscTest 的原理,再配合 Harmonic Balance 的模拟方法来求出稳定振荡的解。
而 OscTest 里卖的是什么药呢? 其实是非常简单的。
图四 OscTest 的原理 |
OSCTest 的原理是画在图四中。可以看得出来,OscTest 中,有一个隐藏起来的 Port。图四的种种设定如下:
S21 = 1
S32 = 1
S13 = 1
S12 = 1 (只有在非主频率时才是这样,DC、 2倍频、3倍频…,在1倍频时S12 = 0 )
所以,这个设定中,其实对于非主频率,是没有影响的,因为 S21 = S12 = 1 。也就是有接没接都一样。但是对于主频率来说,S12 = 0。这个时候,回来的讯号,只能透过 Port2->Port3->Port1 这条路了。 所以,
从 Port 3 发射讯号,经 Port 1 反射,弹向 Port 2 的讯号,就等于文章一开始提到的 Γ2 ;
弹向 Port 2 的讯号,经 Port 2 反射,发射向 Port 3 发出的讯号,就等于文章一开始提到的 Γ1
于是要计算 Γ1 × Γ2 其实就等于计算 OscTest 中的 S33 。
由于这个方法,把两个反射系数的相乘化简成一个反射系数,所以是很漂亮的操作方法。因此,在起振时,应该是:
|S33| > 1
Phase(S33) =0
Harmonic Balance 找到这个起振条件之后,会逐渐增加输入到 Port 3 的功率。逐步增加到 |S33| = 1 在增加的过程中,也会调整频率,让 Phase(S33) =0。所以在不断猜解的过程中,找到稳定振荡的条件,因此振荡频率以及振荡的大小都可以很准确的找出来哦。
不过,因为这是猜解的过程,所以有时候,振荡的频率如果一开始给得太离谱,就会导致猜不出来。或者,如果这个振荡器有多重振荡条件的话,这个振荡器的模拟,也会找不出来哦。
ADS培训课程推荐详情>>
国内最全面、最专业的Agilent ADS培训课程,可以帮助您从零开始,全面系统学习ADS设计应用【More..】
- Agilent ADS教学培训课程套装
- 两周学会ADS2011、ADS2013视频教程
- ADS2012、ADS2013射频电路设计详解
- ADS高低阻抗线微带滤波器设计培训教程
- ADS混频器仿真分析实例视频培训课程
- ADS Momentum电磁仿真设计视频课程
- ADS射频电路与通信系统设计高级培训
- ADS Layout和电磁仿真设计培训视频
- ADS Workspace and Simulators Training Course
- ADS Circuit Simulation Training Course
- ADS Layout and EM Simulation Training Course
- Agilent ADS 内部原版培训教材合集