第五章基于MATLAB的电路分析5.1电路分析中的常用函数一.复数运算与相量图函数1.常用的复数运算函数:real(A):求复数或复数矩阵A的实部;imag(A):求复数或复数矩阵A的虚部;abs(A):求复数或复数矩阵A的模;conj(A):求复数或复数矩阵A的共轭;angle(A):求复数或复数矩阵A的相角,单位为弧度。需要注意MATLAB三角函数(sin、cos、tan等)计算应用弧度、反三角函数(asin、acos、atan等)返回参数单位也是弧度。【例1】已知R1=40Ω,R2=60Ω,C1=1uF,L1=0.1mH,ttus410cos40)(V。求电压源的平均功率、无功。功率和视在功率。解:(1)采用相量法的求解步骤:11112LLcZRZRRZZ;ZUIss/;jQPIUSs*~(2)编写MATLAB程序:Us=40;wo=1e4;R1=40;R2=60;C=1e-6;L=0.1e-3;ZC=1/(j*wo*C);%C1容抗ZL=j*wo*L;%L1感抗ZP=R1*ZL/(R1+ZL);%R1,L1并联阻抗ZT=ZC+ZP+R2;Is=Us/ZT;Sg=0.5*Us*conj(Is);%复功率AvePower=real(Sg)%平均功率Reactive=imag(Sg)%无功功率ApparentPower=0.5*Us*abs(Is)%视在功率AvePower=3.5825;Reactive=-5.9087;ApparentPower=6.9099(3)运行结果:2.compass函数:绘制向量图调用格式:compass([I1,I2,I3…]),引用参数为相量构成的行向量【例2】日光灯在正常发光时启辉器断开,日光灯等效为电阻,在日光灯电路两端并联电容,可以提高功率因数。已知日光灯等效电阻R=250Ω,镇流器线圈电阻r=10Ω,镇流器电感L=1.5H,C=5μF。作出电路等效模型,画出日光灯支路、电容支路电流和总电流,镇流器电压、灯管电压和电源电压相量图及相应的电压电流波形。解:(1)等效电路模型220SU61005102200.3456CSIjCUjj2200.1975-j0.3579250101001.5SLUIRrjLj0.34560.1975-j0.3579=0.1975-j0.0123SCLIIIj()(0.1975-j0.3579)(10+j1001.5)=170.63+j89.491ZLUIrjL220(170.63+j89.491)=49.37-j89.491DSZUUUUs=220;Uz=170.63+89.491j;Ud=49.37-89.491j;Ic=0.3456j;IL=0.1975-0.3579j;Is=0.1975-0.0123j;subplot(2,2,1);compass([Us,Uz,Ud]);subplot(2,2,2);compass([Ic,IL,Is]);t=0:1e-3:0.1;w=2*pi*50;us=220*sin(w*t);uz=abs(Uz)*sin(w*t+angle(Uz));ud=abs(Ud)*sin(w*t+angle(Ud));ic=abs(Ic)*sin(w*t+angle(Ic));iL=abs(IL)*sin(w*t+angle(IL));is=abs(Is)*sin(w*t+angle(Is));subplot(2,2,3);plot(t,us,t,uz,t,ud)subplot(2,2,4);plot(t,is,t,ic,t,iL)(2)Matlab编程作相量图和波形(3)结果显示3.绘制幅频特性和相频特性【例3】已知网络函数为23()(1)(25)sHssss作幅频特性和相频特性。解:方法一,将sjω,利用Matlab编程实现w=0:0.01:100;Hs=(j*w+3)./(j*w+1)./((j*w).^2+2*j*w+5);Hs_F=20*log10(abs(Hs));%幅频特性用dB表示Hs_A=angle(Hs)*180/pi;%将弧度转化为角度表示subplot(2,1,1);semilogx(w,Hs_F)%横坐标以对数坐标表示的半对数曲线ylabel('幅频特性(dB)');subplot(2,1,2);semilogx(w,Hs_A)ylabel('相频特性(dB)')方法二,bode函数:绘制波特图调用格式:bode(A,B)A,B分别为网络函数分子和分母系数行向量A=[13];B=conv([11],[125])bode(A,B)23()(1)(25)sHssssconv函数:多项式卷积调用格式:conv(A,B)A,B分别为多项是的系数行向量二.多项式运算1.roots函数:求多项式函数的根调用格式:r=roots(p)p是多项式系数形成的行向量,系数按降序排列。r为函数的根,是一个列向量。【例4】15239)(23xxxxf,计算其根。p=[192315]r=roots(p)得结果:r=-1.0000-3.0000-5.0000【例5】已知网络函数23254()71715ssHssss,作零极图。解:p=[154];ld=roots(p)p=[171715];jd=roots(p)axisxy;plot(real(ld),imag(ld),'o');holdon;plot(real(jd),imag(jd),'x');axis([-51-22])line([-5,1],[0,0])line([0,0],[2,-2])2.poly函数:已知多项式函数的根,用以求多项式系数调用格式:p=poly(r)r是多项式的根形成的列向量。p返回多项式系数行向量。【例6】已知一个多项式的根为-1、-3、-5,求该多项式系数。r=[-1-3-5];p=poly(r)得结果:p=192315三.积分函数1.trapz:采用梯形公式计算积分。调用格式:trapz(X,Y)X表示横坐标向量,Y为对应的纵坐标向量。要求X与Y的长度必须相等【例7】设某周期性矩形脉冲电流i(t)如图所示。其中脉冲幅值mA2pI周期T=6.28,脉冲宽度。求i(t)有效值。2T解:根据有效值的定义TdttiIT02)(TdtT2/02)^2/(clear;T=6.28;t=0:1e-3:T/2;));%1e-3为计算步长;it=zeros(1,length(t));%开设电流向量空间;it(:)=pi/2;%电流向量幅值;I=sqrt(trapz(t,it.^2)/T)%求电流均方根,得有效值Matlab程序结果:I=1.1107(mA)2.quad:采用自适应Simpson算法积分。调用格式:quad(‘fun’,a,b)计算被积函数fun在[a,b]区间的积分,【例8】已知某二端网络端口电压、电流表达式:)45100cos(80)(ttu)30100cos(10)(tti求有效值、电路的平均功率和功率因数)(tuT=2/100;%周期a=0;%积分区间的下限x=0:0.01:1;t=x.*T;v_int=quad('(80*cos(100*pi*t+45*pi/180)).^2',a,T);%求电压函数的平方在(a,T)的积分解:Matlab程序)(tuv_rms=sqrt(v_int/T)%求得电压有效值i_int=quad('(10*cos(100*pi*t+30.0*pi/180)).^2',a,T);i_rms=sqrt(i_int/b);%求得电流有效值p_int=quad('(10*cos(100*pi*t+30.0*pi/180)).*(80*cos(100*pi*t+45*pi/180))',a,T);p_ave=p_int/T%平均功率pf=p_ave/(i_rms*v_rms)%功率因数结果:v_rms=56.5685p_ave=386.3703pf=0.9659四.微分函数diff:求向量相邻元素的差调用格式:diff(x)数值微分可用差商求得,即diff(x)/diff(t)【例9】已知RLC串联电路的零输入响应mAttetit)6000sin26000(cos50)(8000作出uR、uL、uC的波形,并求uC(0+)、uL(0+)、。解:(1)分析dttdiLuL)(LRCuuu)(tRiuR(2)Matlab程序t=1e-9:1e-6:0.600001e-3;io=50e-3*exp(-8000*t).*(cos(6000*t)+2*sin(6000*t));%注意,数组元素相乘要使用.*UR=320*io;%电阻电压UL=20e-3*diff(io)./diff(t);%diff:相邻元素的差,diff(io)./diff(t):数值微分UL=[UL,0];%数值微分后UL数组元素个数减1,为了保证与t元素个数一致,须补充1位。因稳态解为0,所以()Lut补充数值为0;五.最优化问题求解1.fminbnd:求单变量非线性函数极小值点调用格式:[X,FVAL,EXITFLAG,OUTPUT]=fminbnd(FUN,x1,x2,OPTIONS,P1,P2,...)2.fminunc:拟牛顿法求多变量函数极小值点调用格式:[X,FVAL,EXITFLAG,OUTPUT,GRAD,HESSIAN]=fminunc(FUN,X0,OPTIONS,P1,P2,...)3.fminsearch:采用Nelder-Mead单纯形法求多变量函数极小值点调用格式:[X,FVAL,EXITFLAG,OUTPUT]=fminsearch(FUN,X0,OPTIONS,P1,P2,...)【例10】对于下图所示电路,,改变电感L以调整电路并知道存在合适R、L,使得。试确定功率因数最大时的R、L值。srad/10001cos解:(1)分析总阻抗]20)()([j)()(10222222LRLRLRLRZ当Z虚部为零时,1cos因此,求解问题转化为:20)()(),(min222LRLRLRf(2)Matlab程序[X,Fval]=fminsearch('abs(1000*x(2)*x(1)^2/(x(1)^2+(1000*x(2))^2)-20)',[10,0.2])X=40.00000.0400Faval=7.5276e-007(3)结果1cos即R=40Ω,L=0.04H,此时阻抗Z虚部近似等于零,