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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

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

Определяющими для автоматного программирования являются следующие особенности:

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

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

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

Название автоматное программирование оправдывается ещё и тем, что стиль мышления (восприятия процесса исполнения) при программировании в этой технике практически точно воспроизводит стиль мышления при составлении формальных автоматов (таких как машина Тьюринга, автомат Маркова и др.)

сфетофор visual basic модель

3. Схема и математическая модель работы светофора

 

Мы имеем граф-схему работы светофора:

 

 

 

 

 

 

 

 

 

0

1

 

 

 

1

0

 

 

 

 

Графическая модель дороги

 

Зеленый свет светофора для автомобилей горит 60 секунд после чего происходит проверка датчика (нажат/не нажат 1/0), если датчик нажат то включается красный на 30 секунд после чего опять зеленый на 60 секунд. Далее если датчик не нажат то светофор продолжает гореть зеленым до следующей проверки датчика.

 

Математическая модель

 

Математическая модель состоит из двух автоматов G и W, где G-автомат управляющий светофором, а W-автомат, отражающий наличие или отсутствие пешеходов.

Временный сигнал отсутствует x1=0 в течении 60 секунд и появляется x1=1 в течении 30 секунд.

Красный сигнал светофора z=1 включается когда x1=1

Датчики это x2, при срабатывании x2=1, в остальное время x2=0

:= {q2/x1w2, q3/x1w1},= {q1/^x1},= {q1/^x1},:= {w2/^x2},= {w1/x2},

 

4. Работа модели в Visual basic

 

Общий текст программы имеет вид:Explicitnum1 As IntegerfirstTime As DatelastTime As DatenewTime As DatedeltaLastTime As LongdeltaFirstTime As LongsensorColor As LongtimerColor As LongResetNewProtocol ()= Time= firstTime= firstTime. DrawWidth = 1. Line (58, 460) - (422, 514), &H8000000F, BF. ScaleMode = 3. DrawWidth = 5. Line (60, 470) - (420, 470), RGB (0, 0, 0). Line (60, 487) - (420, 487), RGB (0, 0, 0). Line (60, 504) - (420, 504), RGB (0, 0, 0)SubDrawNewProtocol ()tmpTimeBegin As LongtmpTimeEnd As Long= DateDiff ("s", firstTime, lastTime)= DateDiff ("s", firstTime, newTime). DrawWidth = 1. Line (60 + 4 * tmpTimeEnd, 460) - (60 + 4 * tmpTimeEnd, 514), RGB (128, 128, 128). DrawWidth = 3. Line (60 + 4 * tmpTimeBegin, 470) - (60 + 4 * tmpTimeEnd, 470), s2. FillColor. Line (60 + 4 * tmpTimeBegin, 487) - (60 + 4 * tmpTimeEnd, 487), sensorColor. Line (60 + 4 * tmpTimeBegin, 504) - (60 + 4 * tmpTimeEnd, 504), timerColorSubEventNewProtocol (timeEvent As Date)= DateDiff ("s", firstTime, timeEvent)deltaFirstTime > 90 Then= newTime= timeEvent= DateDiff ("s", lastTime, timeEvent)IfSubprotocol (text As String). text = Str (DateDiff ("s", firstTime, Time)) + ": " + text + vbCrLf + Text1. textSubSub Command1_Click ()txtGreen. text 30 Then"неправильное числ"m1If= Time= firstTime= firstTime("Начало работы"). Locked = True. Locked = True. BackColor = &H8000000A. BackColor = &H8000000A. Visible = False. Visible = True. Visible = False. Visible = True= RGB (0, 200, 0). Interval = txtGreen. text * 1000. Interval = txtRed. text * 1000("Включен таймер зелёного"). Enabled = True. Visible = False. Visible = True:Subsemag ()(Time). FillColor = &HFF&. FillColor = &HFF&. FillColor = &HFF00&. FillColor = &HFF00&("Зажёгся зелёный")Subsemar ()(Time). FillColor = &HFF&. FillColor = &HFF&. FillColor = &HFF00&. FillColor = &HFF00&("Зажёгся красный")SubSub Command2_Click ()= 0. Locked = False. Locked = False. BackColor = &H80000005. BackColor = &H80000005. Enabled = False. Enabled = False. Visible = False. Visible = False. Visible = True. Caption = "Датчики отжаты (давить левой кнопкой мыши)". Visible = False= RGB (200, 200, 0). FillColor = &H808080. FillColor = &H808080. FillColor = &H808080. FillColor = &H808080. Visible = True. Visible = False("Конец работы")SubSub Command3_Click (). text = ""SubSub Form_Load (). Hide. Show. Interval = 500= RGB (200, 200, 0)SubSub Image1_Click ()SubSub shd1_Click ()(Time)= 1. Visible = False. Visible = False. Visible = True. Caption = "Дорожный переход (есть пешеходы)"("Датчики нажаты")= RGB (200, 0, 200)SubSub shd2_Click ()(Time)= 0. Visible = False. Visible = False. Visible = True. Caption = "Датчики отжаты (давить левой кнопкой мыши)"("Датчики отжаты")= RGB (200, 200, 0)SubSub t1_Timer ()(Time). Enabled = Falsenum1 = 1 ThenIf. Enabled = True= RGB (200, 0, 0)("Включен таймер красного")SubSub t2_Timer ()(Time). Enabled = Falses1. FillColor = &HFF& Then. Enabled = True. Enabled = TrueIf= RGB (0, 200, 0)("Включен таймер зелёного")SubSub t3_Timer (). Hide. Show. Interval = 0Sub

 

Окно программы

5. Вывод

 

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

По результатам компьютерной модели видно следующее:

 

 

Время горения красного и зеленого сокращено чтобы нагляднее видеть изменения:

 

 

В графе Светофор зеленым цветом обозначается зеленый свет светофора и красным - красный свет светофо