кстати, дает возможность определить однозначную раскладку букв по клавишам клавиатуры.
Отметим, что на этапе окончательного формирования раскладок русских и английских букв на компьютерной клавиатуре существенно используются данные о частотах встречаемости в текстах пар букв.
Получаемые таким образом раскладки названы нами наилучшими, поскольку на первом этапе их проектирования оптимальным образом размещаются буквенные блоки, а на втором фиксация позиций букв внутри блоков осуществляется для наилучшего обеспечения слепого десятипальцево-го метода печатания. Необходимо отметить, что на втором этапе проектирования не удается полностью устранить элементы субъективизма в принятии решений, а потому в итоге наилучших раскладок может оказаться несколько. Далее приводится по одному из вариантов наилучших раскладок русских и английских букв на компьютерной клавиатуре.
Таблица 6
Е
0 Е я т У и I о р { }
Ц Й Г Ь Ы В Д З Ж Щ Ю Ъ
А 8 Б р о н ] К ь "
Р Н Т О А И Е Л П Б Э
ъ X с V в N м ?
Ч Ш М С К У Я Х Ф
Таблица 7
0 Е я т У и I о р { }
О V У о W к м
А 8 Б р о н ] К ь "
Б 8 N Е О А т н с в ъ
ъ X с V в N м ?
к X ь I и Е р 3
В этих таблицах в верхней строке символы и буквы английской клавиатуры указывают позиции тех клавишей, на которых располагаются русские и английские буквы в соответствии с наилучшей раскладкой.
Замечание. При реализации оптимальной поблочной раскладки букв, а затем и условий для наилучшего обеспечения слепого десятипальцево-го метода печатания существенно использовалась ранжировка клавишей, полученная на основе экспертных оценок. Однако мы могли бы воспользоваться и другой ранжировкой, например П. Клаус-лера, в которой группам клавишей присваиваются одинаковые весовые значения трудозатрат. Вполне понятно, что в этом случае после применения оптимальной поблочной раскладки букв нам пришлось бы иметь дело с большим разнообразием раскладок и осуществлять перебор большего числа вариантов размещения букв для наилучшего обеспечения слепого десятипальцевого метода печатания.
ДИНАМИЧЕСКОЕ КОНФИГУРИРОВАНИЕ СИСТЕМЫ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ МОРСКОЙ ОБСТАНОВКИ
В.Ю. Андреев, А.Ф. Базлов
Задача имитационного моделирования морской обстановки является неотъемлемой частью разработки морских тренажерных комплексов. В настоящее время эта задача решается для целого ряда тренажеров различного назначения.
Одной из особенностей моделирования морской обстановки является необходимость имитации функционирования множества сложных объектов, входящих в ее состав. В частности, к таким объектам относятся надводные корабли и подводные лодки, летательные аппараты, стационарные объекты (буи, нефтяные вышки и т.п.). Большинство объектов являются сложными техническими системами. В связи с этим задача создания полноценной модели морской обстановки является са-
мостоятельной проблемой разработки морских тренажеров [2].
Разработка имитационных моделей объектов морской обстановки имеет ряд особенностей:
- количество типов моделируемых объектов достаточно велико (несколько десятков);
- перечень моделируемых объектов в начале разработки тренажера определяется лишь ориентировочно и постоянно уточняется в ходе разработки тренажера;
- перечень моделируемых объектов в начале разработки тренажера определяется лишь ориентировочно и постоянно уточняется в ходе разработки тренажера;
- последующая модернизация тренажера может также потребовать изменения номенклатуры моделируемых объектов морской обстановки;
- требования к адекватности моделей также подвержена уточнению, поскольку их качество не является определяющим фактором эффективности обучения на тренажере;
- реализация моделей должна быть эффективной в смысле времени выполнения, поскольку в морской обстановке одновременно могут моделироваться десятки и сотни объектов [1].
Приведенные особенности обусловливают необходимость реализации гибкой, расширяемой, настраиваемой системы имитационного моделирования. Основное требование к которой - обеспечить возможность постепенного увеличения количества и сложности моделей как в ходе разработки тренажера, так и в ходе последующей модернизации. Для этого необходимо обеспечить независимость программной реализации имитационных моделей от реализации остальных компонентов тренажера.
Система моделирования, удовлетворяющая выдвинутым требованиям, была разработана в рамках проекта по созданию тактического тренажера для ВМФ России на базе объектно-ориентированного и модульного подходов. Особенностью данной системы является динамическое конфигурирование системы имитационного моделирования морской обстановки на основе задания на тренировку и библиотеки моделей.
Задание на тренировку определяет перечень объектов, которые необходимо моделировать и их начальное состояние. Библиотека моделей представляет собой набор программных модулей, содержащих реализацию имитационных моделей. Имитационная модель определяет способ изменения состояния объекта в ходе тренировки. Задача конфигурирования системы имитационного моделирования заключается в нахождении соответствия между объектами и моделями. Конфигурирование осуществляется на этапе инициализации вычислительно-моделирующего комплекса (ВМК) тренажера. Имитационные модели реализованы как обособленные программные компоненты с унифицированным программным интерфейсом. В результате программная реализация тренажерного комплекса не зависит от состава и программной реализации имитационных моделей морской обстановки. Дополнение и изменение программных модулей имитационных моделей объектов морской обстановки возможно как при разработке комплекса, так и при его модернизации.
Независимость тренажерного комплекса от состава и способа реализации имитационных моделей объектов морской обстановки достигается за счет разделения данных, определяющих состояние объекта (входных и выходных параметров модели), и способа их изменения (реализации модели). Выходные и входные данные модели объ-
екта доступны всем компонентам тренажера. Способ же их изменения скрыт в реализации имитационной модели. Например, модель надводного корабля в качестве выходных параметров обычно включает такие характеристики, как курс, угловая скорость, скорость, параметры качки и т.п., в качестве входных - заданный курс, скорость и т.д. Возможности получать значения этих параметров достаточно для реализации таких компонентов тренажера, как автоматизированные рабочие места обучаемых (АРМО) и преподавателя (АРМП). При этом программная реализация этих компонентов совершенно не зависит от способа изменения параметров моделей объектов обстановки. Хранение входных и выходных параметров моделей и передача их между компонентами тренажера обеспечивается ВМК (см. рис.).
Принцип разделения данных и способа моделирования объектов морской обстановки
Возможность динамического конфигурирования системы имитационного моделирования основывается:
- на классификации объектов и имитационных моделей;
- на унификации динамических параметров объектов морской обстановки;
- на унификации программного интерфейса имитационных моделей;
- на унификации программного интерфейса модулей библиотеки моделей.
Классификации объектов обеспечивает возможность разработки специализированных моделей для объектов различной физической природы и характеризовать их различными параметрами в ВМК. Все объекты морской обстановки могут быть классифицированы признаками {класс, тип, наименование}. Классификация проводится с учетом физической природы объектов и схожести их основных характеристик. В качестве примеров классов объектов можно привести надводные корабли, вертолеты, самолеты, гидроакустические станции и т.д. Классификационные признаки присутствуют как в задании на тренировку, так и в программном модуле имитационной модели. За счет этого можно установить соответствие между описанием объекта в задании на тренировку и реализацией имитационной модели.
Унификация входных и выходных параметров моделей объектов морской обстановки определяет принципиальную возможность взаимодействия моделей с другими компонентами тренажера. Для каждого типа объекта определяется набор значимых для тренажера характеристик, которые образуют динамические параметры объекта (входные и выходные параметры модели объекта). Значения
динамических параметров характеризуют состояние объекта в ВМК. ВМК осуществляет предоставление этой информации АРМО и АРМП. Таким образом, результаты моделирования объектов обстановки становятся доступными остальным частям тренажерного комплекса.
Унификация программного интерфейса моделей позволяет ВМК единообразно производить операции с моделями различных объектов. За счет этого обеспечивается независимость программной реализации ВМК от реализации частных имитационных моделей. Задача унификации программного интерфейса моделей решена на базе объектно-ориентированной технологии программирования. Все имитационные модели объектов реализованы в виде классов, наследников базового класса, определяющего единый интерфейс модели. Интерфейс имитационной модели определяет основные функции моделирования, которые вызываются ВМК в ходе проведения тренировочного занятия на тренажере (см. табл.). Приведенные функции обеспечивают осуществление базовых операций над моделью, включая сохранение и восстановление состояния модели. Изменение динамических параметров объектов осуществляется в функции Run, из которой реализуется вызов частных моделей процессов функционирования объекта.
Таблица
Базовые функции модели объекта обстановки
Реализации имитационных моделей объектов размещаются в программных модулях (DLL). Произвольный набор программных модулей образует библиотеку моделей объектов морской обстановки. Унификация программного интерфейса модулей реализации моделей позволяет ВМК при загрузке задания на тренировку поставить каждому объекту в соответствие имитационную модель.
Реализация программного интерфейса модулей основана на возможности экспортируемых функций DLL. Каждый модуль библиотеки имитационных моделей экспортирует две функции, обеспечивающие:
- получение информации о реализованных в модуле моделях (GetOwnAlgoInfo);
- создание экземпляра выбранной имитационной модели (CreateOwnAlgo).
Первая функция позволяет получить список реализованных в модуле моделей и их классификационные признаки (для какого класса и типа объектов предназначена модель). Классификация моделей совпадает с классификацией объектов, однако в отличии от нее допускает неопределенность. То есть для имитационной модели может быть не указан конкретный класс и наименование объекта, в этом случае модель подходит для моделирования объектов указанного типа и различных классов и наименований. Это позволяет в предельном случае иметь всего одну имитационную модель для всех объектов обстановки. Алгоритм загрузки имитационных моделей по полученному из задания на тренировку перечню объектов находит наиболее полно соответствующую модель и использует функцию CreateOwnAlgo для создания экземпляра этой модели в ВМК. Например, при наличии моделей с классификациями {надводный корабль, любой, любой} и {надводный корабль, рыболовецкие, любой}, для рыболовецкого судна будет выбрана вторая модель, а для других надводных кораблей - первая.
Реализованное рассмотренным образом динамическое конфигурирование системы имитационного моделирования позволяет:
- максимально быстро получить функционирующий вариант модели морской обстановки на основе минимального количества частных моделей;
- эффективно распределить разработку частных моделей между исполнителями;
- увеличивать количество и качество моделей без изменения остальных компонентов тренажера даже после ввода его в эксплуатацию;
- разрабатывать частные модели объектов обстановки сторонними организациями.
Таким образом, использование принципа динамического конфигурирования системы имитационного моделирования позволяет не только эффективно организовать разработку тренажера, но и повысить срок его эксплуатации за счет возможности постоянной модернизации имитационных моделей.
Список литературы
1. Недзельский И.И. Морские навигационные тренажеры: проблемы выбора. - СПб: Электроприбор, 2002. -219 с.
2. Бичаев Б.П. Морские тренажеры (Структуры, модели, обучение). - Л: Судостроение, 1986. - 383 с.
Функция базового класса Назначение
Init Функция инициализации модели
IsReady Проверка готовности модели к работе
Idle Выполняется постоянно с момента создания модели вне зависимости от ее готовности
Run Выполнить шаг моделирования
Destroy Прекратить выполнение модели
GetData Сохранение внутренних данных модели в неформатированный буфер
SetData Восстановление внутренних данных алгоритма из неформатированного буфера
GetLastError Получить строку-сообщение о последней ошибке