Представление алгоритма численного решения гибридной динамической системы с конечным множеством дискретных состояний в виде конечного автомата

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Вестн. Ом. ун-та. 2013. № 4. С. 221-227.

УДК 004.021;519.622.2

В.В. Коробицын, Ю.В. Фролова

ПРЕДСТАВЛЕНИЕ АЛГОРИТМА ЧИСЛЕННОГО РЕШЕНИЯ ГИБРИДНОЙ ДИНАМИЧЕСКОЙ СИСТЕМЫ С КОНЕЧНЫМ МНОЖЕСТВОМ ДИСКРЕТНЫХ СОСТОЯНИЙ В ВИДЕ КОНЕЧНОГО АВТОМАТА

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

Ключевые слова: гибридная система, конечный автомат, численный алгоритм.

Введение

Системы обыкновенных дифференциальных уравнений (ОДУ) с разрывной правой частью обладают свойствами, отличными от непрерывных систем. Как отмечал А.Ф. Филиппов [1], такие системы могут не иметь решения, могут иметь негладкое решение, решений может быть несколько. И главным топологическим отличием решения является возможность появления скользящего режима, которому посвящена работа В.И. Уткина [2]. Такие системы получили широкое распространение в различных областях применения: электротехнике [3; 4], динамике сложных механизмов [5; 6], биологических системах [7; 8] и др. Однако численное исследование таких систем осложняется отсутствием универсального алгоритма, применимого для любых систем такого рода. В каждом исследовании конкретной системы используется индивидуальный подход. Разработке методов решения разрывных (гибридных) систем посвящено довольно много работ [9-14], однако общий подход так и не выработан. При собственной разработке авторы также столкнулись с подобной проблемой. Получаемые алгоритмы даже для случая одной поверхности разрыва получаются весьма громоздкими [15-19]. Как же быть, если количество поверхностей начинает увеличиваться?

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

1. Определение автомата для алгоритма численного решения систем ОДУ

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

© В.В. Коробицын, Ю.В. Фролова, 2013

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

Состояния конечного автомата qi (i = 1,2,...,N) будем сопоставлять с методами поиска очередной точки численного решения задачи, а переходы между состояниями wi,j - это переключение между методами и передача необходимых данных. Входным значением состояния qi (входом) примем набор <S, (ii-s, Xi-s), (i2-s, X2-s),., (to, xo), ho>, где s

- количество известных точек траектории решения (tp, xp), p = 1 - s, 2 - s,...,0; h0 - рекомендуемый шаг для продолжения интегрирования. Здесь и далее будем считать точкой решения (t,x)e Rn+1, где t - скалярная величина, x - вектор в n-мерном пространстве.

Выходным значение (выходом) состояния будем считать набор <m, (t1, x1), (t2, x2),...,(tm,xm), qj, s, hm>, где m - количество вычисленных точек решения (tm, xm), qj -следующее состояние автомата, s - флаг, hm

- рекомендуемый шаг интегрирование для продолжения решения. Флаг s сигнализирует о том, необходимо принять точки |(t/,x/)|,

l = 1,2,.,m в качестве точек решения (значение true) или отклонить их (значение false). Шаг интегрирования hm обычно определяется исходя из оценки локальной погрешности последней найденной точки (tm, xm), и используется для следующего шага.

Переход wi,j из состояния qi в состояние qj осуществляется, если на выходе состояния qi сформирован набор, содержащий следующее состояние qj. Переход w, будет считать допустимым, если среди возможных выходов состояния qi имеется хотя бы один выход, содержащий qj. Условие выбора перехода wi,j будем обозначать как Ci,j.

2. Автомат для непрерывной системы

Простейший алгоритм численного решения системы обыкновенных дифференциальных уравнений вида dx

— = f(t,x),x(t0) = x0, dt

где функция ft,x) непрерывна по teR и удовлетворяет условию Липшица по xeRn, можно представить в виде конечного автомата с тремя состояниями: q0, q1, q2 (рис. 1).

Рис. 1. Схема простейшего автомата для решения непрерывной системы ОДУ

