СТАНДАРТНАЯ И РАБОЧАЯ ЧАСТИ АЛГОРИТМА

С целью устранения указанного выше недостатка применяется структурная схема алгоритма, состоящая из двух частей: стандарт­ной и рабочей. Первая часть (стандартная) интерпретирует вы-

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

Рис 10-31

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

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

*

На ухазанных структурных схемах приняты следующие обозначения - J — идентификатор переменной состояния, U — идентификатор входного воздей­ствия <(/{/), Т — время, DT — шаг интегрирования, Z — идентификатор пере­менной J в рабочей подпрограмме, X [J] — идентификатор массива текущих значений перемеиных {J = і, 2, 3, . ,, N), N — порядок системы; Y {J] — идеи - - тификатор массива значений переменных в начале шага интегрирования или что то же, в конце предыдущего шага; ft [J] — идентификатор массива значении приращений переменных за шаг интегрирования для первой итерации; М [У| —■ Идентификатор массива значении приращений переменных за шаг интегрирова­ния ддя второй итерации, F 17] — идентификатор обращения к рабочей подпро­грамме, DX [yj — идентификатор стандартной программы массива текущих зна­чений правых частей дифференциальных уравнении, вычисленных в соответствии с формулами (10-24) и (10-26), F [Z] — идентификатор рабочей подпрограммы массива текущих значений правых частей дифференциальных уравнений, вычис­ленных в соответствии с формулами (ДО-24) и (10-26).

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

у Вычислительная процедура по алгоритмам стандартной и рабочей программ 1стРУктурные схемы рис. 10-30 и 10-31) сосюит в следующем. ч *• Оператор 2 присваивает начальное времи счета Г — 0 и начальное зма - Ие индексной переменной «/ = 1.

Чал 0пеР^оры 3 и 4 организуют^цикл присвоения всем переменным их па­рных значений (при нулевых начальных условиях — нули).

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

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

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

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

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

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

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

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

11. В рабочей подпрограмме снова проверяется логическое условие равен­ства индексной переменной (оператор 24). Так как это условие не выполняется, поскольку теперь Z ф 1,ю происходит переход к оператору 26, где вновь проис­ходит проверка логического условия равенства индексной переменной

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

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

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

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

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

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

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

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

хг

к

р

ft*

h.

ТіР+1

Тгр+і

20, В операторе 20 вычисляются новые текущие значения переменной Т м прибавления к предыдущему ее значению нового шага интегрирования DT. 21 Логический оператор 21 проверяет выполиенне условия Т ^ Тк. Если ловие выполняется, т. е. расчет окончен, то происходит переход к операторам и «Конец». Если же это условие не выполняется, то осуществляется переход лпеоатору 5 и расчет повторяется на следующих шагах интегрирования до выполнения условия Т 7V

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

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

ке-

Ш

Рис, 10-32

подпрограммы, то от пра­вильности ее записи сущест­венно зависят результаты расчета.

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

Рис. 10-33

Динамика рассматриваемой системы определяется следующей системой уравнений:

(10-28)

і£ї. = kx {и - ба*,); ^- = ^(k3x1-x2);

Структурная схема алгоритма рабочей подпрограммы, состав - ЛеНная для рассматриваемого примера в соответствии с алгорит - Момі описанным выше, приведена иа рис. 10-33.

Комментарии закрыты.