МОДЕЛИРОВАНИЕ - mvstudium · Модели движения могут включать...

127
Федеральное агентство по образованию ________ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ 1. С. В. Беневольский Ю. Б. Колесов МОДЕЛИРОВАНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ МОДЕЛИРОВАНИЕ В ЗАДАЧАХ ВНЕШНЕЙ БАЛЛИСТИКИ Учебное пособие Санкт-Петербург Издательство Политехнического университета 2009

Upload: others

Post on 29-May-2020

10 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Федеральное агентство по образованию ________

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

1.

С. В. Беневольский Ю. Б. Колесов

МОДЕЛИРОВАНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ МОДЕЛИРОВАНИЕ

В ЗАДАЧАХ ВНЕШНЕЙ БАЛЛИСТИКИ

Учебное пособие

Санкт-Петербург Издательство Политехнического университета

2009

Page 2: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

УДК 519.7 (075.8) Б 46

Беневольский С.В. Моделирование. Объектно-ориентированное мо-делирование в задачах внешней баллистики : учеб. пособие / С.В. Бене-вольский, Ю.Б. Колесов. -- СПб., Изд-во Политехн. ун-та, 2009. -- 127 с.

Пособие соответствует государственному образовательному стандарту

дисциплины «Моделирование» направления бакалаврской подготовки 552800 "Информатика и вычислительная техника".

Рассмотрен современный подход объектно-ориентированного моделирова-ния сложных нелинейных гибридных систем на примере задач внешней балли-стики. Изложены основные понятия объектно-ориентированного подхода к мо-делированию. Приведены основные конструкции универсального языка моде-лирования UML, а также его расширения применительно к непрерывным и гиб-ридным системам. Показано применение технологии объектно-ориентированного моделирования к типовым моделям внешней баллистики. Изложенный материал позволяет организовать полноценные лабораторные ра-боты. Все приводимые в данном пособии модели выполнены с помощью отече-ственного инструмента моделирования MvStudium.

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

Ил. 92. Библиогр. ; 10 назв.

Печатается по решению редакционно-издательского совета Санкт-Петербургского государственного политехнического университета.

© Беневольский С.В., Колесов Ю.Б., 2009 © Санкт-Петербургский государственный

политехнический университет, 2009 ISBN 978-5-7422-2382-5

2

Page 3: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Оглавление.

Введение. .................................................................................................................. 4 Глава 1. Объектно-ориентированное моделирование сложных динамических систем ............................................................................................. 8

1.1. Основные понятия объектно-ориентированного моделирования. ..... 8 1.2. Активный динамический объект. ......................................................... 11 1.3. Пакеты и модель..................................................................................... 17 1.4. Переменные. ........................................................................................... 19 1.5. Система уравнений ................................................................................ 26 1.6. Карта поведения ..................................................................................... 32 1.7. Компоненты ............................................................................................ 40 1.8. Структурная схема ................................................................................. 41 1.9. Наследование классов............................................................................ 47

1.9.1.Добавление новых элементов описания ......................................... 48 1.9.2. Переопределение унаследованных элементов.............................. 49

1.10. Управление вычислительным экспериментом.................................. 51 Глава 2. Элементы моделей внешней баллистики............................................. 53

2.1.Модель атмосферы .................................................................................. 53 2.2. Модель Земли ......................................................................................... 60 2.3. Моделирование табличных зависимостей........................................... 61

Глава 3. Модели движения летательных аппаратов различных типов......... 65 3.1. Модель неуправляемой ракеты............................................................. 65 3.2. Модель зенитной управляемой ракеты ................................................ 76 3.3. Модель баллистической ракеты дальнего действия........................... 92

3.3.1 Математическая модель движения БРДД на АУТ...................... 92 3.3.2. Математическая модель движения БРДД на ПУТ .................... 99 3.3.3. Объектно-ориентированная модель........................................... 107

Библиографический список................................................................................ 126

3

Page 4: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Введение. Решение задач внешней баллистики невозможно без создания компью-

терных моделей движения летательных аппаратов (снарядов, неуправляе-мых ракет, управляемых ракет) и проведения вычислительных экспери-ментов с ними. Модели движения могут включать в себя следующие со-ставляющие:

движение центра масс; движение вокруг центра масс; упругие колебания корпуса; переходные процессы в системе управления. Для решения различных задач внешней баллистики необходимы ком-

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

Модели внешней баллистики обладают рядом особенностей: 1) движение летательных аппаратов в атмосфере и гравитационном по-

ле Земли описывается сложной системой нелинейных и нестационарных дифференциально-алгебраических уравнений, которые могут быть решены только численно, часто эти уравнения являются еще и жесткими;

2) необходимо учитывать случайные отклонения параметров летатель-ного аппарата (массы, аэродинамических характеристик, энергетических характеристик топлива и других) от номинальных значений, отклонения параметров атмосферы от стандартных, а также стохастические ветровые воздействия;

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

Таким образом, модели внешней баллистики являются нелинейными гибридными моделями со сложной динамикой.

Эти особенности чрезвычайно затрудняют создание компьютерных мо-

4

Page 5: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

делей внешней баллистики традиционным «ручным» способом. При ис-пользовании этого способа моделирующая программа создается вручную на подходящем языке программирования (обычно на Фортране) с исполь-зованием какой-нибудь стандартной библиотеки численных методов. Код моделирующей программы содержит как описание правых частей уравне-ний, так и план вычислительного эксперимента. Решаемая система уравне-ний предварительно должна быть вручную преобразована к некоторой стандартной форме, пригодной для численного решения (обычно это фор-ма Коши).

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

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

«Ручной» способ позволяет добиться очень высокой производительно-сти моделей и может быть вполне приемлем для многократного использо-вания одной и той же отлаженной модели с незначительными модифика-циями.

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

5

Page 6: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

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

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

Использовать системы автоматизации моделирования наиболее целе-сообразно на ранних этапах проектирования летательных аппаратов, когда рассматривается множество разных вариантов, а также для учебного про-цесса. Применение в системах автоматизации моделирования стандартного математического входного языка облегчает сопровождение моделей и по-зволяет использовать их независимо от разработчиков.

В настоящее время существует три основных подхода к компонентному моделированию сложных нелинейных гибридных систем: «блочное» мо-делирование (системы Simulink+Stateflow, VisSim и др.), «физическое» мо-делирование (язык Modelica и система Dymola) и моделирование на основе гибридных автоматов (системы MvStudium, AnyLogic, Ptolemy). В данном пособии выбран третий подход, так как его входной язык является наибо-лее наглядным и соответствующим языку объектно-ориентированного мо-делирования UML, который в последнее время стал фактическим стандар-том для системного анализа. Все приводимые авторами модели выполнены с помощью отечественной системы моделирования MvStudium, в которой удачно сочетаются подходы Modelica и UML. Демо-версия этой програм-

6

Page 7: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

мы и исходные файлы всех рассматриваемых в пособии моделей доступны на сайте «www.mvstudium.com».

7

Page 8: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Глава 1. Объектно-ориентированное моделирование сложных динамических систем Сложной динамической системой (СДС) будем называть систему, об-

ладающую следующими свойствами: система содержит много компонентов, состав которых может изменять-

ся во время ее функционирования; компоненты имеют различную физическую природу; между компонентами имеются как физические, так и информационные

связи; в общем случае система имеет иерархическую многоуровневую струк-

туру; элементарные компоненты могут быть непрерывными, дискретными

или непрерывно-дискретными (гибридными). Частными случаями СДС являются и системы, рассматриваемые в зада-

чах внешней баллистики. В этой главе рассматриваются основные понятия объектно-

ориентированного моделирования СДС и объектно-ориентированный язык моделирования, поддерживаемый системой визуального моделирования MvStudium. Более подробно с проблемами моделирования СДС можно по-знакомиться с помощью учебных пособий [1-3].

1.1. Основные понятия объектно-ориентированного моделирования.

Объектно-ориентированный подход к моделированию был предло-жен авторами языка SIMULA-67 [4]. Они предложили использовать специ-альные модели — классы, описывающие множество близких по своим свойствам объектов, обладающих внутренней структурой и поведением, и выбирать конкретный элемент этого множества, создавая конкретный эк-земпляр класса и наделяя его конкретными значениями параметров. Так возникла новая технология описания сложных многокомпонентных сис-тем, называемая объектно-ориентированным подходом (ООП). Долгое

8

Page 9: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

время эта технология активно развивалась в основном в области проекти-рования сложных программных комплексов и сложных дискретных сис-тем. Итогом этого развития является так называемый унифицированный язык моделирования UML (Unified Modeling Language) [5]. Модификации объектно-ориентированной технологии применительно к моделированию сложных многокомпонентных динамических систем называются объект-но-ориентированным моделированием (ООМ) и представлены языком мо-делирования Modelica, а также входными языками пакетов моделирования AnyLogic, MvStudium, Ptolemy и др. [2]. С помощью ООМ удобно решать ряд типовых задач моделирования, а именно:

создавать библиотеки типовых компонентов как библиотеки классов;

повторно использовать компоненты, при необходимости осуществляя их специализацию с помощью наследования классов;

естественным образом строить модели с множеством однотипных объ-ектов;

осуществлять параметризацию моделей с помощью полиморфизма;

при моделировании систем с переменным составом создавать и уничто-жать экземпляры объектов в ходе вычислительного эксперимента.

Считают, что в качестве основы для современного объектно-ориентированного моделирования СДС должен использоваться унифици-рованный язык моделирования UML. Язык UML - это объектно-ориентированный язык прототипирования сложных программных ком-плексов и вычислительных систем. Несмотря на то что авторы UML счи-тают, что «UML - язык дискретного моделирования, и он не предназначен для разработки непрерывных систем, встречающихся в физике и механи-ке», UML заслуживает внимания по следующим причинам.

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

Во-вторых, часть конструкций UML может быть использована непо-

9

Page 10: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

средственно как для предварительного описания структуры проекта, так и в качестве основы для расширения.

Понятия класса и экземпляра являются ключевыми в ООМ. Объект – это некоторая сущность, обладающая атрибутами и поведением. Класс - это формализованное описание множества объектов, имеющих одинаковое функциональное назначение, атрибуты и поведение. С понятием класса неразрывно связано понятие экземпляра класса, т. е. конкретного объекта из множества всех объектов, описываемых данным классом. Конкретный объект отличается от всех остальных объектов того же самого класса уни-кальными значениями атрибутов. Например, пусть имеется класс «Сна-ряд». Все экземпляры этого класса имеют одни и те же атрибуты; масса, горизонтальная и вертикальная координаты, горизонтальная и вертикаль-ная скорости. Однако значения этих атрибутов для объектов «Снаряд_1» и «Снаряд_2» - экземпляров класса «Снаряд» - различны (случайно, конеч-но, они могут и совпадать).

Среди атрибутов выделяются «параметры» - такие атрибуты, значение которым присваивается только один раз при создании экземпляра класса и далее не меняется в течение всего времени существования объекта. При-менительно к снаряду параметрами могут быть масса, начальная скорость и угол стрельбы.

В UML выделяются «активные» и «пассивные» объекты и соответст-венно «активные» и «пассивные» классы, экземплярами которых они яв-ляются. Активным объектом согласно UML называется «объект, который владеет потоком управления и может инициировать управляющие воздей-ствия» [5]. Пассивным объектом называется «объект, у которого нет собст-венного потока управления. Все его операции выполняются под управле-нием потока, прикрепленного к активному объекту» [5]. Применительно к дискретным системам эти определения вполне достаточны, однако приме-нительно к ООМ сложных динамических систем они представляются не-сколько узкими. Поэтому заменим «поток управления» определением «процесс, развивающийся во времени» и «управляющие воздействия» - «воздействия на другие объекты». Далее для компонентов СДС ввоедем специальное понятие «активный динамический объект».

Объектно-ориентированный подход позволяет скрывать детали реали-зации компонента и делать видимыми извне только те атрибуты и опера-

10

Page 11: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

ции, которые нужны другим компонентам.

1.2. Активный динамический объект.

Для адекватного описания компонентов СДС вводится понятие «ак-тивный динамический объект» (АДО) как расширение активного объекта UML. Интуитивно под компонентом СДС понимается некоторая совокуп-ность параметров, переменных и поведения – непрерывного, дискретного или гибридного [1]. Компонент СДС является активным объектом, так как ему присуща своя собственная внутренняя деятельность, независимая от поведения других объектов. Переменные соответствуют атрибутам с се-мантикой значения активного объекта UML. Переменные можно разделить на внешние (входы, выходы, контакты и др.) и внутренние (переменные состояния). Компонент СДС взаимодействует с другими компонентами че-рез внешние переменные (рис.1).

имя класса

Внешние переменные

Внутренние переменные

Поведение

Интерфейс объекта

Инкапсулированная часть

Параметры

Рис. 1 Структура описания АДО

Поведение активного объекта UML задается «картой состояний» (statechart), которая может описывать только дискретное поведение. Пове-дение АДО задается «картой поведения» (behavior chart или B-chart), яв-ляющейся обобщением карты состояний. Основным отличием карты пове-дения от карты состояний является возможность приписать состоянию не-которую непрерывную деятельность, задаваемую системой дифференци-ально-алгебраических уравнений. Такая деятельность не связана ни с ка-ким «потоком управления», ее единственным «движителем» выступает не-зависимый и глобальный поток непрерывного времени. Именно этот ас-пект подчеркивает слово «динамический» в названии АДО (рис.2).

11

Page 12: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

⎩⎨⎧

