Эта статья включает список ссылок , связанных материалов или внешних ссылок , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Октябрь 2024 ) |
Виртуальный конечный автомат ( VFSM ) — это конечный автомат (FSM), определенный в виртуальной среде. Концепция VFSM предоставляет метод спецификации программного обеспечения для описания поведения системы управления с использованием назначенных имен свойств входного управления и выходных действий .
Метод VFSM вводит модель исполнения и облегчает идею исполняемой спецификации. Эта технология в основном используется в сложных приложениях управления машинами , приборостроении и телекоммуникациях .
Реализация конечного автомата требует генерации логических условий (условий перехода состояний и условий действия). В аппаратной среде, где конечные автоматы нашли свое первоначальное применение, это тривиально: все сигналы являются булевыми . В отличие от этого, конечные автоматы, указанные и реализованные в программном обеспечении, требуют логических условий, которые по сути являются многозначными :
Кроме того, входные сигналы могут быть неизвестны из-за ошибок или неисправностей, то есть даже цифровые входные сигналы (рассматриваемые как классические булевы значения) фактически представляют собой 3 значения: низкий, высокий, неизвестный.
Положительная логическая алгебра решает эту проблему посредством виртуализации , создавая виртуальную среду, которая позволяет специфицировать конечные автоматы для программного обеспечения с использованием многозначных переменных.
Переменная состояния в среде VFSM может иметь одно или несколько значений, которые имеют отношение к элементу управления — в таком случае это входная переменная. Эти значения являются свойствами управления этой переменной. Свойства управления не обязательно являются конкретными значениями данных, а скорее определенными состояниями переменной. Например, цифровая переменная может предоставлять три свойства управления: TRUE, FALSE и UNKNOWN в соответствии с ее возможными булевыми значениями. Числовая (аналоговая) входная переменная имеет такие свойства управления, как: LOW, HIGH, OK, BAD, UNKNOWN в соответствии с ее диапазоном желаемых значений. Таймер может иметь свое состояние OVER (истек тайм-аут) в качестве своего наиболее значимого значения управления; другие значения могут быть STOPPED или RUNNING.
Другие переменные состояния в среде VFSM могут быть активированы действиями — в таком случае это выходная переменная. Например, цифровой выход имеет два действия: True и False. Числовая (аналоговая) выходная переменная имеет действие: Set. Таймер, который является как входной, так и выходной переменной, может быть запущен такими действиями, как: Start, Stop или Reset.
Виртуальная среда характеризует среду выполнения, в которой работает виртуальная машина . Она определяется тремя наборами имен:
Входные имена создают виртуальные условия для выполнения переходов состояний или входных действий. Виртуальные условия строятся с использованием алгебры положительной логики . Выходные имена запускают действия; действия входа, действия выхода , действия входа или действия перехода.
Правила построения виртуального состояния следующие:
Состояние входа описывается именами входов, которые создают набор :
Anames = {A1, A2, A3}
Bnames = {B1, B2}
Cnames = {C1, C2, C3, C4, C5}
и т. д.
Виртуальный вход VI
— это набор взаимоисключающих элементов имен входов. A VI
всегда содержит элемент always
:
VI = { всегда }VI = { всегда , A1 }VI = { всегда , A1 , B2 , C4 }
&
Операция (И) представляет собой набор входных имен:
А1 , В3 и С2 =>{A1, B3, C2}
|
Операция (ИЛИ) представляет собой таблицу наборов входных имен:
А1 | В3 | С2 =>
~
(Дополнение) — это дополнение набора входных имен:
~ А2 ={A1, A3}
Логическое выражение представляет собой ИЛИ-таблицу И-множеств ( дизъюнктивная нормальная форма ):
А1 и В3 | А1 и В2 и С4 | С2 =>
Логические выражения используются для выражения любой логической функции.
Логическое значение (истина, ложь) логического выражения вычисляется путем проверки того, является ли какой-либо из наборов И в таблице ИЛИ подмножествомVI
.
Состояние выхода описывается именами выходов, которые создают набор:
Xnames = {X1, X2}
Ynames = {Y1, Y2, Y3}
Виртуальный вывод VO
представляет собой набор взаимоисключающих элементов выходных имен.
Виртуальное имя и виртуальный вывод, дополненные именами состояний, создают виртуальную среду VE
, в которой определяется поведение.
Подмножество всех определенных имен входов, которое может существовать только в определенной ситуации, называется виртуальным входом или VI
. Например, температура может быть либо «слишком низкой», либо «хорошей», либо «слишком высокой». Хотя определены три имени входов, только одно из них может существовать в реальной ситуации. Это создает VI
.
Подмножество всех определенных выходных имен, которое может существовать только в определенной ситуации, называется виртуальным выходом или VO
. Оно создается текущим действием(ями) VFSM.
Спецификация поведения строится с помощью таблицы состояний, которая описывает все детали всех состояний VFSM.
Исполнитель VFSM запускается VI
текущим состоянием VFSM. С учетом спецификации поведения текущего состояния VO
устанавливается.
На рисунке 2 показана одна из возможных реализаций исполнителя VFSM. На основе этой реализации необходимо рассмотреть типичные характеристики поведения.
Таблица состояний определяет все детали поведения состояния VFSM. Она состоит из трех столбцов; первый столбец называет состояние, второй перечисляет виртуальные условия, построенные из входных имен с использованием алгебры положительной логики, а третий столбец содержит выходные имена:
Название штата | Условия) | Действия(я) |
---|---|---|
Текущее состояние | Вступление действия | Имя(я) выходных данных |
Выходное действие | Имя(я) выходных данных | |
Виртуальное состояние | Имя(я) выходных данных | |
... | ... | |
Название следующего штата | Виртуальное состояние | Имя(я) выходных данных |
Название следующего штата | Виртуальное состояние | Имя(я) выходных данных |
... | ... | ... |
Прочитайте таблицу следующим образом: первые две строки определяют действия входа и выхода из текущего состояния. Следующие строки, которые не предоставляют следующее состояние, представляют входные действия. Наконец, строки, предоставляющие следующее состояние, представляют условия перехода состояния и действия перехода. Все поля являются необязательными. Чистый комбинаторный VFSM возможен только в случаях, когда используются входные действия, но не определены переходы состояний. Действие перехода может быть заменено надлежащим использованием других действий.