Научная статья на тему 'Об объектах языка описания законов управления'

Об объектах языка описания законов управления Текст научной статьи по специальности «Математика»

CC BY
169
43
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Auditorium
Область наук
Ключевые слова
формальный язык / переменная / тип переменной / набор переменных / событие / оператор / управляющая операция / композиция операций / дерево композиций / алгоритм управления / синтаксис. / formal language / variable / variable type / variables set / event / operator / control operation / operations composition / compositions tree / control algorithm / syntax.

Аннотация научной статьи по математике, автор научной работы — А. М. Фрумкин

Предлагается определение управляющей операции на основе понятий оператора и события. Описываются некоторые элементарные управляющие операции. Объект языка описания законов управления (алгоритм управления) определяется как дерево композиций управляющих операций. Описывается частичное построение синтаксиса языка. Приводятся примеры описания простейших типовых законов управления.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ON THE CONTROL LAWS DESCRIPTION LANGUAGE OBJECTS

A definition of the control operation based on the notions of operator and event is suggested. Some elementary control operations are described. The control laws description language object (control algorithm) is defined as a control operations compositions tree. The partial construction of the language syntax is described. The examples of the simplest typical control laws descriptions are cited.

Текст научной работы на тему «Об объектах языка описания законов управления»

УДК 519.682.1 : 517.938

ОБ ОБЪЕКТАХ ЯЗЫКА ОПИСАНИЯ ЗАКОНОВ УПРАВЛЕНИЯ

© 2015 А. М. Фрумкин

ст. науч. сотрудник кафедры математического анализа и прикладной математики, канд. техн. наук e-mail: frumkinam@mail. ru

Курский государственный университет

Предлагается определение управляющей операции на основе понятий оператора и события. Описываются некоторые элементарные управляющие операции. Объект языка описания законов управления (алгоритм управления) определяется как дерево композиций управляющих операций. Описывается частичное построение синтаксиса языка. Приводятся примеры описания простейших типовых законов управления.

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

Введение

В настоящее время существует несколько групп формальных языков, которые можно использовать для описания законов управления техническими объектами:

1) языки для описания аппаратных средств, примерами которых являются VHDL [Бибило 2012] и Verylog [Соловьев 2014];

2) языки для моделирования физических систем, примерами которых являются язык среды Simulink в MatLab [Дъяконов 2005], язык системы Modelica [Modelica 2012];

3) языки программирования промышленных контроллеров: языки ассемблера [Бородин 1999], адаптированные языки общего применения («PL\M» [Гребенников 1986], «Паскаль» [EasyPIC и mikroPascal 2015], «С» [Бородин 1999, Прокопенко 2012], специальные языки программирования логических контроллеров [Петров 2004].

При описании законов управления техническими объектами желательно пользоваться языком, терминология которого связана с терминологией моделирования объектов управления, но не связана со способами технической реализации устройства управления. С этой точки зрения наиболее интересны языки описания физических систем. Эти языки предназначены прежде всего для имитационного моделирования замкнутых систем и пока не применяются для проектирования технических устройств. Они достаточно громоздки в том смысле, что отсутствует явное определение класса объектов, описываемых языком.

Целесообразно создать язык, который обладал бы следующими особенностями:

1) множество объектов, описываемых языком, определяется явно;

2) для определения объектов языка используется терминология теории динамических систем.

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

Для описания объектов языка будут использоваться понятия процесса и события [Фрумкин 2013], а также понятие оператора без предвосхищения. Понятие оператора

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

имеет неточные аналогии в функциональном анализе [Колмогоров 1976] и в теории автоматов [Кобринский 1962].

При исследовании динамических систем в теории управления удобно рассматривать движение в едином многомерном пространстве без описания отдельных переменных. Напротив, рассматриваемый язык служит для описания в отдельности каждой переменной, участвующей в описании системы, и множества, в котором изменяется переменная. При теоретико-множественном описании объектов языка функции времени, описывающие процессы, превращаются в функции двух аргументов: имени рассматриваемой переменной и времени. При этом для различных переменных процесс может протекать в различных множествах. Таким образом, понятие процесса, а вместе с ним понятия оператора и события становятся более громоздкими, чем в теории управления.

Множество объектов языка будем строить по аналогии с множеством объектов алгоритмического языка. Соответственно будем использовать терминологию статьи [Фрумкин 2014]. Языковые конструкции также будут похожи, хотя и приобретут другой смысл.

1. Определение управляющей операции