Состояние qo - алгоритм выбора начального шага интегрирования. В качестве входа он получает начальную точку системы (to, x0) и рекомендуемый пользователем шаг интегрирования h0, т. е. набор <1, (t0,x0),h0>. На выходе формируется набор <1, (t0,x0), q1, false, h1>, указывающий на то, что точку (to, x0) не нужно принимать в качестве новой точки решения (s = false), но выбран начальный шаг интегрирования h1. Состояние qo имеет только одно возможное выходное состояние q1, поэтому определен безусловный переход wo,1. Условие перехода

Co,1:=true.

Состояние q1 - некоторый одношаговый метод численного решения системы ОДУ, который, исходя из заданной точки (t^-1, x^

1), определяет следующую точку решения (tk, xk). Таким образом, на вход состояния q1 поступает сигнал <1, (tk-1,xk-1), hk-1>, а на выходе формируется сигнал <1, (tk,xk), qj, true, hk> или <(tk-1,xk-1), qj, false, hk> в зависимости от оценки локальной погрешности найденной точки решения (tk,xk). Если оценка погрешности меньше заданной точности, то принимает очередную точку (s=true), иначе отклоняем (s = false). Из оценки погрешности также вычисляется очередной шаг hk, который будет больше hk-1, если погрешность меньше заданной точности, и наоборот, шаг уменьшится, если погрешность больше заданной точности.

Выходное состояние определяется из проверки условия C1,1:=hm;n<h2<T-tk, где hmin -минимально возможный шаг интегрирования (задается с целью предотвращения бесконечного уменьшения шага). Второе неравенство в условии необходимо для контроля выхода за границы отрезка интегрирования [to; T]. Если C1,1 истинно, то выходное состояние q1, иначе q2 (C1,2= -C1,1). Таким образом, для состояния q1 определены два альтернативных перехода: w1,1 и w1,2.

Состояние q2 является терминальным, и на нем завершается выполнение алгоритма. На этом определение автомата для численного алгоритма решения непрерывной системы ОДУ завершено. Решением задачи считается последовательность принятых точек {(tk, xk)}, k = o,1,...,M.

3. Автомат для системы с одной поверхностью разрыва

Рассмотрим систему ОДУ с одной поверхностью разрыва G = {xeRn: g(x) = o} вида dx

— = | fi(t,x) при g(x) <0, I

t 1 f-i

x(t0) = x0,g(x0) Ф 0,

где f1(t,x), f-1(t,x), g(x) - непрерывные функции. На поверхности разрыва функцию правой части системы (1) можно доопределить так:

при g(x) = 0.

& 2

Данное доопределение согласуется с подходом Филиппова [1], где система на поверхности разрыва заменяется дифференциальным включением с минимальным выпуклым множеством, содержащем /1 и /ь Для такой системы на поверхности разрыва может осуществляться скользящий режим

[2].

Конечный автомат для системы (1) построен на основе статей [17; 18]. Представленный автомат (рис. 2) имеет дополнительные состояния: д3 - режим пересечения, q4 -режим скольжения, д5 - режим выхода со скольжения. Состояние д1 будем называть непрерывным режимом. Состояния д0 и д2 имеют тот же смысл, что и ранее: д0 - выбор начального шага, д2 - завершение вычислений. Подробно опишем дополнительные состояния и возможные переходы автомата.

с одной поверхностью разрыва

3.1. Непрерывный режим

Состояние q1 предназначено для вычисления траектории решения, когда правая часть системы непрерывна. Для него определен еще один переход w1,3, который происходит в тот момент, когда в алгоритме q1 идентифицируется приближение к поверхности разрыва. Условие перехода C1,3:=g(xk-1)g(x)<o, где х - любая из тех точек, для которых в алгоритме q1 потребовалось вычислять функцию правой части. В этом случае формируется выход <1, (tk-1, xk-1), q3, false, hk>. Выход показывает, что мы возвращаемся к исходной точке (tk-1, xk-1), не сохраняем его в качестве новой точки решения (s = false). Величина hk = т - tk-1, где т соответствует точке х, для которой было идентифицировано пересечение поверхности G.

