Главная страница  Программы проектирования 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [ 96 ] [97] [98] [99] [100]

Кром ввода чисел, подпрограммы RDR, RDI производят контрольную 11ечать входных данных.

В качестве примера использования подпрограмм RDR, RDI рассмотримХподпрограмму INPLIN, которая производит ввод данных для лилейной системы, представленной уравнениями состояния x=Ax-f-pu, y=Cx-f-Du.

\ Подпрограмма INRLIN

Назначение: ввод модели в уравнениях состояния. Обращение: INPLIN (N, L, М, А, В, С, D).

Параметры:

N - раВмерность вектора переменных состояния,

L - раёмерность вектора входных переменных,

М - размерность вектора выходных переменных,

А, В, С, D - матрицы коэффициентов уравнений состояния.

Входные данные для подпрограммы INPLIN могут (Иметь вид:

с ВХОДНЫЕ mvuE для МОДЕЛИ в уг-АвнЕЖЯх состотия

ПОРЯДОК систЕШ число входов

ЧИСЛО виходсю

N = 3 L = 2

М = 1

-2» -5в »

1 »

А = » » 1 В

= 0 »

2» » -1»

» 1

с=»5е » D°»»

Данные вводятся в следующем порядке: N, L, М, первые строки матриц А, В..... N-e строки матриц А, В, первые строки матриц С, D, М-е

строки матриц С, D.

Опишем теперь подпрограммы GRAFIK и SCALE, которые обеспечивают печать графиков на АЦПУ и автоматический выбор масщтаба. Масщтаб графиков по оси ординат выбирается таким образом, что одно деление щкалы может принимать значения 10", 2-10", 4-10, 5-10*, где Л - целое число.

Подпрограмма GRAFIK

Назначение: печать графиков на АЦПУ, обеспечивает одновременный вывод до пяти кривых.

Обращение: CALL GRAFIK (М, КТ, Y, YMIN. YMAX, TIT, TITLE). Параметры:

М -• количество одновременно выводимых кривых,

КТ - количество различных значений аргумента,

У - массив результатов для графического вывода длиной (М-)-1)>Ц >tcKT, где Y(J) - значение аргумента в точке К; Y(J--L) - значение функции L в точке К; J= (М-Ь!);; (К-К= = 1..... КТ; L=l, М,

YMIN - Массив минимальных значений щкалы,

YMAX - массив максимальных значений щкалы,

TIT - 8-байтовая текстовая константа, содержащая заголовок для аргумента,



ailLIl - массив из М 8-байтовых текстовых констант, содержащий заголовки для функций. Первый символ каждой константы используется для печати соответствующего графика.

Примечание. Если YMIN(I)<YMAX(I), то YMIN(I) и YMAX(I) определяют минимальное и максимальное значения шкалы для функции I. В противном случае подпрограмма автоматически выбирает масштаб.

Используемые подпрограммы SCALE.

Подпрограмма SCALE

Назначение: выбор масштаба графика по оси ординат. Обращение: CALL SCALE (YMIN, YMAX, N). Параметры:

YMIN, YMAX - минимальное и максимальное значения функции (на входе), минимальное и максимальное значения шкалы (на выходе),

N - число делений шкалы.

-1.0Е+00 -6 -1.2Е+00 -8

/е-01 -3 Ot-01 -4

3t-01 О.Ot-01 3 Ot-01 о.OE-01 4

SIN(X>

шв<х>

О.ООЕ-01

.........S.......

......с.

o.oot-01

1.9VE-01

l.OOt+OO 9.90E-01

2.00Е-01

.................

....

4.00fc-01

3.B*t-01

9.21E-01

6.00t-01

b.6bt-01

b.2b£-01

b.OOt-01

y.i/t-oi

A.9/E-01

l.OOt+00

B.41E-01

b.4oe-oi

1.20E+00

».a!t-oi

3.62E-01

1.40E+00

. с

V.&5E-01

1.70E-01

1.Й0Е-Ю0

l.OOt+00

-2.92E-02

i.eoe+00

v.yt-oi

-2.27E-01

2.0OE+OO

S...

9.09t-01

-4.iA£-01

2.20e+00

..........1.........

. в

e.oet-oi

-b .89E-01

2.40e<00

6."/b£-01

-7.3УЕ-01

2.ME*00

b.l4E-01

-e.V/E-01

2.80£+00

с .

3.35t-01

-9.42E-01

3.00E*00

1.41t-01

-У.90Е-01

з.гоЕ-юо

.-Ь.ЬЕ-02

-9.9e£-0t

3.4oe+oo

с .

-2.b4t-01

-9.A7E-01

3.60fc+00

с . в

-4.43fc-01

-8.97E-01

3.8oe+oo

-A.liE-Ol

-7.91E-0t

4.оое-юо

4.20e+00

,. ......с.-... .

-/.b/t-01 -b./2£-0J

-А.Ь4Е-01

b . с

-4.90E-Ot

<.40E+00

-У.Ь2Е-01

-3.0/E-Ol

t.Aoe+oo

с .

-9.V4t-01

-1.12E-01

4.eofc+00

-V.VAt-Ol

8.75E-02

b.OOE+OO

-y.bVE-Ol

2.8«-01

b.20t*00

-8.b3t-01

4.A9t-01

b.40t<00

S .

-/./3E-01

6.3ЬЕ-01

5.6Ct+00

.&

-A.:<lfc-oi

7.76E-01

5.eot-K)0

-4.АЬе-01

6.8At-01

6.0.)t+00 6.20Е-Ю0