= 0),,,,( 2

2

tYXdtdX

dtXdF

⎩⎨⎧

= 0),,,,( 2

2

tYXdtdX

dtXdF≡

Рис. 2 Непрерывное поведение как частный случай гибридного поведения

Для удобства вариант карты поведения с единственным состоянием,

которому приписана непрерывная деятельность, выделяется в особый слу-

чай чистого «непрерывного поведения».

⎪⎩

⎪⎨⎧

= 0),,,,( 2

2tYX

dtdX

dtXdF

Рис. 3 Составляющие поведения АДО

Поведение АДО в общем случае является суперпозицией собствен-ного поведения и совокупного поведения локальных объектов с учетом связей (Рис. 3). По отношению к локальным объектам содержащий их объ-ект является объектом-контейнером. В синтаксисе UML локальные объек-

12

Page 13: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

ты — это атрибуты с семантикой указателя. Собственное поведение может задаваться либо системой дифференциально-алгебраических уравнений общего вида, либо картой поведения (см. рис.3). Заметим, что согласно принципу синхронной композиции [1] АДО может содержать только одну карту поведения. Для задания собственного поведения могут также потре-боваться локальные алгоритмические функции или процедуры, а также ло-кальные классы. Эти алгоритмические функции и процедуры являются элементами описания собственного поведения и инкапсулированы внутри описания класса, поэтому к ним нельзя обратиться извне.

В [1] выделяются три «ортогональных» направления одной из возмож-ных классификаций компонентов моделей СДС:

по типу взаимодействия с внешним миром: открытые и изолированные компоненты;

по типу внутренней структуры: элементарные и составные компоненты; по типу собственного поведения: непрерывное поведение, гибридное

поведение (в частном случае дискретное), нет собственного поведения. Для подобного рода семантической типизации в языке UML существует

специальная конструкция — стереотип (stereotype). Будем считать, что стереотип для активных классов, порождающих АДО, — это одна из воз-можных комбинаций перечисленных выше классификационных призна-ков. Первый классификатор определяет наличие или отсутствие внешних переменных. Второй классификатор задает наличие или отсутствие струк-турной схемы. Третий классификатор определяет, есть ли у объекта собст-венное поведение и, если есть, что это — система уравнений или карта поведения. Указание стереотипа полезно при работе в интегрированной среде пакета моделирования, так как позволяет рационально конфигуриро-вать редактор описания класса, убирая ненужные для данного стереотипа возможности поля и окна и показывая только необходимые.

Возможные преобразования стереотипа: любой класс с непрерывным поведением может быть преобразован в

эквивалентный гибридный класс (см. Рис. 2) и наоборот; любой класс, соответствующий изолированной системе, может быть

преобразован в класс, соответствующий открытой системе с пустым набо-ром внешних переменных, и наоборот;

любой класс, имеющий элементарную структуру, может быть преобра-

13

Page 14: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

зован в класс с составной структурой с пустым набором локальных объек-тов и связей и наоборот.

На практике наиболее часто используются четыре основных стереотипа: класс, порождающий непрерывный элементарный объект; класс, порождающий дискретный элементарный объект; класс, порождающий гибридный элементарный объект; класс, порождающий «схему». Первому варианту соответствует активный класс, показанный на Рис. 4.

Собственное поведение порождаемого объекта задается системой уравне-ний. В системе уравнений, а также в выражениях для начальных значений переменных могут использоваться локальные функции.

Имя класса

Внешние переменные

Внутренние переменные

⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

= 0),,,,( 2

2tYX

dtdX

dtXdF

Локальные функции и константы

Параметры

Рис. 4 Непрерывный элементарный объект

Второму варианту соответствует активный класс, показанный на Рис. 5. Собственное поведение порождаемого объекта задается частным случа-ем карты поведения, эквивалентной карте состояний. В условиях срабаты-вания, мгновенных действиях и в выражениях для действительных пара-метров деятельности в состоянии, а также в выражениях для начальных значений переменных могут использоваться локальные функции. Состоя-ниям могут приписываться в качестве деятельностей экземпляры локаль-ных классов.

14

Page 15: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Имя класса

Внешние переменные

Внутренние переменные

Локальные функции, константы и процедуры

Локальные классы

Параметры

Рис. 5 Дискретный элементарный объект

Третьему варианту соответствует активный класс, показанный на Рис. 6. Собственное поведение порождаемого объекта задается общим слу-чаем карты поведения. Использование локальных констант, функций и процедур, а также локальных классов аналогично предыдущему случаю.

Имя класса

Внешние переменные

Внутренние переменные

Локальные функции, константы и процедуры

Локальные классы

Параметры

Рис. 6 Гибридный элементарный объект

Четвертому варианту соответствует активный класс («блок-схема»),

15

Page 16: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

показанный на Рис. 7. Порождаемый объект не имеет собственного поведе-ния, его функционирование определяется суперпозицией поведения ло-кальных объектов и связей. При отсутствии собственного поведения нет необходимости в собственных внутренних переменных и в локальных классах. Локальные константы функции могут использоваться при ини-циализации внешних переменных, а также при задании действительных параметров для локальных объектов.

Рис. 7 Блок-схема

Экземпляр активного класса может быть создан или уничтожен: явно с помощью специальных операторов, выполняемых в последова-

тельности мгновенных дискретных действий; неявно при создании и уничтожении объекта-контейнера, в состав кото-

рого данный объект входит в качестве локального; неявно при входе в состояние и выходе из состояния, которому припи-

сан данный объект в качестве деятельности. Экземпляр модели в целом создается исполняющей системой пакета

моделирования в начале вычислительного эксперимента и уничтожается по его завершении.

При создании экземпляра активного класса могут быть указаны дейст-вительные значения его параметров, отличные от значений «по умолча-нию», указанных в определении класса. Весьма удобной при построении сложных моделей является возможность указывать при создании экземп-

16

Page 17: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

ляра активного класса также и действительные начальные значения его пе-ременных.

Для любого АДО определена функция time, возвращающая значение непрерывной составляющей локального времени этого объекта, т.е. време-ни от момента создания объекта.

1.3. Пакеты и модель.

Пакет в языке ООМ — это контейнер для группы семантически свя-занных элементов, ограничивающий область их видимости. Элементы, объявленные как экспортируемые, видимы извне под составным именем, включающим в качестве префикса имя пакета, например, P.E, где P — имя пакета, а E — имя элемента в этом пакете. Остальные элементы видимы только внутри данного пакета. В описании элемента пакета видимы все ос-тальные элементы этого же пакета. Пакет образует собственную область видимости и все элементы пакета должны иметь несовпадающие имена. В отличие от языка UML, где элементами пакета являются только классы, естественными элементами пакета в языке ООМ также являются констан-ты, алгоритмические функции и процедуры и определения типов перемен-ных (Рис. 8). Классы, определенные на уровне пакета, будем называть гло-бальными (в отличие от локальных классов, определенных на уровне дру-гого класса).

Для того чтобы использовать экспортируемые компоненты пакета A в пакете B, необходимо в описании пакета B поместить указание импорти-рования пакета A.

В пакете языка ООМ имеется предопределенный приватный класс Model, который является по терминологии UML «синглетным», т. е. может иметь только один экземпляр. Этот единственный экземпляр с именем model и является выполняемой моделью, с которой проводится вычисли-тельный эксперимент. Значение функции time для этого объекта соответ-ствует значению непрерывной составляющей глобального времени вычис-лительного эксперимента. Опыт показывает, что на практике большинство моделей являя.тся элементарными, изолированными непрерывными сис-темами. Для создания такой простейшей модели достаточно только опре-делить переменные модели и задать ее систему уравнений, не используя никаких знаний об объектно-ориентированном моделировании.

17

Page 18: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 8. Структура пакета в языке ООМ

Рис. 9. Экспортируемые элементы пакета «ГОСТ4401_81»

Возможность импорта пакетов позволяет использовать в моделях ранее разработанные и отлаженные модели. Например, все достаточно точные

18

Page 19: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

модели движения тел в воздухе должны использовать модель стандартной атмосферы Земли (по ГОСТ 4401-81 или иному). Эту модель необходимо разработать и отладить только один раз, проводя вычислительные экспе-рименты с экземпляром класса «Model». Далее ее можно использовать в других моделях как импортируемый пакет «ГОСТ4401_81», содержащий видимые извне необходимые для моделирования движения определения констант (значения ускорения силы тяжести, плотности воздуха, давления и температуры на уровне среднего радиуса Земли), а также класса «Стан-дАтмосфера», в котором инкапсулированы зависимости параметров атмо-сферы от высоты (Рис. 9)

1.4. Переменные.

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

стереотип переменной (вид переменной); идентификатор переменной; указание типа переменной; начальное значение переменной.

В определении рабочей переменной отсутствует указание стереотипа. Стереотип переменной отражает семантические правила ее использо-

вания: «состояние» (state) — внутренняя переменная, используемая только в

описании собственного поведения объекта; «вход» (input) — внешняя переменная, значение которой может быть

изменено только извне; «выход» (output) — внешняя переменная, значение которой может быть

изменено только внутри объекта; «контакт» («contact») – внешняя переменная, значение которой может

быть изменено как извне, так и внутри объекта;

19

Page 20: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

«поток» («flow») - внешняя переменная, значение которой может быть изменено как извне, так и внутри объекта, поток отличается от контакта видом уравнений, которые приписываются связям между этими перемен-ными;

«коннектор» («connector») или «разъем» – внешняя переменная, пред-ставляющая собой набор переменных со своими стереотипами (например, контакт плюс поток плюс выход),. коннекторы удобно использовать для минимизации числа связей в сложной модели. Идентификатор переменной представляет собой строку, состоящую из

латинских и русских букв, цифр и знака подчеркивания и начинающуюся с буквы. Указание типа переменной представляет собой имя типа (предопреде-

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

ром могут использоваться константы, функции, а также начальные значе-ния других переменных (при этом не должны возникать алгебраические циклы). При создании экземпляра данного класса все переменные приоб-ретают указанные начальные значения или значение «не присвоено», если в определении класса не указано начальное значение. Значения параметров и начальные значения переменных конкретного экземпляра могут быть яв-но указаны при вызове конструктора, например:

Снаряд (m=2.87, V0=1000, Teta0=-pi/4). В этом случае значения, указанные в определении класса, игнорируются.

Для моделирования непрерывных компонентов в задачах внешней баллистики необходим минимальный набор типов данных: скалярный ве-щественный тип, типы «вектор» и «матрица» со своими традиционными операциями, а также целые числа для вычисления индексов векторов и матриц. Для моделирования дискретных и гибридных компонентов необ-ходим также более широкий спектр целых типов (байт, короткое целое, длинное целое), перечислимые, булевские, символьные и строковые типы. Кроме того, для описания явной синхронизации параллельных процессов нужны специфические переменные-сигналы. Для сложных моделей и при создании стандартных компонентов удобно использовать комбинирован-ные типы – записи и типы, явно определяемые пользователем. Структура

20

Page 21: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

типов данных показана на Рис. 10.

Рис. 10 Типы переменных

Вещественный тип

Для приближенного представления вещественных чисел в языке мо-делирования используется тип double, соответствующий стандарту вычис-лений с плавающей точкой ANSI/IEEE Std 754-1985. С помощью этого ти-па, имеющего внутреннее представление длиной в 8 байт, могут быть представлены вещественные числа со знаком в диапазоне

308324 107.1105 ×−× − с точностью 15—16 значащих десятичных цифр в

мантиссе. Для типа double определены следующие операции и отношения: сложение, вычитание, умножение, деление, возведение в целую и вещест-венную степень, равенство, неравенство, больше, больше или равно, меньше, меньше или равно. Примеры вещественных литералов: -3.5 +5.67 1.5E3 -3.4E12 1.76E-2 4 2e3 Целые типы

В языке моделирования используются следующие целые типы: byte (8 бит без знака, диапазон чисел 0—255); short (16 бит со знаком, диапазон чисел –32 768 — 32 767): integer (32 бит со знаком, диапазон чисел –2 147 483 648 — 2 147 483

647); Для целых типов определены следующие операции и отношения:

сложение, вычитание, умножение, целое деление, сравнение по модулю,

21

Page 22: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

возведение в целую степень, побитовое "ИЛИ", побитовое "И", побитовое "НЕ", равенство, неравенство, больше, больше или равно, меньше, меньше или равно. Примеры целых литералов: 1 34 –4567 Булевский тип

Тип boolean имеет множество значений {false, true}. Для булевского типа определены следующие операции и отношения: «логическое "ИЛИ"», «логическое "И"», «логическое "НЕ"», равенство, неравенство.

Перечислимые типы

Перечислимые типы определяются путем явного задания (перечис-ления) конечного множества значений как упорядоченной совокупности не совпадающих по именам литералов вида "(" , , … , , ... , ")", где — идентификатор литерала с номером i. Два перечислимых типа являются одинаковыми, если их множества значений совпадают. Для литералов пе-речислимого типа определены следующие отношения: равенство, неравен-ство, больше, больше или равно, меньше, меньше или равно. Результат этих отношений равен результату соответствующих отношений между но-мерами значений. Значения различных перечислимых типов несравнимы. Перечислимые литералы задаются своими идентификаторами. Литералы различных перечислимых типов могут иметь совпадающие идентификато-ры. Пример определения перечислимого типа: (Alpha, Beta, Gamma).

1L 2L iL nL iL

Символьные типы

К символьным типам относятся собственно символьный тип char и строковый тип string. Тип char включает в себя упорядоченное множество символов. Тип string — это строка произвольной длины. Множество сим-волов следует рассматривать как особый случай перечислимого типа с со-ответствующими отношениями. Для строк определены следующие опера-ции и отношения: конкатенация, равенство, неравенство. Символьные ли-тералы задаются соответствующим символом, заключенным в кавычки. Примеры символов: "A", "1", "a". Строковые литералы задаются соответст-вующей строкой, заключенной в кавычки. Примеры строк: "abcd", "1234".

Векторы

22

Page 23: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Определение типа «vector[N]» задает вектор-столбец фиксированно-го размера N с элементами типа double. Определение типа «vector» задает вектор-столбец переменного размера с элементами типа double. Элементы вектора всегда нумеруются с 1. Контроль правильности использования вектора переменного размера возможен только во время исполнения. Те-кущий размер вектора X всегда можно определить с помощью функции size(X). Для векторов определены следующие операции и отношения: ум-ножение на скаляр, сложение, вычитание, транспонирование, равенство, неравенство. Примеры векторных литералов: [1;2;3;4] [0; 0; 2.3; 5.67; 1E2] [for i in 1..10 | i**2 ] — вектор размера 10, содержащий значения 1, 2, 9, ..., 100 (итеративный векторный литерал).

Матрицы Определение типа «matrix[N,M]» задает прямоугольную матрицу

фиксированного размера с N строками и M столбцами с элементами типа double. Определение типа «matrix» задает прямоугольную матрицу пере-менного размера. Элементы матрицы всегда нумеруются с 1 по обоим из-мерениям. Вектор всегда можно рассматривать как матрицу [N,1]. Кон-троль правильности использования матрицы переменного размера возмо-жен только во время исполнения. Текущий размер матрицы X по i-му из-мерению всегда можно определить с помощью функции size(X,i). Для мат-риц предусмотрены следующие операции и отношения: умножение матри-цы на скаляр, умножение матриц, сложение, вычитание, транспонирова-ние, равенство, неравенство. Примеры матричных литералов: [1, 2, 3, 4; 1, 4, 5, 6] — матрица размера 2× 4; [0,3.4,5;7,8,0.67;0.8,6,2.3] — матрица размера 3× 3. [for i in 1..3, j in 1..5 | i*j-1] — матрица размера 3× 5 (ите-ративный матричный литерал).

Итеративные матричные литералы можно использовать в качестве начального значения переменных, а также в качестве правой части форму-лы или оператора присваивания. Сигналы

Как отмечалось, переменные типа signal — это сообщения (возмож-но, с параметрами), передаваемые между параллельно выполняемыми про-

23

Page 24: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

цессами с целью их явной синхронизации. Формальные параметры сигнала должны декларироваться в определении переменной или типа, например: T1: signal (V: double; Teta: double); T2: signal;

С переменной-сигналом можно выполнить только одно действие: по-слать сигнал с помощью оператора send, указав фактическое значение па-раметров, например: send T1 (V:=100; Teta:=rad(45));

Фактические значения параметров сигнала T1 доступны только для чтения в мгновенных действиях перехода с условием срабатывания when T1, который принял данный сигнал, через составные имена с именем сиг-нала в качестве префикса, например: Vx := T1.V*cos(T1.Teta);

Комбинированный тип (запись) Переменная комбинированного типа есть последовательность по-

именованных компонентов. Компоненты записи могут принадлежать к различным типам (рекурсии в определении записи не допускаются). При-меры определений записей:

record A: integer; B: boolean; C: matrix[2,3]; end record;

Примеры комбинированных литералов: (A=>2, B=>true, C=>[1,2,3; 0,0,1])

Явно определяемые типы

Определение типа позволяет связать идентификатор типа с некото-рым определением типа и в дальнейшем использовать этот идентификатор для задания типа констант, переменных и формальных параметров. Разли-чимые типы - это простейший вид определяемого типа, позволяющий раз-делять семантически различные употребления одного и того же базового типа, например: type Расстояние is double; -- м

type Длина is Расстояние; -- м

type Сила is double; -- н

24

Page 25: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

type КрутящийМомент is double; -- н*м

type Угол is double; -- рад

Некоторые системы автоматизации моделирования (например, Dymola) обрабатывают указания единиц измерения для различимых типов и проверяют семантическую корректность присваиваний. Например, если L: Расстояние := 1;

F: Сила :=0;

T: КрутящийМомент :=0;

Phi: Угол := rad(60);

то формула «T = F*L» является семантически корректной, а формула

«T = F*Phi» - некорректной, хотя для базового типа они обе верные.

Структурированные типы задают конкретные векторы, матрицы, за-писи или коннекторы: type Vector3 is vector[3];

type Статус is (Свободен, Занят);

type ЖесткийВал is

connector

contact Phi: Угол;

flow T: КрутящийМомент;

end connector;

Автоматическое приведение типов

Автоматическое приведение типов производится при использовании в операциях или отношениях операндов различных типов в следующих слу-чаях:

при использовании различных целых типов операнд меньшей разрядно-сти приводится к операнду большей разрядности;

при использовании целого и вещественного типов целое значение при-водится к вещественному типу;

при использовании символьного и строкового типов символьное значе-ние приводится к соответствующей строке длиной 1;

типы vector[1] и matrix[1,1] могут трактоваться как double и наоборот;

25

Page 26: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

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

1.5. Система уравнений

Собственное поведение непрерывного объекта задается системой дифференциально-алгебраических уравнений общего вида, т. е. допус-кающей использование производных порядка выше первого и не разре-шенной относительно производных. Уравнения могут задаваться как в скалярной, так и в матричной форме. Современные инструменты модели-рования, такие как MvStudium, позволяют вводить и редактировать урав-нения в естественной математической форме.

В качестве примера рассмотрим простейшую модель движения сна-ряда в воздухе (проект «Снаряд_1.mvb»). Это непрерывный элементарный изолированный объект, для описания которого достаточно определить класс «Model» (Рис. 11).

Рис. 11 Определение класса Model для первой модели снаряда

Будем полагать, что плотность воздуха не изменяется во время поле-

26

Page 27: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

та снаряда, и не будем пока учитывать зависимость коэффициента аэроди-намического лобового сопротивления от числа Маха. Тогда наш актив-ный динамический класс «Model» будет иметь шесть параметров и семь переменных. Плотность воздуха и ускорение силы тяжести заданы как па-раметры, а не как константы, потому что они зависят от высоты точки вы-стрела над уровнем моря. Движение снаряда задается системой дифферен-циально-алгебраических уравнений (

XC

Рис. 12).

Рис. 12 Система уравнений для первой модели снаряда

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

27

Page 28: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

ный ею набор искомых переменных может оказаться и неверным!

Рис. 13 Система уравнений движения снаряда, автоматически преобразованная к вы-

числительной форме

Учтем теперь зависимость от числа Маха (проект «Сна-ряд_2.mvb»). Для этого мы добавим параметр «a» - скорость звука в точке выстрела - и переменную «M» - число Маха. Пусть эта зависимость имеет следующий вид:

XC

⎪⎪

⎪⎪

≥+

≤≤−≤≤

=

068.15.0091.0

068.18.051.08.0029.0

)(

MM

MMM

MCX

Можно, конечно, определить в классе «Model» алгоритмическую функцию «CxM» (Рис. 14) и добавить в систему уравнений формулы

28

Page 29: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

)(MCxMCxaVM

=

=

Рис. 14 Задание зависимости с помощью алгоритмической функции )(MC X

Однако этот способ нехорош тем, что зависимость имеет раз-рывы значений производных. Конечно, в большинстве случаев (скорее все-го, и в данном) численные методы «проглотят» эти разрывы и выдадут достаточно точное решение. Проблема состоит в том, что мы не знаем, на-сколько точное. Численные методы интегрирования с автоматическим вы-бором шага гарантируют требуемую точность решения (или невозмож-ность решения) только для уравнений, правые части которых являются функциями, непрерывными по значению и по всем производным. Напри-мер, для простейшего уравнения

)(MC X

2*))(1(*)( yTtimeabsabsTtimesigndtdy

−−−= ,

которое задает периодическую функцию с периодом T, большинство чис-ленных методов с автоматическим выбором шага дают на одном периоде погрешность, превышающую на три порядка заявленную. Поэтому для описания подобных зависимостей предпочтительнее использовать т.н. «условные выражения» (Рис. 15) или «условные уравнения» (Рис. 16). Ус-ловное уравнение и условное выражение принципиально отличаются от

29

Page 30: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

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

Рис. 15. Использование условного выражения

Отметим, что не следует бояться того, что последние три формулы в системе уравнений (см. рис. 15) заданы в порядке, обратном порядку вы-числений, – при выполнении они будут автоматически переставлены в правильном порядке.

30

Page 31: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 16 Использование условного уравнения

Уравнения движения снаряда могут быть также заданы и в вектор-ной форме (рис. 17). В этом случае положение снаряда задается вектором

размерности 3. Соответственно векторами являются и производные X

2

2

,dt

XddtdX . Эта модель соответствует проекту «..\Модели\Снаряд

\Снаряд_2M.mvb».

31

Page 32: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 17 Уравнения движения снаряда в векторной форме

1.6. Карта поведения

Карта поведения задает собственное поведение гибридного или дис-кретного АДО (активного динамического объекта). Карта поведения явля-ется расширением «карты состояний» или «машины состояний» UML [5] в части трактовки «деятельности», приписываемой состоянию. Однако, та-кая расширенная трактовка деятельности вынуждает, как будет показано далее, одновременно вводить некоторые ограничения на конструкции, ка-сающиеся чисто дискретных аспектов.

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

32

Page 33: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

1.6.1. Состояния Состояние может быть обычным или особым. К особым состояниям

относятся начальное, конечное состояние и точка ветвления. Обычное состояние соответствует некоторому качественному со-

стоянию моделируемой системы и изображается прямоугольником с за-кругленными углами. В общем случае в обычном состоянии могут быть определены входные действия, выходные действия, а также локальная дея-тельность («activity») (рис. 18). Последовательность входных действий вы-полняется мгновенно при каждом входе в данное состояние, а последова-тельность выходных действий — мгновенно при каждом выходе из данно-го состояния. Локальная деятельность протекает непрерывно, пока данное состояние является текущим.

Деятельность

Выходныедействия

Входныедействия

Рис. 18 Обычное состояние

Начальное состояние изображается черным кружком (рис. 19). Оно всегда становится текущим при инициализации карты поведения. В на-чальное состояние не может входить ни один переход. Начальное состоя-ние не может иметь входных или выходных действий, а также локальной деятельности.

Конечное состояние изображается кружком с черным кружком меньшего размера в центре (см. рис.19). Из конечного состояния не может исходить ни один переход. Конечное состояние не может иметь входных или выходных действий, а также локальной деятельности. Переход в ко-нечное состояние означает, что функционирование карты поведений за-вершилось. Если это карта поведений модели, то это означает завершение вычислительного эксперимента.

Предопределенная функция finalized возвращает значение true, если собственное поведение объекта — аргумента этой функции -- является картой поведения и текущим в этой карте поведения является конечное со-

33

Page 34: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

стояние.

Полет

after T(V0,Teta0)actions{x:=L(V0,Teta0);}

обычное состояние

начальное состояние

конечное состояние Рис. 19. Карта поведения падающего снаряда – дискретная модель

Показанная на рис. 19 карта поведения падающего снаряда соответ-ствует качественному описанию его движения: моделируемая система на-ходится в качественном состоянии «Полет» в течение всего времени поле-та снаряда. Предполагается, что нам известны зависимости времени полета и дальности падения снаряда от начальной скорости и угла бросания, по-лученные экспериментально или в результате предварительных расчетов. О промежуточных же значениях координат снаряда до точки падения в этой модели мы ничего сказать не можем. Этот «вырожденный» случай чисто дискретной карты поведения полностью соответствует диаграмме состояний UML.

В UML под деятельностью в состоянии понимается однократно или циклически выполняемая последовательность дискретных действий [5]. Такая трактовка деятельности вполне достаточна для создания прототипов вычислительных систем, но недостаточна для создания моделей СДС. В карте поведения под деятельностью в состоянии понимается экземпляр не-которого АДО, который динамически создается при входе в данное со-стояние и уничтожается при выходе из этого состояния. В моменты, когда данное состояние является текущим, собственное поведение объекта, ко-торому принадлежит карта поведения, совпадает с поведением объекта-деятельности текущего состояния.

Такая трактовка деятельности и обусловила использование специ-ального термина «карта поведения», поскольку термин «гибридная карта состояний» обычно служит для обозначения диаграммы состояний, в кото-рой состояниям приписываются уравнения, т.е. частного случая карты по-ведения. Кроме того, трактовка деятельности как объекта накладывает ряд ограничений на базовую конструкцию — диаграмму состояний. Прежде всего это связано с трактовкой подсостояний. Многоуровневая внешне,

34

Page 35: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

карта состояний UML по существу является плоской одноуровневой, так как разрешается задавать «прямые» переходы извне непосредственно на вложенное подсостояние и наоборот -- из подсостояния на состояние верх-него уровня иерархии [5]. Иерархическая карта поведения получается про-стым использованием дискретных или гибридных компонентов в качестве деятельностей. В этом случае мы имеем дело с действительно иерархиче-ской вложенностью. Очевидно, что никакие «прямые» переходы здесь не-возможны, поскольку поведение инкапсулировано внутри объекта. При создании экземпляра локальной карты поведения ее текущим состоянием всегда является начальное состяние. Соответственно невозможны и пере-ходы в так называемое «историческое» состояние [5], поскольку вложен-ная карта поведения просто уничтожается при выходе из охватывающего состояния.

Карта поведения позволяет строить сложные поведения путем по-следовательной (а не параллельной, как в структурной схеме) композиции отдельных компонентов — объектов-деятельностей, взаимодействующих через начальные условия. Обычное состояние, которому приписана непре-рывная деятельность, будем изображать толстой линией, а обычное со-стояние, которому приписана дискретная или гибридная деятельность, — двойной тонкой линией. Так, например, в более точной модели падающего снаряда, учитывающей непрерывную динамику его движения (проект «Снаряд_3b.mvb»), поведение задается картой поведения, в которой обыч-ному состоянию «Полет» приписана непрерывная деятельность – экземп-ляр непрерывного локального класса «ДвижениеСнаряда» (рис. 20).

В начальный момент времени срабатывает безусловный переход и текущим становится состояние «Полет», при входе в которое создается эк-земпляр класса «ДвижениеСнаряда». Действительные значения начальных условий в данном случае указывать не нужно, так как в экземпляре ло-кального класса видимы текущие значения всех переменных охватываю-щего объекта. При выполнении условия точки падения срабатывает пере-ход из состояния «Полет» в конечное состояние. После выполнения после-довательности мгновенных действиях этого перехода экземпляр класса «ДвижениеСнаряда» уничтожается. Эта модель получается из модели не-прерывного снаряда (проект «Снаряд_2.mvb») с помощью изменения сте-реотипа класса «Model» -- преобразования из непрерывного класса в гиб-

35

Page 36: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

ридный (см. рис. 2), при этом уравнения автоматически переходят в ло-кальный непрерывный класс.

Рис. 20. Карта поведения падающего снаряда – гибридная модель

Когда класс «ДвижениеСнаряда» является глобальным (например, непрерывная модель движения снаряда сохранена как класс) или импор-тируется из другого пакета, обращение к переменным деятельности воз-можно только через префикс состояния, например, «Полет.y». Следует также отметить, что для практического удобства полезно несколько осла-бить правила видимости переменных. Вполне разумным представляется доступность всех переменных локальной деятельности, а не только внеш-них, в условиях и действиях карты поведения. На рис. 21 показана карта поведения падающего снаряда для случая, когда класс «ДвижениеСнаря-да» является глобальным. В действиях перехода видимы внутренняя пере-менная «Полет.y» и ее первая производная.

36

Page 37: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 21. Карта поведения падающего снаряда для случая, когда движение снаряда зада-

но глобальным классом

Точка ветвления изображается ромбом (рис. 22). Точка ветвления не может иметь входных или выходных действий, а также локальной дея-тельности. Исходящие из точки ветвления переходы должны быть только нетриггерными. При попадании в точку ветвления вычисляют охраняющие условия всех исходящих переходов и выполняется переход, охраняющее условие которого истинно. Охраняющие условия (включая альтернативу else) исходящих переходов должны охватывать все возможные варианты, т.е. при попадании в точку ветвления обязательно должен сработать один из исходящих переходов.

S1

S2

[else][N = 1]

[N = 2]

Рис. 22. Простая точка ветвления

Например, в данной карте поведения (см. рис. 22) в момент 0=t в зависи-мости от значения переменной N происходит либо переход в обычные со-

37

Page 38: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

стояния S1 и S2, либо переход в конечное состояние. В недетерминированных моделях весьма удобна вероятностная точка

ветвления, которая изображается двойным ромбом (рис. 23). Условия ис-ходящих из нее переходов трактуются как значение вероятности перехо-дов, а для альтернативного перехода его вероятность предполагается рав-

ной , где — сумма вероятностей остальных исходящих переходов (в примере на рис. 23 вероятность альтернативного перехода равна

). На рис. 23 приведена карта поведений модели, в которой N раз разыгрывается вероятностное ветвление и подсчитывается реальное число срабатываний трех альтернативных переходов.

PS−1 PS

211 pp −−

Рис. 23. Вероятностная точка ветвления

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

1.6.2. Переходы Переход срабатывает, если исходное состояние перехода является

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

Внешний переход переводит систему из одного состояния в другое

38

Page 39: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

(возможно, то же самое). Внутренний переход не приводит к выходу из те-кущего состояния.

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

S1

Рис. 24. Внешний и внутренний переходы

Триггерный переход срабатывает, если происходит запускающее собы-тие и выполняется охраняющее условие (или оно отсутствует). Если про-исходит запускающее событие, но охраняющее условие не выполняется, переход не срабатывает.

Запускающее событие может задаваться тремя способами: 1) when <логическое_выражение> — событие происходит, когда логиче-ское выражение становится истинным; 2) when <сигнал> — событие происходит, когда появляется указанный сигнал; 3) after <интервал> — событие происходит, когда истекает указанный ин-тервал от момента входа в текущее состояние.

