Слаботочка Книги

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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 [119] 120 121 122 123 124 125 126 127 128 129 130



Рис 10-31

числительный алгоритм, который не зависит от вида и коэффициентов уравнений, описывающих динамику системы автоматического управления. Вторая часть (рабочая) содержит запись в определенной форме уравнений, описывающих динамику системы, и их коэффициентов. Таким образом, при изменении условий задачи или самой задачи изменяется лишь рабочая часть программы, что значительно упрощает трудоемкий процесс программирования.

Следует заметить, что в математическом обеспечении ЦВМ другие численные методы интегрирования входят также в виде стандартных программ, имеющих обращение к рабочей подпрограмме, в которую пользователь записывает все исходные данные решаемой задачи.

Структурная схема алгоритма последовательного типа с итерациями (для двух итераций), представленная в виде стандартной программы, приведена на рис, 10-30, Общий вид рабочей йодпрограммы F [Z] изображен на рис. 10-31.

На указанных структурных схемах приняты следующие обозначенчя- J - идентификатор переменной состояния, U - идентификатор входного воздей-CTBHfljf,/), Т - время, DT - шаг интегрирования, Z - ндентификатор пере-ме[[ной J в рабочей подпрограмме, X [J] - идентификатор массива текущих значений переменных (J = }, 2, 3, . N), N - порядок системы; ¥ [J] - идентификатор массива значений переменных в начале шага интегрирования или Что то Же, в конце предыдущего шага; /С [J] - идентификатор массива значении приращений переменных за шаг интегрирования для первой итерации; М [J] --Идентификатор массива значении приращений переменных за шаг интегрирования ДЛИ второй итерации, F \J] - идентификатор обращения к рабочей подпрограмме, DX [J] - Идентификатор стандартной программы массива текущих значений правых частей дифференциальных уравнений, вычисленных в соответствии с форму.тамн (10-24) и (10-26), F [2] - идентификатор рабочей подпрограммы Массива текущих значений правых частей дифференциальных уравнений, вычисленных в соответствии с формулами (10-24) н (10-26).

Правые Части дифференциальных >равнений в рабочей подпрограмме запи-ываются следующим образом- после условного оператора Z = I записывается равая часть первого >равнения,после условного оператора Z = 2 записывается Раеая часть второго уравнения и т. д.

/ Ь1*1ислнтельная процедура по алгоритмам стандартной и рабочей программ

<-трукт>тные схемы рис. 10-30 и 10-31) сосюит в следующем.

ратор 2 присваивает начальное времи счета Т - О и начальное зма-

индекс1юй переменной У - 1. teni. -Рторы 3 и 4 организуютликл присвоения всем переменным их ча-Ьных Значении (прн нулевых начальных условиях - нули).



