Лабораторные работы (2010) (Отчет)

Посмотреть архив целиком



Московский Энергетический Институт

Технический Университет










Лабораторная работа №3

Проектирование с помощью системы интеллектуального имитационного моделирования РДО
















Выполнил: Хавалджи Д.А.

Группа: А-16-07

Проверили: Еремеев А.П. ,Гречкина П.В.







Москва, 2010 г.

Оглавление

Постановка задачи. 3

Описание предметной области 4

Описание имитационной модели 5

Типы ресурсов 5

Ресурсы 5

Операции 6

Интерфейс 6

Выполнение 7

Приложение 8

Функции 8

Последовательность 8


































Постановка задачи.


Спроектировать модель с помощью системы интеллектуального имитационного моделирования РДО.

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

Объект моделирования – симулятор поста ДПС.

В модели присутствуют объекты 2-х типов:

- Мент (1),

- 1-ая машина «Porshe Carrera GT»(1),

- 2-ая машина «Nissan GT-R R-35»(1),

- 3-ия машина «Lamborghini Gallardo»(1).

Модель рассчитана на участие игрока – человека (ЛПР).

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

Игрок двигает ментом (по нажатию кнопки на клавиатуре).

Каждое движение ментом характеризуется набором параметров (подробнее в описании предметной области ниже).

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

Цель игрока – набрать максимальное число очков.

Описание предметной области


Игрой назовём один прогон модели.

В начале игры у игрока в запасе немного времени. Машины движутся с постоянной скоростью (каждая со своей) в горизонтальном направлении все время, приближаясь к менту. Если машина достигает (в любом случае) правой границы игрового поля, она исчезает. Над постом ДПС расположена информация о кнопках управления моделью. Игрок двигает ментом с помощью кнопок. Каждая машина характеризуется параметром:

все_ок1 : едет1 (езда первой машины)

все_ок2 : едет2 (езда второй машины)

все_ок3 : едет3 (езда третьей машины)

Эти параметры статичны

После начала игры, машины начинают движение (каждая со своей скоростью).

Машины могут завершить езду в 2-х случаях. Первый: машина доехала до правой границе игрового поля. В этом случае она просто исчезнет.

Второй: машину ловит мент, тогда игроку добавляются очки. Мент может находиться в одном из двух положений (в любом из них игрок получает 1 очко за пойманную машину): близко, средне. В третьем положении(после проезда машин, «далеко»), открывается конечное окно. Положение мента регулирует игрок кнопками на английской раскладке, на клавиатуре : «A» (положение мента «близко») «D» ((начальное положение) положение мента «средне») «W» (регулировка мента вверх ) «S» (регулировка мента вниз) «R» (положение мента у правой границы игрового поля (нажимается только после ловли всех машин)). После того как мент ловит машину, она продолжает ехать, до того момента, пока не достигнет крайнего правого края игрового поля.

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







Описание имитационной модели

Типы ресурсов


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

В модели 4 типа ресурсов, описывающий всю моделируемую ситуацию. Ресурсы постоянные.


$Resource_type Игровая_Ситуация : permanent

$Parameters

У_Мента : integer [0..200] = 50

Где_Мент : (f, s, t) = s

Х_Позиция : real [-50.0..1150.0] = 1.0

У_Позиция : real [-100.0..600.0] = 0.0

Очки : integer [0..150] = 1

Показать_Итог : (нет, да) = нет

Конец : (нет, да) = нет

$End

$Resource_type едет1 : permanent

$Parameters

едет1 : integer;

шаг1: integer;

занят1 : (да, нет)= нет

$End

$Resource_type едет2 : permanent

$Parameters

едет2 : integer;

шаг2: integer;

занят2 : (да, нет)= нет

$End

$Resource_type едет3 : permanent

$Parameters

едет3 : integer;

шаг3: integer;

занят3 : (да, нет)= нет

$End

Ресурсы


Ресурсы: собственно сама игровая ситуация и скорость каждой из машин

// Здесь определяются все постоянные ресурсы

$Resources

Ситуация : Игровая_Ситуация *******

едет1 : едет1 15 +3 *

едет2 : едет2 17 +2 *

едет3 : едет3 18 +4 *

$End




Операции


Каждому образцу операции соответствует одна операция.

Список:

$Operations

// Движение каждой из машин

все_ок1 : едет1

все_ок2 : едет2

все_ок3 : едет3

// Переставляем мента в каждую из 3-х позиций

Оп_П1 : О_Позиция_Мента_1 'A'

Оп_П2 : О_Позиция_Мента_2 'D'

Оп_П3 : О_Позиция_Мента_3 'R'

// Перемещаем мента вверх или вниз

Оп_МВ : О_Мент_Вверх 'W'

Оп_МН : О_Мент_Вниз 'S'

// Типа завершения езды машины

Оп_ЕП : О_Конец_Езды

// Инициализация терминации прогона

End : EndPoint

$End

Интерфейс

Интерфейс состоит из одного кадра анимации.

На нём отображается, кто и из какой группы выполнил лабораторную работу, информация по управляющим кнопкам, окно завершения прогона.



Выполнение

// Имя модели (*.pat, *.rtp, *.fun и *.dpt)

Model_name = krah


// Ресурсы (*.rss)

Resource_file = krah


// Операции (*.opr).Одновременно в модели может присутствовать или файл *.opr или файл *.dpt, но не оба сразу

OprIev_file = krah


// Собираемые показатели (*.pmd)

Statistic_file = krah


// Результаты прогона (*.pmv), выводятся внизу экрана

Results_file = krah


// Трассировка (*.trc)

// Если файл трассировки закомментировать, то отключится вся трассировка в модели

Trace_file = krah


// Анимация (*.trc)

Frame_file = krah


// Отображение анимации начинается с кадра Frame_number

Frame_number = 1


// Режим прогона, включить анимацию

Show_mode = Animation


// Скорость анимации. Чем больше значение, тем быстрее прогон

Show_rate = 12000.0


// Условие остановки модели. После Terminate_if можно указать любое логическое выражение

Terminate_if Time_now >= 10*60*60.0









Приложение

Функции

// Расчет координатной позиции мента

$Function Pos : integer

$Type = algorithmic

$Parameters

_p : such_as Игровая_Ситуация.Где_Мент

$Body

Calculate_if _p = f Pos = 900

Calculate_if _p = s Pos = 1000

Calculate_if _p = t Pos = 1150

$End$End

// Расчет очков за попадание

$Function Score : integer

$Type = algorithmic

$Parameters

_p : such_as Игровая_Ситуация.Где_Мент

$Body

Calculate_if _p = f Score = 1

Calculate_if _p = s Score = 1

Calculate_if _p = t Score = 1

$End

Последовательность


Случайная величина с распределением по равномерному закону

$Sequence длительность : real

$Type = uniform 123456789

$End

13



Случайные файлы

Файл
47119.rtf
sotsiologia.doc
902-1.rtf
28353.rtf
183746.rtf