В карте поведения падающего снаряда переход между состояниями

39

Page 40: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

«Полет» и конечным состоянием является триггерным с запускающим со-бытием первого типа.

Нетриггерный переход срабатывает немедленно при входе в исход-ное состояние, если выполняется охраняющее условие (или оно отсутству-ет). Нетриггерный переход, у которого отсутствует охраняющее условие, называется безусловным. Обычно именно безусловный переход переводит карту поведения из начального состояния в первое обычное состояние. Часто такой безусловный переход используется для инициализации значе-ний переменных. С помощью нетриггерных переходов осуществляется вы-бор нового состояния в точке ветвления. Для переходов, исходящих из точки ветвления (см. рис. 22), охраняющее условие указывается в квадрат-ных скобках и может быть использовано условие else.

Использовать нетриггерный переход, исходящий из обычного состоя-ния, имеет смысл в двух случаях: 1) состоянию приписана непрерывная деятельность, и нахождение в этом состоянии применяется для решения системы алгебраических уравнений с целью согласования значений переменных; 2) состоянию приписана гибридная или дискретная деятельность, в этом случае исходящий нетриггерный (в частности, безусловный) переход сра-ботает только тогда, когда карта поведения объекта-деятельности достиг-нет своего конечного состояния (см. рис. 30).

1.7. Компоненты

Компонент – это активный динамический объект со стереотипом «открытая система». Компоненты имеют внешние переменные, через ко-торые они взаимодействуют с внешним окружением (см. рис. 1). Компо-ненты предназначены для использования их в качестве локальных объек-тов в структурной схеме, а также в качестве деятельностей в состояниях карты поведения.

В зависимости от стереотипов внешних переменных компоненты разделяются на ориентированные (направленные) и неориентированные (ненаправленные, физические). Ориентированные компоненты могут иметь внешние переменные (в том числе компоненты коннекторов) только со стереотипами «вход» и «выход». Неориентированные компоненты мо-гут дополнительно иметь внешние переменные со стереотипами «контакт»

40

Page 41: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

и «поток» [1]. Ориентированные компоненты обладают замечательным свойством: их системы уравнений могут анализироваться и преобразовы-ваться в вычислительную форму независимо, в то время как для неориен-тированных компонентов в общем случае ничего нельзя сказать о пра-вильности и свойствах их систем уравнений до появления всей модели в целом [1]. Для моделей с неориентированными гибридными компонентами анализ системы уравнений должен производиться в общем случае во время выполнения модели. Поэтому предпочтительнее использовать ориентиро-ванные компоненты, если прикладная область это позволяет. Для модели-рования задач внешней баллистики в основном используются ориентиро-ванные компоненты.

На рис. 25 показано описание класса «СтандАтмосфера» (проект «ГОСТ4401_81.mvb») со стереотипом «открытая система», позволяющего создавать ориентированные компоненты для вычисления параметров ат-мосферы (выходы компонента) на заданной высоте (вход «h»).

Рис. 25. Описание компонента для вычисления параметров атмосферы

1.8. Структурная схема

Структурная схема содержит описания локальных объектов и их свя-зей, т. е. задает совокупность параллельно функционирующих компонен-тов и их взаимодействия. Взаимодействие между локальными объектами

41

Page 42: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

может осуществляться и косвенным образом — через собственное поведе-ние (систему уравнений или карту поведения) объекта-контейнера. Объ-ект-контейнер является экземпляром класса со стереотипом «составной объект». Описание поведения и внутренние переменные локальных объек-тов невидимы в объекте-контейнере, и никакие элементы описания объек-та-контейнера невидимы в локальных объектах.

Обратите внимание, что описание класса составного объекта содер-жит описания экземпляров локальных объектов.

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

Локальные объекты могут быть статическими и динамическими. Статические объекты создаются вместе с экземпляром объекта-контейнера и уничтожаются вместе с ним. Динамические объекты создаются и унич-тожаются явно с помощью операторов new и destroy в действиях карты по-ведения объекта-контейнера. При создании экземпляра объекта-контейнера указатель на динамический объект остается пустым, при унич-тожении объекта-контейнера динамические объекты также уничтожаются. Динамический объект обозначается пунктирным прямоугольником.

Следует отметить, что для языка UML локальные объекты являются атрибутами объекта-контейнера с семантикой указателя: статические объ-екты соответствуют атрибутам с начальным значением, а динамические объекты — атрибутам с начальным значением null. Структурная схема яв-ляется лишь удобным визуальным образом, наглядно отражающим состав моделируемой системы и взаимодействия между объектами.

Связь или соединение является указанием стандартного взаимодей-ствия, имеющего свой графический образ на структурной схеме. Связь

