资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
1带通滤波器电路分析与优化带通滤波器电路分析与优化一、实验目的一、实验目的 1熟悉利用修正节点法求解电路传递函数的方法; 2理解各种电路优化的方法,并能将其灵活应用于具体电路的优化; 3掌握利用 MATLAB 工具来优化电路的方法,并能够用程序来实现优化方法,以利于 对电路的研究。 二、实验要求二、实验要求 分析下面的带通滤波器电路+ uin - + uout - 50 3000pF 3000pF 10uH 0.5uH 0.5uH 150pF 50 图 1. 高通滤波器电路图考虑电路的频率响应: outinufHfuf要求优化上面各个元件参数,使得有以下的理想响应: nHf理想的|Hn(f)| 3.5MHz 4MHz f 0.5 图 2. 理想带通滤波器的幅频响应 设计过程可以看成对下面的代价函数进行优化,求最小值:21()()Knkidealk kgHfHf(其中是上图给出的理想的频率响应) idealHf可选的优化内容包括: 1在元件值没有约束的情况下寻找最优的元件参数,使得归一化后的频率响应满足 上图。22假设元件的值限制在下面的范围内:,0.110RM 0.0110pFCF0.01100HLH如何选择元件,满足设计要求 3假设元件的取值是离散的,即: 1、1.1、1.2、1.3、1.5、1.6、1.8、2.0、2.2、2.4、2.7、3.0、3.3、3.6、3.9、4.3、4.7 、5.1、5.6、6.2、6.8、7.5、8.2、9.1 此时如何选择元件,满足设计要求4假设所有元件值有的误差, (简单起见,假设元件值在这个范围内均匀分布)5% 分析此时代价函数的变化(代价函数成为一个概率分布) 5设定一个代价函数变化极限,然后尝试反过来确定允许的元件误差范围 三、实验内容三、实验内容 1问题分析首先,利用修正节点法求解该电路的传递函数,其传递函数为, outinufHfuf当输入为 1 时,所得到的输出即为传递函数的值。为了求得与理想带通滤波器的幅频响应较一致的滤波器,我们设定了如下代价函数:,由于带通滤21()()Knkidealk kgHfHf 波器在滤波器边缘变化较快,而其他地方变化较慢,我们应当对边缘处进行着重考虑。因此,我们最终选定如下代价函数:,其中为21w()*()()Kknkidealk kgfHfHfw()kf频点处的权重,经过基本的筛选和分析,最后采取在之间的权重为kf3.5 3.7MhzMhz15,之间权重为 50,之间权重为 100,其余频率段的3.8 4MhzMhz3.7 3.8MhzMhz权重为 1。 2代价函数的求取 首先,要求得该电路传递函数的值,可以有两种方法供选择,第一是通过修改第一次 大作业的读网表文件来求取该值,此方法通用性较好,可以在分析不同的电路时较为方便 的得到结果。第二是直接列出修正节点法方程进行求取,此方法通用性不好,只能针对此 电路,但是对于本次所研究的对象,表达较为简单,实现起来较为容易。综合考虑,我们 选择用第二种方法来求取。 在实现时,首先进行数据转换,即电阻转为电导,电容和电感也进行相应的转换。将 转换后的数据保存在 xteg 中,而修正节点法电路表达式中 T 矩阵的元素保存在数组 T 中, 通过 p=inv(T)*b;求得电路参数的值。为了得到多个频点的值,可用如下方法得到不同频率 的传递函数的值: f_start=10000; f_step=10000; f_end=8000000; for f=f_start:f_step:f_ends=2*pi*f*j; i=f/10000; H(i)=abs(p(4)/abs(p(1);其中,H(i)为传递函数。 代价函数的求取要用到所求得的传递函数和理想幅频响应,根据以上结论,可通过如 下方法实现: for i=1:800 w(i)=1;3end for i=1:800%此处为权重的设置end end for i=1:800a(i)=w(i)*(H(i)-Hteg(i)2; end for i=1:800G=G+a(i); end该程序主要实现了权重的设置,和通过 a(i)=w(i)*(H(i)-Hteg(i)2;和 G=G+a(i);语句进行 代价函数的求取。完整的代码见附录 fun.m。 3在元件值没有约束的情况下寻找最优的元件参数,使得归一化后的频率响应满足要 求。 1) 方法:此部分的关键在于最优元件参数的求取,使用 MATLAB 自带的优化工具箱 的 fminsearch 函数进行搜索,使用途中所给的参数做初值,通过如下语句进行搜索: options=optimset(MaxFunEvals,100000,MaxIter,100000);%函数参数设定x=fminsearch(x)fun(x),x0,options); 具体的程序见附录中 main.m。 2) 结果:得到的 x 可通过调用 G=fun(x);求取代价函数的值,得到的最优元件值和 幅频响应如下: 表 1. 无约束优化下最优元件参数元件R1R2C1C2 数值20691846945121929068399730304.4590029536225.4344914925 元件C3L1L2L3 数值21351.34546833400.05927190308.01450174950.0844666000 其中,电阻的单位为 ,电容的单位为 pF,电感为 H.图 3. 无约束优化下的幅频响应 3) 结论:通过电路的优化,得到了较为理想的幅频响应,其边缘的陡峭性也较为理 想,但是中间出现了一定的纹波,为了使纹波得到改善,我们尝试了在代价函数中将抖动 大的频率段加更大的的权重或者取更多的频点,这些方法都能使纹波得到改善。但抖动和 上升沿缓慢是不能同时避免的,最后综合考虑了各种因素,选定了该权重。 4假设元件的值限制在下面的范围内:,。如何选择元件,0.110RM 0.0110pFCF0.01100HLH满足设计要求41) 方法:思路类似无约束条件,但是需要对元件的取值做一定的约束。设定元件取 值的上下限: lb=0.1,0.1,0.01,0.01,0.01,0.01,0.01,0.01;%下限设定 ub=106,106,107,107,107,100,100,100;%上限设定 选用优化工具箱的有约束条件优化函数 fmincon 来完成该优化: options=optimset(MaxFunEvals,100000,MaxIter,100000,TolCon,1e-9,TolFun,1e-9); x=fmincon(x)fun(x),x0,A,b,Aeq,Beq,lb,ub,nonlcon,options);2) 结果:得到的 x 可通过调用 G=fun(x);求取代价函数的值,得到的最优元件值和幅 频响应如下: 表 2. 元件参数有约束时的最优元件参数元件R1R2C1C2 数值184.28110122931193.880848521873006.2478299541025.76876139846 元件C3L1L2L3 数值3006.772764190800.5984924568670.14563259380.59823789471图 4. 有取值范围约束下的最优幅频响应 3) 结论:通过对比图 3 和图 4 的结果可以看出来,有约束时的幅频响应不如无约束 时的结果,但是两者相差不大,可见此时对传递函数的幅频响应没有太大的影响。但是通 过表 1 和表 2 的对比可以看出来,此时元件的取值有较大的差别。 5假设元件的取值是离散的,即: 1、1.1、1.2、1.3、1.5、1.6、1.8、2.0、2.2、2.4、2.7、3.0、3.3、3.6、3.9、4.3、4.7、5.1 、5.6、6.2、6.8、7.5、8.2、9.1 此时如何选择元件,满足设计要求 1) 方法:离散优化的主要想法是模仿模拟退火法,但由于模拟退火法中关于温度的 设定更多时候是一个经验值,在此,我们就略作简化。整个离散优值的选取是在连续优值 确定的情况之下,依据可选优值附近的离散值作为初值,对每一元素 X(电阻电容电感) 实施线性搜索迭代,不断在更优值的基础上获取,最终获取在这一搜索范围内的最优离散 值。核心实现方式主体如下: for n=1:3 %综合考虑时间 与效率设定循环搜索三周x=y;for k=1:8for i=1:8for j=1:24x(k)=model(j)*gain(i);5cur_val=fun1(x);if(cur_val=350)end end for i=1:800a(i)=w(i)*(H(i)-Hteg(i)2; end for i=1:800G=G+a(i); end returnmain1.m tic;%无约束优化 x0=50,50,3000,150,3000,0.5,10,0.5;%初始 值设定 options=optimset(MaxFunEvals,100000,MaxIter,100000);%函数参数设定x=fminsearch(x)fun(x),x0,options); G=fun(x); plot(Fr(x);axis(0 8000 0 0.55); disp( );disp( ); toc;main2.m tic;%约束优化9lb=0.1,0.1,0.01,0.01,0.01,0.01,0.01,0.01;%下限设定 ub=106,106,107,107,107,100,100,100;%上限设定 A=;b=;Aeq=;Beq=;nonlcon = ;%函数参 数设定 options=optimset(MaxFunEvals,100000,MaxIter,100000,TolCon,1e-9,TolFun,1e-9); x=fmincon(x)fun(x),x0,A,b,Aeq,Beq,lb,ub,n onlcon,options); G=fun(x); plot(Fr(x);axis(0 8000 0 0.55); toc;main3.m%离散取值优化 原数据有误 model=1,1.1,1.2,1.3,1.5,1.6,1.8,2.0,2.2,2.4,2. 7,3.0,3.3,3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1;%离散取值标称值 gain=10-1,100,101,102,103,104,105,106;%标 称值放大倍数 x1=1.0e+004 *0.00092482722817 0.00162222092086 5.96077986659246 0.02583283527855 1.02955757469816 0.00000320091835 0.00068597370239 0.00002039678512;%无约束优化最佳值 y1=1.0e+004 *0.00091 0.0016 5.6 0.024 1 0.0000033 0.00068 0.00002;%最佳值估计 pre_val=1000;%初始容忍度设定 cur_val=1000;x=zeros(1,8);%参数值 y=zeros(1,8);%优化值 y=y1;for n=1:3 %综合考虑时间与效率设定循环搜索三周x=y;for k=1:8for i=1:8for j=1:24x(k)=model(j)*gain(i);cur_val=fun1(x);if(cur_v
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号