您当前的位置:五五电子网电子知识电工技术电工文摘P-1500机上高压送电线路电线力学计算程序 正文
P-1500机上高压送电线路电线力学计算程序

P-1500机上高压送电线路电线力学计算程序

点击数:7878 次   录入时间:03-04 11:46:02   整理:http://www.55dianzi.com   电工文摘
  摘要:本文对PC-1500机上高压送电线路电线力学计算程序进行了修改,并对把PC-1500机上的程序移植到微机上的方法和技巧进行了一些说明。
关键词:力学计算程序 电线状态方程式 修改 移植 Turbo Basic语言

   PC-1500机由于它功能比较齐全,开发容易,使用简便,体积小,投资少,易学,见效快,在80年代比较流行,但随着计算机技术的发展和PC-1500机的自然损耗,微机将逐步取代PC-1500机。近年来各部门在PC-1500机上开发了许多优秀的程序,取得了可喜的成果和效益,如果把这些优秀程序充分利用起来,把它们移植到微机上加以使用,就可以加快计算机的应用步伐,取得事倍功半的效果。

   电线力学计算是送电线路设计中最繁杂的一项工作,其内容包括:1、计算各控制条件之间的临界档距:2、判别有效临界档距;3、计算各种气象条件和不同档距下的电线应力、弧垂;4、计算各种代表档距下在不同气温时的电线应力、弧垂(即安装曲线)。这些工作完成之后,方能列出线路杆塔的荷重条件,继而进行杆塔结构计算。

   本程序分程序一、程序二,程序一解决上述工作1、2、3;程序二解决工作4。

   PC-1500机上电线力学程序的主要计算公式的解法及程序的错误。

   电线状态方程式:就是从已知气象条件下的应力,求另一条件下应力的计算式,悬挂于两固定点间的导线,当气象条件发生变化时,导线的应力亦将随之变化。设已知气象条件下的温度为Tm,比载为Gm,此时应力为Sm,L为变量(档距),令待求气象条件下的温度是T,比载是Gn,应力是S,如何求得S呢?可用下面的导线的状态方程式对S求解

   (1)

  令上式中:

   (2)

  
把(2)代入(1)得:

   (3)

  式中S为待求应力,注脚m表示已知条件下的数值,注脚n表示待求条件下的数值。

   人工计算时,先求出与每一L相对应的A、B值,然后用试算法求解上述三次方程。本方程系采用直接求解法,故将方程作以下变换:

  对于 (4)

  令 (5)

  原方程化为 (6)

  又令 (7)

  得: (8)

  于是 (9)

  据韦达定理, 为二次方程:的两个根 (10)

  故: (11)

  当

   (12)

  当时,令:

   (13)

  时,

   (14)

  
时,

   (15)

  
根据以上公式算出各种控制条件下的应力S,然后又根据弧垂公式F=GL2/8S,得出各种控制条件下的弧垂F。这样就可计算各种代表档距下在不同温度时的电线应力、弧垂(即安装曲线)

  而在PC-1500机输电线路力学计算程序编写中把判别式编写错了,

   即:
时,

   (16)

  
时,

   (17)

  