42

Page 43: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

изображается линией, соединяющей две внешние переменные (рис. 26). Соответственно типу соединяемых переменных связь является направлен-ной или ненаправленной. Совокупности связей соответствует набор урав-нений и формул, автоматически добавляемый к текущей совокупной сис-теме уравнений модели. Например, если выход U1.Y соединен с входами U2.X и U3.X, то этим связям соответствуют формулы U2.X = U1.Y, U3.X = U1.Y,

причем переменная U1.Y не может быть в них искомой. Если контакт U1.Z соединен с контактами U2.Z и U3.Z, то этим связям соответствуют уравне-ния U1.Z = U2.Z, U1.Z = U3.Z,

причем любая переменная может быть в них искомой. Наконец если поток U1.Q соединен с потоками U2.Q и U3.Q, то этим связям соответствует уравнение U1.Q + U2.Q + U3.Q = 0,

причем любая переменная может быть в нем искомой. Переменные со сте-реотипом «поток» могут иметь тип double, vector или matrix, а также record с полями перечисленных типов. В последнем случае уравнения связей формируются по каждому полю записи.

Следует отметить, что связи являются лишь удобным визуальным обра-зом, отражающим уравнения взаимодействия объектов. Те же уравнения могут быть явно указаны в описании собственного поведения объекта-контейнера. Ранее были показаны три варианта задания одного и того же поведения объекта контейнера: все поведение задается совокупностью ло-кальных объектов и связей (см. рис. 26а), поведение частично задается ло-кальными объектами, а взаимодействие этих локальных объектов задается собственными уравнениями объекта-контейнера (см. рис. 26б), все поведе-ние задается уравнениями объекта-контейнера (см. рис. 26в). Необходимость использования локальных объектов обусловлена в ос-

новном следующими причинами: 1) вы хотите использовать разработанные ранее (возможно, другими

разработчиками) модели объектов; 2) вам необходимы параллельные действия в моделируемом объекте; 3) моделируемая система имеет свою естественную структуру, которую

43

Page 44: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

вы хотите отразить в модели.

U1

XX X YY Y∫ dt ∫ dt

U2

а)

U1

XX XY Y∫ dt

Y∫ dt

U2

⎪⎩

⎪⎨

=

=

=

YY

YXXX

.2U

.1U.2U.1U

б)

X Y

Xdt

Yd=

⎪⎩

⎪⎨⎧

2

2

в)

Рис. 26. Структурная схема и собственное поведение объекта-контейнера:

а — поведение задается совокупностью локальных объектов и связей;

б — поведение частично задается локальными объектами;

в — поведение задается уравнениями объекта-контейнера

Проиллюстрируем первый случай на примере модели снаряда, в которой

учитывается зависимость параметров воздуха от высоты (проект «..\Модели\Снаряд\ Снаряд_3h.mvb» на основе проекта «..\Модели\ Сна-ряд\Снаряд_3c.mvb»). Пусть эта зависимость моделируется ранее разрабо-танным и отлаженным классом «СтандАтмосфера» в пакете «ГОСТ4401_81» (см. рис. 9). Преобразуем класс «ДвижениеСнаряда» в со-ставной объект, импортируем пакет «ГОСТ4401_81» и создадим в классе

44

Page 45: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

«ДвижениеСнаряда» локальный объект «СА» -- экземпляр импортируемо-го класса «СтандартнаяАтмосфера» (рис. 27).

Рис. 27. Использование локального объекта для вычисления зависимости параметров

воздуха от высоты

Нам теперь необходим новый параметр «h0» -- высота точки выстре-ла над уровнем моря. Учтем также зависимость ускорения силы тяжести от высоты, для чего сделаем параметр «g» переменной. Динамика движения снаряда описывается теперь системой уравнений, показанной на рис. 28. Заметим, что параметры «a» и «Rho» оказываются теперь ненужными и их можно удалить.

Теперь каждый раз, когда при входе в состояние «Полет» (см. рис. 21) создается экземпляр класса «ДвижениеСнаряда», к глобальному пове-дению модели в целом добавляется не только система уравнений движения снаряда, но и система уравнений или карта поведения объекта «СА». При этом все детали модели стандартной атмосферы инкапсулированы в опи-сании поведения этого объекта. Все изменения в пакете «ГОСТ4401_81» будут автоматически отражаться в модели движения снаряда.

45

Page 46: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 28. Система уравнений движения снаряда с использованием локального объекта,

моделирующего стандартную атмосферу

Использование ненаправленных компонентов проиллюстрируем на примере упрощенной компонентной модели одного канала рулевого при-вода, включающей в себя объекты «Руль» (аэродинамический руль), «РМ» (рулевая машинка), «Рег» (регулятор) и «ДУ» (датчик угла поворота руля относительно ракеты) (рис. 29). Некоторые связи в этой системе являются информационными и очевидным образом направленными: передача про-граммного значения угла поворота, передача фактического и измеренного угла поворота, передача управляющего сигнала на рулевую машинку. Но вот взаимодействие рулевой машинки и руля через жесткий вал никак нельзя представить с помощью направленных связей, поскольку рулевая машинка воздействует на руль, а руль воздействует на рулевую машинку.

46

Page 47: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 29. Упрощенная компонентная модель рулевого привода

Поэтому здесь мы используем тип коннектора «ЖесткийВал» и эта связь (связи между коннекторами показываются на схеме жирными линиями) добавит в совокупную систему уравнений два уравнения: РМ.S.Phi = Руль.S.Phi, РМ.S.T + Руль.S.T = 0.

1.9. Наследование классов

С помощью наследования можно обеспечивать повторное использо-вание ранее разработанных и отлаженных моделей. Если класс C2 объяв-ляется прямым потомком класса C1 (рис. 30), то класс C2 наследует все элементы класса C1: переменные, процедуры и функции, локальные клас-сы, карту поведений, систему уравнений и структурную схему. Примени-тельно к отношению класс C1 будем далее называть базовым классом или суперклассом, а C2 — производным классом или подклассом. Отношение наследования транзитивно: если класс C3 является производ-ным от класса C2, то и класс C3 является производным от класса C1 и на-следует все его элементы.

21 CC ←

47

Page 48: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

C1

C2

C3

Рис. 30. Наследование классов

Все изменения, вносимые в класс C1 и в любой из его предков, будут автоматически отражаться на классе C2. В языке моделирования СДС до-пустимо только одиночное наследование: любой производный класс может иметь только один базовый. Целью наследования является расширение и/или модификация описания базового класса. Это можно осуществить с помощью добавления новых элементов описания и переопределения унас-ледованных элементов описания. Никакие унаследованные элементы не могут быть удалены. Все активные динамические объекты являются по-томками предопределенного класса ActiveDynamicObject (для краткости object).

1.9.1.Добавление новых элементов описания

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

В производном классе могут быть определены новые переменные,

48

Page 49: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

процедуры и функции, а также новые локальные классы. В систему урав-нений могут быть добавлены новые уравнения, в карту поведения — со-стояния и переходы, а в структурную схему — новые локальные объекты и новые связи.

1.9.2. Переопределение унаследованных элементов

В описании производного класса может быть переопределено опре-деление унаследованного элемента. Переопределение является основным механизмом модификации базового класса. Переопределяемый элемент определяется по совпадению имени или прямым указанием в визуальном редакторе: «вот этот переход». Переопределение переменных

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

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

При переопределении локального класса в него могут быть добавле-ны новые элементы и переопределены унаследованные. Переопределение системы уравнений

Унаследованную систему уравнений можно переопределить только полностью. Переопределение происходит при попытке редактировать унаследованные уравнения. Переопределение элементов карты поведения

При переопределении карты поведения можно: заменить входные/выходные действия в состоянии; заменить деятельность в состоянии;

49

Page 50: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

заменить условие срабатывания и/или охраняющее условие перехода; заменить последовательность действий в переходе; изменить графическое изображение состояния или перехода. В качестве примера использования наследования классов рассмотрим

другой способ создания модели снаряда, в которой учитывается зависи-мость параметров воздуха от высоты («..\Модели\Снаряд\Снаряд_4.mvb»). Теперь не будем изменять класс «ДвижениеСнаряда», а создадим новый класс «ДвижениеСнарядаАтм» -- потомок класса «ДвижениеСнаряда». Но-вый класс унаследует все переменные и уравнения своего предка. Переоп-ределим стереотип класса и сделаем его составным объектом. Добавим локальный объект «СА» -- экземпляр класса «ГОСТ4401_81.СтандАтмосфера». Добавим новый параметр «h0». Пере-определим начальное значение переменной «y», приняв его равным h0. Переопределим стереотип атрибутов «a» и «Rho», превратив их из пара-метров в переменные. После этого добавим к унаследованным уравнениям новые, отражающие взаимодействие с объектом «СА» (Рис. 31).

Рис. 31. Учет зависимости параметров воздуха от высоты

путем создания производного класса

50

Page 51: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

1.10. Управление вычислительным экспериментом

Карта поведения позволяет наглядно задавать план вычислительного эксперимента. Рассмотрим вычислительный эксперимент: проведение ста-тистических испытаний по методу Монте-Карло с целью определения ма-тематического ожидания и среднеквадратического отклонения дальности падения снаряда при заданных математических ожиданиях и среднеквад-ратических отклонениях навальной скорости и угла бросания снаряда (за-коны распределения предполагаем нормальными). Для определения коор-динат точки падения снаряда используем готовую гибридную модель па-дающего снаряда (см. Рис. 21). Для проведения эксперимента создадим но-вую модель (проект «..\Модели\Снаряд\СтатИспытания.mvb»), в которую импортируем пакет «Снаряд_3h», содержащий нужную нам модель па-дающего снаряда. План статистических испытаний зададим с помощью карты поведения, показанной на Рис. 32.

Рис. 32. Модель статистических испытаний

Специальное состояние – точка ветвления позволяет организовать

51

Page 52: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

цикл, в котором N раз разыгрываются значения начальной скорости и угла бросания и с этими значениями параметров создается как локальная дея-тельность состояния «Испытания_i» экземпляр модели падающего снаря-да. Безусловный переход из этого состояния в точку ветвления срабатыва-ет, когда в карте поведения модели падающего снаряда достигается конеч-ное состояние, т. е. в момент падения снаряда. Дальность падения запоми-нается в i-м элементе вектора «L». После N испытаний по вектору «L» рас-считываются математическое ожидание и среднеквадратическое отклоне-ние дальности падения (см. Рис. 32). В визуальной модели можно увидеть и «трубку траекторий», поместив на фазовую диаграмму текущие координа-ты снаряда из объекта «Испытания_i.Полет» (Рис. 33).

Рис. 33. Визуальная модель статистических испытаний

52

Page 53: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Глава 2. Элементы моделей внешней баллистики В этой главе рассматриваются различные типовые элементы, входя-

щие практически в любую модель внешней баллистики.

2.1.Модель атмосферы

Рассмотрим подробнее модель стандартной атмосферы по ГОСТ 4401-81 (пакет «ГОСТ4401_81»). Для рассматриваемых в данном пособии задач достаточно уметь рассчитывать параметры атмосферы до высоты 120 км, а далее предполагать отсутствие атмосферы.

В данной стандартной атмосфере слои 2, 5, 8 и 11 являются изотер-мическими, а в остальных слоях температура изменяется линейно. Таким образом, характеристики атмосферы должны рассчитываться по различ-ным зависимостям для слоев разного типа. Модель стандартной атмосфе-ры можно построить традиционным путем – в виде набора функций, в ко-торых нужные зависимости выбираются с помощью условных операторов. Однако при таком подходе мы получим разрывы значений производных на стыках слоев (уже обсуждалась потенциальная опасность таких разрывов). Для модели, предполагающей многократное повторное использование, лучше обеспечить автоматическое разбиение зависимостей характеристик атмосферы от высоты на кусочно-непрерывные участки. Это можно сде-лать, рассматривая стандартную атмосферу как гибридный объект.

Создадим класс «СтандАтмосфера» со стереотипом «гибридный объект, открытая система». На вход экземпляра этого класса подается зна-чение высоты, а на выходах выдаются характеристики атмосферы (Рис. 34). Массив «Beta» содержит значения градиентов температуры для слоев, мас-сивы «Hmin», «Hmax» и «H0» содержат соответственно значения нижней границы слоя (для первого слоя она предполагается равной минус 2000м), верхней границы слоя и номинального начального уровня слоя. Эти значе-ния определены в стандарте.

53

Page 54: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 34. Внешний интерфейс класса «СтандАтмосфера»

Массивы «T0» и «p0» содержат значения температуры и давления для номинального начального уровня каждого слоя. Эти значения рассчи-тываются во время выполнения начальных действий при срабатывании пе-рехода из начального состояния в состояние «Работа» (Рис. 35).

Целая переменная «Iсл» -- номер текущего слоя, булевская перемен-ная «ИС» равна TRUE, если слой изотермический, и FALSE -- в противном случае. Начальные значения этих переменных также вычисляются в дейст-виях начального перехода. Далее в состоянии «Работа» при нахождении внутри определенного слоя геопотенциальная высота «H» и характеристи-ки атмосферы вычисляются по уравнениям непрерывного объекта «Харак-теристики_атмосферы», показанным на Рис. 36. Значения температуры и давления вычисляются с помощью специальных функций, показанных на Рис. 37.

54

Page 55: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 35. Карта поведения класса «СтандАтмосфера»

Рис. 36. Зависимости для вычисления характеристик атмосферы

55

Page 56: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

а)

б)

Рис. 37. Зависимости температуры (а) и давления (б) от геопотенциальной высоты «H»

Внутренний переход в состоянии «Работа» срабатывает при выходе значения геопотенциальной высоты за пределы текущего слоя, т. е. по ус-ловию (H<Hmin[Iсл]) or (H>=Hmax[Iсл]).

В действиях этого перехода (Рис. 38) вычисляется новый номер слоя и признак изотермического слоя. Если оказывается, что высота «h» находит-ся за пределами области определения данной модели, вырабатывается сиг-

56

Page 57: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

нал «НедопустимаяВысота», по которому срабатывает переход из состоя-ния «Работа» в конечное состояние (Рис. 35), в действиях которого преду-смотрена выдача сообщения об ошибке.

Рис. 38. Действия внутреннего перехода в состоянии «Работа»

Возникает естественный вопрос: зачем мы строили гибридную мо-дель с переходами, если в теле функций, вычисляющих температуру и дав-ление (см. Рис. 37) все равно остались условные операторы? Однако здесь нет противоречия: условные операторы в функциях «Температура» и «Давление» вполне допустимы, поскольку внутри одного слоя всегда ра-ботает только одна их ветвь, а переключение слоев производится с помо-щью дискретного перехода.

Проверим правильность функционирования разработанного нами класса с помощью вычислительного эксперимента. Преобразуем класс «Model» в составной объект и создадим экземпляр класса «СтандАтмосфе-ра» с именем «СА» (Рис. 39). Этот объект, однако, является статическим: его состояние не зависит от времени, а зависит только от значений внеш-них переменных – в данном случае от высоты. Поэтому, чтобы проверить правильность функционирования такого объекта, нужно изменять в ходе вычислительного эксперимента значение высоты. Это делают с помощью системы уравнений, показанной на Рис. 40.

В результате вычислительного эксперимента получаем зависимость температуры от высоты, показанную на Рис. 41, которая совпадает со стан-дартной зависимостью.

57

Page 58: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 39. Структура отладочной модели стандартной атмосферы

Рис. 40. Система уравнений отладочной модели стандартной атмосферы

Следует заметить, что величину высоты «h» можно изменять и без вспомогательных уравнений с помощью непосредственного интерактивно-го вмешательства экспериментатора. Для этого следует сопоставить в ви-зуальной модели вход «h» объекта «СА» и интерактивный анимационный 2D-компонент, например, ползунок (Рис. 42). При перемещении ползунка с помощью «мыши» значение высоты «СА.h» будет соответственно изме-

58

Page 59: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

няться, и мы получим зависимость, аналогичную показанной на Рис. 41. Перемещение «мыши», однако, не является непрерывным процессом, по-этому в этом случае фазовая диаграмма будет представлять собой сово-купность отдельных точек -- тем более плотную, чем медленнее перемеща-ется «мышь».

Рис. 41. Зависимость температуры воздуха от высоты, полученная в результате отла-

дочного вычислительного эксперимента

Рис. 42. Изменение значения высоты с помощью

интерактивного анимационного компонента

59

Page 60: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

2.2. Модель Земли

