Два подхода к построению фазового портрета на примере аттрактора Рёсслера
В представленных ранее примерах, мы рассмотрели вывод графической составляющей моделируемых систем двумя способами: с помощью осциллографов CMSCOPE и CSCOPE и путём задания контекста. Однако в обоих случаях графики строились в системах координат, где на горизонтальной оси откладывались временные отсчеты, а по вертикальной – значения функции в указанные моменты времени. И, хотя вопрос разложения дифференциальных уравнений на фазовые переменные был затронут в статье, не освещенным остался вопрос построения фазового портрета. Этой, столь полезной для анализа поведения решений моделируемых систем дифференциальных уравнений, процедуре и будет посвящён данный материал.
Мы рассмотрим два подхода к построению фазовых траекторий динамической системы на примере аттрактора Рёсслера. Данная система дифференциальных уравнений выбрана не случайно. Дело в том, что при моделировании системы Рёсслера, именно фазовый портрет представляет интерес, построение же интегральных кривых, как функций времени, не даёт полной картины происходящих в системе процессов.
Аттрактор Рёсслера — это хаотический аттрактор, которым обладает система дифференциальных уравнений Рёсслера вида:
При значениях параметров
Сразу же за точкой
Построим блок-схему системы (1), задав параметры в контексте со значениями
Для построения трёх уравнений системы (1) нам понадобятся блоки INTEGRAL_m, BIGSOM_f, PRODUCT, CONST и GAINBLK.
Двумерный фазовый портрет в Xcos
В рамках первого подхода к построению фазового портрета, воспользуемся блоком

, который располагается на палитре «Регистрирующие устройства» и осуществляет построение графика зависимости
Приступим к построению блочной диаграммы Xcos.
- Для начала, добавьте на рабочую область 3 блока интегратора INTEGRAL_m с нулевыми начальными значениями, 4 блока BIGSOM_f, блок умножения переменных PRODUCT и блоки для задания коэффициентов CONST и GAINBLK.
Расположите указанные блоки в порядке использования в уравнениях. В результате должна получиться заготовка, приближенная к изображённой на рис. 57.
Рисунок 57. Заготовка для создания блок-схемы системы (1)
Рисунок 57. Заготовка для создания блок-схемы системы (1) - На построении соединительных линий между блоками Xcos для первых двух уравнений системы Рёсслера не будем подобно останавливаться, так как оно представляется легко осуществимым на основе приобретённого читателем опыта. Результат установления связей для переменных
отображен на рис. 58.
Рисунок 58. Первые два уравнения системы (1)
Рисунок 58. Первые два уравнения системы (1) - Сбор блок-схемы третьего уравнения системы Рёсслера нужно начать со второго слагаемого, то есть осуществить произведение переменной
и скобки , см. рис. 59.
Рисунок 59. Блок схема части третьего уравнения системы (1)
Рисунок 59. Блок схема части третьего уравнения системы (1) - Осталось только подвести нужные соединительные линии на регулярные входы последнего сумматора и направить его выход на соответствующий интегратор,
.
Результатом данных манипуляций будет схема, блок-изображённая на рис. 60.
Рисунок 60. Блок-схема системы Рёсслера трёх диф. уравнений
Рисунок 60. Блок-схема системы Рёсслера трёх диф. уравнений - Далее, необходимо добавить блоки для осуществления моделирования CLOCK_c, END, проведя соединительные линии и настроив внутренние параметры блоков для моделирования на протяжении 300сек.
Для вывода фазовых траекторий, добавьте блок CSCOPXY, на регулярные входы которого направьте интересующие нас переменные для вывода графика , а на управляющий вход – соединительную линию от индикатора отсчетов CLOCK_c.
Обратите внимание, что названия входов блока CSCOPXY иллюстрируют построение функции .
В результате блок-схема, реализующая построение траекторий аттрактора Рёсслера на фазовой плоскости примет вид, такой, как показано на рис. 61.
Рисунок 61. Блок-схема моделирования системы Рёсслера
Рисунок 61. Блок-схема моделирования системы Рёсслера
Запустите моделирование на протяжении 300сек., настройте внутренние параметры блока CSCOPXY так, чтобы странный аттрактор хорошо вписывался бы в координатную сетку, как показано на рис. 62.
Рисунок 62. Аттрактор Рёсслера на фазовой плоскости
Рисунок 62. Аттрактор Рёсслера на фазовой плоскости
Итак, результатом моделирования бифуркаций аттрактора Рёсслера будет фазовая траектория
Построение трёхмерного графика в Xcos
Для большей наглядности результата моделирования, заменим блок CSCOPXY блоком CSCOPXY3D.
Функциональный блок

располагается на палитре «Регистрирующие устройства» и служит он для отображения трёхмерной системы координат, что становится понятно из его названия.
Изменённая часть блок-схемы и результат моделирования аттрактора Рёсслера представлены на рис. 63а,б.

Рисунок 63a. Моделирование 3D системы Рёсслера - добавление блока CSCOPXY3D в блок-схему

Рисунок 63б. Результат использования Xcos блока генерации трёхмерной сетки координат
Построение 3D графика с помощью контекста в Xcos
Рассмотрим ещё один способ построения фазового портрета систем дифференциальных уравнений, теперь уже с использованием контекста и блоков буферизации данных TOWS_c.
Добавьте 3 блока буферизации TOWS_c – по одному для каждой переменной моделируемой системы.
Во внутренних параметров каждого из блоков TOWS_c укажите число запоминаемых точек = 10000 и задайте ассоциируем имена переменных x_var, y_var, z_var в соответствии с сигналами, подающимися на регулярные входы TOWS_c (см. рис. 64).

Рисунок 64. Блоки буферизации, включенные блок-схему системы (1)
Теперь значения переменных
Для того, чтобы отобразить две системы координат в одном графическом окне, добавьте в контекст следующие строки:
subplot(121);
plot(x_var.time, x_var.values, "r", "Linewidth", 2);
plot(y_var.time, y_var.values, "g", "Linewidth", 2);
plot(z_var.time, z_var.values, "b", "Linewidth", 2);
legend("x","y","z"); xgrid();
xtitle("Фазовые переменные аттрактора Рёсслера", "t, время", "x, y, z");
subplot(122);
param3d(x_var.values, y_var.values, z_var.values); xgrid();
xtitle("Аттрактора Рёсслера в 3D");Графики в контексте Xcos.
После запуска моделирования, появится одно графическое окно: на первой координатной сетке будут зависимости

Рисунок 65. Результат использования блоков буферизации и контекста для вывода графиков системы Рёсслера (1)