因判别式遍写错,故程序得出的应力(S)、弧垂(F)有误,计算出的安装曲线误差更大,不能用于设计,本程序不能用。我对这一程序进行了修改并把它成功地移植到微机中。在移植中,因PC-1500机上的Basic语言比较接近微机上的一般Basic语言,而Turbo Basic语言与一般Basic语言相比,是向下兼容的,即Turbo Basic语言包括一般 Basic语言,并所扩展,下面就移植过程中需要注意的一些问题作一些介绍。两种机型的Basic语言几乎是相同的,只是在语句中,微机的语句定义符(如IF、THEN、FOR、TO、STEP等)与前后部分的内容一般都用空格来分格开,以便与其它成分进行区别,而PC-1500机上没有这种要求,这是首先要注意的问题。

  其次,在PC-1500机中,函数后所跟的自变量可以不用圆括号括起来,而在微机上函数后所跟的自变量必须用圆括号括起来,这也是必须引起注意的地方。

  此外,常量、变量、语句、函数中,也有一些差别需求注意,下面分别进行说明。

  常量:PC-1500机上有PI(丌)常量;微机上没有,只能用“3.1415927”这个具体的数来表示。变量:PC-1500机的变量用一个英文字母、或二个英文字母的组合,或一个英文字母加上一个数字的组合组成的字符串来表示;而微机则是作英文字母开头的字母串或字母数字串来表示变量名,这里需要说明的是,与语言定义符相同的字符串不能做变量名。赋值语句:LET…,PC-1500机在多个赋值语句之间可以用逗号“,”分隔,而微机上只能以冒号“:”分隔。在微机上,当赋值号“=”两边的数据类型不同时,自动转换成赋值号左边变量的数据类型。键盘输入语句:INPUT…,PC-1500机的INPUT语句中可以包括多个“说明”,用来说明每个等待输入的变量,微机上则只能有一个说明。对于PC-1500的输入语句,INPUT“说明”;变量,“说明”;变量,…的形式,在微机上可以改写为多个INPUT“说明”;变量语句来实现,也可以写为一个INPUT“说明”;变量,变量,…语句的形式。输出语句:PRINT/LPRINT;输出语句分屏幕显示输出语句PRINT,打印机打印输出语句LPRINT。PC-1500机显示输出语句PRINT会中断程序运行,一般需要与PAUSE语句、或WAIT语句配合使用,而微机的PRINT语句不会中断程序运行,则可以把PC-1500机中的PAUSE语句或WAIT语句直接删掉。在用USING定义的格式输出语句中,PC-1500机可以把USING作为一个定义格式的语句单独使用,而微机上则不能单独作为语句使用,只能配合PRINT(LPRINT)使用,即:PRINT USING“格式”;变量,变量,…。在输出语句中使用了TAB位置函数时,PC-1500机TAB后所跟的位置参数可以不用括号,而微机上TAB后所跟的位置参数必须用圆括号括起来,即要把TAB15改写为TAB(15)。清屏语句:CLS;PC-1500机屏幕只有一行,显示输出结果和信息时,需多次频繁地使用清屏语句,而微机屏幕共25行,一般情况下,只需在程序开头使用,PC-1500机程序中多余的清屏语句楞直接删除掉。条件语句:IF…THEN…;PC-1500机上IF…LET形式的语句,如果要在微机上使用,需改为IF…THEN或IF…THEN LET语句形式。循环语句:FOR…NEXT;两种机器语句形式基本相同,只是在执行FOR语句时,微机是先判别后循环,而PC-1500机是先循环,后判别。转移语句:GOTO…;PC-1500机GOTO语句后可以是表达式,而微机上只能跟行号。转子语句GOSUB之后在PC-1500机上可以是表达式或确定的行号。而微机上只能跟行号。

  PC-1500机随机配CE-150绘图式打印机,具有绘图、打印两种功能,其绘图语句和部分打印语句与该打印有关,一般不能直接用于其它计算机上。由于微机用打印机绘图时,一般是采用拷贝屏幕的方式实现,因此,对于绘图语句,在移植程序时,由于实现方式不同,最好用注释语句注释起来,或者直接删除的办法处理。等程序初步调通后,再进一步考虑绘图功能的实现。

  程序移植技巧

  把PC-1500机程序移植到微机上使用,一般需要经过以下几个步骤:首先将PC-1500机与微机联机,通过RC-232串行口输入、或者手工键盘输入,把PC-1500机程序以ASCⅡ码形式存放在微机上,然后逐行检查程序,对需要注释或删除的语句(如显示绘图语句、绘图打印语句)先进行处理,对两种机器上有差异的语句、函数进行修改(如语句定义符加空格、函数加括号)。在这些工作做完后,就可以开始调试程序。在调试过程中,多输出一些中间结果,以便检查出错原因,直到算出正确的结果。

  微机程序在初步调试通过后,可根据微机的特点,扩充程序功能,完善打印输出,增加和设计用户界面,直到编写出令人满意的程序为止。

  总之,只要弄清楚了上面所叙述的两种计算机之间的语言差异,并在程序移植过程中加以注意,PC-1500机程序很容易就可以移植到微机上使用。本高压送电线路电线力学计算程序经修改、移植到微机中,现也通过算例,并可以用于设计了。

  附修改、移植后的程序如下:

  程序一:

  1:CLS

  2:LPRINT TAB(10); "高压送电线路力学计算程序计算结果"

  3:INPUT "电线型号B$=";B$

  4:INPUT "电线标称截面C$=";C$

  6:LPRINT TAB (4);B$;"-"C$

  8:LET K=50

  9:LET D=1

  10:DIM L(6),GM(4),TM(4),SM(4)

  15:INPUT "电线弹性模量E=";E

  16:LPRINT TAB(4);"电线弹性模量=";E

  17:INPUT "电线温度线胀系数W="W

  18:LPRINT TAB(4);"电线温度线胀系数="W

  20:DATA 3.55E-3,-30,11.2,4.96E-3,-5,11.2,5.03E-3,-5,11.2,3.55E-3,5,7

  25:INPUT "起始计算档距L(0)="L(0)

  26:INPUT "最大计算档距L(4)="L(4)

  35:LPRINT TAB(4);"起始计算档距=";L(0); "最大计算档距=";L(4)

  40:FOR I=1 TO 4

  50:READ GM(I),TM(I),SM(I)

  60:NEXT I

  70:FOR I=1 TO 3

  80:X=1:Y=I+1:GOSUB 900

  90:IF Z<0 GOTO 110

  100:L(I)=INT (.5+SQR (Z))

  105:NEXT I:GOTO 120

  110:L(I)=-1:GOTO 105

  120:FOR I=4 TO 5

  130:X=2:Y=I-1:GOSUB 900

  140:IF Z<0 GOTO 160

  150:L(I)=INT(.5+SQR(Z))

  155:NEXT I:GOTO 170

  160:L(I)=-1:GOTO 155

  170:X=3:Y=4:GOSUB 900

  180:IF Z<0 GOTO 200

  190:L(6)=INT (.5+SQR (Z)):GOTO 210

  200:L(6)=-1

  210:FOR I=1 TO 6

  220:LPRINT TAB(4);"L(";I;")=";L(I);"(m)":NEXT I

  225:LPRINT "L(AB)=";L(1)"(m)"; "L(AC)=";L(2)"(m)"; "L(AD)=";L(3);"(m)";

  227:LPRINT "L(BC)=";L(4)"(m)"; "L(BD)=";L(5)"(m)"; "L(CD)=";L(6)"(m)"

  230:IF L(1)<=0 OR L(2)<=0 OR L(3)<=0 GOTO 340

  235:G1=GM(1):T1=TM(1):S1=SM(1)

  240:IF L(1)<L(2) AND L(1)<L(3) THEN L1=L(1) :GOTO 270

  250:IF L(2)<L(1) AND L(2)<L(3) THEN L1=L(2) :GOTO 300

  260:L1=L(3):L2=0:L3=0:G2=GM(4):T2=TM(4):S2=SM(4) :GOTO 360

  270:IF L(4)<=0 OR L(5)<=0 GOTO 330

  275:G2=GM(2):T2=TM(2):S2=SM(2)

  280:IF L(4)<L(5) THEN L2=L(4): GOTO 310

  290:L2=L(5):L3=0:GOTO 360

  300:IF L(6)>L1 THEN L2=L(6):G2=GM(3):T2=TM(3):S2=SM(3)

  305:L3=0:G3=GM(4):T3=TM(4):S3=SM(4): GOTO 360

  310:IF L(6)>L2 THEN L3=L(6):G3=GM(3):T3=TM(3):S3=SM(3)

  315:G4=GM(4):T4=TM(4):S4=SM(4) :GOTO 360

  320:L3=0:G3=GM(3):T3=TM(3):S3=SM(3): GOTO 360

  330:IF L(6)>0 THEN L(2)=L(6):G2=GM(3):T2=TM(3):S2=SM(3):L3=0

  335:G3=GM(4):T3=TM(4):S3=SM(4): GOTO 360

  340:IF L(4)<=0 OR L(5)<=0 GOTO 354

  342:IF L(4)<L(5) THEN L1=L(4):G1=GM(2):T1=TM(2):S1=SM(2) :GOTO 350

  344:L1=L(5):G1=GM(2):T1=TM(2):S1=SM(2):L2=0:L3=0: GOTO 360

  350:IF L(6)>L1 THEN L(2)=L(6):G2=GM(3):T2=TM(3):S2=SM(3):L3=0

  351:G3=GM(4):T3=TM(4):S3=SM(4): GOTO 360

  352:L2=0:L3=0:G2=GM(3):T2=TM(3):S2=SM(3): GOTO 360

  354:IF L(6)<=0 GOTO 598

  356:L1=L(6):G1=GM(3):T1=TM(3):S1=SM(3):L2=0:L3=0

  358:G2=GM(4):T2=TM(4):S2=SM(4): GOTO 360

  360:LPRINT "L1=";L1;"(m)";

  361:LPRINT "L2=";L2;"(m)";

  365:LPRINT "L3=";L3;"(m)"

  400:print "S1=";S1;"S2="S2;"S3="S4;"S4="S4

  410:PRINT "G1=";G1;"G2="G2;"G3="G3;"G4="G4

  420:PRINT "T1=";T1;"T2="T2;"T3="T3;"T4="T4

  500:DIM A$(10),G(10),T(10),C(L4/K+3),H(L4/K+3)

  505:RESTORE 550

  510:FOR I=1 TO 10

  520:READ A$(I), G(I),T(I)

  530:LPRINT A$(I)

  540:LPRINT "档距L(m) 应力S(kg/mm2) 弧垂F(m)"

  550:DATA "最高温度",3.55E-3,40,"最低温度",3.55E-3,-30,"最大风速",5.03E-3,-5,"最大复冰",4.96E-3,-5

  560:DATA "平均温度",3.55E-3,5,"大气过电压<1>:V=0",3.55E-3,15,"大气过电压<2>"

  570:DATA 3.59E-3,15,"安装",3.59E-3,-15,"操作过电压",3.74E-3,-15,"事故",3.55E-3

  580:DATA -10

  590:GOSUB 600

  595:NEXT I

  598:END

  600:GM=G1:TM=T1:SM=S1

  610:FOR L=L(0) TO K*INT(L1/K) STEP K

  612:GOSUB 700

  615:NEXT L

  620:L=L1:GOSUB 700

  625:GM=G2:TM=T2:SM=S2

  630:FOR L=K+K*INT(L1/K) TO 600 STEP K

  631:GOSUB 700

  635:NEXT L

  671:GOSUB 700

  675:RETURN

  700:G=G(I):T=T(I)

  710:A=(L^2*GM^2*E/(24*SM^2))-SM+E*W*(T-TM)

  720:B=L^2*G^2*E/24

  730:P=-A^2/9:Q=A^3*2/27-B

  740:IF Q*Q+4*P^(3)<0 GOTO 850

  750:U=((-Q+SQR (Q^2+4*P^(3)))/2)^(1/3)

  760:V=((-Q-SQR (Q^2+4*P^(3)))/2)^(1/3)

  770:S=U+V-A/3

  780:F=L*L*G/8/S

  790:S=INT ((S+0.005)*1000)/1000:F=INT ((F+.005)*1000)/1000

  800:LPRINT USING "######"; L ;

  801:LPRINT USING "##########.##";S;

  802:LPRINT USING "###########.##";F

  820:RETURN

  850:O=ATN ((SQR ((-Q^2-4*P^(3))))/(-Q))

  860:IF Q>0 THEN S=(COS (O/3)-SQR (3)*SIN (O/3))*SQR(-P)-A/3

  870:IF Q<0 THEN S=2*SQR (-P)*COS(O/3)-A/3

  880:GOTO 780

  900:Z1=(24/E)*(SM(X)-SM(Y))+24*W*(TM(X)-TM(Y))

  902:Z2=(GM(X)/SM(X))^2-(GM(Y)/SM(Y))^2

  905:Z=Z1/Z2

  910:RETURN

  程序二:

  800:LPRINT TAB(8) "安装曲线表"

  810:K=50

  815:X=15

  816:E=8490

  817:W=18.86E-6

  818:PRINT "W=";W;"E=";E

  820:DIM X(11), A(11)

  830:restore 921

  840:FOR I=1 TO 11

  850:READ X(I),A(I)

  851:L=X(I):SM=A(I)

  921:DATA 100,9.01,150,9.21,200,8.88,250,8.48,300,8.17,350,7.93,400,7.76

  922:DATA 450,7.63,500,7.53,550,7.46,600,7.40

  930:GOSUB 955

  935:next I

  950:END

  955:G=.00355:TM=-30:GM=.00355

  980:LPRINT tab(4); "L=";L;"(m)"

  985:Lprint "气温T(0C) 应力S(kg/mm2) 弧垂F(m)"

  990:for T1=-5 TO 30 STEP 5

  995:T=T1-X

  1000:T2=T1-5

  1710:A=(L^2*GM^2*E/(24*SM^2))-SM+E*W*(T-TM)

  1720:B=L^2*G^2*E/24

  1730:P=-A^2/9:Q=A^3*2/27-B

  1740:IF Q*Q+4*P^(3)<0 GOTO 1850

  1750:U=((-Q+SQR (Q^2+4*P^(3)))/2)^(1/3)

  1760:V=((-Q-SQR (Q^2+4*P^(3)))/2)^(1/3)

  1770:S=U+V-A/3

  1780:F=L*L*G/(8*S)

  1790:S=INT ((S+0.005)*1000)/1000:F=INT ((F+.005)*1000)/1000

  1792:LPRINT USING "######";T2;

  1793 LPRINT USING "##########.##";S;F

  1794 NEXT T1

  1795 IF L=0 GOTO 950

  1820:RETURN

  1850:O=ATN ((SQR ((-Q^2-4*P^(3))))/(-Q))

  1860:IF Q>0 THEN S=(COS (O/3)-SQR (3)*SIN (O/3))*SQR(-P)-A/3

  1870:IF Q<0 THEN S=2*SQR (-P)*COS(O/3)-A/3

  1880:GOTO 1780

  参考文献:1、《水利水电工程PC—1500程序集》

   2、《Basic语言》谭浩强 田淑清编著 科学普及出版社

   3、《计算机技术与计算机应用》 1995.1


本文关键字:程序  电线  力学  电工文摘电工技术 - 电工文摘