Модель Земли при решении задач внешней баллистики должна зада-вать форму земной поверхности, а также величину и направление ускоре-ния силы тяжести в заданной точке. Одной из часто используемых моделей является представление Земли в виде эллипсоида вращения (эллипсоида Красовского) с равномерным распределением массы внутри эллипсоида. Выделим модель Земли в отдельный пакет «ЭллипсоидКрасовского» («..\ Модели \ ЭллипсоидКрасовского»). Пакет содержит (Рис. 43):

видимые извне (public) константы «a», «e2» и «Omega», содержащие соответственно значения большой полуоси эллипсоида, квадрата первого эксцентриситета и угловой скорости вращения Земли;

видимые извне функции «BLHtoR» «RtoBLH», позволяющие пере-считывать координаты точки в декартовой геоцентрической системе коор-динат, задаваемые вектором R в совокупность широты B, долготы L и вы-соты над поверхностью эллипсоида H и обратно;

определение видимого извне непрерывного класса «ПолеТяготения»; определения внутренних глобальных констант.

Рис. 43. Структура пакета «ЭллипсоидКрасовского»

Экземпляр класса «ПолеТяготения» получает на входах значение

60

Page 61: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

радиус-вектора «r» точки и угла «phi» между радиусом-вектором и эквато-риальной плоскостью и на выходах выдает значения радиальной «g_r» и тангенциальной «g_om» составляющмх ускорения силы тяжести, а также значение высоты «H» над поверхностью эллипсоида (см. Рис. 43). Эти ве-личины определяются по формулам, показанным на Рис. 44.

В конкретной модели летательного аппарата необходимо импорти-ровать пакет «ЭллипсоидКрасовского» и создать экземпляр класса «Поле-Тяготения». Показанные на Рис. 44 уравнения автоматически присоединят-ся к общей системе уравнений модели. Поскольку поведение объекта ин-капсулировано внутри него, можно независимо вводить изменения в класс «ПолеТяготения», например, учитывать больше членов ряда при вычисле-нии ускорения силы тяжести.

Рис. 44. Уравнения класса «ПолеТяготения»

2.3. Моделирование табличных зависимостей

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

61

Page 62: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

зависимости ) или с двумя входами (например, для зависимости или ). При создании модели с помощью пакета

MvStudium таблицы задаются соответствующими текстовыми файлами (

)(MC X

),( HMCXΔ ),( αα MC y

Рис. 45).

Рис. 45. Представление табличных данных в текстовых файлах

В описании класса предусматривается соответствующий параметр матричного типа, значение которого загружается из файла, например: CxM: matrix := matrixfromfile(“CxM_1.txt”), dCxMH: matrix := matrixfromfile(“dCxMH_1.txt”).

Значение параметра для произвольных значений входов необходимо

62

Page 63: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

находить с помощью интерполяции. Для этого может использоваться сплайн-интерполяция (стандартная функция «interpol») или линейная ин-терполяция. Сплайн-интерполяция позволяет получать гладкие зависимо-сти, однако при ее использовании следует соблюдать осторожность так как возможны резкие «выбросы» интерполированных значений. На Рис. 46 по-казаны результаты интерполяции зависимости секундного расхода РДТТ от времени.

Рис. 46 Интерполяция зависимости секундного расхода РДТТ от времени (сплайн –

тонкая линия, линейная – толстая линия)

Результат сплайн-интерполяции (при использовании типа сплайна, заданного по умолчанию) оказался в данном случае совершенно неприем-лемым, в то время как линейная интерполяция дает более грубую, но не противоречащую физике зависимость. Поэтому в тех случаях, когда важно не абсолютное значение результатов, а их сопоставимость в серии вычис-лительных экспериментов, имеет смысл использовать линейную интерпо-ляцию. В пакете «Интерполяторы» имеются гибридные классы «ЛинИн-терполятор_XY» и «ЛинИнтерполятор_XYZ», в которых стыки линейных участков осуществляются с помощью дискретных переходов, что позволя-

63

Page 64: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

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

64

Page 65: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Глава 3. Модели движения летательных аппаратов раз-личных типов

В этой главе рассматриваются модели движения основных типов ле-тательных аппаратов: неуправляемой ракеты, зенитной управляемой раке-ты (ЗУР), оперативно-тактической ракеты (ОТР) и баллистической ракеты дальнего действия (БРДД).

3.1. Модель неуправляемой ракеты

Для начала рассмотрим модель неуправляемой ракеты с твердотоп-

ливным двигателем, стартующей с направляющей под углом нθ и имею-