3.2. Режим пересечения

Состояние q3 предназначено для точного вычисления точки пересечения кривой решения с поверхностью G. В качестве входного сигнала передается <1, (tk-1, xk-1), hk-1>. На основе этих данных вычисляются две точки (tk, xk) и (tk+1, xk+1), которые лежат на кривой решения системы, но по разные стороны от поверхности разрыва, согласно следующему алгоритму [19]:

1) вычислить приближенное значение шага интегрирования до поверхности G по формуле

т = -ag(xk-i) .

Lfl(g)(tk-i,xk-i)’

2) выполнить r шагов одношаговым методом длины т/r из точки xk-1, в итоге получим точки x1k-1, x2k-1,..., xrk-1;

3) по точкам xk-1, x1k-1,., xrk-1 построить интерполяционный многочлен Ньютона Nr(t), приближающий кривую решения x(t) при te[tk-1,tk-1+T(r+1)/r];

4) итерационным методом Ньютона построить последовательность точек

у. =N (tk ,+ в.),в. = в. ,-------bg(у‘-i)-----,

- ' ' g

e0=°y0=xk-i,i=i,2,...,m

до выполнения условия || ym-ym-1ll<Tol, где Tol

- заданная локальная точность;

5) выдать результат tk:=tk-1+£m-1, xk:=ym-1, tk+b = tk-1+$m, xk+1: = ym.

Анализируя направления векторов правых частей системы в найденных точках (tk, xk) и (tk+1, xk+1), определяем поведение решения системы после пересечения поверхности разрыва. Если векторы направлены по одну сторону от поверхности, то кривая решения пересекает поверхность разрыва и продолжает решение на другой стороне. Поэтому формируется выходной сигнал <1, (tk+1, xk+1), q1, true, 0m>. Условие пересечения можно записать в виде

C3,1: = Lf1(g)(tk, xk)  Lf-1(g)(tk+1, xk+1)>o.

Здесь через Lf(g)(t, x) обозначена производная Ли от функции g(x) вдоль векторного поля ft, x):

Lf(g)(t,x) : = d-(t,x)=dL• d-(t,x) = dt dx dt

dg(x),f(t,x)\. dx

Если векторы направлены по разные стороны от поверхности, т. е. выполнено условие

C3A:=Lfi(g)(tk, xk) • Lf_i(g)(tk+i, xk+1) < 0, то реализуется скользящий режим вдоль поверхности разрыва. Следовательно, формируем выход <2, (tk, xk), (tk+1, xk+1), q4, true, hk+1>. Таким образом, определены два возможных перехода w3,1 и w3,4.

3.3. Скользящий режим

Состояние q4 предназначено для вычисления решения при скольжении вдоль поверхности разрыва. На вход поступает сигнал <2, (tk-2, xk-2), (tk-1,xk-1), hk-1>. Применяем соответствующий метод [18] для решения системы в скользящем режиме. Суть метода заключается в вычислении двух скользящих траекторий по разные стороны от поверхности разрыва с использованием одной для

вычисления другой. Одна траектория х(1) стартует из точки х^2, вторая х*(И) - из точки хк.1. Траектории будем искать как решение системы

ёх .. ёх

— = /вр,х,х*), — = /о(Кхх*), т т

%

с начальными данными

x(tk) = хк-2, X*(tk) = хк-1.

Отметим, что лучше определить значение tk:= ^к-2 + tk-l)/2.

Функция / задается в виде

/Ах) + /_Дх*) +

fo(t,x,x*) = -

2

f 1

--1[ 2 J11 ' • Mo

где

Lf

u0(t,x,x*) =---i------------i-------.

LfJg)

Функция д служит для проецирования векторов f1 и f-1 на касательное подпространство к поверхности G.

Алгоритм q4 реализуется с помощью применения одношагового метода численного решения систем ОДУ для системы (2) с определенной правой частью (3). Результатом работы алгоритма являются две точки: xk = x(tk+1) и xk+1 = x*(tk+1).