. ,s.................

.....с.

-г.УУЕ-О!

y.AOt-Ol

.......1.........

-b.31fc-02

y.97t-01

А.40Е-Ю0

. в

i.r/t-oi

9.93E-01

6.Aoe+oo

3.12E-01

y.bOE-Ol

6.«0E<00

4.94E-01

8.Aȣ-0t

v.ooe+00

6.Ь/Е-01

7.b4t-01

•/. 206*00

т

. в

7.V4t-01

A.OeE-01

7.4oe+oo

т ш

e.V9t-01

4.39t-01

•/.6oe+oo

9.А8Е-01

2.blt-01

7.80E+00

S 9.VVb-01

b.40t-02

B.OOE+OO

......с.............

,......

У.Э?Е-01

-1.46E-01

3t-01 ot-01

Vfc-01

ot-ot

l.Ot+00

j.i+00



лржер испольэовммя подпрограммы grafik

dimension y(2e*),ymin(2),ymax(2) real»e tit,title(2)

data tit/ x /, title/sin(x) ,cos(x) /

data К/2/, 1ст/л1/, yhin/-1.,*./, ymax/l.,e./

do 5 k=1,kt

xk-1)»(m+1)+1

x=<k-1)»«.2

y<j)=x

y01)=sin(x) 5 YO2)=c0s(x)

CfiLL grm"ik(m,kt,y,ymin,ymax,tit,title)

stop

с п0дпр(грм1ма grmik с

subroutine gr«ik(m,kt,y,ymin,ymax,tit,title)

dimension y(1),ymin<1),ymax(1),a(7)

looicalm tit(8),title(8,h),it(61),ia,ib

data ndy/6/, la/ v, ib/./

w«»mdy+1

nlie.nfldy+l

do 20 1=1,m

if<ymin(i).lt.ymax(i)) go to 1» yhin<i)=y<i+1) yhax(i)»y<i+1) do 5 k»1,kt ><k-1)«(m+1)+i+1 yhin<i)-ahinl<yhin(i),y(j)) ynax( i >>amxl (ynax( i), y( j)) 5 continue

call scale(ymn(i),ymax(i),ndy) 1» l>-<yhax(i)-ymin(i))/float(ndy) a(1>>yhin(i) do 15 >>2,nd1 a(j)«a(>1»g

if<aes(a(j)).le.0»l.e-4) a<j)=». 15 continue

2* print 1«5,(a(j),>1,nd1),title(1,i)

print 11»,tit,< <title<j,k), j=l,8),k=1,m> i1-*

do 55 k»1,kt if(i1.eq..1») i1-* il-il+l

ifdl.eq.l) 00 to 35

do 25 1-1,n1 25 it<i)»ia

do 3* i-1,nd1 3» 1t(1»»i-9)=ib

00 to 45 35 do 4* i>1,n1 4» it<i)»ib 45 do 5» im.h

><k-l)»(thl)+h-l

oflloat(n1-1)»<y(j)-yhin<i))/<ymax<i)-yhin<i)) if(abs(0).gt.2m.) 00 to 5*

>«41.5

if<j.ge.l.a*e.j.le.nl) it(j»=title<1,i) s* comtinue

jl»<k-l>»(thl)+l

j2-j1+1

js-jl-hi




[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [ 96 ] [97] [98] [99] [100]

0.017