щей начальную массу кгm 2000 = дальность полета порядка 10 км. Для та-кого диапазона дальностей Землю можно считать плоской и ускорение си-лы тяжести постоянным. Для определения зависимости параметров атмо-сферы от высоты используем рассмотренный в главе 2 пакет «ГОСТ4401_81». В этой модели мы используем заданные таблично зави-симости ),(),( hMCMC XX Δ для коэффициента аэродинамического лобово-го сопротивления, а также зависимость )(tm& для твердотопливного двига-теля. Будем использовать линейную интерполяцию (пакет «Интерполято-ры»).

Создадим новый проект «…\Модели\Ракета\Ракета.mvb» и импорти-руем в него необходимые пакеты. Ясно, что эта модель должна быть гиб-ридной, так как динамика ракеты включает в себя две фазы – движение по направляющей и полет. Кроме того, моделирование должно завершаться в момент падения ракеты. Карта поведения, учитывающая все эти факторы, показана на Рис. 47.

И при движении по направляющей, и в полете на ракету действуют одни и те же силы: сила тяги и сила аэродинамического сопротивления. Желательно создать независимые описание функционирования двигатель-ной установки и описание формирования аэродинамических сил, которые бы автоматически объединялись с описаниями динамики ракеты в обоих состояниях. Одним из способов организации такой автоматической супер-позиции поведений является создание параллельно функционирующих ло-кальных объектов. Поскольку локальные объекты могут быть экземпляра-

65

Page 66: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

ми только глобальных классов, добавим в проект классы «РДТТ» и «Аэро-динамика» (Рис. 53).

Рис. 47. Карта поведения модели ракеты

Рис. 48. Интерфейс и внутренняя структура объекта класса «РДТТ»

Экземпляр класса «РДТТ» воспринимает на входе текущее атмо-

сферное давление и на выходе выдает значение силы тяги и значение мас-сы сгоревшего топлива (Рис. 48). Параметрами объекта являются удельный импульс тяги «Iуд», площадь выходного сечения сопла «S» и матрица «dm_t», задающая таблицу зависимости секундного расхода от времени.

66

Page 67: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Для интерполяции этой зависимости создан локальный объект «ЛИ_dm», которому таблица передается в качестве действительного параметра (см. Рис. 48).

Функционирование твердотопливного двигателя описывается систе-мой уравнений, показанной на Рис. 49. Обратите внимание, что поскольку учитываются переходные процессы в двигателе, в начальный момент се-кундный расход и соответственно реактивная составляющая силы тяги равны нулю. Поэтому, чтобы не получить отрицательное значение силы тяги на интервале, когда реактивная составляющая тяги меньше силы ат-мосферного давления, необходимо использовать условное уравнение.

Рис. 49. Система уравнений РДТТ

Показанная на Рис. 49 система уравнений будет выдавать правиль-

ные результаты и после полного выгорания топлива, когда секундный рас-ход станет равным нулю. Однако, чтобы не решать в ходе вычислительно-го эксперимента лишние уравнения, целесообразно сделать класс «РДТТ» гибридным и задать его поведение картой поведения, показанной на Рис. 50. Рассмотренная выше система уравнений решается в состоянии «Рабо-та», а после полного выгорания топлива функционирование объекта за-вершается.

67

Page 68: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 50. Карта поведения класса «РДТТ»

Рис. 51. Интерфейс и внутренняя структура объекта класса «Аэродинамика»

Экземпляр класса «Аэродинамика» воспринимает на входе значение

модуля скорости «V», значение высоты «h», а также текущие значения

скорости звука «a» и плотности воздуха «Rho», а на выходе -- выдает зна-

68

Page 69: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

чение силы аэродинамического сопротивления «X» (Рис. 51). Параметрами

объекта являются матрицы «Cx_M», «dCx_MH» (соответствуют таблич-

ным зависимостям ),(),( hMCMC XX Δ ) и площадь «миделевого» сечения

ракеты «S». Для линейной интерполяции табличных зависимостей ис-

пользуются локальные объекты «ЛИ_Cx» и «ЛИ_dCx» -- экземпляры клас-

сов одномерной и двумерной интерполяции из пакета «Интерполяторы».

Значение силы аэродинамического сопротивления определяется из

системы уравнений, показанной на Рис. 52.

Рис. 52. Система уравнений класса «Аэродинамика»

Локальные объекты «ДУ» и «АР» (экземпляры классов «РДТТ» и

«Аэродинамика» соответственно) помещаем в структуру модели ракеты

(Рис. 53) с необходимыми действительными значениями параметров. Кроме

того, в структуру добавим локальный объект «СА» -- экземпляр класса

«СтандАтмосфера», импортируемого из пакета «ГОСТ4401_81». С помо-

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

мых данных между локальными объектами (см. Рис. 53).

69

Page 70: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 53. Структурная схема модели ракеты

Связи между входами/выходами локальных объектов и внутренними пе-

ременными модели ракеты обеспечиваем с помощью соответствующих

уравнений.

Состоянию «Направляющая» (см. Рис. 47) приписываем в качестве

деятельности экземпляр непрерывного локального класса «Движе-

ние_по_направляющей», поведение которого задается системой уравне-

ний, показанной на Рис. 54. Обратите внимание, что здесь также использу-

ется условное уравнение, отражающее начальную стадию движения, когда

сила тяги еще не превышает суммы силы трения и проекции веса. На этой

стадии скатыванию ракеты с направляющей мешают упоры. Переход из

состояния «Направляющая» в состояние «Полет» происходит в соответст-

вии с условием выхода центра масс ракеты за границу направляющей.

70

Page 71: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 54. Уравнения движения ракеты по направляющей

Состоянию «Полет» (см. Рис. 47) приписываем в качестве деятельности эк-

земпляр непрерывного локального класса «Движение_ракеты», поведение

которого задается системой уравнений, показанной на Рис. 55.

Рис. 55. Уравнений движения ракеты в полете

71

Page 72: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

В качестве действительных начальных значений производных «y’» и

«x’» передаются значения вертикальной и горизонтальной составляющих

скорости, вычисленные на момент схода с направляющей (см. Рис. 47). Пе-

реход из состояния «Полет» в конечное состояние срабатывает по условию

падения.

Создадим визуальную модель и запустим ее. При принятых значени-

ях параметров получим зависимости, показанные на Рис. 56 (на фазовой

диаграмме внизу показана траектория движения ракеты, а на временной

диаграмме вверху -- зависимость силы тяги и силы аэродинамического со-

противления от времени).

Правильность разработанной модели всегда полезно проверить с по-

мощью анимации, отражающей качественную динамику моделируемой

системы. Создадим новое окно 3D-анимации. Движение центра масс раке-

ты будем представлять перемещением сферы в трехмерном пространстве.

С координатами центра этой сферы сопоставим значения переменных «x»

и «y» модели (размер трехмерной сцены выберем соответствующим диапа-

зону изменения этих величин). Радиус сферы сделаем пропорциональным

текущей массе ракеты «m». Для согласования размеров визуализации и ре-

альных значений переменной «m» введем в визуальной модели виртуаль-

ную переменную «m3D», значение которой всегда будет равно 2*m. Цвет

сферы свяжем со значением силы тяги «P»: максимальное значение пере-

менной «P» свяжем с ярко-красным цветом, а минимальное -- с темно-

синим (Рис. 57), при промежуточных значениях будет формироваться неко-

торый промежуточный цвет.

72

Page 73: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 56. Результаты вычислительного эксперимента с моделью

неуправляемой ракеты

Для визуализации направления и модуля вектора скорости использу-

ем 3D-элемент «стрелка» (Рис. 58). Направляющим косинусам стрелки от-

носительно горизонтальной и вертикальной осей поставим в соответствие

значения переменных «cosTeta» и «sinTeta», а длине стрелки поставим в

соответствие значение виртуальной переменной «V3D», которая связана со

значением скорости соотношением 5*V.

73

Page 74: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 57. Связь параметров 3D-элемента «сфера» с переменными модели

Рис. 58. Связь параметров 3D-элемента «стрелка» с переменными модели

В результате мы сможем наблюдать трехмерную динамическую кар-

тинку, показанную на Рис. 59.

74

Page 75: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 59. 3D-анимация движения ракеты

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

чу оптимизации: попробуем определить угол наклона направляющей, для

которого при заданных параметрах ракеты дальность падения будет мак-

симальной. Для этого запустим оптимизатор. При его вызове автоматиче-

ски создается «скрытая» выполняемая модель в виде DLL. В качестве па-

раметра оптимизации укажем «Tetaн» (Рис. 60), а в качестве целевой функ-

ции (функционала) – значение переменной «x», вычисляемое в момент, за-

даваемый значением функции «Finalized», т. е. в момент завершения рабо-

ты модели. Таким образом, каждый раз при нахождении значения функ-

ционала для определенного значения параметра оптимизации будут после-

довательно решаться дифференциально-алгебраические системы уравне-

ний движения по направляющей и затем движения ракеты до момента па-

дения. Значение переменной «x» в этой точке и будет значением функцио-

нала.

75

Page 76: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 60. Нахождение угла максимальной дальности

На Рис. 60 показаны траектория поиска максимума методом случайного по-

иска и найденное решение (примерно 67 градусов).

3.2. Модель зенитной управляемой ракеты

Рассмотрим математическое моделирование движения зенитной

управляемой ракеты на примере ЗУР с командной системой теленаведения

(КСТН). Это связано с тем обстоятельством, что уже при постановке зада-

чи моделирования движения объектов такого класса возникают некоторые

трудности, связанные с неоднозначностью рассматриваемой задачи. Такая

неоднозначность связана с самой идеей любого кинематического метода

наведения [7], закладываемого в основу алгоритма реализуемого рассмат-

риваемой моделью метода наведения. Другой источник неоднозначности

связан с возможностью записи системы уравнений движения в различных

системах координат. Поэтому применение нового средства математическо-

76

Page 77: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

го моделирования функционирования динамических систем для решения

задач этого класса может дать интересные результаты.

При моделировании теленаведения часто используется численное интег-

рирование системы дифференциальных уравнений движения ЗУР как ма-

териальной точки в вертикальной плоскости при выбранном методе теле-

наведения. При этом учитывается действие силы тяги РДТТ, силы лобово-

го сопротивления, определяемое через аэродинамические характеристики

типовой ракеты и силы тяжести. Система теленаведения принимается иде-

альной и безынерционной. Система дифференциальных уравнений движе-

ния для такой схематизации полета имеет следующий вид:

m V&= P cos α - X – G sin θ; P = Jуд m& - Sa p(h), G = m g0;

m V θ&= P sin α + Y – G cos θ; m = m(τ) = m0 - ; ( )0

m t dtτ

∫ &

r& = V cos η, где X = Cx(M,α) q SМ, Y = Cαy(M,α) α q SМ; q = ρ

2

2V ;

(1)

r ϕ&= V sin η; η = ϕ - θ; M = Va

, a = a(h), ρ = ρ(h);

m& = f(am, bm, τ); h = r sin ϕ; x = r cos ϕ.

По определению вводится «угол упреждения» η, который отсчитыва-ется против часовой стрелки (в положительную сторону) от вектора V к r. Схема полета, соответствующая рассматриваемой модели движения ЗУР, показана на рис. 61.

77

Page 78: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 61. Система координат, в которой определяется положение ЗУР и цели при теленаведении, и соответствующие ей кинематические связи.

θ цVц y = h

x

HцRц

r

V

Ц

θ ϕη

ϕϕ ц

О

Из второго уравнения (1) легко вычислить α (Y=Yαα):

( )0

M

cos,y

mV mgP C M qSα

θ θαα

+=

+

&. (2)

В принципе значение угла атаки α может быть вычислено методом прямой итерации:

α0 =0; αi+1 = ( )

0

M

cos,y i

mV mgP C M qSα

θ θα

++

& до |αi+1 -αi| < ε. (2a)

Когда цель движется прямолинейно (θц =180o), Нц = const. С учетом алго-ритма метода наведения и условия идеальности СУ можно упростить (1). В частности, для метода «трех точек» (часто этот метод называют методом «совмещения», исходя из геометрической интерпретации идеи метода: пункт управления, ЗУР и цель в процессе управления полетом необходимо удерживать на одной линии) ϕ ц = ϕ. При θц = 180о и Vц = const:

xц = xц0 - Vц t и tg ϕ = Нц / xц. (3)

Так как условия (3) однозначно определяют зависимость ϕ = ϕ (t), найдем производные ϕ&(t) и ϕ&&(t):

78

Page 79: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

( ) ц ц2ц

H Vt

rϕ =& ,

ц ц 4ц

2V

H xr

ϕ =&& при r2ц = x2

ц + Н2ц.

Тогда система (1) существенно упрощается и принимает вид:

m V&= P cos α - X – G sin θ; θ = ϕ + arcsin(r ϕ&/V), (4) r&= V cos η,

где:

X = Cx(M,α) q SМ, Y = Cαy(M,α) α q SМ, q = ρ

2

2V , P = Jуд m&- Sa p(h),

G = m g0, m&= f(am, bm, τ), h = r sin ϕ, x = r cos ϕ. При интегрировании системы дифференциальных уравнений (4) для реше-ния вспомогательных задач может потребоваться отображение значений углового нормального ускорения θ& и соответствующей ему нормальной перегрузки Ny. Их можно вычислить аналитически. Дифференцируя выражение r ϕ&= V sin(η) с учетом η =ϕ - θ, найдем:

( )22

( )2

VrV

V r.

ϕϕθ ϕ

ϕ

′ ′′′ −

′= +′−

& (5)

Для контроля реализуемости управления с использованием выбранного кине-матического метода наведения необходимо в процессе моделирования полета осуществлять расчет нормального ускорения Jy = Vθ&, то есть с учетом (1)

Jy = (P sin α+Y)/m – g0 cosθ (6)

После вычисления поперечного ускорения легко найти и поперечную перегруз-ку:

Ny = Jy /g0+ cosθ. (7)

Смысл контроля состоит в том, что при использовании кинематических мето-дов наведения [7, 8], как следует из (7), потребная для реализации успешного перехвата ракетой цели перегрузка определяется алгоритмом наведения, кото-рый и отражает рассмотренная математическая модель (4). Однако физически требуемая перегрузка определяется возможностями двигательной установки ЗУР, которые моделируются с помощью параметра P в формуле (6) и аэроди-намическими свойствами этой ракеты, представленными в формуле (6) подъем-

79

Page 80: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

ной силой Y, зависящей, согласно (1) от аэродинамических характеристик ЗУР Cα

y(M,α). Последние определяются аэродинамической компоновкой ЗУР. Однако в модели (4) выражение для подъемной силы не входит. Выявленное нами обстоятельство позволяет уяснить главный смысл при-менения на практике математических моделей движения ЗУР, в которых используются кинематические методы наведения. Они позволяют осуще-ствлять моделирование дуэльной ситуации противоборства летательных аппаратов «ЗУР – цель» на этапе баллистического проектирования ЗУР. На этом этапе создания ЗУР необходимо выбрать ее газодинамическую и аэ-родинамическую компоновки. Но для выбора этих компоновок необходи-мо знать потребные для выполнения полета проектируемой ракеты пере-грузки и диапазон дальностей, в которых будет осуществляться перехват целей.

Применительно к этапу проектирования математическая модель (1) содержит формально непреодолимое противоречие. Для расчета потреб-ных поперечных перегрузок Ny необходимо рассчитать траектории сближе-ния ЗУР с целью. Но для расчета траекторий нужно знать таблицу аэродина-мических характеристик для вычисления Cα

y(M,α). Возник «порочный круг». Разорвать его позволяет модель (4), которая предполагает, что ракета иде-ально осуществит полет по траектории, задаваемой выбранным методом наведения. Поэтому методы наведения данного класса и называются кине-матическими. На начальном этапе баллистического проектирования они позволяют оценить свойства траекторий полета ЗУР при очень грубом знании его аэродинамических характеристик. Вместо реальных таблиц, определяющих значения Cx(M,α) и Cα

y(M,α), в рассматриваемом случае используются соответствующие таблицы прототипа1. Заметим, что в части задания коэффициента Cx(M,α) и модель (4) содержит противоречие. Од-нако, как показывает практика, погрешности в задании «по прототипу» ко-эффициента Cx(M,α) приводят к значительно меньшим ошибкам в оценке свойств «кинематических траекторий», чем погрешности в задании Cα

y(M,α). Но пока не рассмотренным оказалось еще одно противоречие этих

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

80

Page 81: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

мой ракеты превосходит противоречие моделей движения. В моделях (1) и (4) используется представленная в (1) формула рас-

чета тяги P твердотопливного двигателя ЗУР. Поскольку тяга вычисляется (см. (1)) с использованием закона горения топлива m&= f(am, bm, τ), где τ -- время полета, отсчитываемое от момента запуска двигателя (в нашей мо-дели, -- от начала полета), то очевидно, что P= P(am, bm, τ). Здесь am, bm – параметры закона горения твердого топлива. В простейшем случае прини-мается линейный закон горения топлива, основанный на зависимости m&= am +bm τ.

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

Структура модели определяется задачей исследования. В вычисли-тельных экспериментах с моделью неуправляемой ракеты мы хотели полу-чить ответ на вопрос: «Какая будет траектория ракеты при определенном сочетании ее параметров?». В данном же случае траекторию движения ра-кеты условно можно считать заданной, поскольку она однозначно опреде-ляется методом наведения и траекторией движения цели. Траектория дви-жения цели для ракет с КСТН тоже может считаться заданной2. Цель вы-числительных экспериментов теперь -- определение параметров твердото-пливного двигателя, при которых гарантированно поражаются цели, летя-щие на максимальной и минимальной высоте. Мы должны сначала опре-делить силы, которые нужно приложить к центру масс ракеты, чтобы обеспечить ее движение по определяемой методом наведения траектории. Затем можно будет выяснить, можно ли создать эти требуемые силы при имеющихся ограничениях на нормальные перегрузки (при слишком боль- 2 Для ЗУР с КСТН необходимые для наведения параметры цели измеряются радиолокационной станцией и через пункт управления передаются в СУ ЗУР.

81

Page 82: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

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

Из изложенного следует, что целесообразно каждый единичный вы-числительный эксперимент организовать таким образом, чтобы одновре-менно моделировался пуск двух ЗУР по двум целям, одна из которых летит на минимальной, а другая -- на максимальной высоте. Совокупность эле-ментов моделирования «цель — ракета -- система наведения» представим классом «Перехват_H». Тогда модель должна включать в себя два экземп-ляра этого класса с действительными параметрами, соответствующими и минимальной, и максимальной высоте цели (Рис. 62).

Рис. 62. Структура модели ЗУР

Моделирование завершается, когда оба объекта завершают (успешно или неуспешно) свою работу. Если при этом обе цели поражены, то пере-менная «Перехват» принимает значение TRUE и вычисляется расстояние между дальностями поражения целей «DeltaL» (Рис. 63).

82

Page 83: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 63. Карта поведения модели ЗУР

Класс «Перехват_H» имеет стереотип «гибридный объект – открытая

система – составной объект» (Рис. 64). Выходная переменная «Пораже-ние_цели» типа «boolean» инициирует соответствующее событие значени-ем выходной переменной «L» вещественного типа в случае поражения це-ли является дальность поражения и «NaN» в противном случае. Имеются четыре локальных объекта: «СА» -- модель стандартной атмосферы из па-кета «ГОСТ4401_81», «Ц» -- модель движения цели, «ЛИ_Cx» -- одномер-ный линейный интерполятор из пакета «Интерполяторы» табличной зави-симости , «ЛИ_Cy» -- двумерный линейный интерполятор из пакета «Интерполяторы» табличной зависимости . Следует обратить

внимание на то, что для каждого экземпляра класса «Перехват_H» сущест-вует не только своя цель, но и своя модель стандартной атмосферы, по-скольку различные ракеты в одно и то же время могут находиться на раз-ной высоте.

)(MC X

),( MC y αα

83

Page 84: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 64. Структура класса «Перехват_H»

Карта поведения класса «Перехват_H» содержит «мгновенное» со-

стояние «НачУсловия», время пребывания в котором равно нулю, и «дли-тельное» состояние «Наведение», время пребывания в котором равно вре-мени полета ракеты (рис. 65). Состояние «НачУсловия» необходимо для вычисления согласованных значений путем решения «в точке» алгебраи-ческой составляющей уравнений движения ракеты. При идеальной работе системы наведения ракета всегда находится на прямой, соединяющей станцию наведения и цель, и при достижении высоты цели происходит ее поражение (верхний переход из состояния «Наведение» в конечное со-стояние на рис. 65). Остальные переходы из состояния «Наведение» в ко-

84

Page 85: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

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

Рис. 65. Карта поведения класса «Перехват_H»

Экземпляр класса «Цель» выдает на выходе декартовы координаты,

скорости и ускорения цели (Рис. 66). В общем случае цель может совершать произвольные движения, однако в данном примере она движется равно-мерно и прямолинейно (Рис. 67).

85

Page 86: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 66. Интерфейс объекта класса «Цель»

Рис. 67. Уравнения движения цели

Рассмотрим теперь уравнения движения ракеты. В исходной форме

они должны выглядеть так, как показано на Рис. 68.

86

Page 87: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 68. Исходный вид уравнений движения ракеты

Сравните эти уравнения с уравнениями движения неуправляемой ракеты (см. рис. 55). При внешней похожести уравнений эти модели совершенно различны: в уравнениях движения ЗУР искомыми являются не зависимо-сти координат от времени, а зависимости сил и угла атаки от времени при заданных зависимостях координат. Вследствие этого дифференциальные переменные не являются независимыми, они связаны алгебраическими со-отношениями.

87

Page 88: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Эта модель поучительна тем, что в ней мы сталкиваемся с системой уравнений высокого индекса. Напомним, что индексом системы уравнений называется число дифференцирований этой системы, которое необходимо, чтобы получить систему чисто дифференциальных уравнений. Обычная система дифференциально-алгебраических уравнений (например, система уравнений движения снаряда) имеет индекс 1 [1, 6]. Если систему уравне-ний движения ЗУР решать численно в исходном виде, то понадобится чис-ленное дифференцирование при определении ϕ′ и θ ′ . Численно решать системы уравнений с высоким индексом не рекомендуется: такое решение работает очень медленно, с ограниченным набором численных методов и с низкой точностью. Поэтому необходимо выполнить символьное диффе-ренцирование уравнений, из которых определяются ϕ и θ . В результате появятся новые производные (например, η′ ). Если такая производная не является искомой в системе уравнений, то необходимо дифференцировать уравнение, из которого определяется переменная, пока все производные не станут искомыми величинами. При этом не следует забывать, что при сим-вольном дифференцировании появляются новые дифференциальные пере-менные, для которых нужно задавать начальные значения. Эти начальные значения должны определяться из исходной системы уравнений до соот-ветствующего дифференцирования.

Следует отметить, что эти преобразования вовсе не преследуют цель получения решения в явном виде, они лишь облегчают работу численным методам. В используемой версии системы MvStudium не поддерживаются символьные преобразования, поэтому эту работу придется выполнить вручную, дважды продифференцировав требуемые уравнения и задав на-чальные значения новым дифференциальным переменным. В результате получим систему уравнений движения ЗУР с индексом 1 (Рис. 69), которая допускает численное решение.

88

Page 89: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 69. Система уравнений движения ЗУР после символьного дифференцирования

После этого все можно посчитать быстро и легко. В результате полу-чаем для каждого сочетания параметров двигателя «(a,b)» траектории дви-жения ракет при наведении на обе цели (Рис. 70).

89

Page 90: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 70. Траектории движения ЗУР при наведении

на низколетящую и высоколетящую цели

Для визуализации процесса наведения создадим окно 3D-анимации.

Цели и ракеты будем изображать сферами различного цвета, координатам

центров которых поставлены в соответствие необходимые переменные

модели. Кроме того, прямой изобразим текущее положение линии визиро-

вания целей (Рис. 71).

Рис. 71. Составляющие трехмерной анимации процесса наведения ЗУР

90

Page 91: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

В результате получим динамическое трехмерное изображение про-

цесса наведения (Рис. 72). Карта поведения объекта класса «Перехват_H» построена так, что при поражении цели и координаты цели, и координаты ракеты принимают значение «NaN» (not a number), при неудачном пуске только координаты ракеты принимают значение «NaN». Трехмерные при-митивы, у которых хотя бы один параметр принимает значение «NaN», не отображаются. Таким образом происходит исчезновение при трехмерной анимации изображений ракеты и цели.

Рис. 72. Динамическое трехмерное изображение процесса наведения ЗУР

Теперь все готово к выполнению основной задачи создания модели

ЗУР - поиску оптимального сочетания параметров «(a,b)» двигателя. На Рис. 73 показаны траектория поиска и оптимальные значения параметров оптимизации и функционала «DeltaL».

91

Page 92: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 73. Нахождение оптимальных значений параметров двигателя ЗУР

3.3. Модель баллистической ракеты дальнего действия.

Рассмотрим модель объектно-ориентированную модель трехступен-чатой баллистической ракеты дальнего действия (БРДД) с ракетным дви-гателем на твердом топливе (РДТТ). Траекторию движения ракеты разде-лим на активный участок траектории (АУТ) и пассивный участок траекто-рии (ПУТ). 3.3.1. Математическая модель движения БРДД на АУТ

Рассмотрим математическую модель движения первой ступени БРДД (остальные ступени отличаются отсутствием аэродинамических сил).

1. Системы координат

OXaYaZa - абсолютная геоцентрическая система координат (АГСК) совпа-

дающая с геоцентрической системой координат OXYZ в момент начала

решения навигационной задачи и далее сохраняющая неизменным свое

92

Page 93: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

положение в инерциальном пространстве.

OXYZ - геоцентрическая система координат (ГСК). Ось OZ направлена по вектору угловой скорости вращения Земли, ось OX расположена в плоско-сти нулевого меридиана ОЗЭ, ось OY дополняет систему до правой тройки координат. Матрица перехода от системы координат OXYZ к системе OXaYaZa имеет вид

( )( ) ( )( ) ( )

0 0

0 0

cos sin 0sin cos 0 .

0 0aX X

t t t tM t t t t t←

Ω ⋅ − − Ω ⋅ −= Ω ⋅ − Ω ⋅ −

1

Oxнгyнгzнг - гироскопическая геоцентрическая система координат (ГГСК),

совпадающая со стартовой «отвесной» геоцентрической системой (при

пренебрежении уклонениями отвесной линии от нормали – со стартовой

СК) в момент начала решения навигационной задачи и далее сохраняющая

неизменным свое положение в инерциальном пространстве. Ось Oyнг на-

правлена по линии отвеса (в частном случае – по нормали к поверхности

Земли в точке старта) в точке старта, ось Oxнг составляет с направлением

на север угол, равный азимуту пуска, ось Ozнг дополняет систему до пра-

вой тройки.

Матрица перехода от системы координат Oxнгyнгzнг к системе OXaYaZa при допущении о совпадении отвесной линии с нормалью к поверхности Эл-липсоида вращения, аппроксимирующего поверхность Земли, принимае-мом далее, имеет вид:

MXa←xнг

sin cos cos sin sin sin cos sin sin cos cos coscos cos cos sin sin .

sin sin cos cos sin sin sin sin cos cos cos sin

B A L A L B A L A L B AB L B L B

B A L A L B A L A L B A

− − − +=

− + −

Элементы последнего столбца будем обозначать далее

l = cos B cos A; m = sin B; n = - cos B sin A.

1111 zyxO - связанная система координат с началом в центре масс ракеты,

93

Page 94: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

ось направлена по продольной оси ракеты в сторону сопла маршевой ДУ, ось - перпендикулярно оси в плоскости «1-3», ось до-полняет систему до правой тройки. Расчет матрицы перехода от связанной СК к ГГСК осуществляется следующим образом:

11xO

11yO 11xO 11zO

1 í ã

cos cos sin cos sinsin cos cos sin sin

sin 0 cosx xM

ϑ ψ ϑ ϑ ψϑ ψ ϑ ϑ ψψ ψ

−= − .

2. Система дифференциальных уравнений движения (СДУД) на АУТ

Используются дифференциальные уравнения движения в ГГСК.

(8)

Система (8) дополняется алгоритмом расчета составляющих кажущегося ускорения в ГГСК, которые вычисляются следующим образом:

1W& = [ 1xW , &1yW , W ]& &

1zT,

где 1xW = {ϕ& R [Iуд ( )m t& - Sa p(h)] - Cτ q Sм}/m(t);

1yW = {ϕ& R [Iуд ( )m t& - Sa p(h)] δϑ + Cnα q Sм α}/m(t); (9)

W = {ϕ1z& R [Iуд ( )m t& - Sa p(h)] δψ - nCα q Sм β}/m(t);

нг

нг

нг

нгнг

нгнг

нгнг

нг

нг

нг

нг

нг

нг

z

y

x

rzz

ryy

rxx

Vz

Vy

Vx

ngzr

gWV

mgyr

gWV

lgxr

gWV

=

=

=

++=

++=

++=

&

&

&

&&

&&

&&

ω

ω

ω

гW& = тнгxM ⋅ , (10) 1W&

m(t) = m0 – mТОП(t), - текущая масса ракеты, а m . ( ) ( ) ττ dmtt∫=0

топ &

Отсюда дополнительное уравнение:

94

Page 95: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

( )топm m τ= −& & . (11)

Окончательно система дифференциальных уравнений (ДУ) движения со-ставляется из приведенных выше ДУ (8) - (11). Выше обозначены:

( ) ( )0

,C C M C M Hτ τ τ∞ ∞= + Δ - расчетное значение коэффициента

продольной аэродинамической силы, 2 21 1R tg tgϑ ψϕ δ= + + δ - коэффициент, учитывающий потери тяги,

связанные с функционированием органов управления, углы δϑ и δψ могут

быть вычислены из балансировочного соотношения MR = Mδ, но часто их

считают малыми величинами (в простейшем случае принимается ϕR = 1);

( ) 22отнVHq ρ= - скоростной напор,

2отн

2отн

2отн

отнzyx

VVVV ++= - модуль вектора относительной скорости,

2нг

2нг

2нг zyxr ++= - модуль радиуса-вектора положения объекта;

ΩΔ−⎥⎥⎥

⎢⎢⎢

=⎥⎥⎥

⎢⎢⎢

V

нг

нг

нг

отн

отн

отн

z

y

x

z

y

x

VVV

VVV

, где ΔVΩ = ⎥⎥⎥

⎢⎢⎢

−−−

Ω

нгнг

нгнг

нгнг

3

xmylzlxnynzm

.

H = r – a 2

2 2

11 cos

ee ϕ−

− - высота полета;

M∞ = Vотн/aзв(H) - число Маха; aзв(H) и ρ(H) – параметры стандартной атмосферы. Углы атаки и скольжения вычисляются по алгоритму:

Vx1 = cos ϑ cos ψ + sin ϑ - cos ϑ sin ψ; отн

xV отнyV отн

zV

Vy1 = - sin ϑ cos ψ + cos ϑ + sin ϑ sin ψ; (12) отн

xV отнyV отн

zV

Vz1 = - sin ψ + cos ψ, отн

xV отнzV

ϑ и ψ - программные значения углов тангажа и рыскания, соответственно; α = - arctg(Vy1 / Vx1), β = arcsin(Vy1 /Vотн). Составляющие гравитационного ускорения

95

Page 96: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

( )2 40 2 42 4 6

5 63 42 35sin 1 sin sin8 8r

b b bgr r r

ϕ ϕ⎛ ⎞= − + − − − +⎜ ⎟⎝ ⎠

2

8ϕ ,

(13)ϕϕϕω sin

215sin

235sin2 2

64

42 ⎟

⎠⎞

⎜⎝⎛ −+−=

rb

rbg ,

величина геоцентрической широты ϕ вычисляется по соотношениям

rnzmylx нгнгнгsin ++=ϕ , ϕ = arcsin(sin ϕ),

b0 = 3.9860044⋅1014 м3/с2; b2 = 1.7555114⋅1025 м5/с2; b4 = 1.5639617⋅1036 м7/с2.

3. Начальные условия интегрирования СДУД Моделирование начинается в момент времени t0 = tвду и заканчивается в

момент tк по условию выгорания топлива ступени mтоп(tк)=mк.

Координаты точки старта в ГГСК

rг0 0 0Г a ax X X XM M← ←= ⋅ r⋅ , r0 = 0

0

0

XYZ

⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

,

где

X0 = (N + h0 + Нпад) cos BB0 cos L0, Y0 = (N + h0 + Нпад) cos BB0 sin L0, Z0= [N (1 – e2) + h0 + Нпад] sin BB0.

Здесь 2 2

01 sinaN

e B=

− - радиус кривизны первого вертикала, а rг0 - коор-

динаты точки старта в геоцентрической системе координат;

e2 = 6.694385 10-3, a = 6378136 м, Ω3 = 7.292115 10-5 с-1. Проекции вектора скорости на оси АГСК V0 = [Vx0, Vy0, Vz0]T,

где Vx0 = - Ω Y0, Vy0 = Ω X0, Vz0 = 0. Проекции вектора скорости на оси АГСК Vнг0 = Mxнг←Xa MXa←X(tзап) (V0 + Mтxнг←Xa Vверт), где VТ

верт = || 0, Vверт, 0 ||.

96

Page 97: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

4. Примерный состав данных для расчета параметров ММД в процессе проектирования БРДД либо, уточнения их по результатам летных испыта-ний

1) Расчетное значение секундного массового расхода топлива ДУ m&(τ),

где время τ отсчитывается от момента срабатывания контакта подъ-

ема

(τ = t – t *кп). Данные задаются в форме таблицы: {τi, m&i}, i ∈ [1, Nm].

2) Расчетное значение коэффициента продольной аэродинамической силы

