Батенко А.П. Системы терминального управления (1984) (1246767), страница 27
Текст из файла (страница 27)
Н а х М Ф ч Ф Ф О с Ы а ° 3 О Н 3- ° «3 ° 3« а «ч ° а -Г ° О Н З Ф и' Мсн н Ф а «3 3 а «е. ° «о е к «н ФЪ ОКО Н О х ч а а а ъ «3 оо Н. Н ° а аа хи НС Нс а« м й. р «- О Нс О 3 «Ф Ф о Р О иа Р Н. ае ° а с ° 33 И! Ф Ф 3 и И ины л ° н нс ч и М ° О О «««ОО а ? о ь Сч а Э О. 1- ч е С$ + а а ч Ф а м о + а ? С С$ о ю >- а 1" а $! а а м и Сч Сч ч о— С$ 1 ° И П ? а м т- аН1 1 а ° а Ф 11 Ф и М 1? 1? ° О ы т а сч м — х С1 С ? С ь" т а н Э 11 $? Н 1 С то с э- и и СЧ 1'1 оч ао ни~и 1- + 1 С1 1 и а 1 ~ а о ч$ ? э-ан Ф $ а 1 1 ао О 1- а ?т -а а» а чъ С а ч$ ч$ йа а ч$ ои ао Фо ло н ° а Ю О а1?м о 11 а -? сч в -аа м н ПРИЛОЖЕНИЕ 2 ПРОГРАММА ОПТИМИЗАЦИИ ТЕРМИНАЛЬНЫХ УПРАВЛЕНИЙ В данном приложении полностью приводится программа, осуществля)ощая гннтез антил«альных терминальных управлений по критерию минимума расхода топлива.
Дается ее блок-схема с подробным описанием. Это наиболее сложная программа из всех, какие могут встретиться в практике специалистов, работающих в данной области. Все остальные программы значительно проще и могут быть составлены нз отдельных блоков приводимой программы. Всю программу можно условно разбить на три части; неизменяемую, частично изменяемую иизменяему)о. Неизменяемая часть содержит подпрограммы, помещенные в приложении 1: РйО!2, КОБР, г!)й, г" 1!Б, АйТАЯ, СО)))ЫМ.
')астично изменены следующие подпрограммы, также имеющиеся в приложении 1; йК, гК, 1) Б, ОР Т1М. Для конкретной задачи, описанной в гл. 5, помимо основной программы МА!Дг разработаны новые подпрограммы, относящиеся к изменяемой части: ТйАЕК, РйС, гООй, БТ!.
Ниже содержится подробное описание и текст изменяемой части программы, так как этот материал может быть взят за основу при разработке аналогичаых программ. Тексты частично измененных программ приводятся пе полностшо: недостающие фрагменты берутся из приложения 1. 1. Основная программа. Приведем поблочное описание этой программы. В скобках содержатся номера операторов в тексте программы, реализу)ощне этот блок. Текст программы дается ниже. Б.1 (! — 4). Оператор 1 объявляет действительное имя подпрограммы, проверя~ошей ограничения. При обращении к подпрограмме это имя записывается и списке формальных переменных вместо БООй. В данном случае эти имена выбравы одинаковыми. Оператор 2 перечисляет переменные н константы, имеющие двойную точность.
!!азначение и смысл каждой переменной будут пояснены в соатветствующкх блоках, Оператор 3 объявляет массивы, переменные и константы, которые будут общими для всех взаимодействующих подпрограмм. Оператор 4 объявляет размерности массивов, назначение которых будет пояснено ниже.
Б.2 (б — 12). Оператор 5 присваивает значение веса (кг) летательного аппарата переменной О. Оператор 6 рассчитывает значение массы аппарата н присваивает его переменной АМ. Оператор 7 присваивает переменной йО значение плотности воздуха иа уровне моря (р« = 0,125 кг сэ)м«). Оператор и присваивает переменной 3 значение площади (мз) несущих поверхностей.
Оператор 9 задает значение С„. Оператор 10 присваивает переменной С)г значение г)Сэ)дгр = 3,3. Оператор 11 задает значение показателя эхспоненты в модели атмо гферы. Оператор! 2 задает значение удельного расхода топлива (кг таил.1(Н)с)). Б.б (13, 14). Операторы 13 и 14 печата)от заданные параметры объекта и внешней среды. Б.4 (15 †). Оператор 15 задает количество ограничений, налагаемых на управления и скорость объекта. Операторы 16 †18 зада верхние пределы ограничений: гшэх = 30 000 кг (294 300 Н)*) у,вах = 0,349 рад; )гшах = 320 м!с. 1)ператоры 19 — 21 задают нижние пределы ограничений.
Б.б (22 — 25). Операторы 22, 23 печатают значения верхних ограничений. Операторы 24, 25 печатают значения нижних ограничений. Б.б (2б, 27), Оператор 26 задает количество проверок выполнения ограни. «гний в интервале (О, Т). Оператор 27 задает количество интервалов, на ноторое Разбивается подынтсгральная функция функционала при вычислении его по формуле (П1.10.2). Б,7 (28 — 44). Операторы 28 — 35 задают масштабные множители для пере«явных случайного поиска, с помощью которых подбираются оптимальные копгчные условия выходной функции Н (высота). Операторы 36 — 43 делают то же г амое для выходной функции О (дальность). Оператор 44 задает масштабный мно- «) В тексте программ тяга обозначена буквой й.
137 житель для переменной Т. С помощью масштабных множителей выравниваютсй порядки переменных, с которыми оперирует алгоритм случайного поиска, реализованный в подпрограмме ОРТ1М. Б.б (45 — 48). Массивы Их) (2) и Ро (2) предназначены для храпения данных, характеризующих начальное фазовое состояние объекта. Так как уравнения движения аппарата (5.9) вдоль осей Н и Р имеют второй порядок, то начальных условий в каждом канале — высоты н дальности — будет по дна. Следовательно, массивы Нхз и РИ должны ил~еть размерность 2. Оператор 45 задает начальное значение высоты [м). Оператор 46 задает начальное зна~епне вертикальной скорости [м/с!.
Оператор 47 задает начальную дальность [м), Оператор 48 задает начальное значение скорости вдоль оси дальности [и/с!. Б,9 (49 — 58). Блок задает конечное фазовое состояние аппарата и время перевода объекта. Данные о конечном фазовом состоянии хранятся в массивах НК ()к[) и РК (1х)). Их размерность выбрана из следующих соображений. Два конечных условия обусловлены постановкой задачи. Предполагается, что решение будет найдно не более чем за восемь итераций.
На хаждой итерации добавляется по одному конечному условию, значение которого подбкрается. Таким образом, максимальное число конечных условий пе более 10. Оператор 49 задает время [с! перевода аппарата из начального фазового состояния в конечное. Оператор 50 задает конечную высоту [м!. Оператор 51 задает конечную вертикальную скорость [м/с!. Оператор 52 задает конечную дальность [м!. Оператор 53 задает конечную горизонтальную скорость аппарата [и/с!.
Б.10 (54 — бб). Оператор 54 задает очень большое начальное значение функционала. При каждой следующей итерации вновь полученное значение функционала сравнивается со старым, полученным на предыдущей итерации. Меньшее значение функционала присваивается переменной БАГЕ. Поэтому начальное значение переменной ВНЕ должно быть заведомо больше любого ее реального значения, которое может быть получено в перной лге итерации. Оператор 55 задает точность решения задачи синтеза.
Величина ТОЕ представляет собой минимальное различие [зА! между двумя последовательными значениями функционала ЕУЕ, при достижении которого задача считастся решенной. БН1 (бб — бЗ). Блок производит печать заданных начального и конечного фазовых состояний объекта, заданной точности синтеза оптимальных управлений (операторы 56 — 61). Операторы 62 и 63 печатают заголовок НЕОПТИМАЛЬНАЯ ТРАЕКТО. РИЯ (КРАЕВАЯ ЗАДАЧА) длн следующих блоков, решающих чисто краевую задачу.
В дальнейшем результат решения краевой задачи служит исходной фазовой траекторией для постеленного улучшения. БО2 (84, бб). Оператор 64 задает число начальных условий или порядок модели, описывающей движение аппарата вдоль осей Н н Р. Оператор 65 задает число конечных условий по высоте и дальности.
БНБ (бб). Оператор 66 обращается к подпрограмме ТКАЕК. Эта подпрограмма рассчитывает терминальные управления при заданных входных условиях и моделирует движение аппарата. Рассчитывается также значение функционала, которое присваивается переменной ЕЕ. В списке формальных переменных вместо КРН стоит 1. Это означает, что при моделировании через заданные (пользователем) промежутки времени будет печататься текущее фазовое состоя.
ние аппарата. Построенная по этим данным траектория движения представляет собой решение чиста краевой задачи. Б.14 (б7, бб). Операторы 67 и 68 обращаются к подпрограмме КОБЕ, чтобы вычислить коэффициенты выходных функций Н (!) и Р (1), заданных в виде полиномов (5.16). Коэффициенты полинома Н (1) помещаются в массив СС (12), а полинома Р (Π— в массив ВВ (12). Эти коэффициенты понадобятся в блоке Б.18.
Б.!б (89). Оператор 69 вычисляет количество членов в полиномах Н (!) и Р (/) — опо равно сумме начальных и конечных условий (см. 8 4.2). 138 Б.18 (70, 71). Операторы 70 и 71 ооращаются к подпрограмме РКО!3 и вычисляют конечные значения А!-й производной выходных функций Н (Т) н О (Т).
В данном случае — при первом проходе программы Н = 2, по»тому вычисляются конечные значения вторых производных. На первой итерации будут подбираться оптимальные ионечные значения вторых производных выходных функций. Но подпрограмма ОРТ!М требует задать их первоначальные значения.
В качестве первоначальных значений или начальных приближений задаются те их значения, которые получаются на предыдущей итерации. В данном случае предыдущей итерацией служит решение чисто терминальной задачи. Вычисленные конечные значения вторых производных выходных функций присваиваются переменным: НКН = Й (Т); ОКН = О (Т). Б.!7 (72).