§3-4电路分析程序举例.ppt_第1页
§3-4电路分析程序举例.ppt_第2页
§3-4电路分析程序举例.ppt_第3页
§3-4电路分析程序举例.ppt_第4页
§3-4电路分析程序举例.ppt_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、34 电路分析程序举例 当我们用计算机来分析电路时,必须有一个电路分析程序,你可以利用现成的通用电路分析程序,也可以自己动手编制一个电路分析程序。为了使读者对编制电路分析程序的全过程有所了解,下面给出一个用FORTRAN语言编写的电路分析程序。 它可以用来分析由直流电压源,直流电流源,电阻和四种受控源构成的线性电阻电路,得到结点电压,支路电压电流和吸收功率的计算结果。,该程序由一个主程序和三个子程序组成。程序运行时,从数据文件DD.DAT中读入电路数据,调用子程序FORMT建立表格方程,再调用子程序GAUSS求解方程,最后调用子程序OUTPUT输出各电压电流和吸收功率。,读入电路数据,建立表格

2、方程,求解电路方程,输出计算结果,读入电路数据(Main),建立表格方程(Formt),求解电路方程(Gauss),输出计算结果(Output),PROGRAM MAIN COMMON TYP(10),NO(10),NFO(10),NTO(10),NCO(10),VAL(10) COMMON/B1/T(29,30),NOD,NBR,M,N OPEN(3,FILE=DD.DAT,STATUS=OLD) READ(3,*) READ(3,*) NBR WRITE(*,*) 元件 支路 开始 终止 控制 元件 WRITE(*,*) 类型 编号 结点 结点 支路 参数 DO 10 I=1,NBR RE

3、AD (3,2) TYP(I),NO(I),NFO(I),NTO(I),NCO(I),VAL(I) WRITE(*,4) TYP(I),NO(I),NFO(I),NTO(I),NCO(I),VAL(I) NOD=MAX0(NOD,NFO(I),NTO(I) 10 CONTINUE 2 FORMAT(A2,4I3,G10.3) 4 FORMAT(5X,A2,3X,3(I3,2X),I3.0,G12.4) M=NOD+2*NBR N=M+1 CALL FORMT CALL GAUSS CALL OUTPUT END,读入电路数据(Main),SUBROUTINE FORMT COMMON TYP(

4、10),NO(10),NFO(10),NTO(10),NCO(10),VAL(10) COMMON/B1/T(29,30),NOD,NBR,M,N DO 10 J=1,NBR NF=NFO(J) NT=NTO(J) MI=NOD+NBR+J MJ=NOD+J NI=MI NJ=MI C KCL : Ai=0 and KVL : u=AT*v IF(NF.NE.0) THEN T(NF,MI)=1. T(MJ,NF)=-1. END IF IF(NT.NE.0) THEN T(NT,MI)=-1. T(MJ,NT)=1. END IF T(MJ,MJ)=1.0 C VCR : Mv + Ni =

5、 u,建立表格方程(Formt),IF(TYP(J).EQ.R .OR. TYP(J).EQ.V) THEN T(MI,MJ)=1. IF(TYP(J).EQ.R) T(NI,NJ)=-VAL(J) IF(TYP(J).EQ.V) T(NI,N)=VAL(J) END IF IF(TYP(J).EQ.G .OR. TYP(J).EQ.I) THEN IF(TYP(J).EQ.G) T(MI,MJ)=-VAL(J) IF(TYP(J).EQ.I) T(MI,N)=VAL(J) T(NI,NJ)=1. END IF IF(TYP(J).EQ.VV .OR. TYP(J).EQ.VC) THEN I

6、F(TYP(J).EQ.VV) T(MI,MJ)=1. IF(TYP(J).EQ.VC) T(NI,NJ)=1. T(MI,NOD+NCO(J)=-VAL(J) END IF IF(TYP(J).EQ.CC .OR. TYP(J).EQ.CV) THEN IF(TYP(J).EQ.CC) T(NI,NJ)=1. IF(TYP(J).EQ.CV) T(MI,MJ)=1. T(NI,NOD+NBR+NCO(J)=-VAL(J) END IF 10 CONTINUE END,建立表格方程(Formt),SUBROUTINE GAUSS COMMON/B1/T(29,30),NOD,NBR,M,N D

7、O 10 K=1,M L=K DO 20 I=K+1,M 20 IF(ABS(T(I,K).GT.ABS(T(L,K) L=I IF(ABS(T(L,K).LT.1.E-30) STOP 电路无唯一解 IF(L.NE.K) THEN DO 30 J=K,N T1=T(K,J) T(K,J)=T(L,J) 30 T(L,J)=T1 END IF DO 40 I=K,M C=T(I,K) IF(C.NE.0.0) THEN DO 50 J=K,N T(I,J)=T(I,J)/C 50 IF(I.GT.K) T(I,J)=T(I,J)-T(K,J) END IF 40 CONTINUE 10 CON

8、TINUE,求解电路方程(Gauss),DO 60 I=M-1,1,-1 DO 60 J=M,I+1,-1 60 T(I,N)=T(I,N)-T(I,J)*T(J,N) END SUBROUTINE OUTPUT COMMON TYP(10),NO(10),NFO(10),NTO(10),NCO(10),VAL(10) COMMON/B1/T(29,30),NOD,NBR,M,N WRITE(*,2) 2 FORMAT(/5X,结 点 电 压) WRITE(*,4) (J,T(J,N),J=1,NOD) 4 FORMAT(5X,4(:,V,I2,=,G12.4,1X) WRITE(*,6) 6

9、 FORMAT(/5X,支路电压,9X,支路电流,9X,支路功率) DO 10 J=1,NBR P=T(NOD+J,N)*T(NOD+NBR+J,N) 10 WRITE(*,12)J,T(NOD+J,N),J,T(NOD+NBR+J,N),J,P 12 FORMAT(5X,U,I2,=,G12.4, I,I2,=,G12.4, P,I2,=,G12.4) END,输出计算结果(Output),Fig. 31(a) Circuit 5 V 1 1 0 8.0 R 2 1 2 1.0 I 3 0 2 2.0 VV 4 2 3 3 2.0 G 5 3 0 3.0,用以上程序来分析图31(a)的电路的数据文件DD.DAT如下所示:,其中的第一行是注释行,第二行是该电路的支路数目,其余各行数据与图31(b)相同,但格式必须符合FORTRAN语言的规定的A2,4I3,G10.3的要求,实数还必须有小数点。所计算的结果如下:,结 点 电 压 V 1= 8.000 V 2= 1.000 V 3= 3.000 支路电压 支路电流 支路功率 U 1= 8.000 I 1= -7.000 P 1= -56.00 U 2= 7.000 I 2= 7.000 P 2= 49.00 U 3= -1.0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论