Так же как при определении объектов алгоритмического языка, для формальных построений предположим, что заданы 0 - множество переменных (или имен переменных) и S - система множеств, элементы которых могут быть значениями переменных (множество возможных типов переменных). Будем предполагать, что множества из S снабжены метрикой [Шилов 1969]. Пару (0,S) назовем средой определения операций.

Определение 1. Пусть Q<^0 - конечное множество переменных, T:Q^S. Функцию T назовем описателем типов переменных. Пару (Q,T) назовем набором переменных (в нашей предыдущей статье [Фрумкин 2014] набор переменных назывался также областью переменных).

Определение 2. Пусть (Q,T) - набор переменных. Полным процессом с набором переменных (Q,T) назовем функцию, которая каждой переменной aeQ и каждому моменту времени te[0,ro) ставит в соответствие элемент из T(a). Фрагментом процесса (для краткости - фрагментом) с набором переменных (Q,T) длительности т>0 назовем функцию, которая каждой переменной aeQ и каждому моменту времени te[0,i) ставит в соответствие элемент из T(a). Под процессом будем понимать фрагмент или полный процесс. Процессы будем считать кусочно-непрерывными функциями времени для каждой переменной. Множество полных процессов с набором переменных (Q,T) обозначим p(Q,T), множество фрагментов - p0(Q,T). Для процесса xe p(Q,T) t-префиксом назовем фрагмент

ft(x,t)=X[0;t)={((a,T),z): aeQA ie[0,t) az=x(t)}, а t-суффиксом процесса назовем полный процесс

a(x,t)={ ((a,i),z) : aeQ a ie[0,ro) a z=x(t+i)}.

Определение 3. Событием с набором переменных (Q,T) назовем функционал

e: Dm(e)ep(Q,T)^[0,ro), который обладает следующим свойством:

e(u)=t ^ V i>t Vvep(Q,T) e(u[0,X)Av)=t.

Если e - событие, u - процесс и t=e(u), то будем говорить, что в процессе u событие e произошло в момент времени t. Если же u^Dm(e), то будем говорить, что в процессе u событие e не произошло. Характеристическое свойство события словесно выражается так: если событие произошло в некоторый момент t, то для как угодно малого s>0 это значение t определяется лишь фрагментом процесса в промежутке [0,t+s). Число

Auditorium: электронный научный журнал Курского государственного университета. 2015. № 3 (07)

Фрумкин А. М. Об объектах языка описания законов управления

те[0,го) будем считать событием «истекло время т после начала процесса» с пустым набором переменных.

Определение 4. Пусть (fi0,T0), (Qi,Ti) - наборы переменных, Q0nQ1=0. Оператором с входным набором переменных (Q0,T0) и входным набором переменных (Q1,T1) назовем функцию

f: Dm(f)ep(Q0,T0)^p(Oi,Ti),

обладающую свойством отсутствия предвосхищения: если uep(Q0,T0) и vep(Q0,T0) и для некоторого т>0 U[0,T)=V[0,T), то f(u)[0,T)=f(v)[0,T). Процессы-аргументы будем называть также входными процессами оператора, а процессы, являющиеся значением функции f, - выходными процессами. Свойство отсутствия предвосхищения может быть переформулировано так: если начальные фрагменты входных процессов совпадают, то совпадают и начальные фрагменты выходных процессов.

Далее понятия, аналогичные понятиям, применяемым при построении алгоритмического языка, и используемые при построении языка описания законов управления, будем снабжать префиксом «С» (это первая буква слова «control»).

Определение 5. C-набором переменных назовем тройку (Q0,Q1,T), в которой Q0, Q1 - конечные множества входных и выходных переменных (Q0nQ1=0) и T:Q0^Q1^S - семейство типов с областью индексов Q0^Q1. Будем говорить, что C-набор переменных (Q0,Q1,T) включен в C-набор (A0,A1,S), если Q0eA0, Q1eA1 и TeS.

Для описания законов управления удобно описывать не просто события и операторы, а семейства событий и операторов, связанных с C-набором и зависящих от набора значений выходных переменных как от параметра.

Определение 6. C-событием с набором C-набора переменных (Q0,Q1,T) назовем функцию e: Dm(e)e(Q1AT)xp(Q0,T)^[0,^), обладающую тем свойством, что для каждого xeQ1AT отношение {(u,t)ep(Q0,T)x[0,ro): (x,u,t)ee) является событием в смысле определения 3.

Определение 7. C-оператором с C-набором переменных (Q0,Q1,T) назовем функцию

f: Dm(f)e(QiAT)xp(Q0,T)^p(Qi,T),

