Построение фазового портрета в 2D и 3D в Xcos

В представленных ранее примерах, мы рассмотрели вывод графической составляющей моделируемых систем двумя способами: с помощью осциллографов CMSCOPE и CSCOPE и путём задания контекста. Однако в обоих случаях графики строились в системах координат, где на горизонтальной оси откладывались временные отсчеты, а по вертикальной – значения функции в указанные моменты времени. И, хотя вопрос разложения дифференциальных уравнений на фазовые переменные был затронут в статье, не освещенным остался вопрос построения фазового портрета. Этой, столь полезной для анализа поведения решений моделируемых систем дифференциальных уравнений, процедуре и будет посвящён данный материал.

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

Аттрактор Рёсслера — это хаотический аттрактор, которым обладает система дифференциальных уравнений Рёсслера вида:

(1)\begin{cases} \dot{x}=-y-z \\ \dot{y}=x+ay \\ \dot{z}=b+z(x-c) \end{cases}

\( a>0, b>0,c>0 \)

При значениях параметров \( a=b=0.2 \) и \( 2.6 \leq c \leq 4.2 \) уравнения Рёсслера обладают устойчивым предельным циклом. При этих значениях параметров период и форма предельного цикла совершают последовательность удвоения периода.

Сразу же за точкой \( c=4.2 \) возникает явление хаотического аттрактора. Чётко определённые линии предельных циклов расплываются и заполняют фазовое пространство бесконечным счетным множеством траекторий, обладающим свойствами фрактала. Именно случай бесконечных самоповторяющихся траекторий мы и замоделируем.

Построим блок-схему системы (1), задав параметры в контексте со значениями \( a=b=0.1, с=14 \).

Для построения трёх уравнений системы (1) нам понадобятся блоки INTEGRAL_m, BIGSOM_f, PRODUCT, CONST и GAINBLK.

Двумерный фазовый портрет в Xcos

В рамках первого подхода к построению фазового портрета, воспользуемся
блоком Строим двумерный и трёхмерный графики на фазовой плоскости в Xcos , который располагается на палитре «Регистрирующие устройства» и осуществляет построение графика зависимости \( y(x) \), где \( x \) отвечает за значения по оси абсцисс, а значения \( y(x) \)откладываются на оси ординат.

Приступим к построению блочной диаграммы Xcos.

1. Для начала, добавьте на рабочую область 3 блока интегратора INTEGRAL_m с нулевыми начальными значениями, 4 блока BIGSOM_f, блок умножения переменных PRODUCT и блоки для задания коэффициентов CONST и GAINBLK.

Расположите указанные блоки в порядке использования в уравнениях. В результате должна получиться заготовка, приближенная к изображённой на рис. 57.

Рисунок 57. Заготовка для создания блок-схемы системы (1) Рисунок 57. Заготовка для создания блок-схемы системы (1)

2. На построении соединительных линий между блоками Xcos для первых двух уравнений системы Рёсслера не будем подобно останавливаться, так как оно представляется легко осуществимым на основе приобретённого читателем опыта. Результат установления связей для переменных \( y, x \)  отображен на рис. 58.

Рисунок 58. Первые два уравнения системы (1) Рисунок 58. Первые два уравнения системы (1)

3. Сбор блок-схемы третьего уравнения системы Рёсслера нужно начать со второго слагаемого, то есть осуществить произведение переменной \( z \) и скобки \( (x-c)\), см. рис. 59.

Рисунок 59. Блок схема части третьего уравнения системы (1) Рисунок 59. Блок схема части третьего уравнения системы (1)

4. Осталось только подвести нужные соединительные линии на регулярные входы последнего сумматора и направить его выход на соответствующий интегратор, \( z \).

Результатом данных манипуляций будет схема, блок-изображённая на рис. 60.

Рисунок 60. Блок-схема системы Рёсслера трёх диф. уравнений Рисунок 60. Блок-схема системы Рёсслера трёх диф. уравнений

5. Далее, необходимо добавить блоки для осуществления моделирования CLOCK_c, END, проведя соединительные линии и настроив внутренние параметры блоков для моделирования на протяжении 300сек.

Для вывода фазовых траекторий, добавьте блок CSCOPXY, на регулярные входы которого направьте интересующие нас переменные \( y, x \) для вывода графика \( y(x) \), а на управляющий вход – соединительную линию от индикатора отсчетов CLOCK_c. 

Обратите внимание, что названия входов блока CSCOPXY иллюстрируют построение функции \( y(x) \).

В результате блок-схема, реализующая построение траекторий аттрактора Рёсслера на фазовой плоскости примет вид, такой, как показано на рис. 61.

Рисунок 61. Блок-схема моделирования системы Рёсслера Рисунок 61. Блок-схема моделирования системы Рёсслера

Запустите моделирование на протяжении 300сек., настройте внутренние параметры блока CSCOPXY так, чтобы странный аттрактор хорошо вписывался бы в координатную сетку, как показано на рис. 62.

Рисунок 62. Аттрактор Рёсслера  на фазовой плоскости Рисунок 62. Аттрактор Рёсслера на фазовой плоскости

Итак, результатом моделирования бифуркаций аттрактора Рёсслера будет фазовая траектория \( y(x) \), иллюстрирующая сценарий перехода к хаосу через каскады бифуркаций удвоения периода Фейгенбаума, субгармонические каскады и гомоклинический каскад бифуркаций.

Построение трёхмерного графика в Xcos

Для большей наглядности результата моделирования, заменим блок CSCOPXY блоком CSCOPXY3D.

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

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

Рисунок 63a.Моделирование 3D системы Рёсслера - добавление блока CSCOPXY3D в блок-схему Рисунок 63a.Моделирование 3D системы Рёсслера - добавление блока CSCOPXY3D в блок-схему
Рисунок 63б.Результат использования Xcos блока генерации трёхмерной сетки координат Рисунок 63б.Результат использования Xcos блока генерации трёхмерной сетки координат

Построение 3D графика с помощью контекста в Xcos

Рассмотрим ещё один способ построения фазового портрета систем дифференциальных уравнений, теперь уже с использованием контекста и блоков буферизации данных TOWS_c.

Добавьте 3 блока буферизации TOWS_c – по одному для каждой переменной моделируемой системы.

 Во внутренних параметров каждого из блоков TOWS_c укажите число запоминаемых точек = 10000 и задайте ассоциируем имена переменных  x_var, y_var, z_var в соответствии с сигналами, подающимися на регулярные входы  TOWS_c (см. рис. 64).

Рисунок 64. Блоки буферизации, включенные блок-схему системы (1) Рисунок 64. Блоки буферизации, включенные блок-схему системы (1)

Теперь значения переменных \( x,y,z \) для всех временных отсчетов записываются в одноимённые переменные x_var, y_var, z_var. Эти переменные можно использовать в контексте для построения графиков посредством стандартных Scilab – функций, например plot() и param3d().

Для того, чтобы отобразить две системы координат в одном графическом окне, добавьте в контекст следующие строки:


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.

После запуска моделирования, появится одно графическое окно: на первой координатной сетке будут зависимости \( x(t), y(t), z(t) \), а на второй – трёхмерный график аттрактора Рёсслера. как на рис. 65.

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

Комментарии

Гость
Ответить
Войдите, чтобы оставить комментарий.
Гость
Ответить
Гость
Ответить
Гость
Ответить
Еще нет комментариев, оставьте первый.