Электронное моделирование
41
Электронное моделирование
УДК 004.942:004.023
Моделирование технических задач сетями Петри в среде HPSim
В. А. Ходаковский
Петербургский государственный университет путей сообщения Кафедра «Математика и моделирование» [email protected]
Аннотация. Рассматриваются возможности сетей Петри и среды HPSim при моделировании сложных дискретных систем с детерминированной и стохастической реакцией. Даются примеры сетей Петри по моделированию простейших и сложных технических систем в среде HPSim.
Ключевые слова: сети Петри; среда моделирования HPSim; модель; моделирование; сложная система.
1 Введение
Заметное повышение интенсивности железнодорожных перевозок, характерное для настоящего времени, приводит к необходимости разработки новых подходов к управлению движением и другими процессами, присущими железнодорожному транспорту. Повышение скоростей движения и сокращение сроков обслуживания должны осуществляться при строгом соблюдении всех видов безопасности. Данную техническую задачу можно решить с использованием ситуационных и аналитических центров, в которых широко применяются методы математического моделирования дорожных ситуаций и методы выработки предложений для принятия решения. По результатам математического моделирования диспетчер может выбрать вариант, наиболее удовлетворяющий поставленным требованиям и условиям, т. е. оптимальный по выбранному критерию.
В последнее время при моделировании транспортных потоков все чаще стали применяться системы, использующие сети Петри [1]. Не в последнюю очередь это связано с тем, что сети Петри функционально очень просты и состоят всего из трех элементов: «Позиций» (Place), «Переходов» (Transition), «Дуг» (Агс). К началу моделирования «Позиции» содержат некоторое начальное количество фишек. После запуска процесса моделирования фишки переходят из одной позиции в другую в соответствии с матрицей инциден-ций и условиями срабатывания «Переходов». Моделирование продолжается до истечения времени или заданного числа шагов.
В простейшем случае при функционировании и отображении сети Петри используются следующие активные объекты:
- позиции, которые отображаются кружком, обладают емкостью и хранят количество фишек, не превышающее их емкости; текущее содержание фишек отображается в кружке;
- переходы, которые отображаются прямоугольником, могут активироваться, и в активном режиме будут передаваться фишки от входных позиций к выходным. Срабатывание переходов описывается входной и выходной функциями (условиями). Срабатывание переходов может носить детерминированный и случайный характер. Если функция срабатывания пе-
42
Электронное моделирование
рехода - детерминированная, то задается время ожидания срабатывания. Если функция срабатывания перехода - случайная, то задаются параметры закона распределения времени ожидания срабатывания. Некоторый переход j может сработать, если:
• выполняется входное условие, состоящее в том, что во входной позиции к имеются фишки, количество Рк которых больше или равно весу связи - Skj, соединяющей данный переход - j с входной позицией - к, т. е. Рк > Skj , где Рк - текущее количество фишек в позиции с номером к; Stj - вес связи позиции с номером к и переход с номером j;
• выполняется выходное условие, состоящее в том, что емкость выходной позиции - Ск больше или равна сумме текущего количества Рк фишек в ней и веса связи - Skj, соединяющей переход j с этой выходной позицией, т. е. Ск > Рк + Skj;
- дуги отображаются стрелкой, обладают типом и весом и могут передавать количество фишек, равное весу. Имеется 4 типа связей: (0) - связи нет, (1) - связь нормальная, (2) - связь запрещающая (In-gibitor), (3) - связь тестовая (проверяется входное условие срабатывания перехода: если оно выполнено, то переход срабатывает, но фишки из входной позиции не вычитаются).
Особенностью сетей Петри является то, что позиция не может передать фишку в другую позицию, аналогично переход не может передать фишки другому переходу, то есть допустимыми связями являются переход - позиция - переход либо позиция - переход - позиция.
Несмотря на всю свою простоту, сеть Петри может моделировать очень сложные динамические системы, в которых имеются параллельные процессы.
Рассматривается задача моделирования сетями Петри сложных детерминированных и стохастических автоматических систем. Как известно, сложная система
всегда в своем составе имеет простейшие блоки (элементарные звенья), из которых, как из кубиков, можно создавать сложную систему. Рассматриваются элементарные логические, арифметические и другие блоки, моделируемые сетями Петри.
2 Постановка задачи
Требуется средствами сетей Петри в среде HPSim разработать элементарные блоки, имитирующие основные логические и арифметические операции. На примерах с использованием указанных блоков необходимо показать принципы моделирования сложных дискретных систем.
3 Краткое описание среды HPSim
Среда является свободно распространяемой и может с успехом использоваться в учебном процессе вузов при моделировании процессов в сложных системах. Вкладки и иконки программы - стандартные для программ Windows. Окно программы, появляющееся после запуска HPSim, представлено на рис. 1.
Во вкладке «File» пояснений требуют только пункты: «Save, «Save as» и «Export». Первые два позволяют сохранить модель в виде файла с расширением *.hps - это запускаемый файл, содержащий графическое изображение модели, а последний позволяет сохранить результаты моделирования в виде:
- «View» bit-map- таблица с расширением *.bmp;
- «Net» - сохраняется текстовый файл с расширением *.txt, хранящий названия и содержание векторов позиций, матрицы инциденций и матрицы типов связей.
Программа имеет два основных режима: «Редактирование» ^ и «Модели-
ll^
рование» , переключение между которыми осуществляется кнопкой, расположенной в верхней части окна программы. Перед запуском программы обычно
осуществляют сброс кнопкой “, затем
Электронное моделирование
43
переключают в режим моделирования
и запускают программу на пошаговое решение прогон ^ или быстрый
Остановить решение можно
прогон
II
кнопкой . Если по результатам моделирования предполагается анализ работы
ровать выходной файл с расширением *.csv, который может быть проанализирован в среде Microsoft Office Excel.
В режиме «Редактирования» кнопкой
и
" можно показать или спрятать окно свойств активных объектов модели.
модели, то можно кнопкой ^ сформи-
Рис. 1 Основной экран среды HPSim
4 Моделирование логических операций
В логических устройствах основными переменными, над которыми совершаются операции, являются «1» - истина «True» и «0» - ложь «False». Сети Петри обрабатывают фишки, поэтому при моделировании логических операций можно интерпретировать наличие фишки в позиции как «1», т. е. истина «True», а ее отсутствие как «0» - ложь «False».
4.1 Логическое отрицание «НЕ»
Для моделирования логического отрицания достаточно использовать входную позицию А (рис. 2), переход В, выходную позицию С и две дуги: дугу АоС -Inhibitor (Запрет) и дугу ВоС - Normal.
Рис. 2. Модель операции логического отрицания
Если во входной позиции А имеется фишка («1» - истина «True»), то за счет запрещающей связи переход В не может активироваться, поэтому в выходной позиции С фишка будет отсутствовать, что соответствует выходу «0» - ложь «False». Активация перехода В, то есть генериро-
44
Электронное моделирование
вание и передача фишки, будет возможна, лишь в том случае, если фишка в позиции А будет отсутствовать, на выходе в позиции С появится фишка, а это в свою очередь интерпретируется как «1» - истина «True».
4.2 Логическое «И»
Для моделирования операции «И» необходимо не менее двух входных позиций - А и В (рис. 3), переход С и выходная позиция D. Дуги АоС и ВоС имеют тип Test, а дуга СоО имеет тип Normal.
Рис. 3 Модель логической операции «И»
Если хотя бы в одной из позиций А или В отсутствует фишка, то переход С не активируется. Если же в обеих позициях фишки есть, то переход активируется и в выходную позицию передается фишка. При необходимости данная модель может передать на выход количество фишек, равное весу дуги CoD.
реход Р1 активируется и передает фишку в позицию С, если в позиции А фишки нет, а в позиции «В» фишка есть. Переход Р2 активируется, если и в позиции А, и в позиции В фишки есть. Наконец, переход Р3 активируется, если в позиции В фишки нет, а в позиции А фишка есть.
Рис. 4 Модель логической операции «ИЛИ»
5 Моделирование арифметических операций
5.1 Модель сумматора с весом
На рис. 5 приведена модель арифметического десятичного сумматора. В позициях А и В задается начальное количество фишек, равное КА и КВ. Дуги АоР1, ВоР2, Р1оС и Р2оС имеют вес hAP1, hAP2, hP1c, ^Р2С. Переходам Р1 и Р2 задан режим немедленного срабатывания. Емкость позиции С должна превышать результат суммирования.
4.3 Логическое «ИЛИ»
Для моделирования операции «ИЛИ» необходимы: не менее двух входных позиций А и В, три перехода Р1, Р2, Р3 и выходная позиция С (рис. 4). Дуги АоР1 и ВоР3 имеют тип Inhibitor, дуги Р1оС, Р2оС и Р3оС имеют тип Normal, а дуги АоР2, ВоР3, ВоР1 и ВоР2 имеют тип Test.
Фишка в выходной позиции С появляется в случае, если активируется любой из переходов Р1, Р2 или Р3. В частности, пе-
Рис. 5 Модель арифметического сумматора
Электронное моделирование
45
В указанных условиях количество фишек в позиции С окажется равным:
С = Е (К а / hApi )hpic +
+ Е(Кв / hAp2 )hp2C,
где hAP1 - вес дуги АоР1; hAP2 - вес дуги АиР2, hP1c - вес дуги РЮС; hP2c - вес дуги Р2оС;
Е(Х) - вычисление целой части числа Х.
В данной модели переход Р1 срабатывает число раз, равное целому от деления количества фишек в позиции А на вес дуги РЮС, соответственно переход Р2 срабатывает.
5.2 Модель вычитающего устройства
На рис. 6 приведена модель этого устройства. В позиции А находится целое десятичное уменьшаемое. В позиции В находится целое вычитаемое, в позиции С помещается результат вычитания, причем емкость позиции С должна превышать максимальный результат.
Рис. 6 Модель вычитающего устройства
Для выполнения данной операции используется два перехода Р1, которые срабатывают только после того, как в позиции В не останется ни одной фишки, поскольку дуга ВоР1 является запрещающей. Переход Р2 не имеет выходной позиции, срабатывает первым столько раз, сколько фишек в позиции В.
В результате моделирования после числа шагов, равного числу фишек в по-
зиции А, моделирование останавливается и в позиции С оказывается число фишек, равное С - А = В.
Все дуги данной модели (кроме одной ВоР1) имеют нормальный режим с единичным весом, дуга ВоР1 установлена в режим Ingibitor (Запрет).
6 Моделирование простых дискретных
устройств
6.1 Модель счетного триггера
Основу триггера составляют четыре активных элемента: два перехода - Р2, Р3 и две позиции - С, D, которые дугами соединены в кольцо; по нему фишки передаются против или по часовой стрелке (рис. 7). В начальном состоянии фишка есть в позиции С, а в позиции D она отсутствует. Позиции А, В и переход Р1 необходимы для генерации фишек, число которых определяется их начальным содержанием в позиции А.
При запуске модели активируется переход Р1, и через интервал его реакции, который определяется параметрами этого перехода, фишка передается в позицию В. В результате создаются условия для активации перехода Р2, поскольку на его обоих входах есть фишки. Переход Р2 активируется, и фишка передается в
позицию D.
46
Электронное моделирование
По истечении второго времени реакции перехода Р1 новая фишка появляется в позиции В, но теперь выполняются условия для активации перехода Р3, поскольку теперь на обоих его входах есть фишки (D = 1 и В = 1). Переход Р3 срабатывает и передает фишку в позицию С, то есть триггер вернулся в исходное состояние. Срабатывание триггера происходит до тех пор, пока есть фишки в позиции А.
6.2 Модель генератора с запуском
На рис. 8 приведена модель генератора фишек, появляющихся через интервал, определяемый временем ожидания перехода Р1. Этот переход активируется сразу после запуска модели, а по истечении времени ожидания передает фишку в позицию В, которая тестовой дугой ВоР2 связана с переходом Р2. Переход Р2 генерирует фишки через интервалы, равные времени его ожидания. Фишки накапливаются в позиции D, пока их количество не превысит емкости этой позиции. Позиции А, В и переход Р1 являются ключом для запуска данного генератора.
Рис. 8 Модель генератора с запуском
Количество фишек, генерируемых данным генератором, определяется емкостью позиции D, а интервал между импульсами -временем ожидания перехода Р2.
6.3 Модель двоичного счетчика
Из нескольких счетных триггеров можно сформировать многоразрядный двоичный счетчик. На рис. 9 приведена модель такого счетчика.
Триггер младшего разряда находится справа. Он отличается от остальных тем, что в его кольце нет фишки, задающей начальное положение триггера. Эта фишка появляется только после запуска модели.
Прямоугольником в старших триггерах обведены позиции, являющиеся индикаторами состояния соответствующего разряда счетчика. Наличие фишки в этих позициях соответствует «1» на выходе данного разряда.
Все дуги имеют единичный вес. Все позиции, кроме нижнего ряда, имеют емкость, равную единице, а все переходы настроены на время срабатывания, равное единице.
Фишки в позициях нижнего ряда в модели являются десятичным выходом счетчика. Емкости позиций нижнего ряда должны быть в соотношении 1 - 2 - 4 -8 - 16 - 32 - 64.
6.4 Модель генератора псевдослучайной
последовательности на основе
регистра сдвига
Последовательности максимальной длины, или ^-последовательности, формируются генератором на основе регистра сдвига. Функциональная схема шестиразрядного его варианта приведена на рис. 10. Используются тактируемые триггеры с принудительной установкой «0» и «1». Особенностью генератора является обратная связь, снимаемая с последнего и предпоследнего триггеров. Данные сигналы подаются на сумматор по модулю два и далее поступают на первый разряд регистра сдвига. На все триггеры подаются тактовые импульсы, с приходом которых содержимое триггеров сдвигается вправо на один разряд.
Если первоначальным содержимым регистра являются единицы во всех разрядах, то содержимое регистров за 66 тактов будет соответствовать табл. 1. Из таблицы видно, что содержимое регистра сдвига на 1-м и 64-м тактах совпадает, то есть 64 - это период генерации при данной обратной связи.
Электронное моделирование
47
Рис. 10 Функциональная схема генератора на регистре сдвига
ТАБЛИЦА 1 Содержимое регистров
№ Т1 Т2 Тз Т4 Т5 Тб № Т1 Т2 Т3 Т4 Т5 Т6 № Т1 Т2 Т3 Т4 Т5 Т6
1 1 1 1 1 1 1 23 1 1 0 0 1 0 45 1 1 0 1 1 0
2 0 1 1 1 1 1 24 1 1 1 0 0 1 46 1 1 1 0 1 1
3 0 0 1 1 1 1 25 1 1 1 1 0 0 47 0 1 1 1 0 1
4 0 0 0 1 1 1 26 0 1 1 1 1 0 48 1 0 1 1 1 0
5 0 0 0 0 1 1 27 1 0 1 1 1 1 49 1 1 0 1 1 1
6 0 0 0 0 0 1 28 0 1 0 1 1 1 50 0 1 1 0 1 1
7 1 0 0 0 0 0 29 0 0 1 0 1 1 51 0 0 1 1 0 1
8 0 1 0 0 0 0 30 0 0 0 1 0 1 52 1 0 0 1 1 0
9 0 0 1 0 0 0 31 1 0 0 0 1 0 53 1 1 0 0 1 1
10 0 0 0 1 0 0 32 1 1 0 0 0 1 54 0 1 1 0 0 1
11 0 0 0 0 1 0 33 1 1 1 0 0 0 55 1 0 1 1 0 0
12 1 0 0 0 0 1 34 0 1 1 1 0 0 56 0 1 0 1 1 0
13 1 1 0 0 0 0 35 0 0 1 1 1 0 57 1 0 1 0 1 1
14 0 1 1 0 0 0 36 1 0 0 1 1 1 58 0 1 0 1 0 1
15 0 0 1 1 0 0 37 0 1 0 0 1 1 59 1 0 1 0 1 0
16 0 0 0 1 1 0 38 0 0 1 0 0 1 60 1 1 0 1 0 1
17 1 0 0 0 1 1 39 1 0 0 1 0 0 61 1 1 1 0 1 0
18 0 1 0 0 0 1 40 0 1 0 0 1 0 62 1 1 1 1 0 1
19 1 0 1 0 0 0 41 1 0 1 0 0 1 63 1 1 1 1 1 0
20 0 1 0 1 0 0 42 1 1 0 1 0 0 64 1 1 1 1 1 1
21 0 0 1 0 1 0 43 0 1 1 0 1 0 65 0 1 1 1 1 1
22 1 0 0 1 0 1 44 1 0 1 1 0 1 66 0 0 1 1 1 1
48
Электронное моделирование
На рис. 11 приведена сеть Петри, моделирующая генератор на регистре сдвига со связью, снимаемой с 5-го и 6-го разрядов. Триггеры, используемые в регистре сдвига, отличаются от счетных триггеров наличием тактирующих входов, импульсы на которые поступают от специального тактового генератора, изображенного в модели слева.
Сумматор по модулю два усложнен, и это связано с необходимостью передавать с выхода сумматора не только значения «1», но и значения «0». Позиции, храня-
щие «1» в триггерах регистра, объединены прямоугольной областью, а позиции хранящие «0», входят в прямоугольные области, обозначающие шесть разрядов регистра сдвига.
В данной сети Петри все дуги имеют единичный вес, все позиции имеют емкость, равную единице, а переходы имеют время срабатывания, равное 1. Правая позиция в генераторе тактовых импульсов имеет емкость, равную 2, остальные позиции имеют емкость, равную 1.
Рис. 11 Модель генератора псевдослучайной последовательности
Электронное моделирование
49
7 Моделирование сложных устройств
7.1 Регулятор температуры двигателя
внутреннего сгорания
Пусть требуется средствами сетей Петри создать модель процессов, протекающих в системе охлаждения двигателя внутреннего сгорания.
Задается температура окружающего воздуха. После запуска двигателя температура в системе охлаждения возрастает, и для более быстрого нагрева двигателя (5 град/мин) охлаждающая жидкость циркулирует по малому контуру (Short), через термостат, и, минуя радиатор, возвращается в рубашку, отбирая тепло от цилиндров. После достижения температуры включения термостата (70 °С) охлаждающая жидкость начинает проходить через радиатор (Long), отдавая через него дополнительное тепло. Если двигатель продолжает разогреваться, то по достижении
температуры (95 °С) срабатывает датчик, который включает реле вентилятора. Вентилятор, обдувая радиатор, охлаждает жидкость. В результате температура охлаждающей жидкости падает и при достижении температуры (87 °С) реле вентилятора выключается.
Приведенный алгоритм реализован в сети Петри (рис. 12).
В сети Петри (рис. 12) все позиции имеют емкость, равную 1, за исключением позиций: Р2 = 1000, Р3 = 110, Р20 = 110, Р19 = 100. Позиции, изображенные черным прямоугольником, имеют немедленное время срабатывания, а все остальные позиции имеют детерминированное время срабатывания, равное 1. Все дуги в сети имеют емкость, равную 1, за исключением дуг: Р30Г8 = 95, Т0^Р3 = 5, Р190Г18 = 8, Т0^Р20 = 5, Т0^Р3 = 5, Р20^Т36 = 70.
Рис. 12 Регулятор температуры двигателя внутреннего сгорания
50
Электронное моделирование
7.2 Автомат-регулятор светофора
Пусть задан перекресток дорог с двухполосным движением [2]. На одном направлении имеется обычный светофор с дополнительной стрелкой для поворота направо. В пересекающем направлении светофор дополнен стрелкой для поворота налево. Требуется разработать модель автомата, управляющего переключением сигналов светофора.
Можно заметить, что у описанного светофора имеется шесть фаз, следующих друг за другом, поэтому для его моделирования можно использовать шестифазный переключатель, который состоит из
шести позиций и шести переходов, замкнутых в кольцо, причем в пяти позициях начальные фишки есть, а в одной позиции фишка отсутствует. Все позиции шестифазного переключателя связаны запрещающей связью с переходами, которые при активации передают фишки (то есть включают соответствующие сигналы светофора). Та позиция, в которой фишки на данной фазе нет, через запрещающую связь активирует соответствующий переход, и фишка в соответствующей позиции имитирует включение сигнала светофора.
На рис. 13 приведена сеть Петри, моделирующая работу светофора.
Рис. 13 Автомат-регулятор светофора
Электронное моделирование
51
Шестифазный переключатель с названиями фаз находится на схеме справа. Для имитации светофора позиции, соответствующие лампам, обведены кружками. Включение лампы имитируется появлением фишки (черной точки) в позиции. Для упрощения схемы некоторые связи прямого и обратного направлений, идущие к позициям, имитирующим лампы светофора, объединены в одну линию.
В данной сети Петри все дуги имеют единичный вес, все позиции имеют емкость, равную единице, а переходы имеют время срабатывания, указанное рядом с переходом. Все позиции автомата имеют емкость, равную 1.
8 Заключение
Изложенные подходы и алгоритмы автор использовал в учебном процессе для лучшего усвоения студентами возможностей сетей Петри в моделировании сложных технических систем, а также для освоения принципов программирования параллельно работающих систем.
Библиографический список
1. Петерсон Дж. Теория сетей Петри и моделирование систем; пер. с англ. / Дж. Петерсон. - М. : Мир, 1984. - 264 с.
2. Пушкина Н. Б. Система поддержки принятия решений по управлению транспортными потоками на перекрестке / Н. Б. Пушкина, Д. В. Калитин // Научный вестник МГГУ. -2010. - № 6. - C. 28-32.
Q
2 В эти годы на кафедре не было защит кандидатских диссертаций: 1938, 1939, 1940, 1942, 1943, 1946, 1947, 1951, 1952, 1953, 1954, 1957, 1959, 1960, 1961, 1971, 1973, 1992, 1994, 2000, 2008, 2012.