обладающую тем свойством, что для каждого xeQ0T отношение {(u,v)ep(Q0,T)xp(Q1,T): ((x,u),v)ef) является оператором в смысле определения 4. C-оператор можно назвать также инициализируемым оператором, потому что он набору значений выходных переменных xeQ0T и процессу uep(Q0,T) ставит в соответствие процесс vep(Q1,T). В общем случае из равенства v=f(x,u) не следует равенство v(0)=x. Набор значений выходных переменных в начальный момент времени может не совпадать с набором x, поэтому набор значений x можно назвать инициализирующим, или исходным.

Для краткости C-события и C-операторы далее будем называть просто событиями и операторами.

Определение 8. Управляющей операцией (C-операцией) назовем кортеж (Q0,Q1,T,e,f), в котором (Q0,Q1,T) - C-набор переменных, e - событие с C-набором (Q0,Q1,T), f - оператор с C-набором (Q0,Q1,T), причем Dm(e)eDm(f). Если для заданных xeQ0T и uep(Q0,T) e(x,u)=T, то будем говорить, что C-операция выполняется в промежутке [0,т) и в момент т происходит выход из операции.

Функцию {((x,u),y): xeQ0T л uep(Q0,T) л y=f(x,u)(-,e(x,u)) } назовем функцией наследования операции. В формуле y=f(x,u)(-,e(x,u)) точка означает, что yefi^T является функцией, которая каждому aeQ1 ставит в соответствие y(a)=f(x,u)(a,e(x,u)). Набор значений y=f(x,u)(%e(x,u)) назовем переходным или наследуемым набором

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

значений при выходе из операции. Эти названия выбраны потому, что набор значений становится исходным для следующей выполняемой операции согласно некоторым композициям операций, определяемым далее.

В кортеже управляющей операции (Qo,^i,T,e,f) некоторые компоненты могут быть пустыми. Пустое событие означает бесконечное выполнение операции. Соответственно, C-операцию с пустым событием будем называть бесконечной. Пустое множество выходных переменных и, как следствие, пустой оператор означают, что операция посвящена только событию. Пустое множество входных переменных означает операцию без входа. Ее событие задает момент времени как функцию исходного набора значений выходных переменных, а оператор задает процесс как функцию исходного набора значений выходных переменных. Операции с пустым входным или пустым выходным множеством переменных можно назвать неполными. Описывать на основе неполных операций полные операции можно будет c помощью композиций операций.

2. Примеры управляющих операций

Операция сохранения значений выходных переменных. Это операция (fioA,T ,0,f), в которой оператор f задается формулой

f={((x,u),v): xeQ1AT л uep(Q0,T) л v={ ((a,t),z): aeQ1 л te[0,ro)A z=xa}}.

В выходном процессе каждая переменная в каждый момент времени имеет то значение, какое она имела в исходном наборе значений.

Следующие операции при построении языка можно считать элементарными. В них и Q0 и Q1 содержат не более одной переменной. Можно было бы эти переменные специально не обозначать, но далее для каждой операции формально строится кортеж из определения 8.

Ожидание. Это неполная операция ({a},0, {(a,{0,1})},e,0) без выходных переменных, имеющая одну входную переменную a битового (булева) типа: T(a)={0,1}. Событие выражается в том, что входная переменная принимает значение 1:

e={ (u,t): uep({a},T) л t=inf{x>0: u(a,i)=1} }.

Выдержка. Это неполная операция (0,0,0,т,0), событие которой означает истечение времени т после начала процесса.

Зависимая выдержка. Это неполная операция ({a},0,{(a,R)},e,0) с одной входной переменной вещественного типа. Событие формально определяется так: e={(u,t): uep({a},{(a,R)}) л t=min{Te[0,ro): T>u(a,0)}}. При выполнении операции фиксируется начальное значение входной переменной. Если это значение неотрицательно, то оно определяет время выхода, если отрицательно, то время выхода равно нулю.

Интегрирование. Это полная бесконечная операция ({a},{P}, {(a,R), (P,R)},0,I) с одной входной и одной выходной переменными вещественного типа. Ее оператор формально определяется так:

I={((x,u),v): xe{p}AT л uec({a},T) л v={ ((P,t),z): te[0,»^ z=xp+ f*Ua(T)dт }}.

Отсчет времени (операция таймера). Неполная бесконечная операция без входа (0,{a},{(a,R)},0,9) с одной выходной переменной. Функция 9 задается формулой 9={ ((x,a,t),z): xe{a}A{(a,R)} л te[0,ro^ z=xa+t }.

3. Определение управляющих операций на основе вычислительных операций

Пусть (Q,{a},T) - C-набор переменных, ф: QAT^T(a). Тогда эта функция определяет оператор непрерывного вычисления значения функции ф в переменной a:

f={((x,u),v): xe{a}A^ uep(Q,T) л v{((a,t),z): te[0,»^ z=ф(u(•,t))}}.

C данным оператором можно связать два варианта C-операции (композиции присваивания): операцию непрерывного присваивания (Q,{a},T,0,f) с пустым

Auditorium: электронный научный журнал Курского государственного университета. 2015. № 3 (07)

Фрумкин А. М. Об объектах языка описания законов управления

событием выхода и операцию мгновенного присваивания (Q,{a},T,0,f) с мгновенным событием выхода. Последняя операция просто меняет исходное значение переменной a на значение ф(и(-,0)). Описанное построение показывает, что для описания законов управления можно использовать описания алгоритмов, которые определяют функции, например, описания простых F-операций [Фрумкин 2015].

4. Некоторые композиции управляющих операций

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

Расширение операции. Пусть C-набор переменных (Q0,Qi,T) включен в C-набор (A0,A13S). Расширением базовой операции (Q0,Ql3T,e,f) на набор переменных (A0,Al3S) назовем операцию (A0,Al3T,s,g), в которой событие s определяется формулой s={((x,u),t): xeAiAS л uep(A0,S) л t = е(х д t ,и д о)} и оператор g определяется формулой

g={ ((x,u),v): xeAiAS л uep(A0,S) л

v={((a,t),z): ( alQi л z=xa ) v (aefii л z = f(xдг, uQ о)(a, t) } }.

Здесь хд и ид обозначают сужение исходного набора значений x и процесса u на множества переменных Д1 и Д0 соответственно. Событие s расширенной операции происходит тогда и только тогда, когда для сужений исходного набора значений выходных переменных и входного процесса на множества переменных расширяемой операции происходит событие расширяемой операции.

Оператор расширенной операции значения выходных переменных расширяемой операции изменяет согласно оператору расширяемой операции, а для остальных выходных переменных сохраняет их исходные значения.

Сужение операции. Сужением операции (Д0,Д1,T,e,f) на подмножество выходных переменных Д^Д1 с начальным набором значений ае^ДД)^ назовем операцию (Д0,Д,T,s,g), в которой событие s определяется формулой s={((x,u),t): xеДAT л uep^^T) л t=e(x^a,u) } и оператор g определяется формулой

g={((x,u),v): xеДAT л uep^S) л v=[f(xua3u)fo }.

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

C-операции назовем однородными, если они имеют одинаковые C-наборы переменных.

Условная композиция операций. Пусть co0=^0^i3T3e0,f0)3 со^Д^Дь^еь^) -однородные C-операции, ф : (Д^ДД^^-^^ - функция с битовыми (булевыми) значениями. Условной композицией, порожденной тройкой (со^со^ф), назовем операцию ^^Д^Д^зе,:^ в которой событие е и оператор f определяются следующим образом:

е={ ((x,u),t): xGДlAT л uep^3T)

л ( ф(xзu(•з0))=0л ((x,u),t)Ge0 ) v ^(x,u(%0))=U ((x,u),t)eei) }

и f={ ((x,u),v): xеД1AT л uep^^T)

л ^(x,u(-,0))^ ((x,u)3v)ef0 ) v (ф(xзu(•,0))=1л (fou^efi) }.

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

При выполнении условной композиции сначала с помощью функции ф согласно исходному набору значений выходных переменных и начальному набору значений входных переменных мгновенно выбирается одна из операций. Затем эта операция выполняется. В простейшем случае функция ф может вычисляться просто как значение некоторой переменной ae(Qo^^i)- Возможно определение условной композиции на базе единственной операции, которая выполняется в случае ф=1.

Композиция переключения (выбора). Эта композиция обобщает условную композицию. Пусть множество SeS - тип переменной, A^S - конечное подмножество

S. Пусть op - конечное семейство однородных операций с множеством индексов A и C-набором переменных (Q0,Q13T), co - еще одна операция с тем же набором переменных. Пусть ф^О^О^Т^^ - функция выбора. Будем обозначать элементы S греческими буквами, событие и оператор операции opa (aeA) обозначим ea, fa соответственно, событие и оператор операции co обозначим e и f соответственно.

Композицией переключения, порожденной кортежем (op,co^), назовем операцию (Q0,QbT,s,g), в которой