как функции числа Маха Cx0(M∞) на нулевой высоте. Данные задаются

в форме таблицы: M∞i, Сx0i, i ∈ [1, Ncτ].

3) Расчетное значение высотной добавки к коэффициенту продольной аэ-

родинамической силы, зависящей от числа Маха и высоты полета

ΔCx(M∞, H). Формат таблицы данных:

… 1∞M 2∞M lM∞

H1 ΔCx11 ΔCx12 … ΔCx1l H2 ΔCx21 ΔCx22 … ΔCx2l … … … … … Hkh ΔCxk1 ΔCxk2 … ΔCxkl

В первой строке таблицы (присвоим ей номер 0) содержится l значений числа Маха M∞i, в остальных - значение высоты полета Hj (j – номер строки, начиная с 1) и l значений высотной добавки ΔCx(M∞, H)j,i. При этом i ∈ [1, lx], j∈ [1, kx].

4) Расчетное значение производной коэффициента нормальной аэродина-

мической силы по углу атаки nCα (M, α) в функции числа Маха ∞M i и

угла атаки задается в формате:

M∞1 M∞2 …M∞ly α1 ΔCy11 ΔCy12 …ΔCy1ly α2 ΔCy21 ΔCy22 …ΔCy2ly … … … … αk ΔCyk1 ΔCyk2 …ΔCykly.

97

Page 98: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

5) Характеристики точки старта (Bко, Lко, Hко), геофизических условий

пуска, геометрические, весовые и другие характеристики изделия:

расчетное значение удельного пустотного импульса тяги ДУ Iуд; значения начального веса ступени ракеты G0 и массы рабочего запаса топ-лива mк; SM - площадь миделева сечения; Sa - площадь выходного сечения сопла; стандартное значение ускорения силы тяжести g = 9.80665 м/с2; геодезические широта BB0 и долгота L0 точки старта, высота точки старта над ЭК Н0; Vверт – скорость выхода изделия из контейнера; Нпад – высота, на которую изделие выбрасывается пороховыми аккумуля-торами давления; A0 – азимут пуска; tвду – время включения ДУ.

6) Структура «гибких» программ управления:

ϑi+1 = ϑi + bϑi [Wx1(t) - Wx1(ti)], ψj+1 = ψj + bψi [Wx1(t) - Wx1(tj)],

где i ∈ [1, Nϑ], j ∈ [1, Nψ], причем Nϑ ≤ 14, Nψ ≤ 14, но узловые значения ti и

tj в общем случае не совпадают.

Параметры программ управления задают в исходных данных либо

вычисляют другими программными модулями. Структура программ отно-

сится ко всем трем ступеням БР и не связана (в общем случае) с момента-

ми включения и выключения РДТТ (за исключением момента t0).

7) Выходными данными алгоритма являются табличные функ-

ции: изменения продольного кажущегося ускорения ( )txW 1& и продольной

кажущейся скорости Wx1(t), высоты полета H(t), текущей массы ракеты

m(t), значений программных функций ϑ(t), ψ(t), углов атаки α(t) и сколь-

жения β(t), компоненты вектора Wг(t) и кинематические параметры дви-

жения Rг(t), Vг(t).

98

Page 99: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

В момент завершения полета ступени вычисляются НУ для расчета

пассивного участка в АГСК:

rк = M тxго←Xa rнгк, Vк = M тxго←Xa Vнгк. Аналогично моделируется полет второй и третьей ступеней БР с той раз-ницей, что для третьей ступени считаются равными нулю величины аэро-динамических коэффициентов Cτ и nCα , а на участке полета второй ступени составляющие аэродинамической силы рассчитываются без учета зависи-мости nCα от угла атаки: = (MnC nC ∞). Дальность до точки падения и координаты трассы для визуализации полета на пассивном участке рассчитываются путем интегрирования СДУД на ПУТ. При этом в качестве начальных условий движения выступают пара-метры движения, вычисленные на момент окончания полета на АУТ tк. 3.3.2. Математическая модель движения БРДД на ПУТ

1. Системы координат

Удобнее всего моделировать движение на ПУТ в ГСК, так как это позволя-ет рассматривать положение центра масс объекта непосредственно относи-тельно поверхности вращающейся Земли. Однако это несколько замедляет процесс интегрирования из-за усложнения правых частей системы диффе-ренциальных уравнений движения (СДУД) ЛА. Разумным компромиссом представляется моделирование полета в АГСК с пересчетом результатов в ГСК, так как в этом случае «лишние» операции будут выполняться только в конце каждого шага интегрирования, а не при каждом вычислении пра-вых частей СДУД.

2. Система дифференциальных уравнений движения на ПУТ

Используются дифференциальные уравнения движения в АГСК.

99

Page 100: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

.;

;

;

;

;

Zaa

Yaa

Xaa

arg

ZZ

arg

YY

arg

XaX

VZVYVX

gZWV

YWV

XWV

raa

raa

ra

===

++=

+=

+=

Ω

&&&

&&

&&

&&

. (14)

Составляющие гравитационного ускорения вычисляются по алгоритму

( )2 40 2 42 4 6

5 63 42 35sin 1 sin sin

8 8r

b b bg

r r rϕ ϕ= − + − − − +⎛ ⎞

⎜ ⎟⎝ ⎠

2

8ϕ ,

(15)

22 44 6

2 35 15sin sin sin

2 2b b

r rg ϕ ϕ ϕΩ − + −⎛ ⎞= ⎜ ⎟

⎝ ⎠.

Система (14) дополняется алгоритмом (16), предназначенным для расчета составляющих кажущегося ускорения в АГСК. aW&

aW& =0, если H >120 км, = - W ⋅VaW& V& о, если H ≤120 км;

VW&= qV [Cx(M∞) + ΔCx(M∞, H)] (Sм - ΔS)/(m0 - Δm);

ΔS = ΔSк(Vвх, θвх) ΔSотн(Vвх, H), Δm = ΔmК(Vвх, θвх) Δmотн(Vвх, H); qV = 0.5 ρ(H) Vотн;

2 2o oотн X Y ZV V V V= + + 2

o - модуль вектора относительной скорости;

(16) 222aaa ZYXr ++= - модуль радиус-вектора положения объекта;

⎥⎥⎥

⎢⎢⎢

⎡−Ω+

⎥⎥⎥

⎢⎢⎢

=0а

а

Z

Y

X

o XY

VVV

а

а

а

V ,

где:

aзв(H) и ρ(H) – параметры стандартной атмосферы, sin ϕ = azr

.

Обозначение qV в (16), сходное с обозначением скоростного напора есть нормированный по скорости скоростной напор. Везде

100

Page 101: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

H = r – a 2

2 2

11 cos

ee ϕ−

− - высота полета, (17)

M∞ = Vотн/aзв(H) - число Маха. Для реализации данного алгоритма необходимо предусмотреть в програм-ме интегрирования СДУД выход на высоту 120 км для своевременного пе-реключения с одной формулы расчета на другую. Кроме того, требует-ся предусмотреть в процессе интегрирования после выполнения условия H ≤ 120 км контроль невозрастания модуля вектора относительной скоро-сти Vотн. До выполнения этого условия требуется «обнулять» (либо не рас-считывать, заранее задав нулевые значения) параметры, характеризующие «обгар» теплозащитного покрытия ГЧ и соответствующее уменьшение массы, т.е. параметры Δm

aW&

отн и ΔSотн. В противном случае алгоритм расчета параметров ΔS и Δm будет моделировать не имеющее физического смысла увеличение площади миделева сечения и массы ГЧ на начальном участке полета в атмосфере из-за естественного возрастания относительной скоро-сти полета до момента, когда аэродинамическое сопротивление компенси-рует рост кинетической энергии из-за снижения ЛА. Параметры ΔmК и ΔSк вычисляются в момент фиксации высоты H = 120 км. После этого данные параметры целесообразно интерпретиро-вать как постоянные величины, поскольку значения условий «входа ЛА в атмосферу» являются постоянными для каждой конкретной траектории полета на ПУТ.

3. Краевые условия интегрирования СДУД Моделирование начинается в момент времени tк (момент окончания

полета на АУТ) и заканчивается в момент Tп по достижении заданной вы-

соты цели: H(Tп) = Hц (при этом параметр Hц задается в исходных данных).

При решении задач, допускающих грубый учет сжатия Земли можно вме-

сто указанного условия фиксации окончания полета принимать условие

r(Tп) = Rз, где Rз – условный радиус сферической Земли (6371 км). В об-

щем случае корректного учета сжатия Земли требуется решать на послед-

нем шаге интегрирования нелинейное уравнение H(Tп) = Hц, которое полу-

чается при подстановке вместо H(Tп) правой части выражения (17). Данное

101

Page 102: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

уравнение можно решить с приемлемой для практических целей погреш-

ностью (ΔH < 10 м) всего за одну итерацию, если воспользоваться интер-

поляционным полиномом Эрмита, построенным по двум точкам М1(t1, R1,

V1) и М1(t2, R2, V2), для которых H(t1) > Hц и H(t2) < Hц. В литературе по

высшей геодезии имеется множество вариантов упрощения этой задачи

при сохранении указанной точности.

Кинематические параметры движения в АГСК на момент окончания АУТ являются начальными условиями для расчета ПУТ. После вычисления полного полетного времени с учетом указанного выше краевого условия можно вычислить координаты точки падения на вра-щающейся Земле:

Xп = Xa(Tп) cos(Ωз Tп) + Ya(Tп) sin(Ωз Tп); Yп = - Xa(Tп) sin(Ωз Tп) + Ya(Tп) cos(Ωз Tп); (18) Zп = Za(Tп).

Полная дальность полета теперь может быть вычислена по формуле: Sсф = arccos{(X0 Xп + X0 Yп + Z0 Zп)/[r(Tп) r(t0)]}. (19)

Значение Sсф и параметры входа ЛА в атмосферу являются важнейшим па-раметрами, представляющими результаты расчета всей траектории. Кроме того, иногда важное практическое значение для прикладных задач баллистики имеет вычисление геодезических координат точки падения на вращающейся Земле. Для этого имеются алгоритмы, представленные группами формул (20) - (23).

2п

2пэ YXR += , 2

п2п

2пп ZYXR ++= (20)

( )23п

п

1Zarctg

eR −=θ ,

⎥⎥⎦

⎢⎢⎣

−⎟⎟

⎜⎜

−+=

θθ

3233п

23

3233пп cos

11

sinarctgeaRe

eaZB , (21)

102

Page 103: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

( )п

223

233

п

пп

sin11

sin Beea

BZH

−−= , при BBп ≠0 и Hп = Rп – a3, при Bп B = 0.

Алгоритм (21) обладает запасом точности, который редко бывает востре-бован для типовых баллистических задач в теории полета ракет (обычно он применяется в космической геодезии [9]). Но его можно рекомендовать для контроля пригодности более быстрых, но менее точных алгоритмов, например [10]:

cos2 ϕ = 1 - 2п

2п

RZ

, ϕ22

3

233

cos1

1

e

eaN

−= ,

Hп = Rп – N, ⎥⎦

⎤⎢⎣

−=

п23

эпп /1

/arctgRNe

RZB . (22)

Если Xп ≠ 0, то ( )пп

пп sign 1

2arctg X

XYL −+= π

.

Если Xп = 0, то Lп = 2π

при Yп > 0 или Lп = π23