3. Оператор 5 обеспечивает вывод текущих значений времени Т, входного воздействия и, массива Y [Д.

4. Операторы 7 и 8 организуют цикл присвоения идентификатору массива текущих значений переменных X [J\ идентификатора массива начальных условий ва данном шаге интегрирования У [/1

5 Оператор 9 обеспечивает присвоение индексной переменной зваченяя

6. Оператор Ю реализует обращение к рабочей подпрограмме F [Z].

7. В рабочей подпрограмме проверяется логическое условие равенства индексной переменной (оператор 24, рис. 10-3J).

8. Если условие Z= 1 выполняется, то вычисляется функция F{\\, т. е правая часть дифференциального уравнения, записанного первым (опера тор 25)

9. Происходит возврат к стандартной программе, где оператор обеспечи вает вычисление приращения переменной X [I] за шаг интегрирования, промежуточного значения нового значения индексной переменной j = /+ I.

10 В логическом операторе 12 провернется выполнение условия У у, Если это услс ие выполняется, то осуществляется возврат и оператору 10, т. е вновь происходит обращение к подпрограмме F [2\

U. В рабочей подпрограмме снова проверяется логическое условие равен ства индексной переменной (оператор 24). Так как это условие не выполняется поскольку теперь Z Ф \,ло прочсходит переход к оператор> 26, где вновь прайс ходит проверка логического условия равенства индексной переменной

12. Поскольку условие 2=2 выполняется, то происходит переход к опера тору 27, с помощью которого вычисляется функция F [2], т. е. правая часть диф-ферен[[[1ального уравнения, записанного вторым. При этом в рассматриваемом уравнении для переменных с индексной переменной Z<; 2 берутся их численные значения, полеченные как промежуточные значения (оператор ti). Для переменных с индексной переменной 22 берутся начальные условия для рассматриваемого шага интегрирования, т. е. У [У]. В общем случае для индексной переменной J = т проверяется условие Z = т. Если это услсиие выполняется, то вычисляется функция F [/и], причем для индексных переменных с индексом Z < m берутся значения полученные как промежуточные (оператор ), а д-тя переменных г,индексной переменной Zm берется начальные условия рассматриваемого шага интегрирования.

13 Оператор 13 по окончании цикла вычислений в первом приближении (первая итерация - операторы 9-12) обеспечивает присвоение индексной переменной значения J !

14. Оператор 14 реализует обращение к рабочей подпротрамие F [Z\.

15. В рабочей подпрограмме с помощью операторов 24, 25, 26, 27 и т. д. осуществляется цикл вычислений последовательных значений функции F [Д аналогично описанному выше для первой итерации. Причем, если / = т, то Для переменных с индексной переменной Z<C. т берутся их промежуточные значения вюрого приближения, полученные с помощью оператора 15, а для переменных с индексной переменной 2 i; m берутся промежуточные значения первого приближения, вычисленные с помощью оператора .

16. Происходит возврат к стандартной программе, где оператор 15 обеспечивает цикл вычислений второй итерации приращений /И [J\ переменной Х[Л за шаг интегрирования, промежуточных значений второго приближения X [Ju нового значения индексной переменной J = J + \.

17. В логическом операторе 16 проверяется выполнение условия J-Если это условие выпа1ияегся, то осуществляется возврат к оператору Н, т- происходит зациклевание программы вычислений второго приближения, а прн несоблюдении условия - переход к дальнейшей программе.

18. Оператор 17 по окончании циклической программы вычислений второго лрижения обеспечивает присвоение индексной перемениой значения :

19. Операторы 18 и 19 обеспечивают циклическую программу вычислений абсолютных значений второго приближения переменной Y [J] й конце шага тегрнрования.



20 В операторе 20 вычисляются новые текущие зизченип переменной Г ем прибавления к предыдущему ее значению нового шага интегрирования DT.

21 Логический оператор 2/ проверяет выполнение условия Т Г. Если овне выполняется, т. е. расчет окончен, то происходит переход к опаторам

92 и Конец . Если же это условие не выполняется, то осуществляется переход ппрпатору 5 и расчет повторяется на следуюии1х шагах интегрирования до ялнения условия ТТ.

Структурные схемы и словесное описание алгоритмов стандартной программы (ряс. 10-30) н рабочей подпрограммы (рис. 10-31) позволяют на проблемно-ориентированном языке написать программу расчета для любой ЦВМ. При этом стандартная часть программы яе вызывает никаких

ТгрН

трудностей при записи ее на любом алгоритмическом языке. Что касается рабочей подпрограммы, то от правильности ее записи суш,ест-веиио зависят результаты расчета.

Ниже на примере простейшей системы регулирования третьего порядка, структурная схема которой приведена иа рис. 10-32, иллюстрируется порядок составления рабочей под-профамиы.

Рис, 10-32

Рис. 10-33

гнпй *ч рассматриваемой системы определяется следующей i-HCTeMOH уравнений:

(10-28)

ленна? алгоритма рабочей подпрограммы, состав-мом п рассматриваемого примера в соответствии с алгорит- описанным выше, приведена иа рис. 10-33,

3 А, В Ващврян




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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 [119] 120 121 122 123 124 125 126 127 128 129 130
Яндекс.Метрика