一份basic文件转化成c文件(自己收藏)

这是一个将Basic程序转化为C语言程序的过程,用于进行裸露导线温度或热额定值的瞬态或稳态计算。转换后的C代码能够执行,程序包含了从太阳能输入到导线温度计算的多个步骤,支持不同场景的计算,如故障电流和瞬态计算,并考虑了导体材料的热容量。转化过程中涉及到了数据输入、输出格式选择、初始条件设定、计算方法的优化等多个环节。
摘要由CSDN通过智能技术生成
 
basic的原文件,先通过BCX转化器,转化一下,注意转化过来的东东,错误是N的多哦。
得动手自己修改:
10   REM  *****************************************************************
20   REM  *      IEEE METHOD  -  TRANSIENT OR STEADY STATE CALCULATION
30   REM  *    OF BARE OVERHEAD CONDUCTOR TEMPERATURE OR THERMAL RATING
40   REM  *                 LAST MODIFIED  11 / 7 / 97  BY DAD
50   REM  *                PROGRAM NAME IS  " IEEE738SI.BAS "
60   REM  *                  LANGUAGE IS  " QUICK BASIC "
70   REM  *         ASSUMES SI UNITS FOR INPUT FILE
80   REM  *
90   REM  *
240  REM  *   IN COMPARISON WITH THE  1986  VERSION OF THIS PROGRAM, PROVIDED
250  REM  *   BY THE IEEE, THE  1993  VERSION ADDED THE FOLLLOWING FEATURES:
260  REM  *
290  REM  *      -  INITIAL CONDUCTOR TEMP OR CURRENT CAN BE USED IN
300  REM  *         TRANSIENT CALCULATIONS
330  REM  *      -  VERY SHORT DURATION  " FAULT "  CURRENTS AS LARGE AS 1E6
340  REM  *         AMPERES FOR TIMES AS SHORT AS  0.01  SEC CAN BE USED
350  REM  *      -  THE ORIGINAL NUMERICAL ITERATION METHOD HAS BEEN
360  REM  *         REPLACED WITH A MUCH MORE EFFICIENT METHOD
370  REM  *      -  FOR ACSR CONDUCTOR, THE HEAT CAPACITY OF THE STEEL CORE
380  REM  *         AND THE OUTER ALUM STRANDS ARE ENTERED SEPARATELY.
390  REM  *
392  REM  *   THIS VERSION IS CONSISTENT WITH IEEE STD  738 - 2006
394  REM  *      -  THE SOLAR MODEL ALLOWS ANY HOUR AND LATITUDE
396  REM  *      -  THE AIR PROPERTIES ARE CALCULATED WITH CLOSED FORM EQUATIONS
398  REM  *      -  THIS PROGRAM AND EQUATIONS USE SI UNITS
400  REM  **************************************************************
410  REM  ***********************************
420  REM  *  INITIALIZE VARIABLES AND ARRAYS  *
430  REM  ***********************************
440  DIM ATCDR( 1000 )
450  DIM TIME( 1000 )
460  FLAG1  =   0
470  XIDUMMY  =   0
480  XIPRELOAD  =   0
490  XISTEP  =   0
500  TCDR  =   0
510  TCDRPRELOAD  =   0
520  TCDRMAX  =   0
530  IORTPRELOAD  =   0
540  DELTIME  =   0
550  FS1  =   0
560  FS2  =   0
570  FS3  =   0
580  X$  =  STRING$( 56 45 )
590  REM  *******************************
600  REM  *  START REPEAT CALCULATION HERE
610  REM  *******************************
620  FOR KI  =   1  TO  1000
630  ATCDR(KI)  =   0
640  TIME(KI)  =   0
650  NEXT KI
660  NFLAG  =   0
670  PI  =   3.141593
672  PIANG  =  PI  /   180 !
680  IF FLAG1  =   99  GOTO  1120
690  REM  ************************************************
700  REM  *  SPECIFY DATA INPUT ASCII FILE NAME
710  REM  ************************************************
720  CLS
730  INPUT  " ENTER INPUT FILE NAME  " , F$: OPEN F$ FOR INPUT AS # 1
780  REM  ***********************************
790  REM  *   SPECIFY HOW DATA IS TO BE OUTPUT
800  REM  ***********************************
810  PRINT  " DO YOU WANT THE OUTPUT TO GO TO SCREEN ONLY(0), FILE ONLY(1), "
820  INPUT  "        OR TO BOTH SCREEN AND FILE(2)?  " , SORF
830  IF SORF  <>   0  AND SORF  <>   1  AND SORF  <>   2  THEN GOTO  810
840  IF SORF  <>   0  THEN INPUT  " ENTER OUTPUT FILE NAME   " , FOUT$: OPEN FOUT$ FOR OUTPUT AS # 2
845  INPUT  " DO YOU WANT DEBUG CHECKS? YES (0), NO(1)  " , DEBUG
850  REM  ************************************************************
860  REM  *  ENTER DATA FROM INPUT FILE
870  REM  ************************************************************
880  GOSUB  8000
1120  REM  *****************************************
1130  REM  *  CALCULATE SOLAR HEAT INPUT TO CONDUCTOR
1140  REM  *****************************************
1150  GOSUB  5000
1160  REM  **************************************************************
1170  REM  *  CALCULATE THERMAL COEF OF RESISTANCE  &  WIND ANGLE CORRECTION
1180  REM  **************************************************************
1190  GOSUB  9000
1200  REM  ********************************
1210  REM  *  SELECT THE CALCULATION DESIRED
1220  REM  ********************************
1230  ON NSELECT GOTO  1500 1240 1460 1460
1240  REM  ********************************************************************
1250  REM  *                    FOR NSELECT  =   2
1260  REM  *  GO TO AMPACITY SUBROUTINE TO CALCULATE THE STEADY STATE
1270  REM  *  CURRENT (TR) GIVEN THE STEADY STATE CONDUCTOR TEMPERATURE (TCDR)
1280  REM  *  THE CONDUCTOR TEMPERATURE IS GIVEN SO ONLY ONE PASS THROUGH
1290  REM  *  THE SUBROUTINE IS REQUIRED.
1300  REM  ********************************************************************
1310  TCDR  =  TCDRPRELOAD
1320  GOSUB  15000
1330  GOTO  1730
1340  REM  ********************************************************************
1350  REM
1360  REM  ********************************************************************
1370  REM  *                    FOR NSELECT  =   1 , 3 ,OR  4
1380  REM  *  GO TO AMPACITY SUBROUTINE REPEATEDLY IN ORDER TO CALCULATE
1390  REM  *  THE STEADY STATE CURRENT (TR) CORRESPONDING TO TRIAL VALUES OF
1400  REM  *  CONDUCTOR TEMPERATURE (TCDR).  IF T = 1  THEN THE OUTPUT OF THE
1410  REM  *  SUBROUTINE, TR, IS THE STEADY STATE CURRENT FOR
1420  REM  *  WHICH A STEADY STATE TEMPERATURE WAS TO BE FOUND.
1430  REM  *  IF T = 3  OR  4  AND IORTPRELOAD = 1 , THEN TR IS THE INITIAL PRE - STEP
1440  REM  *  CHANGE CURRENT FOR WHICH AN INITIAL TEMPERATURE WAS TO BE CALCULATED.
1450  REM  *********************************************************************
1460  ON IORTPRELOAD GOTO  1500 1650
1470  REM  ********************************************
1480  REM  *  CALCULATE TCDR GIVEN XIDUMMY  =  XIPRELOAD  *
1490  REM  ********************************************
1500  XIDUMMY  =  XIPRELOAD
1510  NFLAG  =   0
1520  GOSUB  13000
1530  TCDRPRELOAD  =  TCDR
1540  REM  ***************************************************************
1550  REM  *  FOR NSELECT  =   1   THE PROGRAM HAS FOUND THE STEADY STATE CONDUCTOR
1560  REM  *  TEMPERATURE (TCDRPRELOAD) CORRESPONDING TO THE GIVEN STEADY STATE
1570  REM  *  CURRENT (XIPRELOAD) AND CONTROL IS PASSED TO THE PRINTOUT SECTION
1580  REM  ***************************************************************
1590  IF NSELECT  =   1  THEN  1730
1600  REM  *****************************************************************
1610  REM  *  FOR NSELECT  =   3  OR  4 , THE PROGRAM HAS DETERMINED (IORTPRELOAD = 1 ) OR BEEN
1620  REM  *  GIVEN (IORTPRELOAD = 2 ) THE INITIAL STEADY STATE CONDUCTOR TEMPERATURE
1630  REM  *  AND CONTROL PASSES TO FURTHUR TRANSIENT  CALCULATIONS
1640  REM  *****************************************************************
1650  IF NSELECT  =   4  THEN GOSUB  10000
1660  REM  *************************************************************
1670  REM  *  BEGIN CALCULATION OF CONDUCTOR TEMP AS A FUNCTION OF TIME
1680  REM  *  FOR A STEP INCREASE IN ELECTRICAL CURRENT,  NSELECT  =   3
1690  REM  *************************************************************
1700  ET  =   3600 !
1710  XISTEP  =  XISTEP
1720  GOSUB  11000
1730  REM  *************************
1740  REM  *  PRINT RESULTS TO SCREEN
1750  REM  *************************
1760  IF SORF  =   0  OR SORF  =   2  THEN GOSUB  6000
1770  REM  ***********************
1780  REM  *  WRITE RESULTS TO FILE
1790  REM  ***********************
1800  IF SORF  =   1  OR SORF  =   2  THEN GOSUB  16000
1810  REM IF FS  =   1  GOTO  1880
1820  IF NS  <  NSETS THEN GOTO  880  ELSE CLOSE # 1
1830  IF SORF  =   1  OR SORF  =   2  THEN CLOSE # 2
1840  GOTO  1930
1850  REM  ********************************************
1860  REM  *  SETUP TO REPEAT PROGRAM CALCULATIONS WITH NEW DATA
1870  REM  ********************************************
1880  REM INPUT  " DO YOU WANT TO RUN THE PROGRAM AGAIN (YES = 1, NO = 2) " , YN
1890  REM IF YN  <>   1  AND YN  <>   2  THEN GOTO  1880
1900  REM IF YN  =   2  GOTO  1920
1910  REM IF YN  =   1  THEN FLAG1  =   99 : RESTORE: GOTO  620
1920  REM IF SORF  =   1  OR SORF  =   2  THEN CLOSE # 2
1930  END
5000  REM  /
5010  REM  /  SUBROUTINE TO CALCULATE CONDUCTOR SOLAR HEAT GAIN (QS)
5020  REM  /
5030  IF SUN.TIME  >=   24  THEN  5560
5040  DEG.TO.RAD  =  PI  /   180 !
5050  CDR.LAT.RAD  =  CDR.LAT.DEG  *  DEG.TO.RAD
5060  REM  *  SOLAR DECLINATION
5070  DECL.DEG  =   23.4583   *  SIN((( 284   +  NDAY)  /   365 *   2   *  PI)
5080  DECL.RAD  =  DECL.DEG  *  DEG.TO.RAD
5090  REM  *  SOLAR ANGLE RELATIVE TO NOON
5100  HOUR.ANG.DEG  =  (SUN.TIME  -   12 *   15
5110  HOUR.ANG.RAD  =  HOUR.ANG.DEG  *  DEG.TO.RAD
5120  REM  *  FIND SOLAR ALTITUDE  -  H3
5130  H3ARG  =  COS(CDR.LAT.RAD)  *  COS(DECL.RAD)  *  COS(HOUR.ANG.RAD)  +  SIN(CDR.LAT.RAD)  *  SIN(DECL.RAD)
5140  H3.RAD  =  ATN(H3ARG  /  SQR( 1   -  H3ARG  ^   2 ))
5150  H3.DEG  =  H3.RAD  /  DEG.TO.RAD
5160
5170  IF A3  =   1  THEN  5290
5180  REM  ***************************************************************
5190  REM  *  SOLAR HEATING (Q3) AT EARTH SURFACE (W / M2) IN CLEAR AIR (P6)
5200  REM  ***************************************************************
5210  Q3  =   - 42.2391   +   63.8044   *  H3.DEG  -   1.922   *  H3.DEG  ^   2
5220  Q3  =  Q3  +  . 034692   *  H3.DEG  ^   3   -   3.6112E-04   *  H3.DEG  ^   4
5230  Q3  =  Q3  +   1.9432E-06   *  H3.DEG  ^   5   -   4.0761E-09   *  H3.DEG  ^   6
5240  B$  =   " CLEAR "
5250  GOTO  5330
5260  REM  *****************************************************************
5270  REM  *  SOLAR HEAT (Q3) AT EARTH SURFACE (W / M2) IN INDUSTRIAL AIR (P6)
5280  REM  *****************************************************************
5290  Q3  =   53.1821   +   14.211   *  H3.DEG  +  . 66138   *  H3.DEG  ^   2
5300  Q3  =  Q3  -  . 031658   *  H3.DEG  ^   3   +   5.4654E-04   *  H3.DEG  ^   4
5310  Q3  =  Q3  -   4.3446E-06   *  H3.DEG  ^   5   +   1.3236E-08   *  H3.DEG  ^   6
5320  B$  =   " INDUSTRIAL "
5330  REM  *  CALCULATE SOLAR AZIMUTH VARIABLE, CHI
5335  IF DEBUG  =   0  THEN PRINT # 2 "  Q3 =  " ; Q3
5340  CHI.DENOM  =  SIN(CDR.LAT.RAD)  *  COS(HOUR.ANG.RAD)  -  COS(CDR.LAT.RAD)  *  TAN(DECL.RAD)
5350  CHI  =  SIN(HOUR.ANG.RAD)  /  CHI.DENOM
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT流渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值