при Yп < 0.

(23)

Формулы (20) и (23) используются совместно с (21) или (22) в зависимости от требуемой точности расчета геодезической широты Bп.

Для расчета ПУТ в качестве базового алгоритма рекомендуется именно ал-горитм (21). 4. Исходные данные для моделирования Начальные условия полета берут из решения СДУД на АУТ. Характерные для некоторых типов БРДД данные приведены ниже. Таблица для расчета Cx(M∞) путем линейной интерполяции имеет вид:

M∞ 0 0.6 0.8 1.0 1.1 1.2 1.3 1.4 1.5 2.0 3.0 4.0 5.0 30.0

Cx 0.19 0.19 0.23 0.4 0.47 0.47 0.46 0.44 0.41 0.33 0.26 0.23 0.2 0.2

103

Page 104: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Таблица для расчета ΔCx(M∞, H) имеет вид ([H] = [км]): H

M 0 10 20 30 40

0 0 0.006 0.006 0.006 0.006 0.6 0 0.006 0.006 0.006 0.006 0.8 0 0.006 0.020 0.050 0.050 1.0 0 0.005 0.020 0.040 0.040 1.5 0 0.004 0.020 0.040 0.040 2.0 0 0.003 0.015 0.030 0.060 3.0 0 0.012 0.012 0.030 0.055 4.0 0 0.025 0.025 0.030 0.050 5.0 0 0.020 0.020 0.030 0.040

30.0 0 0.020 0.020 0.020 0.030

Таблица для расчета ΔmК(Vвх, θвх) имеет вид ([Vвх] = [м/с], [θвх] = [градус3]):

Vвх θвх

3500 4000 6500 7000 7500

20 0.2 1.5 20.0 26.0 29.5 25 0.2 1.6 20.0 25.9 29.4 35 0.5 1.9 20.0 25.6 29.1 40 0.6 2.0 20.0 25.5 29.0 50 0.9 2.2 20.0 25.2 28.8 60 0.9 2.5 20.0 25.0 28.5

3 угловой

104

Page 105: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Таблица для расчета Δmотн(Vвх, H) имеет вид ([Vвх] = м/с, [H] = [км]):

Vвх H

3500 4000 6500 7000 7500

0 1.0 1.0 1.0 1.0 1.0 2.5 0.8 0.82 0.94 0.96 0.98 5.0 0.7 0.73 0.88 0.91 0.94 10 0.4 0.44 0.63 0.66 0.70 20 0.04 0.06 0.16 0.18 0.20 25 0.02 0.03 0.05 0.05 0.06 30 0.01 0.01 0.01 0.01 0.01

130 0 0 0 0 0 Таблица для расчета ΔSк(Vвх, θвх) имеет вид ([Vвх] = м/с, [θвх] = [градус4]):

Vвх θвх

3500 4000 6500 7000 7500

20 0 0 0.008 0.011 0.013 25 0 0 0.008 0.011 0.013 35 0 0 0.008 0.011 0.013 40 0 0 0.009 0.011 0.013 50 0 0 0.009 0.011 0.013 60 0 0 0.009 0.011 0.013

4 угловой

105

Page 106: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Таблица для расчета ΔSотн(Vвх, H) имеет вид ([Vвх] = м/с, [H] = [км]): Vвх

H 3500 4000 6500 7000 7500

0 1.0 1.0 1.0 1.0 1.00 2.5 1.0 1.0 1.0 1.0 1.00 5.0 0.95 0.956 0.988 0.994 1.00 10 0.65 0.656 0.688 0.694 0.70 20 0.15 0.156 0.188 0.194 0.20 25 0.03 0.034 0.053 0.056 0.06 30 0 0 0 0.005 0.01

130 0 0 0 0 0 Sм = 0.45 м2; m0 = 400 кг. 6. Особенность задания геодезических исходных данных

Порядок задания исходных координат старта (BB0, L0, H0) имеет особен-ность. По техническим причинам широта и долгота задаются в привязке к референц–эллипсоиду, т.е. эллипсоиду Красовского (ЭК), соответствую-щему модели Земли 1942 г. (строго говоря, исходная высота старта задает-ся в «балтийской системе высот», но к пользователю она попадает уже пе-ресчитанная на ЭК). Поэтому до начала расчета начальных условий полета и матрицы направляющих косинусов MX←xнг(A0, B0B , L0) они должны быть пересчитаны на «общий земной эллипсоид» (ОЗЭ) по алгоритму [9]:

a = 6 378 245 м; e =0.0066934216; к 2к

a = 6 378 136 м; e = 0.0066943662; 2

ΔX = 25 м; ΔY = - 141 м; ΔZ = 0 м;

Δa = a - aк; Δe2 = e2 – e2к.

ω = 0; ω = 0.35; ω = 0.66; - в угловых секундах; X Y Z

ρ =206 265;

106

Page 107: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

к22

к

кк

sin1 BeaN

−= ;

( )к

22к

2кк

кsin1

1Be

eaM−

−= ;

ΔB = кк HM +

ρ (Δa e2к sin BBк cos BкB - Δx sin BBк cos Lк - sin BкΔy B sin Lк +

+ Δy cos BBк) + ρ e к2 sin BкB cos BBк + ωX sin Lк - ωY cos Lк;

ΔL = ( ) ккк cos BHN +ρ

(ΔY cos Lк - ΔX sin Lк) – tg BBк (ωX cos Lк + ωY sin Lк)

+ ωZ; ΔH = - Δa (1 – 0.5 e2к sin2 BBк) + ( cos BкΔX B + ΔY sin Lк) cos BBк + sin BкΔZ B +

0.5 a e к2к sin2 BBк;

BB0 = BкB + ΔB/ρ, L0 = Lк + ΔL /ρ, H0 = Hк + ΔH. 3.3.3. Объектно-ориентированная модель.

Рис. 74. Структура модели БРДД

Для моделирования атмосферы и поля тяготения будем использовать

локальные объекты – экземпляры соответствующих классов, импортиро-ванных из разработанных ранее пакетов «ГОСТ4401_81» и «Эллипсоид

107

Page 108: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Красовского» (Рис. 74). В этой модели нам также понадобится и пакет «Ин-терполяторы».Модель БРДД должна быть гибридной, так как в движении БРДД от момента пуска до момента падения выделяют шесть качествен-ных состояний (Рис. 76):

1) выход из контейнера; 2) работа 1-й ступени; 3) работа 2-й ступени; 4) работа 3-й ступени; 5) внеатмосферный пассивный участок; 6) атмосферный пассивный участок.

Рис. 75 Расчет начальных условий в выходных действиях

состояния «Выход_из_контейнера»

При переходе из одного состояния в другое меняются скачками зна-чения переменных и в некоторых случаях системы уравнений движения. Для качественно различных деятельностей в состояниях создадим локаль-ные классы «Ракета», «Динамика_ГЧ_ВПУ» и «Динамика_ГЧ_АПУ» (Рис.

108

Page 109: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

76), которые будут использовать общие переменные класса «Model». Со-стоянию «Выход_из_контейнера» не приписывается никакой локальной деятельности, но в его выходных действиях производится расчет началь-ных условий движения ракеты в ГГСК (Рис. 75).

Деятельностями в состояниях «Ступень_1», «Ступень_2» и «Сту-пень_3» являются экземпляры одного и того же локального класса «Раке-та» с номером ступени в качестве фактического значения параметра «Iст» (Рис. 77). В векторных параметрах «m0_i», «Pуд_i», «Sа_i», «Sм_i» задают соответственно значения начальной массы, удельной тяги, площади вы-ходного сечения сопла и площади миделевого сечения для всех ступеней. Значение «m0_i[N+1]» является начальной массой ГЧ. В векторном пара-метре и «DeltaWx1к_i» задаются значения кажущейся скорости, при кото-рых происходит отсечка тяги для различных ступеней.

Рис. 76. Карта поведения модели БРДД

109

Page 110: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Класс «Ракета» также является гибридным, поскольку работа ступе-ни должна завершаться либо по команде отсечки тяги при достижении программного значения приращения кажущейся скорости, либо по полно-му выгоранию топлива (Рис. 77).

В состоянии «Полет» решаются уравнения непрерывного локального класса «Динамика_полета» (Рис. 79).

Рис. 77. Карта поведения локального класса «Ракета»

В систему уравнений «Динамика_полета» входят также уравнения связи с локальными объектами «Аэро», «РДТТ» и «Программа_tete_psi», которые являются экземплярами глобальных классов «Аэродинамика», «Динамика_ РДТТ» и «ГибкиеПрограммыУправленияУглами» соответственно (Рис. 78).

110

Page 111: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 78. Структура класса «Ракета»

Экземпляр класса «Аэродинамика» принимает на входе значения

числа Маха, высоты, углов атаки и скольжения и выдает на выходе значе-ния трех аэродинамических коэффициентов (Рис. 80). Для нашего варианта угол скольжения всегда равен нулю.

111

Page 112: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

112

Page 113: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 79. Уравнения класса «Динамика_полета»

113

Page 114: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 80. Структура и интерфейс класса «Аэродинамика»

Локальные объекты – линейные интерполяторы -- необходимы для

вычисления таблично заданных зависимостей ),( HMCxΔ , ,

. Заметим, что таблично заданная зависимость в данном

случае вычисляется с помощью сплайн-интерполяции (

),( MC y αα

),( MC y ββ )(MCx

Рис. 81).

Рис. 81. Уравнения класса «Аэродинамика»

Класс «РДТТ» в основном ничем не отличается от аналогичного

класса в модели неуправляемой ракеты за исключением того, что по пол-ному выгоранию топлива посылается внешний сигнал (Рис. 82), который

114

Page 115: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

воспринимается переходом в карте поведения класса «Ракета» (см. Рис. 77).

Рис. 82. Карта поведения класса «РДТТ»

Экземпляр класса «ГибкиеПрограммыУправленияУглами» принима-

ет на входе текущее значение кажущейся скорости и выдает на выходе программные значения углов атаки и скольжения (Рис. 83).

Рис. 83. Интерфейс класса «ГибкиеПрограммыУправленияУглами»

Вычисление программных значений углов осуществляется согласно

зависимости, показанной на Рис. 84. Коэффициенты в этих зависимостях определяются с помощью действий внутреннего перехода в состоянии

115

Page 116: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

«Выполнение» (Рис. 85) показанных на Рис. 86.

Рис. 84. Уравнения вычисления программных углов

Рис. 85. Карта поведения класса

«ГибкиеПрограммыУправленияУглами»

116

Page 117: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 86. Действия внутреннего перехода

Класс «Динамика_ГЧ_ВПУ» является непрерывным и элементарным с системой уравнений, показанной на Рис. 87. Класс же «Динамика_ГЧ_АПУ» является непрерывным, но составным. Локальные объекты являются линейными интерполяторами, предназна-ченными для вычисления таблично заданных зависимостей и

, а также таблично заданных зависимостей изменений миделевого сечения и массы головной части вследствие обгара теплопокрытия от ско-рости входа в атмосферу и высоты (

)(MCx

),( HMCxΔ

Рис. 88).

117

Page 118: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

118

Page 119: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 87. Система уравнений класса «Динамика_ГЧ_ВПУ»

119

Page 120: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 88. Структура класса «Динамика_ГЧ_АПУ»

Уравнения класса «Динамика_ГЧ_АПУ» показаны на Рис..

При отладке этой модели более чем где-либо необходима 3D-

анимация, так как из временных и фазовых диаграмм не очень просто по-

нять, правильно ли двигается ракета, если учесть, сколько при решении

системы уравнений разных преобразований координат. Для активного уча-

стка желательно контролировать угловое положение ракеты и направление

вектора скорости. Ракету будем условно изображать комбинацией цилинд-

ра и конуса, в которой длина цилиндра пропорциональна начальной массе

данной ступени. Работу двигателя будем визуализировать с помощью ко-

нуса оранжевого цвета, длина которого пропорциональна силе тяги. Нако-

нец вектор скорости будем показывать стрелкой красного цвета. Для ани-

мации используем набор виртуальных переменных, с помощью которых

значения переменных модели преобразуются в трехмерные координаты

изображений. На Рис. 90 показаны визуализации положения ракеты для 1-

й и 3-й ступеней.

120

Page 121: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 89. Уравнения класса «Динамика_ГЧ_АПУ»

121

Page 122: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 89. Окончание

122

Page 123: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

а)

б)

Рис. 90. Визуализация движения ракеты на активном участке: а) – работа 1-й ступени, б) – работа 3-й ступени

123

Page 124: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Однако, эта визуализация совершенно непригодна для пассивного участка. На внеатмосферном пассивном участке желательно показать трехмерную картинку головной части, движущейся в инерциальном про-странстве, и вращающейся Земли, вместе с которой перемещается и цель. На атмосферном пассивном участке интересен график зависимости скоро-сти головной части от высоты, иллюстрирующий совместное действие гравитационного ускорения и аэродинамического торможения. Поэтому состояниям «Внеатм_ПУ» и «Атм_ПУ» припишем в визуальной модели специальные установки (файлы установок), которые будут автоматически загружаться в момент входа в это состояние. Создав соответствующие файлы установок, получим требуемые визуализации, показанные на Рис. 91 и Рис. 92.

Рис. 91. Визуализация движения головной части

на внеатмосферном пассивном участке

124

Page 125: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Рис. 92. Визуализация движения головной части

на атмосферном пассивном участке

125

Page 126: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Библиографический список. 1. Колесов Ю. Б. Моделирование систем. Динамические и гибридные сис-

темы / Ю. Б. Колесов, Ю. Б. Сениченков. -- СПб. : БХВ, 2006. – 224 с. 2. Колесов Ю. Б. Моделирование с систем. Объектно-ориентированный

подход / Ю. Б. Колесов, Ю. Б. Сениченков. -- СПб. : БХВ, 2006. – 192 с. 3. Колесов Ю. Б. Моделирование с систем. Практикум по компьютерному

моделированию / Ю. Б. Колесов, Ю. Б. Сениченков -- СПб. : БХВ, 2006. – 352 с.

4. Дал У.-И. СИМУЛА-67. Универсальный язык программирования / У.-И. Дал, Б. Мюрхауг, К. Июгорд. — М. : Мир, 1969. — 99 с. 5. Буч Г. Язык UML. Руководство пользователя / Г. Буч, Д. Рамбо, А. Дже-

кобсон. — М. : ДМК, 2000. — 432 с. 6. Колесов Ю. Б. Объектно-ориентированное моделирование сложных ди-

намических систем / Ю. Б. Колесов. -- СПб. : Изд-во Политехн. ун-та, 2004. – 239 с. (в электронном виде книга доступна на сайте www.mvstudium.com).

7. Проектирование зенитных управляемых ракет / И. И. Архангельский [и др.]; под общ. ред. И. С. Голубева и В. Г. Светлова. – 2-е изд., пере раб. и доп. – М. : Изд-во МАИ, 2001. – 732 с.

8. Лысенко Л. Н. Наведение и навигация баллистических ракет : учеб. по-собие / Л. Н. Лысенко. – М. : Изд-во МГТУ им. Баумана, 2007. -- 972 с.

9. Нуждин Б. С. Технические основы астрономо-геодезического обеспе-чения ракетных войск : учеб. пособие / Б. С. Нуждин. – М. : Изд-во Во-енной академии РВСН имени Петра Великого, 2000. – 291 с.

10. Баллистика : учеб. / С. В. Беневольский [и др.]. – Пенза : Изд-во ПАИИ, 2005. – 510 с.

126

Page 127: МОДЕЛИРОВАНИЕ - MVSTUDIUM · Модели движения могут включать в себя следующие со- ... и моделирование на основе

Беневольский Сергей Владимирович Колесов Юрий Борисович

МОДЕЛИРОВАНИЕ

Объектно-ориентированное моделирование в задачах внешней баллистики

Учебное пособие

Редактор О.К.Чеботарева

Технический редактор А.И. Колодяжная

Оригинал-макет подготовлен авторами

Директор Издательства Политехнического университета А.В. Иванов

Свод. темплан 2009 г.

Лицензия ЛР № 020593 от 07.08.97

Налоговая льгота – Общероссийский классификатор продукции ОК 005-93, т. 2; 95 3005 – учебная литература

Подписано в печать .2009. Формат 60×84/16. Усл. печ. л. Уч.-изд. л. . Тираж 100. Заказ

Санкт-Петербургский государственный политехнический университет. Издательство Политехнического университета,

член Издательско-полиграфической ассоциации университетов России. Адрес университета и издательства:

195251, Санкт-Петербург, Политехническая ул., 29.

127