Любой одношаговый метод можно наделить процедурой оценки локальной погрешности и использовать ее для выбора шага интегрирования hk на следующей итерации, а также сделать вывод о принятии или отклонении вычисленной точки решения sk. Причиной отказа от режима скольжения может послужить изменение положения траекторий x(t) и x*(t) относительно поверхности G. Условие выхода со скольжения запишется в виде

C4,5:=g(xk-2) • g(xk) < 0 V g(xk_i) • g(xk+i) < 0.

Если условие C4,5 выполняется, то осуществляется переход w4,5 с выходом <2, (tk, xk), (tk, xk+1), q5, false, hk>, иначе сохраняется состояние q4 и формируется выход <2, (tk, xk), (tk, xk+1), q4, sk, hk>.

3.4. Выход со скольжения

Состояние q5 предназначено для поиска точки схода с поверхности скольжения. На вход поступает набор <2, (tk-2, xk-2), (tk-1, xk-1), hk-1>, а на выходе формируется набор <1, (tk, xk), q1, true, hk>. Необходимо найти точку (tk, xk) пересечения траектории x(t) с поверхностью M = {xeRn: |^o(x)|=1}. Поиск осуществляется аналогично режиму пересечения. Но в этом случае нас интересует только одна точка, соответствующая точке за поверхностью выхода, т. е. удовлетворяющая условию | Д (tk, xk, xk*)|>1.

В итоге для состояния определен только один безусловный переход и^д.

4. Автомат для системы с двумя поверхностями разрыва

Рассмотрим случай двух поверхностей разрыва 01 = {хеЯп: д1(Х) = 0} и 02 = {хеЯп: д2(х) = 0}. В общем случае две поверхности разбивают пространство на четыре подпространства, хотя некоторые из них могут

быть вырожденными общем виде:

dx (гу-,

[ fi,i

f-i,i

fi,-i

f-i -i

Запишем систему в

dt

при gi(x) < 0,g2(x) < 0, при gi(x) > 0,g2(x) < 0, при gi(x) < 0,g2(x) > 0, при gi(x) > 0,g2(x) > 0,

х^д) = х0^/х0) Ф 0^2(х0) Ф 0,

где /ц^х), /-1Д

- непрерывные функции. Эта система обладает новым свойством по сравнению с системой (1). Здесь может реализовываться режим скольжения вдоль двух поверхностей разрыва одновременно, точнее, скольжение вдоль кривой пересечения двух поверхностей разрыва (012={хеЯп: д1(х)=д2(х)=0}).

Если траектория не проходит вблизи кривой пересечения этих поверхностей, то можно использовать автомат из предыдущего пункта. Однако если траектория пересекает кривую пересечения поверхностей разрыва или проходит в непосредственной близости от нее, то характер поведения алгоритма качественно меняется. Необходимо рассмотреть два возможных случая: 1) траектория из области непрерывности попадает на кривую пересечения поверхностей;

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

Для обработки всех случаев дополним автомат новыми состояниями (рис. 3): q6 -пересечение двух поверхностей; q^ - скольжение по двум поверхностям; qg - выход со скольжения по двум поверхностям.

с двумя поверхностями разрыва

4.1. Пересечение двух поверхностей

Переход в состояние q6 реализуется в двух случаях: 1) при вычислении точки пересечения траектории с поверхностью разрыва обнаружено пересечение еще с одной поверхностью, 2) при скольжении траектории по поверхности обнаружено пересечение с другой поверхностью. В первом случае

осуществляется переход и3,б. Условие перехода можно записать в виде

