Автоматическое управление железнодорожными путями
Построение рисунков автоматов по заданному условию задачи. Блок-схема алгоритма перестроения поезда на свободный путь с помощью автоматического управления железнодорожными путями. Составление листинга программы. Скриншоты приложения с выполнением примера.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.08.2012 |
Размер файла | 578,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Содержание
1. Задание
2. Введение
3. Рисунки автоматов
4. Блок схема
5. Листинг программы
6. Скриншоты с выполнением примера
Заключение
Список литературы
1. Задание
Едет поезд по основному пути. Подъезжает к разъезду с двумя путями. Если первый путь свободен, то он едет по первому. Если первый занят, а второй свободен, то он едет по второму. Если первый и второй заняты, то он едет по основному.
Построить автомат управления железнодорожными путями.
2.Введение
Основными задачами теории автоматов являются задачи анализа и синтеза автоматов. Под анализом автомата понимают установление отображения, реализуемого схемой заданного автомата А, а под синтезом --построение схемы автомата, который индуцирует заданное отображение f.
В теории автоматов обычно выделяют несколько этапов (уровней), среди которых особое значение имеют абстрактный и структурный этапы.
На абстрактном уровне рассматриваются задачи, связанные с распознаванием эквивалентности, изоморфизма и изоморфного вложения автоматов, абстрактного анализа и синтеза автоматов, минимизации автоматов, изучаются вопросы алгебры автоматов и методы разложения автоматов по различным операциям, которые решают проблему последовательной, параллельной и общей декомпозиции абстрактных автоматов.
Если в абстрактной теории автоматов везде под автоматом подразумевается абстрактный автомат, заданный либо графоидом, либо матрицей соединений, то в структурной теории автоматов, говоря об автомате, имеют в виду структурную схему, состоящую из элементов некоторого стандартного комплекса, в который входят набор элементарных автоматов и функционально полный набор логических элементов. Поэтому на структурном уровне изучаются методы перехода от графоида или матрицы соединений автомата к структурной схеме автомата, приемы построения схем сложных автоматов из схем элементарных автоматов и логических элементов, рассматриваются способы кодирования состояний, входных и выходных сигналов автомата, различные варианты которых определяют, в конечном счете, сложность структурной схемы автомата при неизменном законе его функционирования.
В абстрактной теории автоматов важное значение имеют задачи анализа и синтеза автоматов, а на структурном уровне на первый план ставится проблема синтеза автоматов.
Задачи абстрактного анализа и синтеза автоматов противоположны друг другу. Различают канонические и общие задачи абстрактного анализа и синтеза автоматов.
Канонические задачи анализа и синтеза формулируются следующим образом:
1) по заданному абстрактному автомату Мили или Мура А найти соответствующее ему каноническое множество событий М,
2) по заданному автоматному множеству событий М найти абстрактный автомат Мили или Мура А, каноническое множество событий которого совпадает с М.
Одно и то же событие допускает несколько эквивалентных форм регулярных выражений. Поэтому в результате анализа требуется отыскать регулярное выражение, имеющее минимальную циклическую глубину.
Каноническая задача синтеза автоматов по своему существу неоднозначна. Это объясняется тем, что абстрактный автомат не определяется однозначно соответствующим ему каноническим множеством событий, поскольку одно и то же автоматное отображение может индуцироваться различными абстрактными автоматами. Поэтому в результате решения канонической задачи синтеза находим один из возможных автоматов, а затем ставится задача минимизации абстрактных автоматов, которая заключается в отыскании автомата с минимальным числом состояний.
Общие задачи анализа и синтеза автоматов формулируются следующим образом:
1) по заданному абстрактному автомату Мили или Мура А найти событие, которое представлено в автомате А любым множеством выходных букв или состоянии автомата;
2) по любому конечному множеству событий построить абстрактный автомат Мили или Мура А. который представляет каждое событие этого множества некоторым множеством выходных букв или состояний.
Существует стандартный прием сведения обшей задачи синтеза автоматов к канонической задаче синтеза, которая всегда имеет решение, основанный на следующем утверждении.
3. Рисунки автоматов
S0
a/x
S1
b/y
S2
a/x
b/y
a/x
S3
a/x
S4
S0 - железнодорожный разъезд
S1 - первый путь
S2 - второй путь
S3 - третий путь
S4 - пункт назначения
а/х - свободен, едем напрямую
b/y - занят, встаем на следующий путь
Рисунок 1 - Автомат Милли
д |
а |
b |
|
S0 |
S1 |
- |
|
S1 |
S4 |
S2 |
|
S2 |
S4 |
S3 |
|
S3 |
S4 |
- |
|
S4 |
- |
- |
л |
а |
b |
|
S0 |
х |
- |
|
S1 |
х |
у |
|
S2 |
х |
у |
|
S3 |
х |
- |
|
S4 |
- |
- |
S0
a
S1/х
b
S2/у
a
b
a
S3/у
a
S4/х
S0 - железнодорожный разъезд
S1/х - первый путь
S2/у - второй путь
S3/у - третий путь
S4/х - пункт назначения
а - свободен, едем напрямую
b - занят, встаем на следующий путь
Рисунок 2 - Автомат Мура
4. Блок схема
Свободен Занят
Свободен Занят
5. Листинг программы
Option Explicit
Dim w, h
Dim k, dl
Dim mass() As Single, i%, j%, sv%, sv1%, ti%, fl As Boolean
Function y1(x As Single) As Single
y1 = 0
End Function
Function y2(x As Single) As Single
y2 = (x - w / 2)
End Function
Function y3(x As Single) As Single
y3 = -(x - w / 2)
End Function
Private Sub Combo1_Click()
k = Combo1
ReDim mass(1 To 2, 1 To k)
For j = 0 To 9
Line1(j).Visible = False
Next j
For j = 0 To k - 1
Line1(j).Visible = True
Next j
End Sub
Private Sub Combo2_Click()
ti = Combo2.ListIndex + 1
End Sub
Private Sub Command2_Click()
Timer1.Enabled = Not (Timer1.Enabled)
End Sub
Private Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.Width = 2 * Picture1.Height
Picture1.Scale (0, -500)-(1000, 500)
Picture1.DrawWidth = 4: Picture1.ForeColor = &HC0C0C0
w = Picture1.ScaleWidth: h = Picture1.ScaleHeight
Shape2.Width = w: Shape2.Height = h
Shape2.FillColor = Picture1.BackColor
Me.Width = Picture1.Width + 100
Me.Height = Picture1.Height + 1000
Timer1.Enabled = False
Timer1.Interval = 10
For i = 0 To 2
Shape1(i).Left = (Picture2.ScaleWidth - Shape1(i).Width) / 2
Shape1(i).Top = Shape1(i).Height / 2 + 1.5 * i * Shape1(i).Height
Shape1(i).BackStyle = 1
Shape1(i).BackColor = vbRed
Option2(i).BackColor = Me.BackColor
Option2(i).Visible = False
Next i
Picture2.Left = w / 2 + Picture2.Width
Picture2.Top = -Picture2.Height / 2
dl = 17
Picture1.Line (0, 0)-(w, 0)
Picture1.Line (w / 2, 0)-(w, h / 2)
Picture1.Line (w / 2, 0)-(w, -h / 2)
For i = 1 To 10
Combo1.AddItem i
Combo2.AddItem i * 10 + 40 & " km/u"
Next i
Combo1.ListIndex = 7
k = Combo1
ReDim mass(1 To 2, 1 To k)
For j = 0 To 9
Line1(j).Visible = False
Next j
For j = 1 To k
Line1(j - 1).Visible = True
Next j
Combo2.ListIndex = 4
ti = Combo2.ListIndex + 1
fl = False
End Sub
Private Sub Option1_Click(Index As Integer)
fl = Index
Option2(sv).Value = True
Shape3.Left = Option1(Index).Left
For i = 0 To 2
Option2(i).Visible = Index
Next i
End Sub
Private Sub Option2_Click(Index As Integer)
If fl = True Then sv1 = Index
End Sub
Private Sub Timer1_Timer()
If mass(1, UBound(mass) - 1) > w * 1.1 Then
ReDim mass(1 To 2, 1 To k)
End If
mass(1, 1) = mass(1, 1) + ti
mass(2, 1) = mass(1, 1) - dl
For i = 2 To k
mass(1, i) = mass(1, 1) - (i - 1) * (dl + 10)
mass(2, i) = mass(1, i) - dl
Next i
If mass(1, 1) < w / 4 Then
If fl = False Then
Randomize: sv = Int(Rnd * 3)
Else
sv = sv1
End If
For i = 0 To 2
Shape1(i).BackColor = vbRed
Next i
Shape1(sv).BackColor = vbGreen
End If
For i = 1 To k
If mass(1, i) - dl / 2 <= w / 2 Then
Line1(i - 1).X1 = mass(1, i)
Line1(i - 1).X2 = mass(2, i)
Line1(i - 1).y1 = y1(mass(1, i))
Line1(i - 1).y2 = y1(mass(2, i))
Else
Select Case sv
Case 0
Line1(i - 1).X1 = mass(1, i)
Line1(i - 1).X2 = mass(2, i)
Line1(i - 1).y1 = y3(mass(1, i))
Line1(i - 1).y2 = y3(mass(2, i))
Case 1
Line1(i - 1).X1 = mass(1, i)
Line1(i - 1).X2 = mass(2, i)
Line1(i - 1).y1 = y1(mass(1, i))
Line1(i - 1).y2 = y1(mass(2, i))
Case 2
Line1(i - 1).X1 = mass(1, i)
Line1(i - 1).X2 = mass(2, i)
Line1(i - 1).y1 = y2(mass(1, i))
Line1(i - 1).y2 = y2(mass(2, i))
End Select
End If
Next i
End Sub
6. Скриншоты с выполнением примера
Заключение
Благодаря созданию автоматического управления железнодорожными путями можно легко перестраивать поезд на свободный путь.
алгоритм автоматическое управление листинг
Список использованной литературы
1. В.Брауэр Введение в теорию конечных автоматов.- М.: Радио и связь, 1999
2. Хопкрофт Дж. Э., Мотвани Р., Ульман Дж. Д. Введение в теорию автоматов, языков и вычислений, 2-е изд. М.: Вильямс, 2002
3.Савельев А.Я. Прикладная теория цифровых автоматов, 1-е изд. М.: Высшая школа, 2001
4. Карпов Ю.Г. Теория автоматов: Учебник / Ю. Г. Карпов. - СПб. : Питер, 2003. - 208с.
1. Размещено на www.allbest.ru
Подобные документы
Элементы и переменные, используемые для составления записи в Паскале. Основные числовые типы языка Turbo Pascal. Составление блок-схемы приложения, программирование по ней программы для вычисления функции. Последовательность выполнения алгоритма.
лабораторная работа [256,9 K], добавлен 10.11.2015Реализация приложения, которое выполняет считывание, обработку, визуализацию и аппроксимацию экспериментальных данных полиномиальной функции. Блок схема алгоритма аппроксимации методом наименьших квадратов. Разработка интерфейса и листинга программы.
курсовая работа [1,1 M], добавлен 07.07.2013Изучение категории типов данных, видов выражений и операций, работа на языке Си. Составление программы вычисления значения функции у(х) при произвольном значении х. Блок-схема алгоритма. Описание текста программы и рассмотрение контрольного примера.
лабораторная работа [124,7 K], добавлен 09.01.2012Разработка приложения в среде Delphi для нахождения кратчайшего пути передвижения короля по заданному полю, соединяющего два заданных поля доски. Разработка и поиск алгоритма решения задачи, спецификация исходных данных и функций, тестирование программы.
курсовая работа [358,5 K], добавлен 19.10.2010Основные аналитические соотношения. Блок схемы и алгоритм решения задачи. Проверка работоспособности алгоритма вручную. Таблица идентификации переменных. Формы входной и выходной печати. Разработка и отладка программы. Инструкция для работы с программой.
курсовая работа [69,8 K], добавлен 13.02.2012Разработка алгоритма и программы управления поворотной платформой лифта при помощи языка программирования Java Script. Проектирование приложения к браузеру в среде Adobe Dreamweaver CS5. Схема алгоритма, текст программы для двухмерной модели лифта.
курсовая работа [353,1 K], добавлен 18.05.2013Изучение условий поставленной задачи и используемых данных для разработки программы хранения информации о рейсах поезда. Описание разработанных функций, листинга, блок-схем алгоритмов и дерева функции. Рассмотрение сценария диалога данной программы.
курсовая работа [532,7 K], добавлен 20.07.2014Решение задачи по методу Адамса. Блок-схема функции main. Блок-схема функции Adams. Листинг программы. Блок-схема функции MMinor. Блок-схема функции MatrixMultiply. Блок-схема функции Determinant. Результат решения задачи на ЭВМ.
курсовая работа [68,9 K], добавлен 16.04.2004Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Выбор и обоснование методов расчета. Разработка основной программы. Блок-схемы алгоритмов. Распечатка листинга.
курсовая работа [1,5 M], добавлен 21.11.2013Составление блок-схемы алгоритма решения задачи, погрешности вычисления суммы членов числового ряда. Разработка программ на языке на Visual Basic, работа с массивами. Особенности работы со строковыми данными. Варианты реализации формы приложения.
контрольная работа [220,4 K], добавлен 18.06.2010