Лабораторные работы (2011) (lab3Report)

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

Московский Энергетический Институт (Технический Университет)

Кафедра прикладной математики


















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

«Проектирование с помощью системы интеллектуального

имитационного моделирования РДО»

По предмету «Теория игр и исследование операция»







Студент:

Олег Авдиенков

Группа

А-13-07

Преподаватель:

Еремеев А.П.


















Москва 2011

Оглавление



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

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

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

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

Ресурсы 2

Операции 3

Интерфейс 3

Выполнение 4

Приложение 4

Используемые функции 4

Образец операции 5

Кадры анимации 7

Результаты 7































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



Необходимо реализовать в системе имитационного моделирования РДО следующую ситуацию:

Автомобиль едет по дороге, выполняя предписание светофоров.

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

По дороге едет автомобиль, вдоль дороги стоят 3 светофора, пользователь может управлять состоянием светофоров. Автомобиль следует предписаниям светофоров и, в зависимости от их цвета, либо останавливается, либо продолжает движение.

Конечное состояние

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

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

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



$Resource_type Car : permanent

$Parameters

state: integer[0..1] = 1 {0 - stay, 1 - go}

xCoord : real = 0

yCoord : real

$End





$Resource_type TraficLighter : permanent

$Parameters

state: integer[0..1] = 0 {0 - green, 1 - red}

xCoord : real

$End

Ресурсы



Для имитации модели необходимо 4 ресурса: машина и 3 светофора.

$Resources

MyCar: Car trace * * 190

Lighter1: TraficLighter * 125

Lighter2: TraficLighter * 390

Lighter3: TraficLighter * 595

$End

Операции



Для имитации модели нужно :

  • Операции переключения светофоров (совершается по нажатию клавиш 1, 2, 3)

  • Правила переключения состояний автомобиля

  • Операция движения автомобиля

  • Операция ожидания автомобиля


$Operations

switch_traficligher1 : o_switchTraficLighter1 '1'

switch_traficligher2 : o_switchTraficLighter2 '2'

switch_traficligher3 : o_switchTraficLighter3 '3'

switch_car_state1: o_switch_car_state1

switch_car_state2: o_switch_car_state2

switch_car_state3: o_switch_car_state3

go : o_go

stay : o_stay

$End











Интерфейс



Используется 1 кадр анимации

Выполнение

Файл прогона

Model_name =car


Resource_file =car

OprIev_file =car

Statistic_file =car

Results_file =car

Trace_file =car

Frame_file =car

Frame_number =1

Show_mode = Animation

Show_rate = 1.0


Terminate_if MyCar.xCoord > 683

Приложение

Используемые функции

FUN


$Function IncrementCoord :real

$Type = algorithmic

$Parameters

oldCoord : real

$Body

Calculate_if 0=0 IncrementCoord = oldCoord + 0.01

$End


$Function SwitchState :real

$Type = algorithmic

$Parameters

oldState : integer

$Body

Calculate_if oldState = 0 SwitchState=1

Calculate_if oldState = 1 SwitchState=0

$End

Образец операции


PAT


$Pattern o_switchTraficLighter1 : keyboard

$Relevant_resources

_lighter : Lighter1 keep Keep

$Time = 0

$Body

_lighter

first

Convert_begin trace

state set SwitchState(_lighter.state)

Convert_end trace

$End


$Pattern o_switchTraficLighter2 : keyboard

$Relevant_resources

_lighter : Lighter2 keep Keep

$Time = 0

$Body

_lighter

first

Convert_begin trace

state set SwitchState(_lighter.state)

Convert_end trace

$End


$Pattern o_switchTraficLighter3 : keyboard

$Relevant_resources

_lighter : Lighter3 keep Keep

$Time = 0

$Body

_lighter

first

Convert_begin trace

state set SwitchState(_lighter.state)

Convert_end trace

$End


$Pattern o_stay : operation

$Relevant_resources

_car : MyCar keep keep

$Time = 0.1

$Body

_car

Choice from _car.state=0

first

Convert_begin trace

Convert_end trace

$End


$Pattern o_go : operation

$Relevant_resources

_car : MyCar keep keep

$Time = 0.1

$Body

_car

Choice from _car.state=1

first

Convert_begin trace

xCoord set IncrementCoord(_car.xCoord)

Convert_end trace

$End




$Pattern o_switch_car_state1 : rule

$Relevant_resources

_car : MyCar Keep

$Body

_car

Choice from Lighter1.state = 1 and _car.xCoord>74 and _car.xCoord<75

first

Convert_rule

state set 1

$End


$Pattern o_switch_car_state2 : rule

$Relevant_resources

_car : MyCar Keep

$Body

_car

Choice from Lighter2.state = 1 and _car.xCoord>339 and _car.xCoord<340

first

Convert_rule

state set 1

$End


$Pattern o_switch_car_state3 : rule

$Relevant_resources

_car : MyCar Keep

$Body

_car

Choice from Lighter3.state = 1 and _car.xCoord>544 and _car.xCoord<545

first

Convert_rule

state set 1

$End

Кадры анимации


FRM

$Frame Frame1

$Back_picture = <100 100 100> back


Show_if Lighter1.state = 0

bitmap [Lighter1.xCoord, 72, lgreen,mlgreen]

Show_if Lighter1.state = 1

bitmap [Lighter1.xCoord, 72, lred,mlred]

Show_if Lighter2.state = 0

bitmap [Lighter2.xCoord, 72, lgreen,mlgreen]

Show_if Lighter2.state = 1

bitmap [Lighter2.xCoord, 72, lred,mlred]

Show_if Lighter3.state = 0

bitmap [Lighter3.xCoord, 72, lgreen,mlgreen]

Show_if Lighter3.state = 1

bitmap [Lighter3.xCoord, 72, lred,mlred]

Show bitmap [MyCar.xCoord, MyCar.yCoord, car_1,mcar_1]

Show

text [ 50,350, 520, 20, <255 255 255>, <0 0 0>, 'Использовать кнопки 1, 2, 3 для управления светофорами' ]

text [ 50,400, 520, 20, <255 255 255>, <0 0 0>, 'Пройден путь: ' ]

text [ 150,400, 520, 20, <255 255 255>, <0 0 0>, MyCar.xCoord ]

$End









Результаты


PMD


$Results

Position : get_value MyCar.xCoord

State : get_value MyCar.state

$End


В результате выполненной работы реализована имитационная модель в системе моделирования РДО, и проведены успешные испытания ее работы. Я ознакомился с принципами проектирования с помощью системы имитационного моделирования РДО.

8



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

Файл
10064.rtf
30091-1.rtf
46416.rtf
129196.rtf
168958.rtf




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