УДК 519.714
В. Н. Дубинин
ИСПОЛЬЗОВАНИЕ РЕВЕРСИВНЫХ ЧАСТИЧНО МАРКИРОВАННЫХ «ЛСЕУ-СЕТЕЙ В СИНТЕЗЕ КОНТРОЛЛЕРОВ БЕЗОПАСНОСТИ ДЛЯ ДИСКРЕТНО-СОБЫТИЙНЫХ СИСТЕМ
В работе рассмотрены вопросы использования реверсивных частично маркированных ¿АСЕХ-сетей (ЛАСЕХ-сетей) в синтезе контроллеров безопасности для дискретно-событийных систем. К основным результатам работы относятся: расширенные 5АСЕХ-сети, включающие продукционные правила, для моделирования замкнутых систем; методы предотвращения разрешенных шагов в ¿АСЕХ-сетях на основе конфигураций шагов в ЛЛСЕХ-сетях с учетом взаимовлияния предотвращения шагов, а также метод построения предотвращающих правил на основе графа достижимости критических маркировок для ЛАСЕХ-сети.
Введение
Быстрое развитие компьютерных и телекоммуникационных технологий, а также технологий датчиков вызвало широкое распространение нового класса динамических систем - дискретно-событийных систем (ДСС) [1]. Данные системы характеризуются дискретностью как в пространстве состояний, так и во времени. Изменение состояний в ДСС производится асинхронными дискретными событиями. Примерами ДСС являются автоматизированные производственные системы, вычислительные и телекоммуникационные сети, системы управления полетами и транспортными перевозками, операционные системы, распределенные программные системы и т.д. ДСС являются относительно новой областью исследования (возраст 20-30 лет), в ней используются различные модели, методы и средства из теории управления, компьютерных наук и исследования операций.
Существует два подхода к проектированию систем управления для ДСС: аналитический и конструктивный [2]. Первый подход является традиционным и во многом основан на опыте и интуиции разработчика. Разработанная система верифицируется [3]. При этом определяются ошибки и проверяется соответствие системы заданным требованиям (спецификациям). Процесс проектирования носит итерационный характер. Недостатком данного подхода является большая вычислительная сложность. Второй подход в большой степени базируется на теории супервизорного управления [4]. В соответствии с этой теорией ДСС рассматривается как генератор некоторого формального языка, поведение этого генератора должно быть управляемо супервизором, предотвращающим возникновение некоторых событий таким образом, чтобы удовлетворялись заданные для ДСС спецификации. В оригинальной теории супервизорного управления спецификации задавались в виде регулярного языка [4], в дальнейшем для этих целей также использовалась временная логика, языки сетей Петри [5] и предикаты [6, 7]. Конструктивный подход наиболее применим в случае динамически реконфигурируемых систем. При этом поддержка реконфигурации производится через автоматический синтез супервизора.
Для моделирования ДСС часто используются автоматы и формальные языки [1]. Однако в настоящее время наиболее популярны сети Петри и их модификации (временные, цветные сети Петри и т.д.) ввиду их преимуществ в моделировании асинхронных и параллельных систем [5, 8]. Особо следует отметить КСЕ8-сети, специально ориентированные на моделирование ДСС [9].
В зависимости от требований, предъявляемых к системе управления, существует несколько разновидностей супервизоров, в числе которых супервизоры для избежания тупиков, для содействия живости системы, для предотвращения перехода в опасные состояния. Последние часто называют контроллерами безопасности. В зависимости от типа перерабатываемой информации супервизоры делятся на супервизоры с событийной обратной связью и с обратной связью по состояниям.
Данная работа посвящена разработке контроллеров безопасности на основе NCES-сетей и производных от них моделей и является дальнейшим развитием исследований по использованию NCES-моделей в проектировании систем управления [3, 6, 7, 9]. В отличие от ранних работ (например, [6, 7]), для моделирования замкнутых систем используются sNCES-сети, расширенные продукционными правилами для корректировки маркировок сети во время функционирования. Это позволяет в рамках одной модели представить как управляемую систему - в виде sNCES-сети, так и супервизор - в виде набора предотвращающих продукционных правил. Особенностью предложенной расширенной sNCES-модели является восстановление измененных правилом компонентов маркировки сразу после срабатывания шага. Построение предотвращающих правил полностью основано на понятиях RsNCES-сетей [10]. Базовой задачей при этом является предотвращение разрешенных шагов в sNCES на основе конфигураций допустимых шагов в RsNCES. В рамках этой задачи исследовано влияние предотвращения одних шагов на другие. Предотвращающие правила генерируются на основе графа достижимости критических маркировок в RsNCES-сети. В системе предполагается стратегия предотвращения, согласно которой предотвращение производится в той (граничной) маркировке, в которой предотвращаемы все шаги, ведущие в критические маркировки. Данная стратегия гарантирует безопасное функционирование системы, если она первоначально не находится в опасной зоне.
Методика проектирования контроллеров безопасности для ДСС включает следующие шаги:
1) построение sNCES-модели управляемой системы (например, промышленного оборудования);
2) формулировка запрещенных состояний (в виде маркировок);
3) синтез предотвращающих правил и формирование расширенной sNCES-модели замкнутой системы;
4) программная или аппаратная реализация контроллеров безопасности на основе сгенерированных правил.
Следует отметить, что на основе теории супервизорного управления возможно построение многоуровневых систем управления. На рис. 1 в качестве примера представлена двухуровневая система. На нижнем уровне система СУ1 и объект управления ОУ1 взаимодействуют путем обмена управляющими (УС) и информационными (ИС) событиями. В совокупности СУ1 и ОУ1 можно рассматривать как некий самостоятельный объект управления ОУ2. На верхнем уровне управление осуществляется путем чтения текущего
состояния (ТС) объекта управления ОУ2, его анализа и записи нового сгенерированного состояния (НС) в ОУ2. Если система СУ1 уже существует и является реальной, то система СУ2, построенная в виде супервизора, может служить корректирующим звеном в цепи управления.
Рис. 1 Двухуровневая система управления
1 Расширенные sNCES-сети с коррекцией маркировки
Расширенная sNCES-сеть с коррекцией маркировки определяется двойкой N = (^Я), где N - маркированная sNCES-сеть (далее для краткости просто sNCES'); Я - набор продукционных правил для модификации маркировок. Продукционное правило г = (а,Ь)є Я включает левую (а) и правую (Ь) части. Левая часть представляется в виде конъюнкции атомарных высказываний вида т (р ) = 0 и т (р ) = 1, р є Р и определяет в общем
случае частичную маркировку, при которой данное правило активизируется. Правая часть правила состоит из набора атомарных действий вида т(р) = 0 и т(р) = 1, рє Р .
Семантика расширенных sNCES отличается от семантики обычных sNCES. Расширенная sNCES функционирует, переходя от одной маркировки к другой в результате срабатывания шагов sNCES и продукционных правил.
Процедура перехода от одной маркировки к другой представлена на рис. 2.
Как видно из рис. 2, срабатывание правила приоритетнее срабатывания
шага.
Предполагается, что множество правил обладает свойством корректности. Это означает: 1) в наборе Я не существуют конфликтные правила, т.е. правила, левые части которых истинны при одной и той же маркировке; 2) не существует возможности активизации цепочки правил. Иными словами, срабатывание одного правила не должно порождать условия для непосредственного срабатывания другого правила.
Важным свойством расширенной sNCES является восстановление измененных правилом компонентов маркировки сразу после срабатывания любого шага. Это снимает вопрос о потере адекватности модели в случае запрещения разрешенных шагов в sNCES для предотвращения перехода в запрещенное состояние. Корректность самой процедуры восстановления определяется утверждениями, касающимися предотвращения шагов (см. разделы 2 и 3).
Если имеются разрешенные шаги при маркировке т, то
Если существует правило г, левая часть которого истинна при т, то Делать
Применение правила г, т —-—> т'
Если имеются разрешенные шаги при маркировке т’, то Делать
Недетерминированный выбор шага £
£
Срабатывание шага £, т' ——т"
Восстановление измененных компонентов маркировки т"
Конец
Иначе;
Иначе - функционирование обычной ^'ЫСЕЗ Делать
Недетерминированный выбор шага £
£
Срабатывание шага £, т ——т"
Конец
Рис. 2 Процедура перехода от одной маркировки к другой в расширенной &'ЫСЕ8
Для реализации механизма восстановления используется тот факт, что для предотвращения перехода в опасное состояние используется инверсия маркировки соответствующих позиций. Поэтому для восстановления измененных компонентов необходимо применить к маркировке правую часть того же правила, которое привело к коррекции этой маркировки, но инвертировать в нем действия.
Разработка продукционных правил для контроллеров безопасности основывается на методах предотвращения прямых разрешенных шагов в sNCES с учетом влияния предотвращения одних прямых шагов на другие.
2 Методы предотвращения разрешенных шагов в sNCES
Для краткости изложения примем следующие соглашения. Разрешенный в sNCES шаг будем называть прямым шагом, допустимый в RsNCES шаг -обратным шагом, конфигурацию допустимого шага в RsNCES - просто конфигурацией.
Предотвращением прямого шага £ при маркировке т называется процедура изменения маркировки т на маркировку т' таким образом, чтобы при маркировке т' шаг £ стал бы неразрешенным. Под предотвращением прямых шагов на основе конфигурации у = (ц,ю) при маркировке т будем понимать модификацию маркировки позиций, относящихся к обратному шагу ц или запрещающей контекстной маркировке (ЗКМ) ю таким образом, чтобы при полученной модифицированной маркировке т" при срабатывании соответствующих прямых шагов £1, £2, ..., £„ не достигались маркировки, являющиеся конкретизациями исходной маркировки т (рис. 3). Будем называть прямые шаги £1, £2, ..., £„ прямыми шагами на основе конфигурации у = (ц,ю). На рис. 3 сплошная стрелка обозначает срабатывание обратного шага, штрих-пунктирная стрелка - срабатывание прямого шага, штриховая
стрелка - отношение конкретизации маркировок, двойная стрелка - модификацию маркировок. Возможна ситуация, когда прямой шаг полностью совпадает с обратным шагом: Зi [£г- = ц] .
m
mn
У = (ц, ю)
I ti
.A
m1
Ê2
m2
£n
J
mn
m
Рис. 3 Предотвращение прямых шагов на основе конфигурации у = (ц, ю)
Определим множества входных (PRE) и выходных (POST) позиций шага ц следующим образом:
PREц = ^ (ppret u bpret ) ; POSTц = ^ (ppostt - ppret - bpret ).
tEЦ tGp,
Обозначим SP(° множество позиций, входящих в ЗКМ ю.
Ниже приводится ряд взаимосвязанных утверждений (без доказательства), касающихся предотвращения шагов. Точное определение основных понятий, используемых в утверждениях, можно найти в работе [10].
Утверждение 1. Переходы, принадлежащие разным прямым шагам t и tj при маркировке m, не могут быть взаимоисключающими, но могут быть конфликтными. Примеры соотношений множеств входных и выходных позиций шагов t и tj, приведены на рис. 4, причем первые три приведенные схемы - возможны, а последние три - невозможны.
%
Рис. 4 Примеры соотношений множеств входных и выходных позиций шагов
Утверждение 2. Для предотвращения прямых шагов на основе конфигурации ^ = (ц,ю) в типа А2В* достаточно изменить маркировку
одной или более позиций, входящих в множество РЯЕ и РОЗТ^.
Утверждение 3. В RsNCES-сетях типа А*В2 невозможна ситуация, когда из одной маркировки т исходят конфигурации ^г- = (ц, юг-) и
^ j = (, ю j), включающие один и тот же шаг ц и ЗКМ юг- и ю;, различающиеся маркировкой одной позиции.
Утверждение 4. Для предотвращения прямых шагов на основе конфигурации, включающей шаг ц, достаточно установить такую маркировку контекстных позиций шага ц, которая не покрывается (для RsNCES типа А*В2) или не равна (для RsNCES остальных типов) ни одной из ЗКМ для шага ц.
Утверждение 5. Для предотвращения прямых шагов на основе конфигурации ^ = (ц,ю) в RsNCES типа А*В2 достаточно изменить маркировку
одной из позиций из SPю.
Контролируемой (видимой) позицией называется позиция, значение маркировки которой может быть считано контроллером. Предположим, что в нашем случае все позиции являются контролируемыми. Управляемая позиция - это позиция, маркировка которой может быть изменена контроллером. Обычно управляемая позиция является и контролируемой. Обозначим CP множество управляемых позиций sNCES.
Определим множества входных (PREсц) и выходных (POSTсц) управляемых позиций шага ц (при маркировке т) следующим образом:
PRE^ = PRE п CP; POSTcц = POSTl п CP.
Определим SPcю - множество управляемых позиций, входящих в ЗКМ ю (при маркировке т): SPcw = SPю п CP.
Утверждение 6. Предотвращение прямых шагов на основе конфигурации ^ = (ц, ю) в RsNCES типа А2В2 (при маркировке т) возможно, если
PRE(Ц ^0 V POST(Ц ^0 V SPcюф0.
Утверждение 6 следует из вышеприведенных утверждений.
3 Взаимовлияние предотвращения шагов
Рассмотрим влияние предотвращения прямых шагов, построенных на основе одной конфигурации ^г, на предотвращение прямых шагов, построенных на основе другой конфигурации ^-, когда обе конфигурации ведут в одну и ту же маркировку т (или обобщение маркировки т). В частности нам необходимо определить, в каких случаях возможно одновременное предотвращение прямых шагов, а в каких - нет.
Существует три возможных варианта сочетания двух конфигураций и их целевых маркировок с учетом отношения конкретизации (рис. 5). В первом варианте обе конфигурации непосредственно ведут в одну и ту же маркировку т. Во втором варианте одна из конфигураций ведет в некоторую маркировку, являющуюся конкретизацией маркировки т, в которую ведет другая конфигурация. В третьем варианте обе конфигурации ведут в маркировки, являющиеся конкретизацией некоторой третьей маркировки т.
m
m
¥
¥
mt
А
mt
m,
¥j
¥i
mt
1 I
¥j
m
Рис. 5 Возможные варианты сочетания двух конфигураций и их целевых маркировок с учетом отношения конкретизации
Рассмотрим ряд утверждений, относящихся к взаимовлиянию предотвращения прямых шагов для вариантов, представленных на рис. 5.
Утверждение 7 (для вариантов 1-3). Предотвращение прямых шагов на основе конфигурации ¥t = (, юг ) путем изменения маркировки позиций из
множества PREц U POSTц не может препятствовать предотвращению прямых шагов на основе конфигурации ¥j =(j, юj ) путем изменения маркировки позиций из множества PREц1 U POST ц1 (и наоборот).
Утверждение 8 (для вариантов 1-2). Предотвращение прямых шагов на основе конфигурации ¥t = (,юг ) в RsNCES типа A*B2 путем изменения маркировки одной позиции ЗКМ юг- не может препятствовать предотвращению прямых шагов на основе конфигурации ¥ j =( j,ю j ) путем изменения
маркировки одной позиции ЗКМ ю, (и наоборот).
Утверждение 9 (для вариантов 1-2). Предотвращение прямых шагов на основе конфигурации ¥t = (, Ю/ ) в RsNCES типа A*B2 путем изменения
маркировки одной позиции из множества PREц и POSTц не препятствует предотвращению прямых шагов на основе конфигурации ¥ j =(( j, ю j j путем изменения маркировки одной позиции ЗКМ ю, (и наоборот).
Утверждение 10 (для вариантов 1-2). Предотвращение прямых разрешенных шагов на основе конфигурации ¥t = (, ю? ) в RsNCES типа A*B2 не может препятствовать предотвращению прямых разрешенных шагов на основе конфигурации ¥ j =(, ю j ) (и наоборот). Данное утверждение является
обобщением утверждений 7-9.
Утверждение 11 (для вариантов 1-3). Предотвращение прямых шагов на основе конфигурации ¥t =(, Ю/ ) путем изменения маркировки позиций
из множества PREц U POSTц может привести к предотвращению прямых
шагов на основе конфигурации ¥ j = ( j, ю j ), если шаги ц и ц, конфликтны.
Утверждение 12 (для варианта 3). Предотвращение прямых шагов на основе конфигурации ¥t = (, юг- ) путем изменения маркировки одной пози-
m
ции из множества PREц и POSTц может препятствовать предотвращению прямых шагов на основе конфигурации ¥ j = ( j, ю j ).
Утверждение 13 (для варианта 3). Предотвращение прямых шагов на основе конфигурации ¥t = (ц, юг- ) путем изменения ЗКМ юг- может препятствовать предотвращению прямых шагов на основе конфигурации ¥ j = ( j, ю j j путем изменения ЗКМ ю, (и наоборот). Например, в RsNCES на
рис. 6 нельзя одновременно предотвратить прямые шаги из маркировки m0 на основе конфигураций ¥3 и ¥4 путем изменения ЗКМ, поскольку в ЗКМ ю3 m(p4) = 1, а в ЗКМ ю4 m(p4) = 0.
t5
Рис. 6 Пример для демонстрации утверждений 11 и 13, включающий ЛлЛСЕЙ-сеть (вверху) и граф достижимости для этой Л^ЛСЕЙ (внизу)
4 Граф достижимости критических маркировок
и его использование для генерации предотвращающих правил
Для построения предотвращающих правил предлагается использовать граф достижимости критических маркировок (ГДКМ). Размерность данного графа значительно меньше общего графа достижимости для RsNCES.
Предварительно дадим необходимые определения.
Неуправляемый шаг - это прямой шаг, который невозможно предотвратить путем изменения маркировки (управляемых позиций). Под неуправляемым путем (в графе достижимости) понимается путь, составленный только из неуправляемых шагов. Потенциально опасной маркировкой будем называть маркировку, из которой возможен переход в запрещенную маркировку в результате срабатывания прямых шагов. Очевидно, что все маркировки графа достижимости RsNCES являются потенциально опасными. Критическая маркировка - это такая потенциально опасная маркировка, из которой возможен неуправляемый путь в запрещенную маркировку. Предотвращающей марки-
ровкой называется такая управляемая маркировка, изменение управляемых компонентов которой может предотвратить срабатывание прямых шагов на основе некоторых конфигураций, ведущих в данную маркировку. Граничной маркировкой называется такая предотвращающая маркировка, изменение управляемых компонентов которой может привести к превращению ее в неизбежно безопасную маркировку.
Определим РЛЕУт - множество конфигураций, под действием которых в RsNCES непосредственно достижима маркировка т: РЛЕт = {у| т е ЕМ,
т [^ > т]} . Достижимая маркировка т (т е ЛМ) в RsNCES типа А2В2 является граничной маркировкой (в случаях 1 и 2 на рис. 5), если
V (ц, ю) е РШУт [PREсЦ ф 0 V POST^ ф 0 V SPcm Ф 0].
Процедура построения ГДКМ отчасти сходна с процедурой построения графа достижимости для RsNCES, приведенной в работе [11], но в процедуре построения ГДКМ используется отсечение ветвления в граничных маркировках. Алгоритм построения ГДКМ представлен на рис. 7.
RCM = 0; М = 0; ВМ = 0 Вычислить кортеж ©г0 Втолкнуть в стек кортеж (т0, ©т0)
Пока стек не пуст
Делать
т ^ ) > т■ - Подучить новую маркировк т • из текущей при сраба-
тывании самой левой конфигурации допустимого шага в кортеже &т ©г = ©г - {(цГ,юЦг')} - Удалить конфигурацию (цГ,ЮЦг') из ©г А = 0 - Вектор различий маркировок
Если т' не является конкретизацией никакой другой маркировки
из RCM и ВМ, то
Если прямые шаги на основе конфигурации (цг- , юу ) не
конфигурации (цП,юЦ)
предотвращаемы, то Делать
ЯСМ = ЯСМ и { т }
Вычислить кортеж ©т
Втолкнуть в стек кортеж (п',©т )
Если т'єБМ, то БМ=БМ-{т'} - Маркировка т' - не граничная Конец
Иначе БМ=БМ и {т'} - Маркировка т - кандидат в граничные Иначе А = т - т"
ЯЛ = ЯЛ и{(т,(цП,ю(), А,т
Если © т = 0, то Вытолкнуть (т, © т) из стека Конец
Рис. 7 Алгоритм построения ГДКМ
В алгоритме приняты следующие обозначения: RCM - текущее множество критических маркировок; RA - текущее множество дуг ГДКМ; BM - текущее множество граничных маркировок; 0m - кортеж, составленный из всех
их конфигураций из множества Ym [11]. Приведенный алгоритм ориентирован на случай одной запрещенной маркировки, однако его легко модифицировать для случая, когда запрещенных маркировок несколько.
После построения ГДКМ для граничных вершин генерируются правила предотвращения прямых шагов из данных вершин в критические вершины. Процедура построения предотвращающих правил представлена на рис. 8.
Для всех m е BM Делать
T={t е RA | Pr¡t = m}
Генерация правила запрета прямых шагов на основе конфигураций из множества Pr2 T
Конец
Рис. 8 Алгоритм построения предотвращающих правил для граничных маркировок
Все критические маркировки представляют «дыру» в системе безопасности ДСС. При этом встает важный вопрос, неизбежно или возможно попадет система в запрещенную маркировку из критических маркировок, иными словами, являются ли критические маркировки потенциально-безопасными. Рассмотрим ряд утверждений, которые будут полезными для решения этого вопроса.
Утверждение 14. При срабатывании обратного шага ц (при потенциально опасной маркировке m) возможно появление на его основе прямого шага £, ведущего в безопасную маркировку.
Утверждение 15. Пусть потенциально опасная маркировка m непосредственно достижима в RsNCES в результате срабатывания обратных шагов ц1, ц2, • ••, Цп и не существуют другие обратные шаги, ведущие в эту маркировку. Если из маркировки m имеется прямой шаг £ такой, что
V i е 1...п [ц, £ £] , то маркировка m является потенциально безопасной.
Заключение
В данной работе на абстрактном уровне рассмотрены методы синтеза контроллеров безопасности для ДСС на основе расширенных и реверсивных безопасных NCES-моделей. Из-за лимита печатного места не были представлены классификация маркировок на основе временной логики CTL, доказательства утверждений, а также примеры, иллюстрирующие использование предложенных методов.
Список литературы
1. Boel, R. Unity in diversity, diversity in unity: Retrospective and prospective views on control of discrete event systems / R. Boel, X. R. Cao, G. Cohen, A. Giua, W. M. Won-ham, J. H. van Schuppen // J. Discrete Event Dynamic Systems: Theory and Application. - 2002. - V. 12. - № 3. - P. 253-264.
2. Barbeau, M. Beyond the verification approach: the synthesis approach / M. Barbeau, R. St-Denis // WorldScientific. - 1999. - № 1. - P. 1-23.
3. Vyatkin, V. Rapid engineering and re-configuration of automation objects using formal verification / V. Vyatkin, H.-M. Hanisch, S. Karras, T. Pfeiffer, V. Dubinin // International Journal of Manufacturing Research. - 2006. - V. 1. - № 4. - P. 382-404.
4. Ramadge, P. J. Supervisory control of a class of discrete-event processes / P. J. Ramadge, W. M. Wonham // SIAM Journal Control and Optimization. - 1987. -V. 25. - № 1. - P. 206-230.
5. Giua, A. Petri net techniques for supervisory control of discrete event systems // Proc. First Work. on Manufacturing and Petri nets, Osaka, Japan. - 1996. - June. -P. 1-30.
6. Holloway, L. E. A survey of Petri net methods for controlled discrete event systems / L. E. Holloway, B. H. Krogh, A. Giua // J. Discrete Event Dynamic Systems: Theory and Application. - 1997. - V. 7. - № 2. - P. 151-190.
7. Hanisch, H.-M. Netz-Condition/Event Systeme / H.-M. Hanisch, M. Rausch // 4. Fachtagung Entwurf komplexer Automatisierungssysteme (EKA’95), Braunschweig. -1995. - May. - Tagungsband. - S. 55-71.
8. Hanisch, H.-M. Controller synthesis for net condition/event systems with incomplete state observation / H.-M. Hanisch, A. Lueder, M. Rausch // Computer Integrated Manufacturing and Automation Technology (CIMAT 96). - 1996. - May. - P. 351356.
9. Missal, D. Synthesis of distributed controllers by means of a monolithic approach / D. Missal, H.-M. Hanisch // Proceedings of the 11th IEEE Int. Conf. on Emerging Technologies and Factory Automation (ETFA’2006), Prague. - 2006. - September. -P. 356-363.
10. Дубинин, В. Н. Реверсивные частично маркированные sNCES-сети / В. Н. Дубинин, Х.-М. Ханиш, Д. Миссал // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 2. - C. 22-31.
11. Дубинин, В. Н. Интерпретация реверсивных частично маркированных sNCES-сетей / В.Н.Дубинин, Х.-М. Ханиш, Д. Миссал // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 3. - C. 35-43.