Модельно-прогностическое управление ( MPC ) — это передовой метод управления процессом , который используется для управления процессом при соблюдении набора ограничений. Он используется в обрабатывающей промышленности на химических заводах и нефтеперерабатывающих заводах с 1980-х годов. В последние годы он также использовался в моделях балансировки энергосистем [1] и в силовой электронике . [2] Модельно-прогностические контроллеры опираются на динамические модели процесса, чаще всего на линейные эмпирические модели, полученные путем идентификации системы . Основным преимуществом MPC является тот факт, что он позволяет оптимизировать текущий временной интервал, при этом учитывая будущие временные интервалы. Это достигается путем оптимизации конечного временного горизонта, но только реализуя текущий временной интервал, а затем снова оптимизируя, многократно, таким образом, отличаясь от линейно-квадратичного регулятора ( LQR ). Также MPC имеет возможность предвидеть будущие события и может предпринимать соответствующие действия по управлению. ПИД- регуляторы не обладают такой прогностической способностью. MPC практически повсеместно реализуется как цифровое управление, хотя проводятся исследования по достижению более быстрого времени отклика с помощью специально разработанных аналоговых схем. [3]
Обобщенное предиктивное управление (GPC) и динамическое матричное управление (DMC) являются классическими примерами MPC. [4]
Обзор
Модели, используемые в MPC, обычно предназначены для представления поведения сложных и простых динамических систем . Дополнительная сложность алгоритма управления MPC обычно не требуется для обеспечения адекватного управления простыми системами, которые часто хорошо контролируются общими ПИД-регуляторами . Общие динамические характеристики, которые сложны для ПИД-регуляторов, включают большие временные задержки и динамику высокого порядка.
Модели MPC предсказывают изменение зависимых переменных моделируемой системы, которое будет вызвано изменениями независимых переменных . В химическом процессе независимые переменные, которые могут быть скорректированы контроллером, часто являются либо уставками регулирующих ПИД-регуляторов (давление, расход, температура и т. д.), либо конечным элементом управления (клапаны, заслонки и т. д.). Независимые переменные, которые не могут быть скорректированы контроллером, используются в качестве возмущений. Зависимые переменные в этих процессах являются другими измерениями, которые представляют либо цели управления, либо ограничения процесса.
MPC использует текущие измерения завода, текущее динамическое состояние процесса, модели MPC, а также целевые значения и пределы переменных процесса для расчета будущих изменений в зависимых переменных. Эти изменения рассчитываются для удержания зависимых переменных близко к целевым значениям, при этом соблюдая ограничения как для независимых, так и для зависимых переменных. MPC обычно отправляет только первое изменение в каждой независимой переменной, которое должно быть реализовано, и повторяет расчет, когда требуется следующее изменение.
Хотя многие реальные процессы не являются линейными, их часто можно считать приблизительно линейными в небольшом рабочем диапазоне. Линейные подходы MPC используются в большинстве приложений с механизмом обратной связи MPC, компенсирующим ошибки прогнозирования из-за структурного несоответствия между моделью и процессом. В контроллерах прогнозирования моделей, которые состоят только из линейных моделей, принцип суперпозиции линейной алгебры позволяет суммировать влияние изменений в нескольких независимых переменных для прогнозирования реакции зависимых переменных. Это упрощает задачу управления до серии прямых вычислений матричной алгебры, которые являются быстрыми и надежными.
Когда линейные модели недостаточно точны для представления нелинейностей реального процесса, можно использовать несколько подходов. В некоторых случаях переменные процесса можно преобразовать до и/или после линейной модели MPC, чтобы уменьшить нелинейность. Процесс можно контролировать с помощью нелинейной MPC, которая использует нелинейную модель непосредственно в приложении управления. Нелинейная модель может быть в форме подгонки эмпирических данных (например, искусственных нейронных сетей) или высокоточной динамической модели, основанной на фундаментальных балансах массы и энергии. Нелинейная модель может быть линеаризована для получения фильтра Калмана или указания модели для линейной MPC.
Алгоритмическое исследование Эль-Герви, Будмана и Эль Камеля показывает, что использование двухрежимного подхода может обеспечить значительное сокращение онлайн-вычислений, сохраняя при этом производительность, сопоставимую с неизмененной реализацией. Предложенный алгоритм решает N задач выпуклой оптимизации параллельно на основе обмена информацией между контроллерами. [5]
Теория MPC
MPC основан на итеративной оптимизации модели завода с конечным горизонтом. В момент времени текущее состояние завода выбирается, и вычисляется стратегия управления, минимизирующая затраты (с помощью численного алгоритма минимизации) для относительно короткого временного горизонта в будущем: . В частности, онлайн-расчет или расчет «на лету» используется для исследования траекторий состояний, которые исходят из текущего состояния, и нахождения (с помощью решения уравнений Эйлера–Лагранжа ) стратегии управления, минимизирующей затраты до момента времени . Реализуется только первый шаг стратегии управления, затем состояние завода выбирается снова, и вычисления повторяются, начиная с нового текущего состояния, что дает новый контроль и новый прогнозируемый путь состояния. Горизонт прогнозирования продолжает смещаться вперед, и по этой причине MPC также называется управлением с отступающим горизонтом . Хотя этот подход не является оптимальным, на практике он дал очень хорошие результаты. Было проведено много академических исследований для поиска быстрых методов решения уравнений типа Эйлера–Лагранжа, для понимания свойств глобальной устойчивости локальной оптимизации MPC и в целом для улучшения метода MPC. [6] [7]
Принципы ПДК
Модель предиктивного управления — это многомерный алгоритм управления, который использует:
внутренняя динамическая модель процесса
функция стоимости J на удаляющемся горизонте
алгоритм оптимизации, минимизирующий функцию стоимости J с использованием управляющего входа u
Пример квадратичной функции стоимости для оптимизации имеет вид:
без нарушения ограничений (нижние/верхние пределы) с
: контролируемая переменная (например, измеренная температура)
: th ссылочная переменная (например, требуемая температура)
: управляемая переменная (например, регулирующий клапан)
: весовой коэффициент, штрафующий относительно большие изменения в
и т. д.
Нелинейный MPC
Нелинейное управление с прогнозированием модели, или NMPC, является вариантом управления с прогнозированием модели, который характеризуется использованием нелинейных системных моделей в прогнозировании. Как и в линейном MPC, NMPC требует итеративного решения задач оптимального управления на конечном горизонте прогнозирования. Хотя эти задачи являются выпуклыми в линейном MPC, в нелинейном MPC они уже не обязательно выпуклые. Это создает проблемы как для теории устойчивости NMPC, так и для численного решения. [8]
Численное решение задач оптимального управления NMPC обычно основано на прямых методах оптимального управления с использованием схем оптимизации типа Ньютона в одном из вариантов: прямой одиночной стрельбы , прямых множественных стрельб или прямой коллокации . [9] Алгоритмы NMPC обычно используют тот факт, что последовательные задачи оптимального управления похожи друг на друга. Это позволяет эффективно инициализировать процедуру решения типа Ньютона с помощью соответствующим образом смещенного предположения из ранее вычисленного оптимального решения, что значительно экономит время вычислений. Сходство последующих задач еще больше используется алгоритмами следования по пути (или «итерациями в реальном времени»), которые никогда не пытаются итерировать какую-либо задачу оптимизации до сходимости, а вместо этого выполняют только несколько итераций в направлении решения самой текущей задачи NMPC, прежде чем перейти к следующей, которая соответствующим образом инициализирована; см., например,.. [10] Другим многообещающим кандидатом для задачи нелинейной оптимизации является использование метода рандомизированной оптимизации. Оптимальные решения находятся путем генерации случайных выборок, которые удовлетворяют ограничениям в пространстве решений, и поиска оптимального решения на основе функции стоимости. [11]
В то время как в прошлом приложения NMPC в основном использовались в обрабатывающей и химической промышленности со сравнительно низкой частотой дискретизации, NMPC все чаще применяется с достижениями в области аппаратного обеспечения контроллеров и вычислительных алгоритмов, например, предварительной подготовки [12] для приложений с высокой частотой дискретизации, например, в автомобильной промышленности, или даже когда состояния распределены в пространстве ( системы распределенных параметров ). [13] В качестве приложения в аэрокосмической отрасли в последнее время NMPC используется для отслеживания оптимальных траекторий следования/избегания рельефа местности в реальном времени. [14]
Явный MPC
Явный MPC (eMPC) позволяет быстро оценить закон управления для некоторых систем, в резком контрасте с онлайн-MPC. Явный MPC основан на параметрическом методе программирования , где решение задачи управления MPC, сформулированной как задача оптимизации, предварительно вычисляется в автономном режиме. [15] Это автономное решение, т. е. закон управления, часто имеет форму кусочно-аффинной функции (PWA), поэтому контроллер eMPC хранит коэффициенты PWA для каждого подмножества (области управления) пространства состояний, где PWA является константой, а также коэффициенты некоторых параметрических представлений всех регионов. Каждый регион оказывается геометрически выпуклым многогранником для линейного MPC, обычно параметризованным коэффициентами для его граней, что требует анализа точности квантования . [16] Получение оптимального управляющего воздействия затем сводится к первому определению области, содержащей текущее состояние, и второму — простой оценке PWA с использованием коэффициентов PWA, сохраненных для всех регионов. Если общее число регионов невелико, реализация eMPC не требует значительных вычислительных ресурсов (по сравнению с онлайн-MPC) и однозначно подходит для систем управления с быстрой динамикой. [17] Серьезным недостатком eMPC является экспоненциальный рост общего числа регионов управления по отношению к некоторым ключевым параметрам управляемой системы, например, числу состояний, что резко увеличивает требования к памяти контроллера и делает первый шаг оценки PWA, т. е. поиск текущего региона управления, вычислительно затратным.
Надежный MPC
Надежные варианты управления прогнозированием модели способны учитывать ограниченное множество возмущений, при этом обеспечивая соблюдение ограничений состояния. Некоторые из основных подходов к надежному MPC приведены ниже.
Min-max MPC . В этой формулировке оптимизация выполняется с учетом всех возможных эволюций возмущения. [18] Это оптимальное решение для линейных проблем надежного управления, однако оно влечет за собой высокие вычислительные затраты. Основная идея подхода min/max MPC заключается в модификации онлайновой оптимизации «min» в задачу «min-max», минимизируя наихудший случай целевой функции, максимизированной по всем возможным объектам из набора неопределенности. [19]
Ограничение ужесточения MPC . Здесь ограничения состояния увеличиваются на заданный предел, так что траектория может быть гарантированно найдена при любой эволюции возмущения. [20]
Tube MPC . Это использует независимую номинальную модель системы и использует контроллер обратной связи для обеспечения сходимости фактического состояния к номинальному состоянию. [21] Требуемая величина разделения ограничений состояния определяется набором надежных положительно инвариантных (RPI), который представляет собой набор всех возможных отклонений состояния, которые могут быть введены возмущением с помощью контроллера обратной связи.
Многоэтапный MPC . Он использует формулировку дерева сценариев, аппроксимируя пространство неопределенности набором образцов, и подход неконсервативный, поскольку учитывает, что информация об измерениях доступна на каждом временном этапе прогнозирования, а решения на каждом этапе могут быть разными и могут выступать в качестве средства противодействия эффектам неопределенности. Однако недостатком подхода является то, что размер проблемы растет экспоненциально с числом неопределенностей и горизонтом прогнозирования. [22] [23]
Многоступенчатый MPC с трубчатым усилением . Этот подход синергизирует многоступенчатый MPC и MPC на основе трубки. Он обеспечивает высокую степень свободы для выбора желаемого компромисса между оптимальностью и простотой путем классификации неопределенностей и выбора законов управления в прогнозах. [24] [25]
Коммерчески доступное программное обеспечение MPC
Доступны коммерческие пакеты MPC, которые обычно содержат инструменты для идентификации и анализа моделей , проектирования и настройки контроллеров, а также оценки производительности контроллеров.
Обзор имеющихся в продаже пакетов был предоставлен SJ Qin и TA Badgwell в Control Engineering Practice 11 (2003) 733–764.
MPC против LQR
Модель предиктивного управления и линейно-квадратичные регуляторы являются проявлениями оптимального управления с различными схемами установления затрат на оптимизацию.
В то время как контроллер с прогнозирующей моделью часто рассматривает фиксированные по длине, часто градуированно взвешенные наборы функций ошибок, линейно-квадратичный регулятор рассматривает все входы линейной системы и обеспечивает передаточную функцию, которая уменьшит общую ошибку по всему спектру частот, компенсируя ошибку состояния в зависимости от входной частоты.
Из-за этих фундаментальных различий LQR имеет лучшие свойства глобальной стабильности, но MPC часто имеет более локально оптимальные[?] и сложные характеристики.
Основные различия между MPC и LQR заключаются в том, что LQR оптимизирует по всему временному окну (горизонт), тогда как MPC оптимизирует в уменьшающемся временном окне [4] , и что с MPC новое решение вычисляется часто, тогда как LQR использует одно и то же единственное (оптимальное) решение для всего временного горизонта. Таким образом, MPC обычно решает задачу оптимизации в меньшем временном окне, чем весь горизонт, и, следовательно, может получить неоптимальное решение. Однако, поскольку MPC не делает никаких предположений о линейности, он может обрабатывать жесткие ограничения, а также миграцию нелинейной системы из ее линеаризованной рабочей точки, оба из которых являются основными недостатками LQR.
Это означает, что LQR может стать слабым при работе вдали от стабильных фиксированных точек. MPC может наметить путь между этими фиксированными точками, но сходимость решения не гарантируется, особенно если пренебречь мыслью о выпуклости и сложности проблемного пространства.
^ Арнольд, Мишель; Андерссон, Йоран; «Модель предиктивного управления хранением энергии, включая неопределенные прогнозы» https://www.pscc-central.org/uploads/tx_ethpublications/fp292.pdf
^ Гейер, Тобиас; Модель прогнозирующего управления преобразователями высокой мощности и промышленными приводами , Wiley, Лондон, ISBN 978-1-119-01090-6 , ноябрь 2016 г.
^ Вичик, Сергей; Боррелли, Франческо (2014). «Решение линейных и квадратичных программ с помощью аналоговой схемы». Компьютеры и химическая инженерия . 70 : 160–171. doi :10.1016/j.compchemeng.2014.01.011.
^ ab Wang, Liuping (2009). Проектирование и реализация систем управления с прогнозированием моделей с использованием MATLAB® . Springer Science & Business Media. стр. xii.
^ Аль-Герви, Валид; Будман, Гектор; Элкамель, Али (3 июля 2012 г.). «Надежное распределенное модельное прогнозирующее управление на основе двухрежимного подхода». Компьютеры и химическая инженерия . 50 (2013): 130–138. doi :10.1016/j.compchemeng.2012.11.002.
^ Николау, Майкл; «Модельные предсказательные контроллеры: критический синтез теории и промышленных потребностей», Advances in Chemical Engineering , том 26, Academic Press, 2001, страницы 131-204
^ Берберих, Джулиан; Колер, Йоханнес; Мюллер, Маттиас А.; Алльгёвер, Франк (2022). «Линейное отслеживание MPC для нелинейных систем — часть I: случай на основе модели». IEEE Transactions on Automatic Control . 67 (9): 4390–4405. arXiv : 2105.08560 . doi : 10.1109/TAC.2022.3166872. ISSN 0018-9286. S2CID 234763155.
^ Прекрасный обзор современного состояния дел (по состоянию на 2008 год) представлен в трудах двух крупных международных семинаров по NMPC, проведенных Чжэном и Альгёвером (2000) и Финдайзеном, Альгёвером и Биглером (2006).
^ Хеденгрен, Джон Д.; Асгарзаде Шишаван, Реза; Пауэлл, Коди М.; Эдгар, Томас Ф. (2014). «Нелинейное моделирование, оценка и предиктивное управление в APMonitor». Компьютеры и химическая инженерия . 70 (5): 133–148. doi :10.1016/j.compchemeng.2014.04.013. S2CID 5793446.
^ Оцука, Тошиюки (2004). «Продолжение/GMRES-метод для быстрого вычисления нелинейного управления удаляющимся горизонтом». Automatica . 40 (4): 563–574. doi :10.1016/j.automatica.2003.11.005.
^ Муралидхаран, Арун (2022). «Реализация в реальном времени рандомизированного модельного предиктивного управления для автономного вождения». Труды IEEE по интеллектуальным транспортным средствам . 7 (1): 11–20. doi : 10.1109/TIV.2021.3062730 . S2CID 233804176.
^ Князев, Эндрю; Малышев, Александр (2016). «Разреженное предварительное обусловливание для управления предсказательной моделью». Американская конференция по управлению (ACC) 2016 г. . стр. 4494–4499. arXiv : 1512.00375 . doi :10.1109/ACC.2016.7526060. ISBN978-1-4673-8682-1. S2CID 2077492.
^ Гарсиа, Мириам Р.; Вилас, Карлос; Сантос, Лино О.; Алонсо, Антонио А. (2012). «Надежный многомодельный прогнозирующий контроллер для систем с распределенными параметрами» (PDF) . Журнал управления процессами . 22 (1): 60–71. дои : 10.1016/j.jprocont.2011.10.008.
^ Камьяр, Реза; Тахери, Эхсан (2014). «Оптимальное планирование и управление траекторией полета самолета с учетом рельефа местности/угроз». Журнал наведения, управления и динамики . 37 (2): 466–483. Bibcode : 2014JGCD...37..466K. doi : 10.2514/1.61339.
^ Бемпорад, Альберто; Морари, Манфред; Дуа, Вивек; Пистикопулос, Эфстратиос Н. (2002). «Явный линейный квадратичный регулятор для систем с ограничениями». Automatica . 38 (1): 3–20. doi :10.1016/s0005-1098(01)00174-1.
^ Князев, Эндрю; Чжу, Пейжен; Ди Кайрано, Стефано (2015). «Анализ точности управления с помощью явной модели прогнозирования». 2015 54-я конференция IEEE по принятию решений и управлению (CDC) . С. 2389–2394. arXiv : 1509.02840 . Bibcode : 2015arXiv150902840K. doi : 10.1109/CDC.2015.7402565. ISBN978-1-4799-7886-1. S2CID 6850073.
^ Клаучо, Мартин; Калуз, Мартин; Квасница, Михал (2017). «Реализация в реальном времени явного эталонного регулятора на основе MPC для управления системой магнитной левитации». Control Engineering Practice . 60 : 99–105. doi :10.1016/j.conengprac.2017.01.001.
^ Scokaert, Pierre OM; Mayne, David Q. (1998). "Предсказательное управление с использованием модели обратной связи Min-Max для линейных систем с ограничениями". IEEE Transactions on Automatic Control . 43 (8): 1136–1142. doi :10.1109/9.704989.
^ Невистич, Весна; Морари, Манфред (1996-06-01). «Надежность схем на основе MPC для управления нелинейными системами с ограничениями». Труды IFAC, тома . 29 (1): 5823–5828. doi :10.1016/S1474-6670(17)58612-7. ISSN 1474-6670.
^ Ричардс, Артур Г.; Хау, Джонатан П. (2006). «Надежное устойчивое модельное прогнозирующее управление с ужесточением ограничений». Труды Американской конференции по управлению .
^ Лэнгсон, Уилбур; Хриссохос, Иоаннис; Ракович, Саша В.; Мейн, Дэвид К. (2004). «Надежное прогнозирующее управление моделью с использованием трубок». Автоматика . 40 (1): 125–133. doi : 10.1016/j.automatica.2003.08.009.
^ Люсия, Серхио; Финклер, Тиаго; Энгелл, Себастьян (2013). «Многоэтапное нелинейное модельное прогнозирующее управление, применяемое к полупериодическому полимеризационному реактору в условиях неопределенности». Журнал управления процессами . 23 (9): 1306–1319. doi :10.1016/j.jprocont.2013.08.008.
^ Lucia, Sergio; Subramanian, Sankaranarayanan; Limon, Daniel; Engell, Sebastian (2020). "Свойства устойчивости многоэтапного нелинейного модельного предсказательного управления". Systems & Control Letters . 143 (9): 104743. doi :10.1016/j.sysconle.2020.104743. S2CID 225341650.
^ Субраманиан, Санкаранараянан; Люсия, Серджио; Паулен, Радослав; Энгелл, Себастьян (2021). «Многоступенчатая модель с улучшенными трубками и прогнозирующим управлением для гибкого надежного управления ограниченными линейными системами». Международный журнал надежного и нелинейного управления . 31 (9): 4458–4487. arXiv : 2012.14848 . doi : 10.1002/rnc.5486. S2CID 234354708.
^ Субраманиан, Санкаранараянан; Абдельсалам, Йехия; Люсия, Серджио; Энгелл, Себастьян (2022). «Надежный многоступенчатый NMPC с улучшенными трубками и гарантиями стабильности». IEEE Control Systems Letters . 6 : 1112–1117. doi : 10.1109/LCSYS.2021.3089502. S2CID 235799791.
Дальнейшее чтение
Квон, Ук Хён; Брукштейн, Альфред М.; Кайлат, Томас (1983). «Стабилизация конструкции обратной связи по состоянию с помощью метода движущегося горизонта». Международный журнал управления . 37 (3): 631–643. doi :10.1080/00207178308932998.
Гарсия, Карлос Э.; Претт, Дэвид М.; Морари, Манфред (1989). «Модель прогнозирующего управления: теория и практика». Автоматика . 25 (3): 335–348. дои : 10.1016/0005-1098(89)90002-2.
Findeisen, Rolf; Allgöwer, Frank (2001). «Введение в нелинейное модельное предсказательное управление». Летняя школа по теме «Влияние оптимизации на управление», Голландский институт систем и управления, редакторы CW Scherer и JM Schumacher : 3.1–3.45.
Мейн, Дэвид К.; Михальска, Ханна (1990). «Управление нелинейными системами с отступающим горизонтом». Труды IEEE по автоматическому управлению . 35 (7): 814–824. doi :10.1109/9.57020.
Мейн, Дэвид К.; Роулингс, Джеймс Б.; Рао, Кристофер В.; Скокарт, Пьер О. М. (2000). «Ограниченное модельное прогнозное управление: устойчивость и оптимальность». Automatica . 36 (6): 789–814. doi :10.1016/S0005-1098(99)00214-9.
Allgöwer, Frank; Zheng, Alex, ред. (2000). Нелинейное модельное предсказательное управление . Прогресс в теории систем. Т. 26. Биркхаузер.
Камачо; Бордонс (2004). Модель прогнозирующего управления . Спрингер Верлаг.
Финдайзен, Рольф; Алльгёвер, Франк; Биглер, Лоренц Т. (2006). Оценка и будущие направления нелинейного модельного предсказательного управления . Конспект лекций по управлению и информационным наукам. Том 26. Springer.
Diehl, Moritz M.; Bock, H. Georg; Schlöder, Johannes P.; Findeisen, Rolf; Nagy, Zoltan; Allgöwer, Frank (2002). «Оптимизация в реальном времени и нелинейное модельное предсказательное управление процессами, управляемыми дифференциально-алгебраическими уравнениями». Journal of Process Control . 12 (4): 577–585. doi :10.1016/S0959-1524(01)00023-3.
Роулингс, Джеймс Б.; Мейн, Дэвид К.; и Диль, Мориц М.; Модель предиктивного управления: теория, вычисления и проектирование (2-е изд.), Nob Hill Publishing, LLC, ISBN 978-0975937730 (октябрь 2017 г.)
Гейер, Тобиас; Модель прогнозирующего управления преобразователями высокой мощности и промышленными приводами , Wiley, Лондон, ISBN 978-1-119-01090-6 , ноябрь 2016 г.
Внешние ссылки
Пример из практики. Работы по очистке сточных вод Ланкастера, оптимизация с помощью Model Predictive Control от Perceptive Engineering
ACADO Toolkit — набор инструментов с открытым исходным кодом для автоматического управления и динамической оптимизации, предоставляющий линейные и нелинейные инструменты MPC. (доступен интерфейс C++, MATLAB)
μAO-MPC — программный пакет с открытым исходным кодом, который генерирует специализированный код для контроллеров с прогнозированием моделей во встраиваемых системах в высокопереносимом коде на языке C.
GRAMPC — программная среда с открытым исходным кодом для встроенного нелинейного управления предиктивной моделью с использованием градиентного метода расширенного Лагранжа. (Обычный код C, без генерации кода, интерфейс MATLAB)
jMPC Toolbox — набор инструментов MATLAB с открытым исходным кодом для линейного MPC.
Исследование применения НМПХ в сверхтекучей криогенике (кандидатская диссертация).
Набор инструментов для управления нелинейными моделями и прогнозирования для MATLAB и Python
Model Predictive Control Toolbox от MathWorks для проектирования и моделирования контроллеров с прогнозированием моделей в MATLAB и Simulink
Контроллер с прогнозирующей моделью импульсного шага - виртуальный симулятор
Учебное пособие по MPC с примерами Excel и MATLAB
GEKKO: Управление прогнозированием моделей на Python