课程设计说明书常用软件课程设计
题目: 宽带放大器计算优化
院(部):理学院
专业班级:应用物理2011级一班
学号: 2011305005
学生姓名:王宝宝
指导教师:严少平
2013年7月8 日
安徽理工大学课程设计(论文)任务书
安徽理工大学课程设计(论文)成绩评定表
目录
1 绪论 (1)
1.1问题背景 (1)
1.2项目概述 (1)
2 项目过程和要求 (2)
2.1项目过程 (2)
2.2项目要求 (2)
3课程设计步骤 (3)
3.1建模 (3)
3.2制定参数 (3)
3.3创建RF电路对象 (3)
3.4检查放大器的稳定性 (5)
3.5观察工作频段内的功率增益 (6)
由于设计放大器最大功率增益不能高于最大资用功率增益,因此需确定晶体管是否符合增益要求: (6)
3.6观察工作频段内噪声行为 (7)
3.7设计输入、输出匹配网络 (8)
3.8使用优化的元件值更新输入输出网络得元件值,重新分析电路对象,验证设计结果。 (12)
4 项目设计报告 (17)
4问题总结 (18)
5 项目总结 (18)
6 参考文献 (19)
1 绪论
1.1 问题背景
Matlab中RF工具箱是一个领域工具箱,具有RF元件的网络设计,建模,分析,和可视化。本节主要用RF工具箱优化计算一个放大器电路,分析放大器稳定性,功率增益,带宽,噪声。在实际生活中,一个放大器最重要的是稳定性,功率增益和带宽。而根据实际生活中厂家提供的数据选则合适的晶体管,对放大器的各项指标:稳定性,功率增益和带宽等有要求和冲突不可能同时实现,只能需求一种折中。因此,RF工具箱在放大器设计优化计算就很好的在保证稳定性的基础上实现功率增益和带宽等指标要求。
Matlab工具箱RF的主要特色。
1)提供行业标准文件来读写(存取)网路参数。
2)通过实践或理论的网络参数和物理属性来定义RF滤波器,传输线,放大器。3)为射频元件计算网络参数,包括串并联。
4)使用有理函数拟合方法构建模型。
5)输出有理函数到Simulink或Verilog_A.
6)可以直角坐标,极坐标,Smith图的方式来显示数据。
1.2 项目概述
应用Matlab工具箱优化计算一个射频宽带放大器,生成电路对象,要求在200-300MHZ频段内实现增益指标10dB,中心频率250MHZ,增益平坦度在0.4dB 上下,噪声系数不大于2.0dB.并对其分析优化。
2 项目过程和要求
2.1 项目过程
1)选择一个合适的晶体管S,写成标准文件lnadata.s2p;
2)检查晶体管的稳定性;
3)若晶体管不适合工作频段,采用合适的技术使他稳定;
4)设置偏置;
5)检查放大器在工作频段内的功率增益
6)观察工作频段内放大器噪声行为
7)采用fminsearch函数优化匹配网络功率增益;
8)使用rftool交互分析晶体管元件S参数。
9)画出优化后的电路图
2.2 项目要求
1)了解Matlab的基本用法,熟练应用RF工具箱创建元件,分析电路。2)掌握创建宽带放大器电路对象模型的创建。
3)理解电路建模的基本思想
4)理解电路参数的物理意义和基本属性
5)会用RF工具箱生成电路匹配网络元件
6)匹配网络的fminsearch非线性无约束优化。
7)得出优化参数,画出电路图。
3课程设计步骤
3.1建模
晶体管的噪声增益,噪声参数在不同的频率点是不同的,要设计有预定增益,预定平坦度和噪声指标的放大器,需要借助源匹配网络和负载匹配网络进行增强,同时对某些频率点降低。由于要求的指标很多,折中选择采用最优化方法设计。
设计放大器:
1)检查给定晶体管稳定性
2)检查功率增益,噪声数据
3)选定方法进行设计
4)验证设计结果是否符合要求
3.2 制定参数
给据题目的要求,制定各个参数,方便后面程序的调用。
BW=100e6;
fc=250e6;
Gt_target=10;
NF_target=2;
ZS=50;
Z0=50;
ZL=50;
Npts=32;
fLower=fc-(BW/2);
fUpper=fc+(BW/2);
freq=linspace(fLower,fUpper,Npts);
w=2*pi*freq;
3.3 创建RF电路对象
使用给定的晶体管参数将晶体管S元件写成标准文件lnadata.s2p,用对象方法read创建一个放大器电路对象Unmatched_Amp,在给定的频率点(freq)分析。
Unmatched_Amp=read(rfckt.amplifier,'lnadata.s2p');
analyze(Unmatched_Amp,freq,ZL,ZS,Z0);
1)把S参数文件写成标准文件lnadata.s2p。
下面是RF电路放大器元件的晶体管S元件参数rftool工具分析,分别是simth图,坐标轴图,和极坐标轴图。
写成S晶体管标准文件lnadata.s2p代码为:
f=1e6*[150 200 300 400];
s_vec(:,:,1)=[0.5577634253-0.4253059706i,-0.0023321817+0.0022135303i;
0.1108300975+2.4408424395i,0.9804633320-0.1047933512i];
s_vec(:,:,2)=[0.4491435931-0.4800754062i,0.0024725851+0.0023925722i;0 .6034716459+1.7806072525i,0.9772106406-0.1332796700i];
s_vec(:,:,3)=[0.2598429800-0.5552371696i,0.0011710201+0.0048018124i;0 .9052272733+1.1156221384i,0.9598395492-0.1896365081i];
s_vec(:,:,4)=[0.0420908277-0.5806368906i,0.0012919003+0.0036988665i;1 .0345010987+0.6863391803i,0.9308039953-0.2443420587i];
netdata=https://www.wendangku.net/doc/1818997498.html,work('type','S_PARAMETERS','Freq',f,'Data',s_vec);
F=1e6*[200 220 240 260 280 300];
fmin=[0.841 0.832 0.821 0.813 0.813 0.813];
gamma_opt=[0.341*(cos(46.412/180*pi)+j*sin(46.412/180*pi));
0.351*(cos(49.311/180*pi)+j*sin(49.311/180*pi));
0.342*(cos(52.711/180*pi)+j*sin(52.711/180*pi));
0.342*(cos(56.222/180*pi)+j*sin(56.222/180*pi));
0.331*(cos(59.833/180*pi)+j*sin(59.833/180*pi));
0.321*(cos(63.411/180*pi)+j*sin(63.411/180*pi))];
rn=[0.178 0.170 0.162 0.156 0.150 0.142];
noisedata=rfdata.noise('freq',F,'fmin',fmin,'gammaopt',gamma_opt,'rn' ,rn);
amp=rfckt.amplifier;
https://www.wendangku.net/doc/1818997498.html,workdata=netdata;
amp.noisedata=noisedata;
analyze(amp,f);
status=write(amp,'lnadata.s2p')
type('lnadata.s2p')
3.4检查放大器的稳定性
放大器需在稳定区域运行,使用stabilityk计算晶体管的稳定参数因子K,?(delta),根据稳定性因子判断晶体管是否绝对稳定。为了更直观的表示,使用对象方法plot画出工作频段内的晶体管稳定参数k,?(delta).
代码为:
[k b1 b2 delta]=stabilityk(Unmatched_Amp.AnalyzedResult.S_Parameters); stability_index=k>1&(abs(delta)<1);
is_stable=(stability_index)
freq_unstable=freq(~stability_index);
plot(Unmatched_Amp,'Delta','mag');
hold on
plot(Unmatched_Amp,'k');
title('晶体管的稳定参数')
xlabel('频率【MHz】');
ylabel('幅度');
运行结果:
Is_stable=1;
由上图:运行的结果可以看出,在频段内最小K=1.8441,最大delta=0.65465.因此在工作频段内所有K都大于1,所有 (delta)都小于1,所以放大器处于绝对稳定状态,不用设置偏置。
3.5 观察工作频段内的功率增益
由于设计放大器最大功率增益不能高于最大资用功率增益,因此需确定晶体管是否符合增益要求,用plot画出放大器的转换功率增益(Gt),资用功率增益(Ga)最大资用功率增益(Gmag),以便确定选定的晶体管功率增益是否符合增益要求:
代码:
figure;
plot(Unmatched_Amp,'Gmag','Ga','Gt','dB');
由图:上图画出了100MHZ带宽内功率增益,并使用数字光标,标出一些点的增益值,在工作频段内,转换功率增益由5.4753到3.1499dB,通带中心仅4.2566dB 的转换功率增益。同时也显示出了资用功率增益与转换功率增益之间有足够的空间实现10dB的增益。
3.6 观察工作频段内噪声行为
同样,设计的放大器噪声系数也不能低于最小噪声系数,因此需使用plot 放大器测量的噪声系数(Fmin),和计算的噪声系数(NF)。
代码:
figure;
plot(Unmatched_Amp,'Fmin','NF','dB');
axis([200 300 0 2])
运行结果如上图,画出了晶体管在工作频段内噪声系数随频率变化的曲线。可以看出,没有匹配的网络放大器符合噪声系数的指标要求。但是在增加输入和输出匹配网络以后,他的噪声性能将会恶化,对多说情况,低噪声放大器的性能指标会超过该指标。
3.7设计输入、输出匹配网络
由于工作频段在200-300MHZ,所以选择带通滤泼器匹配网络的拓扑结构,
如图:
它是一个带超耦合的并联电路,输入输出的匹配网络都为三节,最初调谐在工作
带宽频率的几何平均值(0w =u w l w )。在初始化设计时,所有的电感器被
分配相同的值,电感值的设置为参考阻抗对频率变换的归一化(L=BW Z S /),电容的设置可以使电感在频率几何产生谐振(LC
W 10=或L W C 201
=)。
输入输出的为网络参数代码:
N_input=3; N_output=3; wU=2*pi*fUpper; wL=2*pi*fLower; w0=sqrt(wL*wU);
LvaluesIn=(ZS/(wU-wL))*ones(N_input,1); CvaluesIn=1/((w0^2)*LvaluesIn(2)); LC_InitialIn=[LvaluesIn;CvaluesIn]; LvaluesOut=LvaluesIn; CvaluesOut=CvaluesIn;
3.8集成网络形成完整电路
为分析整个电路,需要对整个电路的元件进行集成。这里使用RF 工具箱里的电路对象模型,他们是串联的RLC 构造网络函数rfckt.seriesrlc ,并联RLC 网络构造函数rfckt.shuntrlc 和级联网络构造函数rfckt.cascade 。 代码:
LC_InitialOut=[LvaluesOut;CvaluesOut];
InputMatchingNW=rfckt.cascade('ckts',{rfckt.seriesrlc('L',LvaluesIn(1)),rfckt.shuntrlc('C',CvaluesIn,'L',LvaluesIn(2)),rfckt.seriesrlc('L',LvaluesIn(3))});
OutputMatchingNW=rfckt.cascade('ckts',{rfckt.seriesrlc('L',LvaluesOut (1)),rfckt.shuntrlc('C',CvaluesOut,'L',LvaluesOut(2)),rfckt.seriesrlc ('L',LvaluesOut(3))});
Matched_Amp=rfckt.cascade('ckts',{InputMatchingNW,Unmatched_Amp,Outpu tMatchingNW});
对网络进行S 参数分析得到rftool 图:
3.9优化匹配网络
优化匹配网络的目标就是使宽带放大器的各项指标达到给定的参数要求。为优化匹配网络,首先写一个对象函数,他依据具体问题进行构建;设置优化选项,使迭代合理的终止;然后用最优化函数fminsearch,寻求局部函数最小值,同时输出一组优化的变量。匹配网络对象为match_briadband_amplifier.这里,设置优化选项为:迭代次数80;优化结束显示结果;收敛准则使用输出函数值小于或等于1.000000e-002。优化变量是所有输入输出匹配网络的元件值。
上图是S参数晶体管在加入匹配网络的境况下分析结果,可以看出,只有
S有
21
问下变化,其他参数都稳定在Smith图内,在频率图内平稳变化。
宽带匹配网络对象函数:match_broadband_amplifier.m
function
output=match_broadband_amplifier(AMP,LC_Optim,freq,GT_target,NF,ZL,ZS ,Z0)
if any(LC_Optim<=0)
output=inf;
return;
end
for loop1=1:3
AMP.ckts{1}.ckts{loop1}.L=LC_Optim(loop1);
AMP.ckts{3}.ckts{loop1}.L=LC_Optim(loop1+4);
end
AMP.ckts{1}.ckts{2}.C=LC_Optim(4);
AMP.ckts{3}.ckts{2}.C=LC_Optim(8);
Npts=length(freq);
analyze(AMP,freq,ZL,ZS,Z0);
target_param=calculate(AMP,'Gt','NF','dB');
GT=target_param{1}(1:Npts,1);
NF_amp=target_param{2}(1:Npts,1);
errGT=(GT-GT_target);
errNF=(NF_amp-NF);
deltaG=0.40;
deltaNF=-0.05;
errGT(abs(errGT)<=deltaG)=0;
errNF(errNF err_vec=[errGT;errNF]; output=norm((err_vec),2); Gmax=(GT_target+deltaG).*ones(1,Npts); Gmin=(GT_target-deltaG).*ones(1,Npts); plot(AMP,'Gt','NF','dB'); hold on plot(freq.*1e-6,Gmax,'r-*') plot(freq.*1e-6,Gmin,'r-*') legend('GT','NF','Gain bounds','Location','East'); axis([freq(1)*1e-6 freq(end)*1e-6 0 Gt_target+2]); hold off end 调用function函数match_broadband_amplifier分析没有优化的输入输出匹配网络得: 运行结果知道,加入匹配输入输出网络后Gt功率增益改变,噪声性能恶化,Gt 指标出现在红线以外,所以运行最优化函数。 代码: nIter=80; options=optimset('Display','final','TolFun',1e-2,'MaxIter',nIter); LC_Optimized=[LvaluesIn;CvaluesIn;LvaluesOut;CvaluesOut]; LC_Optimized=fminsearch(@(LC_Optimized)match_broadband_amplifier(Matc hed_Amp,LC_Optimized,freq,GT_target,NF_target,ZL,ZS,Z0),LC_Optimized, options) 如图: 由上图运行结果可知:当前的变量值*满足迭代收敛准则OPTIONS.Tolx 为1.000000*4 10-;运行结果显示优化匹配后的网络放大器和噪声系数图可以看出,功率增益在10dB 轴心波动,波动振幅在dB 4.0±之间。噪声系数最大值为1.8027dB. 3.8验证设计结果 3.8.1更新网络元件值 代码: for loop1=1:3 Matched_Amp.ckts{1},ckts{loop1}.L=LC_Optimized(loop1); Matched_Amp.ckts{1},ckts{loop1}.L=LC_Optimized(loop1+4); end Matched_Amp.ckts{1}.ckts{2}.C=LC_Optimized(4); Matched_Amp.ckts{3}.ckts{2}.C=LC_Optimized(8); 3.8.2和重新分析电路对象 为验证设计宽带放大器的性能,可以使用这个宽带放大器的参数,重新计算这个宽带放大器的转换功率增益,功率的增益平坦度和噪声系数三个指标是否得到满足。为更直观的看出设计放大器的性能,在同一个图上,使用对象方法plot 画出有匹配网络放大器的增益,噪声系数以及没有匹配网络放大器转换增益和噪声系数。 代码: figure; plot(Matched_Amp,'Gt'); hold all plot(Unmatched_Amp,'Gt'); plot(Matched_Amp,'NF'); plot(Unmatched_Amp,'NF'); deltaG=0.4; Gmax=(Gt_target+deltaG).*ones(1,Npts); Gmin=(Gt_target-deltaG).*ones(1,Npts); plot(freq.*1e-6,Gmax,'r-*') plot(freq.*1e-6,Gmin,'r-*')