Съ,в:=(Я1(хк-1^1(х) < 0 л Т2 < Т1) V V ^(хк-^Ьд < 0 л Т1< Т2), где х - любая из тех точек, для которых в алгоритме q3 потребовалось вычислять функцию правой части

т = \§2(хк-¡)\

Ь' ? __ ч

\/(хк-1)\ • \ ^%1(хк _Л \§2(хк-1)\

\ f(xk-i) \ • I ^g2(xk-i) I

При этом на выходе состояния q3 формируется набор <1, (tk-1, xk-1), q6, false, hk-1>.

В втором случае, когда при скольжении по поверхности G1 осуществляется переход ш4,б, условие перехода имеет вид

C4,6:=g2(xk-2)g2(x) < 0 V gi(xk-i)gi(x) < 0,

где х - любая из тех точек, для которых в алгоритме q4 потребовалось вычислять функцию правой части. При этом на выходе состояния q4 формируется набор <2, (tk-2, xk-2), (tk-1, xk-1), q6, false, hk-1>, который поступает на вход состояния q6.

Вычисления по алгоритму q6 осуществляются следующим образом. Необходимо вычислить несколько точек решения, не достигая пересечения с поверхностями G1 и G2. По этим точкам построить интерполяционный многочлен, приближающую кривую решения. Затем продолжить кривую полинома до пересечения с поверхностями и найти точки пересечения с необходимой точностью. При этом использовать четыре точки xk, xk+1, xk+2, xk+3 в разных областях относительно поверхностей для определения режима продолжения решения. В случае когда скользящая траектория сталкивается с еще одной поверхностью, необходимо построить два полинома, приближающие две траектории по разные стороны от первой поверхности, далее найти пересечение кривых этих полиномов со второй поверхностью и снова получить четыре точки. Условие выполнения скользящего режима вдоль двух поверхностей G1 и G2:

C' = L

'fi,i -f-i

< 0 лL - f

h-i J -i,-i

ALf - f (g 2 )(xk+2 ) < h,i J i,-i

< 0 Л L - f (g2 )(Xk+3 ) < 0.

f-i,i J-i-i

В этом случае на выходе формируется набор <4, (tk, xk), (tk+1, xk+1), (tk+2, xk+2), (tk+3, xk+3), q7, true, hk+3>.

Если условие (5) не выполняется, то осуществляется переход в состояние q3 (Сб,3= -Сб,7) с выбором двух соответствующих точек: <2, (tk, xk), (tk+1, xk+1), q3, true,

Ьк+1>. Таким образом, определены переходы

иб,7, иб,3.

4.2. Скольжение по двум поверхностям

Состояние q7 предназначено для вычисления точек решения в скользящем режиме вдоль кривой пересечения двух поверхностей. В этом режиме требуется переопределение правой части системы, так чтобы решение двигалось вдоль кривой 01,2: ёх11 ёх_11 ёх_11 ёх_1 -1

где

dt dt dt dt

= f0,0(t , xi,i , xi--Л x-i,i, x-i,-l),

f0.0

2 2  L - (gI)’

J-1, 0 J i, 0

fi,0(t, xir xi,-i)-

L

fu+fi, -i 2

fi,i - fi,-i h,i+fi.-Г2'

2 L - f

fi -i i i

f-i 0 0

f-i, i + f-i,-i 2

- f i - fi,-i Lu,+f-,. Jg2>

2 L - (g2)'

f-i ,-i J-i, i

Алгоритм q7 реализуется с помощью применения одношагового метода численного решения систем ОДУ для системы (б) с определенной правой частью. Результатом работы алгоритма являются четыре точки: xk = x1,1(tk+1), xk+1 = x1,-1(tk+1), xk+2 = x_1,1(tk+1),

xk+3 = x.1,-1(tk+1).

При получении очередных четырех точек определяется следующее состояние. Если точки остались в своих областях и погрешность найденного решения не превышает заданной точности, то формируется выход <4, (tk, xk), (tk+1, xk+1), (tk+2, xk+2), (tk+3, xk+3), q7, true, hk+3>, говорящий о продолжении решения. Если погрешность велика, то шаг уменьшается и выход становится <4,

(tk-4, xk-4), (tk-3, xk-3), (tk-2, xk-2), (tk-1, xk-1), q7,

false, hk>. Если же обнаружен сход с кривой скольжения, определяемое условием

C7,8 : = \jg,(xk- j) • gi(xk- j+4 ) < 0,

i = i, 2, j = i, 2,3,4, то формируется выход <4, (tk-4, xk-4), (tk-3, xk-3), (tk-2, xk-2), (tk-1, xk-1), q8, false, hk>. Таким образом, получили переходы w7,7, W7,8.

4.3. Сход с кривой скольжения

Состояние q8 предназначено для определения точек схода с кривой скольжения.

На вход поступают четыре точки <4, (tk-4, xk-4), (tk-3, xk-3), (tk-2, xk-2), (tk-1, xk-1), hk-1>. Вычисляются точки схода с кривой. В зависимости от поведения функций правой части в этих точках определяется, траектория продолжает движение либо в скользящем режиме только по одной из поверхностей, либо в непрерывном режиме. В первом случае получаем выход <2, (tk, xk), (tk+1, xk+1), q4, true, hk+1>, а во втором - <1, (tk, xk), q5, true, hk>. Так определены переходы w8,4 и w8,5.

Сопоставив схемы на рис. 2 и 3, видим, что добавление еще одной поверхности разрыва увеличивает схему на три новых состояния q6, q7 и q8 с соответствующими переходами.

5. Автомат для системы с r поверхностями разрыва

Рассмотрим случай произвольного количества r поверхностей разрыва. В общем случае r поверхностей разбивают пространство на 2r подпространств, хотя некоторые из них могут быть вырожденными. Пусть r поверхностей разрыва задаются уравнениями g;(x)=o, i=1,2,...,r. Тогда все подпространства можно пронумеровать набором a1, a2,..., ar, каждый ai может принимать два значения: -1 или 1. Тогда каждое подпространство задается системой неравенств a1g1(x)<o, a2g2(x)<o,..., argr(x)<o. Определим в каждом подпространстве непрерывную функцию fa1,a2,...,ar(t,x), тогда система будет иметь вид

dx= .

~t = fai,a2,...,ar

при aigi(x) < 0,a2g2(x) <0,...,argr(x) < 0.

В этой системе могут реализовываться режимы скольжения вдоль 1,2,...,r-1 или r поверхностей разрыва одновременно.

В автомате для двух поверхностей (рис. 3) три состояния отвечают за поведение системы в непрерывном режиме, три -при взаимодействии с одной поверхностью разрыва, еще три - с двумя поверхностями. Из чего мы делаем вывод, что при добавлении еще одной поверхности нам потребуется добавить еще три состояния.

Введем систему нумерации состояний:

• q3r - пересечение r поверхностей;

• q3r+1 - скольжение вдоль r поверхностей;

• q3r+2 - выход со скольжения по r поверхностям.

Данная нумерация состояний соответствует схеме (рис. 3) при r = 1,2. Однако при r = o можно провести формальное соответствие: qo - выбор начального шага соответствует пересечению o поверхностей; q1 -непрерывный режим соответствует скольжению вдоль o поверхностей; q2 - завершение вычислений соответствует выходу со скольжения по o поверхностям. И это соответствие не лишено основания. Непрерыв-

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

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

Отметим, что при добавлении трех новых состояний (для новой поверхности) требуется добавить восемь переходов. Приведем схему автомата для численного решения системы с г поверхностями разрыва (рис. 4). Построенный автомат имеет 3г+3 состояния и 8г+3 переходов. На рисунке серым контуром выделены состояния на одном уровне, соответствующие вычислениям с одним и тем же количеством поверхностей.

Рис. 4. Схема автомата для решения системы с г поверхностями разрыва

Классифицируем 8 полученных переходов для каждого уровня:

1. На одном уровне: и3г,3г+1 - переход с пересечения на скольжение, и3г+1,3г+1 - следующий шаг в режиме скольжения, и3г+1,3г+2

- выход со скольжения. В этих переходах передается информация о 2Г точках.

2. На более высокий уровень (в сторону увеличения поверхностей): и3г,3(г+1) - на пересечение с еще одной поверхностью, и3г+1,3(г+1) - со скольжения на пересечение с еще одной поверхностью. Здесь передается информация о 2Г точках.

3. На более низкий уровень (в сторону уменьшения поверхностей): и3г,3[т-1) - в режиме пересечения исключается одна из поверхностей, и3г+2,3(г-1)+1 - выход со скольжения на скольжения по меньшему количеству поверхностей, и»зг+2,3(г-1)+2 - выход со скольжения на выход со скольжения с меньшим количеством поверхностей. В этих случаях передается информация о 2Г-1 точках.

Заключение

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

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

Приведенный автомат может быть использован для программной реализации алгоритма решения систем ОДУ с разрывами.

ЛИТЕРАТУРА

[1] Филиппов А. Ф. Дифференциальные уравнения с разрывной правой частью. М. : Наука, 1985.

[2] Уткин В. И. Скользящие режимы в задачах оптимизации и управления. М. : Наука, 1981.

[3] Utkin V.I., Gulder J., Shi J. Sliding Modes in Electromechanical Systems. London : Taylor & Francis, 1999.

[4] Johansson K. H., Barabanov A. E., Astrom K. J. Limit cycles with chattering in relay feedback systems // IEEE Transactions on Automatic Control. 2002. Vol. 247. P. 1414-1423.

[5] Brogliato B. Nonsmooth Mechanics. 2nd edition. London: Springer-Verlag, 1999.

[6] Lotstedt P. Coulomb friction in two-dimensional rigid body systems // Z. Angew. Math. und Mech. 1991. Vol. 64. P. 605-615.

[7] Krivan V., Diehl S. Adaptive omnivory and species coexistence in tri-trophic food webs // Theoretical Population Biology. 2005. № 67. P. 85-99.

[8] Naji R. K., Kasim I. H. The Dynamics of Food Web Model with Defensive Switching Property // Nonlinear Analysis: Modelling and Control. 2008. Vol. 13. № 2. P. 225-240.

[9] Новиков Е.А., Шорников Ю.В. Численное моделирование гибридных систем методом Рунге

- Кутты второго порядка точности // Вычислительные технологии. 2008. Т. 13. № 2. С. 99105.

[10] Enright W. H., Jackson K. R, Norsett S. P., Thomsen P. G. Effective solution of discontinuous

IVPs using a Runge-Kutta formula pair with interpolants // Numerical Analysis Rep. University of Manchester. 1986. January.

[11] Gear C.W., Osterby O. Solving ordinary differential equations with discontinuities // aCm Trans. Math. Software. 1984. Vol. 10. P. 23-44.

[12] Park T., Barton P. I. State event location in differential-algebraic models // ACM Transactions on Modeling and Computer Simulation. 1996. Vol. 6. № 2. P. 137-165.

[13] Piiroinen P. T., Kuznetsov Yu. A. An event-driven method to simulate Filippov systems with accurate computing of sliding motions // ACM Trans. Math. Software. 2008. Т. 34. № 13. P. 1-24.

[14] Shampine L.F., Thompson S. Event location for ordinary differential equations // Computer and Mathematics with Application. 2000. Vol. 39. P. 43-54.

[15] Коробицын В. В., Фролова Ю. В. Алгоритм численного решения дифференциальных уравнений с разрывной правой частью // Математические структуры и моделирование. Омск, 2005. Вып. 15. С. 46-54.

[16] Коробицын В. В., Маренич В. Б., Фролова Ю. В. Исследование поведения явных методов Рунге

- Кутты при решении систем обыкновенных дифференциальных уравнений с разрывной правой частью // Математические структуры и моделирование. Омск, 2007. Вып. 17. С. 19-25.

[17] Коробицын В. В., Фролова Ю. В., Маренич В. Б. Алгоритм численного решения кусочно-сшитых систем // Вычислительные технологии. 2008. Т. 13. № 2. С. 70-81.

[18] Коробицын В. В., Фролова Ю. В. Алгоритм вычисления скользящего режима для системы с гладкой границей разрыва // Вычислительные технологии. 2010. Т. 15. № 2. С. 56-72.

[19] Коробицын В. В. Об определении точки пересечения кривой решения задачи Коши с поверхностью разрыва // Вычислительные технологии. 2011. Т. 16. № 4. С. 50-63.