Скачиваний:
23
Добавлен:
28.03.2015
Размер:
25.6 Кб
Скачать

DECLARE SUB Message () ' Выдает сообщение "Подождите пожалуйста я считаю"

DECLARE SUB Center (row%, text$) ' Вывод строки на экран, выровненной по центру

DECLARE SUB Pausa () ' Останов до нажатия любой клавиши

DIM B(1000), KX(5000), KY(5000)

1 CLS

COLOR 15

Center 1, "**************************************************"

COLOR 9

Center 2, "**** Расчет переходных процессов в цифровой системе ****"

COLOR 12

Center 3, "**************************************************"

2 REM PRINT "Порядок астатизма объекта N=0 или 1"

3 REM INPUT T(4)

4 REM PRINT "Параметры объекта KOR, TAU, T1, T2, T3, KOW, T4, T5="

6 REM INPUT V1, D6, T(1), T(2), T(3), V2, T(5), T(6)

PRINT

PRINT

COLOR 10

Center 5, "Введите следующие параметры передаточной функции"

COLOR 7

PRINT

PRINT

PRINT "1. Кор - коэфициент усиления по каналу регулирования: "; : COLOR 11: INPUT "", V1

COLOR 7

PRINT "2. Постоянная времени Т1 (мин): "; : COLOR 11: INPUT "", T(1)

COLOR 7

PRINT "3. Постоянная времени Т2 (мин): "; : COLOR 11: INPUT "", T(2)

COLOR 7

PRINT "4. Постоянная времени Т3 (мин): "; : COLOR 11: INPUT "", T(3)

COLOR 7

PRINT "5. Постоянная времени запаздывания tau (мин): "; : COLOR 11: INPUT "", D6

COLOR 7

PRINT "6. Порядок астатизма объекта N (0 или 1): "; : COLOR 11: INPUT "", T(4)

COLOR 15

PRINT

PRINT " Значения введены корректно (Д/Н) "; : COLOR 14: INPUT ""; da$

IF (da$ <> "д") AND (da$ <> "Д") THEN 1

7 REM

PRINT

PRINT

COLOR 7

PRINT "7. Ков - коэфициент усиления по каналу возмущения: "; : COLOR 11: INPUT "", V2

COLOR 7

PRINT "8. Постоянная времени Т4 (мин): "; : COLOR 11: INPUT "", T(5)

COLOR 7

PRINT "9. Постоянная времени Т5 (мин): "; : COLOR 11: INPUT "", T(6)

COLOR 15

PRINT

PRINT " Значения введены корректно (Д/Н) "; : COLOR 14: INPUT ""; da$

IF (da$ <> "д") AND (da$ <> "Д") THEN 7

8 IF V1 < 0 THEN 2

9 PRINT

PRINT

COLOR 10

10 PRINT " Параметры регулятора"

12 REM INPUT K1, K2, K3, D

PRINT

COLOR 7

PRINT "10. Настройка регулятора K1: "; : COLOR 11: INPUT "", K1

COLOR 7

PRINT "11. Настройка регулятора K2: "; : COLOR 11: INPUT "", K2

COLOR 7

PRINT "12. Настройка регулятора K3: "; : COLOR 11: INPUT "", K3

COLOR 7

PRINT "13. Значение Tkw - время квантования (мин): "; : COLOR 11: INPUT "", D

COLOR 15

PRINT

PRINT " Значения введены корректно (Д/Н) "; : COLOR 14: INPUT ""; da$

IF (da$ <> "д") AND (da$ <> "Д") THEN 9

14 IF K1 < 0 THEN 2

15 PRINT

PRINT

COLOR 10

16 PRINT " Параметры воздействий"

18 REM INPUT U1, F3, F4

PRINT

COLOR 7

PRINT "14. Воздействие по каналу управления U1: "; : COLOR 11: INPUT "", U1

COLOR 7

PRINT "15. Воздействие по каналу возмущения F1: "; : COLOR 11: INPUT "", F3

COLOR 7

PRINT "16. Воздействие по каналу возмущения F2: "; : COLOR 11: INPUT "", F4

COLOR 15

PRINT

PRINT " Значения введены корректно (Д/Н) "; : COLOR 14: INPUT ""; da$

IF (da$ <> "д") AND (da$ <> "Д") THEN 15

20 IF U1 < 0 THEN 10

25 y(1) = 0: y(2) = 0: y(3) = 0: y(4) = 0: y(5) = 0: y(6) = 0: R2 = 0: Q = 0: X = 0

27 y(7) = 0

30 Z = 0: K = 0

33 PRINT

PRINT

35 REM PRINT "Шаг интегрирования H="

COLOR 7

PRINT "17. Шаг интегрирования H: "; : COLOR 11: INPUT "", H

40 REM INPUT H

45 REM PRINT "Шаг печати, верхний придел интегрирования ="

50 REM NPUT W1, W2

COLOR 7

PRINT "18. Шаг печати h : "; : COLOR 11: INPUT "", W1

COLOR 7

