Обратимся к модели Хищник-Жертва, предложенной Лотки-Волтерра и попытаемся ею поуправлять
Обратимся к рассмотренной в статье модели Хищник-Жертва, предложенной Лотки-Волтерра и попытаемся ею поуправлять, то есть введём управление F в систему, так, что она преобразуется к виду:
(1)
Итак, судя по виду системы (1), управлять мы будем численностью жертв
Рассмотрим в качестве управляющего закона следующий:
(2)
Систему (2) можно интерпретировать следующим образом:
при достаточно высокой популяции жертв, их смертность примерно одинакова;
при малом же количестве добычи, вероятность ею полакомится снижается.
Отметим, что в системе без управления присутствует состояние равновесия, где количество жертв равно
Приступим к построению управляемой системы (13) двух популяций.
1. Для начала, к блок-схеме исходной модели :

Блок-схем модели Хищник-Жертва Xcos
необходимо добавить:
- заглушку супер-блока,
- блок произведения,
- блок TOWS_c.
Следующим шагом нужно провести соединительные линии и отредактировать первый сумматор, как показано на рис. 83.

Рисунок 83. Внедрение блока управляющего воздействия в блок-схему модели Хищник-Жертва
2. Дальнейшие манипуляции подразумевают задание закона управления (2), за который будет отвечать супер-блок. Щёлкните дважды на супер-блоке, чтобы открыть на редактирование его рабочую область.
3. Согласно построенной блок-схеме с рис. 83, на вход супер-блока подаётся текущая численность жертв
4. Сравнение текущего значения численности жертв со значениями

и

, которые располагаются на палитре «Обнаружение перехода через нуль» и работают совместно с блоком

с палитры «Маршрутизация сигналов», который осуществляет выбор управляющего воздействия.
5. Чтобы воспользоваться блоками NEGTOPOS_f и POSTONEG_f, необходимо привести неравенства из (2) к виду:
(3)
6. Теперь неравенства (3) представляют из себя разность двух элементов, один из которых динамический
Откуда следует, что для сборки управления, нам дополнительно понадобятся:
- два константных блока CONST_m
- и два сумматора BIGSOM_f.
Предварительное расположение блоков для анализа условий выбора того или иного закона численности жертв, должно выглядеть, примерно, как на рис. 84.

Рисунок 84. Промежуточный набор блоков для проверки условий (2)
7. Рассмотрим построение блок-схемы неравенства
Данное неравенство выполняется, когда значение левой части становится меньше нуля, то есть переходит на тёмную отрицательную сторону оси координат, будучи до это положительным, тем самым осуществляя движения от «+» к «-».
Данному событию соответствует блок, обнаруживающий переход чрез нуль POSTONEG_f. Соответствующая реализация первого неравенства на блок-схеме представлена на рис. 85.

Рисунок 85. Реализация условия неравенства (3а).
Обратите внимание, что в константном блоке используется значение
8. Перейдём к неравенству
Это неравенство выполняется, когда выражение слева превращается из отрицательного в положительное, то есть осуществляется переход через нуль слева направо, за что отвечает блок NEGTOPOS_f.
Реализация данного неравенства полностью повторяет установку соединительных линий предыдущего случая и требует задания значения

Рисунок 86. Реализация условия неравенства (3б).
9. Далее перейдём к реализации выбора нужного закона управления в зависимости от того, какое неравенство из (3) выполняется. Данный выбор осуществляет блок SELECT_m, имеющий два управляющих и два регулярных входа.
На управляющие входы селектора SELECT_m необходимо подать соответствующие красные выходы блоков POSTONEG_f и NEGTOPOS_f. Заметьте, что здесь важен порядок, так как управляющим входам селектора соответствуют его же регулярные входы. Поэтому выход первого неравенства, реализованного блоком POSTONEG_f, нужно соединить с левым управляющим входом селектора, а выход блока NEGTOPOS_f – соединить с правым красным входом блока SELECT_m.
10. До полного сбора блока управления осталось только указать функции управления из системы (2), которые будут использованы при выполнении каждого из условий, поданных на управляющие входы блока SELECT_m.
Для задания управляющих воздействий проделаем следующие действия:
- на первый регулярный вход селектора подадим функцию
что соответствует выполнению первого условия (3 а), - а на второй черный вход блока SELECT_m - константу
, заданную в контексте.
Итоговая блок-схема для выбора управляющего воздействия
представлена на рис. 87.

Рисунок 87. Блок-схема выбора закона управления (2), реализованная отдельным супер-блоком
Ниже приведён скрипт, записанный к контексте рабочей области исходной блок-схемы.
clc;
a = 1.5; b = 2; d = 0.8; c = 1;
delta = 0.03;
xmin = (1 - delta)*c/d;
xmax = (1 + delta)*c/d;
u = -.3;
clf();
subplot(211)
plot(x_prey.time, x_prey.values, "b", "Linewidth", 2);
plot(y_predator.time, y_predator.values, "r", "Linewidth", 2);
plot(x_prey.time, 0*x_prey.time + c/d, "black", "Linewidth", 1.2);
plot(x_prey.time, 0*x_prey.time + a/b, "magenta", "Linewidth", 1.2);
legend("prey","predator", "c/d", "a/b"); xgrid;
xtitle("Prey-Predator wth F", "t", "x, y");
subplot(212)
plot(u_var.time, u_var.values, "g", "Linewidth", 2);
xgrid;
xtitle("Control F", "t", "F");Задание контекста в Xcos.
Запустите моделирование на 15сек.. с начальными условиями

Рисунок 88. Модель Хищник-Жертва с заданным законом управления. Верхняя система координат колебания численности популяций, нижняя закон управления F(t)
Обратите внимание, что популяция жертв (prey) и хищников (predator) стремится к устойчивым положениям равновесия
В качестве дополнительного задания и для более подробного изучения динамики системы, читателю предлагается вывести фазовый портрет рассматриваемой системы Хищни-Жертва, убедившись, что траектория сходится к точке устойчивости