s={((x,u),t): xeQiAT л uep(Oo,T) л ( ( ф(хои(0))еA л !=еф(хии(о» (x,u) )

v ( ф(xou(0))IA л t=e(x,u) ) ) }

и g={((x,u),v): xeQiAT л uep(Oo,T) л ( ( ф^^О^е A л v=f(p(xUu(0)) (x,u) )

v ( ф(xou(0))IA л v=f(x,u) ) ) } Для краткости в формулах использовалось обозначение u(0) вместо u(-,0). При выполнении композиции выбора сначала с помощью функции ф мгновенно выбирается одна из операций. Затем эта операция выполняется. Функция ф может вычисляться просто как значение некоторой переменной ae(Q0^Q1).

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

Пусть co1=(00,01,T,e1,f1), co2=(Q0,QbT,e2,f2) - однородные C-операции. Их последовательной композицией назовем операцию co=(00,01,T,e,f), в которой событие e и оператор f определяются следующим образом:

e={((x,u),t): t=e2(f!(x,u)(-,e1(x,u)), a(u, e1(x,u))}.

Событие e происходит в том случае, если происходит событие e1 для исходного набора значений x в процессе u, а затем происходит событие e2 для исходного набора значений f1(x,u)(^,e1(x,u)) в процессе, который является e^x^-суффиксом процесса u.

f = { ((x,u),v): xeQ1AT л uep(00,T) л

( ( (x,u)IDm(e1) л v=f1(x,u) )

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

v ( (x,u)eDm(e1) л v= fax, u)[ 0 , e l0Ciи)) л f2 ( f1(x,u)(%e1(x,u)), a(u, e1(x,u) ) ) ) }. Если событие e1 не происходит, то выходным процессом является выходной процесс оператора f1. Если событие e1 происходит, то выходным процессом является конкатенация двух процессов. Первый процесс - это фрагмент в промежутке [0, e1(x,u)) выходного процесса оператора f1 для исходного набора значений x и процесса u. Второй процесс - это выходной процесс оператора f2 для наследуемого набора значений f1(x,u)(^,e1(x,u)) и e1(x,u)-суффикса процесса u. Если событие e1 происходит мгновенно, первый элемент конкатенации пуст, и выходной процесс совпадает с выходным процессом оператора f2 для исходного набора значений f1(x,u)(^,0) и процесса u.

Определение последовательной композиции распространяется на произвольное число однородных C-операций. Если обозначить последовательную композицию знаком конкатенации «л», то определение дается рекуррентно:

Auditorium: электронный научный журнал Курского государственного университета. 2015. № 3 (07)

Фрумкин А. М. Об объектах языка описания законов управления

К + 1 с Ок = «= ! С Ок) Л соп+v

Композиция неограниченного повторения. При выполнении этой композиции одна и та же базовая операция выполняется столько раз, сколько раз происходит событие выхода из этой операции, причем исходным набором значений для каждого повторения является наследуемый набор значений предыдущего повторения. Дадим формальное определение.

Пусть co=(Qo,^i,T,e,f) - C-операция (базовая операция). Для uep(Q°,T) определим отношение ^u^(Q1ATx[0,^)) равенством

^u={ ((x,e),(y,t) )е (QiATx[°,ro))2 :

У= f(x,o(u,e))(^,e(x,o(u, e))) л t=e+ e(x,a(u, )) }

Областью определения функции ^u является множество таких пар xeQ1AT и ее [°,«0, что событие e происходит для x и е-суффикса u. Если (x°,u)eDm(f), то функция ^u и пара z°=(x°,0), порождают итерационную последовательность, задаваемую равенством zn+1=^u(zn) [Фрумкин 2014]. Эта последовательность может быть конечной или бесконечной. Первые элементы пар zn (наследуемые наборы значений) обозначим xn, а вторые элементы (моменты времени) обозначим tn. Значения событий при повторениях обозначим xn: xn= e(xn,a(u, tn))=tn+1-tn.

Пару (x°,u)eDm(f) назовем правильной, если либо последовательность zn конечна, либо она бесконечна и имеет место равенство .

Композицией неограниченного повторения базовой операции co=(Q°,Q1,T,e,f) назовем операцию (Q°,Q1,T,0,g), в которой событие является пустым (никогда не происходит), а оператор g определяется так. Область определения g - множество правильных пар (x,u)eDm(f). Для каждой правильной пары (x°,u)eDm(g) если итерационная последовательность конечна, и последний элемент имеет номер N, выходной процесс определяется конкатенацией:

V = (Л^о1 f (Хп, с(и, tn))[0Ди)) Л /(xw, а(и, tN)).

Если итерационная последовательность бесконечна, то процесс определяется бесконечной конкатенацией: V = Л“= 0 f (хп, о(и, tn))[0 ).

Композиция ссылки. Пусть (Q°,Q1,T,e,f) - операция, (A°,A1,S) - C-набор переменных. Функцию ^: Q°^Q1^A°^A1 назовем корректной подстановкой

переменных, если Е, инъективна на Q1, ^(Q1)eA1 и VaeQ°^Q1 S(^(a))=T(a). Будем говорить, что переменные из множества ^(Q°^Q1) участвуют в подстановке. Обозначим r1=^(Q1), r°=^(Q°)nA°, r2=^(Q°)nA1. Таким образом, ^(0°^01)=Г°^Г1^Г2. Набор значений x'e(r 1^r2)AS и процесс u'ep(r°,S) определяют набор значений

x={(a,z): aeQ1 л z=x'(^(a))}eQ1AT и процесс u={((a,t),z): aeQ^te[°,ro) л z=u Wa),t) }.

Если пара (x,u)eDm(f), она определяет процесс v=f(x,u) и, соответственно, процесс v'={((a,t),z): ae Г1 л z=v(^-1(a),t) v ae Г2 л z=x'(a) } ер(Г 1^r2,S).

Определим событие e' и оператор f по следующим правилам. Область определения e' - это множество пар (x',u')e(r1^r2)AS x p(r°,S), для которых

соответствующая пара (x,u)eDm(e). Соответственно, e'(x',u')=e(x,u). Область

определения f - это множество пар (x',u')e(r1^r2)AS x p(r°,S), для которых

соответствующая пара (x,u)eDm(f). Соответственно, f (x',u')=v'.

Операцию (r°,r1^r2,S,e',fv) назовем ссылкой на операцию (Q°,Q1,T,e,f) из набора переменных (A°,A1,S) согласно подстановке £.

5. Алгоритмы управления

Рассмотренные композиции управляющих операций позволяют определить объекты языка описания законов управления по аналогии с объектами языка описания

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

алгоритмов [Фрумкин 2014]. Это упорядоченные помеченные деревья [Новиков 2011], которые будем называть алгоритмами управления или управляющими процедурами. Корневой узел дерева помечен описателем C-набора результирующей операции (набора внешних переменных), терминальные узлы - ссылками и композициями присваивания, некорневые и нетерминальные узлы - композициями других типов. Краткие описания узлов приведены в таблице 1.

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

Таблица 1. Узлы дерева алгоритма управления

Вид узла Объекты, описываемые в узле Число наследников узла

Корневой узел Описание набора внешних переменных один

Композиция сужения (введение новой переменной) Новая переменная, ее тип и значение один

Условная композиция Функция условия, описание наследника (наследников) один или два

Композиция выбора Функция выбора, описание наследников несколько

Последовательная композиция Описание наследников несколько

Композиция повторения Описание наследника (базовой операции) один

Ссылка (обращение к существующей операции) Операция ссылки. Соответствия между формальными и фактическими переменными ноль

Присваивание Описание выходной переменной, типа присваивания, функции присваивания ноль

Для эффективного использования в язык желательно включить средства описания параметров. Параметры - это объекты, от которых могут зависеть как событие, так и оператор управляющей операции, но которые, в отличие от переменных, не меняются в процессе выполнения операции. Так же как переменные, параметры имеют имена и типы, принадлежащие универсуму типов. При теоретико-множественном определении управляющей операции множество параметров Qp включается в кортеж, то есть операция определяется как (Qp,Qo,^i,T,e,f). При этом T: Qp^Q0^Q1^S, а e и f зависят не только от xeQ1AT, но и от qeQpAT. В п.1 параметры в определение включены не были, чтобы ограничить громоздкость рассуждений и обозначений. Однако для практики параметры важны, потому что значения выдержек времени, коэффициенты формул регулирования - это, как правило, - параметры. В ссылках и выражениях параметры могут использоваться как входные переменные.

6. Построение синтаксиса языка описания законов управления

Каждый текст языка посвящен описанию алгоритма управления. Проведем частичное построение грамматики языка [Ахо 1978], показывающее общий подход к

Auditorium: электронный научный журнал Курского государственного университета. 2015. № 3 (07)

Фрумкин А. М. Об объектах языка описания законов управления

организации языка. Алфавит языка состоит из латинских и русских букв, арабских цифр и знаков операций, обычно используемых в языках программирования. Для описания грамматики будем использовать метасимволы [Фрумкин 2014]:

::= - знак определения;

<> - границы описателя;

# - хотя бы один пробел;

$ - конец предложения.

Грамматика строится с помощью следующих предложений.

<управляющая процедура (алгоритм управления)> ::= <заголовок процедуры> # <композиция> # end $

< заголовок процедуры > :: = <имя> |

<имя> (<переменные>) |

<имя> par (<параметры>) |

<имя> (<переменные>) par (<параметры>)$

<переменные>::=< описатель переменной> | <описатель переменной>,

<переменные>$

< описатель переменной >::=<тип># <имя>$

< параметры >::=< описатель параметра> | <описатель параметра>, <параметры>$

< описатель параметра >::=<тип># <имя> | <тип># <имя>=<значение>$ <композиция>:: = <условная композиция> | <композиция выбора> | <композиция повторения> | Последовательная композиция >$

<условная композиция>::= if # <выражение> # <композиция> #end | if #

<выражение># <композиция> # else <композиция> #end $

<композиция выбора>: := switch # < выражение > # < варианты > # end | switch # < выражение > # < варианты > # otherwise # <композиция> # end$ <варианты> ::= case # <значение>: # <композиция> | case (<значение>) <композиция> # <варианты> $

<композиция повторения> :: = repeat # <композиция> #end$

Последовательная композиция>::=<терминальная композиция>;

| <терминальная композиция>; # <композиция>$

<терминальная композиция>::= <определение переменной> | <присваивание> | <ссылка>$

<определение переменной> ::=<тип> <имя> :=< значение>$

<присваивание> :: = <мгновенное присваивание> | Непрерывное присваивание> $ <мгновенное присваивание> ::=<имя>:=<выражение>$

Непрерывное присваивание>::=<имя> *=<выражение>$

<ссылка> :: = <имя>( Подстановка > )$

Подстановка > ::= <имя>,<подстановка >$

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

Для выделенных нетерминальных слов («тип», «имя», «выражение», «значение») грамматические расшифровки не определены. В последующих примерах будут использованы три типа переменных: множество целых чисел (int), множество {0,1} (bit) и множество вещественных чисел (real). Синтаксис имен, алгебраических выражений и

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

значений (констант) для рассматриваемых типов заимствуются из распространенных языков программирования.

Таблица 2. Внешние описания элементарных управляющих операций

Название операции Имя операции и ее переменные

ожидание wait(bit x)

зависимая выдержка delay(real x)

интегрирование int(real x, real y)

отсчет времени timer(real x)

В примерах описаний некоторых простых законов управления будут использоваться элементарные процедуры, описанные в п. 2. Их обозначения приведены в таблице 2. Предполагается, что в выражениях могут использоваться ссылки на описания алгоритмов, определяющих функции. Полное описание закона управления может включать не только описания управляющих алгоритмов, но и вычислительных алгоритмов. Описания вычислительных алгоритмов строятся на собственном языке.

7. Примеры описаний законов управления Примеры описаний разделяются строками комментариев, которые, как в системе Matlab, начинаются знаком процента: %.

% — генератор широтно-импульсно модулированного сигнала, у которого % — выдержки импульса и паузы являются входными переменными. Генератор_ШИМ(Ьй x, real T0, T1) repeat x:=1; delay(T1); x:=0; delay(TO); end end % конец процедуры

% --- генератор широтно-импульсно модулированного сигнала, у которого % --- выдержки импульса и паузы являются параметрами.

Генератор_ШИМ(bit x) par (real T0, real T1) repeat x:=1; delay(T1); x:=0; delay(T0); end end% конец процедуры

% — Двухпороговый релейный регулятор (триггер Шмитта)

Триггер_Шмитта(real y, real x) par (real U, % Амплитуда выходного сигнала real D % Полуширина петли гистерезиса % ) y:=U; % Начальное значение по умолчанию repeat

switch y

case U: wait(x<= -D); y:=-U; case -U: wait(x>= D); y:=U; end

end

end % конец процедуры

% --- Пропорциональный регулятор с непрерывным изменением % — управляющей переменной.

Пропорциональный_регулятор(real y, real x) par (real alpha, % коэффициент пропорциональности real s % уставка %) y*= - alpha*(x-s); end % конец процедуры

% — Широтно-импульсный пропорциональный регулятор —

% — Вспомогательный алгоритм вычисления функции —

Fn real L(real x) % Функция ограничения

Auditorium: электронный научный журнал Курского государственного университета. 2015. № 3 (07)

Фрумкин А. М. Об объектах языка описания законов управления

if (x<0) passed=0; else if (x>1) passed=1;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

else passed=x; end end

end % конец описания % — Основная процедура —

ШИМ_П_Регулятор(Ы1 y, real x)

par (real alpha, % коэффициент пропорционального регулирования real T, % Период ШИМ real s, % уставка

real sigma % КЗИ при нулевом отклонении % ) real T1=0; real T0= T; repeat

T1:=T*L(sigma-alpha*(x-s)); T0:=T-T1; y:=1; delay(T1); y:=0; delay(T0); end

end % конец процедуры % — Амплитудно-импульсный регулятор ---АИМ_Регулятор (real y, real x) par (real Tp; % время импульса

real Tr; % время релаксации (паузы)

real alpha; % коэффициент пропорционального регулирования %) repeat

y:= -alpha*x; delay (Tp); y:=0; delay (Tr); end % конец композиции повторения end % конец процедуры % — Частотно-импульсный регулятор —

ЧИМ_Регулятор (real y, real x) par (real Tp; % время импульса

real Tm; % максимальное время релаксации (паузы) real d; % полуширина зоны нечувствительности real D; % полуширина зоны регулирования %)

repeat

if (abs(x)<d) y:=0; T:=Tm;

else if (x> 0) y:= -1; else y:= 1; end

if (x>D) T:=0; else T:= Tm*(D-x)/(D-d); end

end

delay(Tp); y:=0; delay(T); end % конец композиции повторения end % конец процедуры

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

Библиографический список

Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т.1. Синтаксический анализ. М.: Мир, 1978. 612 с.

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Бибило П.Н. Основы языка VHDL: учеб. пособие. Изд. 5-е. М.: Книжный дом «ЛИБРОКОМ», 2012. 328 с.

Бородин В.Б., Шагурин И.И. Микроконтроллеры. Архитектура, программирование, интерфейс. М.: ЭКОМ, 1999. 400 с.

Гребенников Л.К., Летник Л.А. Программирование микропроцессорных систем на языке ПЛ/М. М.: Финансы и статистика, 1986. 160 с.

Дьяконов В. П. MATLAB 6.5/7.0 + Simulink 5/6. Основы применения. Библиотека профессионала. М..: СОЛОН-Пресс, 2005. 800 с.

Кобринский Н.Е., Трахтенброт Б.А. Введение в теорию конечных автоматов. М.: ГИФМЛ, 1962. 404 с.

Колмогоров А.Н., Фомин С.В. Элементы теории функций и функционального анализа. М.: Наука, 1976. 543 с.

Новиков Ф.А. Дискретная математика. СПб.: Питер, 2011. 384 с.

Петров И.В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования / под ред. проф. В.П. Дьяконова. М.: СОЛОН-Пресс, 2004. 256 с.

Прокопенко В.С. Программирование микроконтроллеров ATMEL на языке C. К.: МК-Пресс, СПб.; КОРОНА-ВЕК, 2012. 320 с.

Соловьев В.В. Основы языка проектирования цифровой аппаратуры Verilog. М.: Горячая линия - Телеком, 2014. 208 с.

Фрумкин А.М. К определению понятия события при описании процессов в системах управления // Ученые записки: электронный научный журнал Курского государственного университета. 2013. №1. URL: http://scientific-notes.ru/pdf/029-01.pdf (дата обращения: 21.07.2015).

Фрумкин А.М. Об объектах, описываемых алгоритмическим языком // AUDITORIUM. Электронный научный журнал Курского государственного университета. 2014. №2. URL: http://auditorium.kursksu.ru/pdf/002-001.pdf (дата обращения: 19.08.2015).

Фрумкин А.М. Об объектах, описываемых формулами в алгоритмическом языке // AUDITORIUM. Электронный научный журнал Курского государственного университета. 2015, №2, URL: http://auditorium.kursksu.ru/pdf/006-001.pdf (дата

обращения: 19.08.2015).

Шилов Г. Е. Математический анализ. Функции одного переменного. Ч. 1-2. М.: Наука, 1969. 528 с.

EasyPIC и mikroPascal //Микроконтроллеры Процессоры, проекты, программирование. URL: http://mcucpu.ru/index.php/platformy-8-bit/easypic5/148-pascal-for-pic (дата обращения: 5.09.2015).

Modelica® - a unified object-oriented language for physical systems modeling. Language specification. Version 3.2, revision 1. February 29, 2012. URL:

https://www.modelica.org/documents/ModelicaSpec32Revision1.pdf (дата обращения: 9.10.2012).

Auditorium: электронный научный журнал Курского государственного университета. 2015. № 3 (07)

i Надоели баннеры? Вы всегда можете отключить рекламу.