PRINT "19. Верхний придел интегрирования Tl: "; : COLOR 11: INPUT "", W2

COLOR 7

COLOR 15

PRINT

PRINT " Значения введены корректно (Д/Н) "; : COLOR 14: INPUT ""; da$

IF (da$ <> "д") AND (da$ <> "Д") THEN 33

Message

cnt% = 0

55 IF W1 < C THEN 16

60 IF X > 2 * H THEN 160

100 L = INT(D6 / H)

110 N = INT(D / H)

120 REM DIM B(1000)

130 FOR I = 1 TO L + 1

140 B(I) = 0

150 NEXT I

160 GOSUB 350

170 A = y(6) + y(7)

175 IF X > 1.01 * W1 THEN 185

180 REM PRINT "Время", "Параметр", "Регулирующее воздействие"

185 REM PRINT X, A, R

KX(cnt%) = X

KY(cnt%) = A

cnt% = cnt% + 1

190 IF X < W2 - W1 + H THEN 160

NADPX$ = "t (мин)"

NADPY$ = "Y - значение выходной величины"

ZAG$ = "Реакция системы на ступенчатое воздействие"

COUNT% = cnt% - 1

CVET% = 13

GOSUB Grapher

200 GOTO 770

340 REM PRINT "Метод Рунге-Кутта"

345 REM PRINT "Чиcтого запаздывания по Y(1) - операторы 500 - 550"

350 M = INT(W1 / H)

360 FOR J = 1 TO M

370 IF Z > .99 THEN 390

380 GOSUB 700

390 Z = Z + 1

400 IF Z < .999 * N THEN 410

405 Z = 0

410 GOSUB 600

420 FOR I = 1 TO 6

425 IF T(I) = 0 THEN 444

430 G(I) = y(I) + H * P(I) / 4

440 y(I) = y(I) + 2 * H * P(I) / 3

442 GOTO 450

444 y(I) = y(I - 1)

450 NEXT I

460 GOSUB 600

470 FOR I = 1 TO 6

475 IF T(I) = 0 THEN 484

480 y(I) = G(I) + 3 * H * P(I) / 4

482 GOTO 490

484 y(I) = y(I - 1)

490 NEXT I

500 K = K + 1

510 S = B(K)

520 B(K) = y(4)

530 y(7) = S

540 IF K < .999 * L THEN 560

550 K = 0

560 X = X + H

570 NEXT J

580 RETURN

595 PRINT "Уравнение Коши"

600 P(1) = (V1 * (R + F3) - y(1)) / T(1)

602 IF T(2) = 0 THEN 606

604 P(2) = (y(1) - y(2)) / T(2)

606 IF T(3) = 0 THEN 610

608 P(3) = (y(2) - y(3)) / T(3)

610 IF T(4) = 0 THEN 614

612 P(4) = y(3)

614 P(5) = (V2 * F4 - y(5)) / T(5)

616 IF T(6) = 0 THEN 620

618 P(6) = (y(5) - y(6)) / T(6)

620 RETURN

695 PRINT "Расчет регулирующих воздействий"

700 E = U1 - y(6) - y(7)

710 R1 = K1 * E

720 R2 = R2 + K2 * E

730 R3 = K3 * (E - Q)

740 R = R1 + R2 + R3

750 Q = E

760 RETURN

770 END

Grapher:

SCREEN 12

IF GCV$ = "Д" OR GCV$ = "д" THEN CVET% = 15

CLS

OTRX = 0

OTRY = 0

MAXX = -9999

MAXY = -9999

MINX = 9999

MINY = 9999

FOR IM1 = 1 TO COUNT%

REM PRINT KX(I), KY(I)

IF KX(IM1) > MAXX THEN MAXX = KX(IM1)

IF KY(IM1) > MAXY THEN MAXY = KY(IM1)

IF KX(IM1) < MINX THEN MINX = KX(IM1)

IF KY(IM1) < MINY THEN MINY = KY(IM1)

NEXT IM1

REM PRINT COUNT%

REM STOP

OBLX = MAXX - MINX

OBLY = MAXY - MINY

IF MINX <= 0 THEN OCX = 40 + ABS(MINX) / OBLX * 400 ELSE OCX = 40

IF MINY <= 0 THEN OCY = 460 - ABS(MINY) / OBLY * 400 ELSE OCY = 460

MASHTX = 400 / OBLX

MASHTY = 400 / OBLY

REM РИСУЕМ МЕЛКУЮ СЕТКУ

FOR X = OCX + 4 TO 440 STEP 4

LINE (X, 60)-(X, 460), 8

NEXT X

FOR X = OCX - 4 TO 40 STEP -4

LINE (X, 60)-(X, 460), 8

NEXT X

FOR y = OCY + 4 TO 460 STEP 4

LINE (40, y)-(440, y), 8

NEXT y

FOR y = OCY - 4 TO 60 STEP -4

LINE (40, y)-(440, y), 8

NEXT y

REM РИСУЕМ ОСИ

LINE (OCX, 50)-(OCX, 470), 15

LINE (30, OCY)-(450, OCY), 15

PSET (OCX, 50)

DRAW "G3E3F3"

PSET (450, OCY)

DRAW "H3F3G3"

REM РИСУЕМ КРУПНУЮ СЕТКУ

FOR X = OCX + 40 TO 440 STEP 40

LINE (X, 60)-(X, 460), 7

NEXT X

FOR X = OCX - 40 TO 40 STEP -40

LINE (X, 60)-(X, 460), 7

NEXT X

FOR y = OCY + 40 TO 460 STEP 40

LINE (40, y)-(440, y), 7

NEXT y

FOR y = OCY - 40 TO 60 STEP -40

LINE (40, y)-(440, y), 7

NEXT y

REM РИСУЕМ ГРАФИК

FOR I = 1 TO COUNT%

IF I = 1 THEN OLDX = KX(1): OLDY = KY(1)

LINE (40 + (OLDX - MINX) * MASHTX, 460 - (OLDY - MINY) * MASHTY)-(40 + (KX(I) - MINX) * MASHTX, 460 - ABS(KY(I) - MINY) * MASHTY), CVET%

OLDX = KX(I)

OLDY = KY(I)

FOR kl% = 1 TO 10000: NEXT kl%

NEXT I

REM ПИШЕМ ЗАГОЛОВОК

DLN% = LEN(ZAG$)

LOCATE 1, 40 - DLN% / 2, 1

PRINT ZAG$;

REM ПРОСТАВЛЯЕМ ЧИСЛОВЫЕ МЕТКИ

LOCATE 4, 58, 1

PRINT USING "###.###"; MAXY;

LOCATE 29, 58, 1

PRINT USING "###.###"; MINY;

LOCATE 3, 2, 1

PRINT USING "###.###"; MINX;

LOCATE 3, 52, 1

PRINT USING "###.###"; MAXX;

REM ОБОЗНАЧЕНИЯ ОСЕЙ

LOCATE 3, 11, 1

PRINT "Ось Y: "; NADPY$;

LOCATE 26, 57, 1

PRINT "Ось X:";

LOCATE 27, 57, 1

PRINT NADPX$;

REM УКАЗЫВАЕМ МАСШАБЫ

LOCATE 6, 57, 1

PRINT " МАСШТАБ ПО"

LOCATE 7, 57, 1

PRINT USING " ОСИ X: ###.### ед."; OBLX / 10;

LOCATE 8, 57, 1

PRINT USING " ОСИ Y: ###.### ед."; OBLY / 10;

REM ДИАЛОГОВОЕ ОКНО

COLOR 14

LOCATE 12, 59, 1

PRINT "Для печати экрана"

LOCATE 13, 59, 1

PRINT " нажмите"

LOCATE 14, 59, 1

PRINT "[Shift] + [PrtScr]"

LOCATE 15, 59, 1

PRINT "Для продолжения"

LOCATE 16, 59, 1

PRINT " [G]"

LINE (455, 165)-(615, 265), 14, B

COLOR 15

REM ЗАДЕРЖКА

ZDR:

ZD$ = INKEY$

IF ZD$ <> "G" AND ZD$ <> "g" AND ZD$ <> "п" AND ZD$ <> "П" GOTO ZDR

CLS

COUNT% = 1

SCREEN 0

COLOR 15

CLS

LOCATE 1, 1, 1

RETURN

'Center:

' Center text on the given row.

SUB Center (row%, text$)

LOCATE row%, 41 - LEN(text$) / 2

PRINT text$;

END SUB

SUB Message

COLOR 15, 3

CLS

COLOR 15, 1

Center 9, "г======================================¬"

Center 10, "¦ ¦": COLOR 0, 3: PRINT "-"; : COLOR 15, 1

Center 11, "¦ Подождите пожалуйста, я считаю... ¦": COLOR 0, 3: PRINT "-"; : COLOR 15, 1

Center 12, "¦ ¦": COLOR 0, 3: PRINT "-"; : COLOR 15, 1

Center 13, "L======================================-": COLOR 0, 3: PRINT "-"; : COLOR 15, 1

COLOR 0, 3

Center 14, " ----------------------------------------"

COLOR 15, 1

LOCATE 1, 1, 0

END SUB

SUB Pausa

ZP:

PZ$ = INKEY$

IF PZ$ = "" GOTO ZP

END SUB

Соседние файлы в папке ASUTP
  • #
    28.03.20153.08 Кб23PRIM.BAS
  • #
    28.03.2015143.8 Кб22QBASIC.HLP
  • #
    28.03.201548 б22QBASIC.INI
  • #
    28.03.2015967 б22QBASIC.PIF
  • #
    28.03.2015979 б23README.TXT
  • #
    28.03.201525.6 Кб23REG.DOC
  • #
    28.03.20158.65 Кб23REG1.BAS
  • #
    28.03.20158.65 Кб23REG11PRN.BAS
  • #
    28.03.20159.69 Кб23REG2.BAS
  • #
    28.03.20159.69 Кб23REG22PRN.BAS
  • #
    28.03.20153.14 Кб23REW.BAS