11.7 Инструменты моделирования
В аквапонике для иллюстрации функциональности аквапонической системы обычно используются блок-схемы или схемы запаса и потока (SFD) и каузальные петли (CLD). Ниже будет описана блок-схема и CLD.
11.7.1 Блок-схемы
Чтобы получить системное представление о аквапонике, блок-схемы с наиболее важными компонентами аквапоники являются хорошим инструментом, чтобы показать, как материал течет в системе. Это может помочь, например, найти недостающие компоненты и несбалансированные потоки и главным образом повлиять на детерминанты подпроцессов. На рисунке 11.18 показана простая блок-схема аквапоники. В блок-схеме рыбные продукты и вода добавляются в аквариум, где корм берется рыба для роста, вода обогащается рыбными отходами, а обогащенная питательными веществами вода добавляется в систему гидропоники для получения растительной биомассы. Из блок-схемы можно легко построить CLD, показанный на рис. 11.19.
Рис. 11.18 Пример блок-схемы в аквапонике (только обмен RAS и HP)
Рис. 11.19 Диаграмма причинной петли (CLD), иллюстрирующая примеры армирующей и сбалансированной петли в аквапонных системах. Армирующий контур (R) - это тот, в котором действие дает результат, который влияет на более одно и то же действие и, следовательно, приводит к росту или снижению, где в качестве балансирующего контура (B) пытается привести вещи в нужное состояние и сохранить их там (например, регулирование температуры в доме)
11.7.2 Диаграммы причинно-следственной петли
Причинно-циклические диаграммы (CLD) являются инструментом, чтобы показать структуру обратной связи системы (Sterman 2000). Эти диаграммы могут создать основу для понимания сложных систем, визуализируя взаимосвязь различных переменных внутри системы. При рисовании CLD переменные изображаются в виде узлов. Эти узлы соединены ребрами, которые образуют связь между двумя переменными соответственно. На рисунке 11.19 показано, что такие ребра могут быть отмечены как положительные, так и отрицательные. Это зависит от отношения переменных друг к другу. Когда обе переменные меняются в одном направлении, то можно говорить о положительной причинно-следственной связи. Таким образом, отрицательная причинно-следственная связь вызывает изменение в противоположных направлениях. При соединении двух узлов с обеих сторон создается замкнутый цикл, который может иметь две характеристики: (1) arming loop, описывающий причинно-следственную связь, создающую экспоненциальный рост или коллапс внутри цикла, или (2) balancing loop, в котором причинные влияния удерживают систему в равновесии . На рисунке 11.19 показан пример обоих типов петель.
Проиллюстрируем это (рис. 11.20) для блок-схемы на рис. 11.18.
Очевидно, что CLD и SFD очень полезны для понимания системы, когда модель не требует числовой точности. Если требуется числовая точность, процесс следует дополнительно изучить с помощью системной динамической инструментальной диаграммы (SDTD) и смоделировать в программном обеспечении динамического моделирования систем. Например, CLD на рис. 11.20 можно дополнить дифференциальными уравнениями в SDTD (рис. 11.21).
Рис. 11.20 Пример CLD для обмена RAS и HP
Из SDTD теперь мы можем увидеть, как выглядят дифференциальные уравнения баланса питательных веществ в резервуаре. Мы знаем, что поток питательных веществ из аквариума (MsubxFout/Sub) должен быть поток воды (Qsubfout/Sub), умноженный на концентрацию в выходящем потоке (CSubxf/Sub):
$M_ {xfout} == C_ {xf} Q_ {fout} $
Если предположить, что перемешиваемый бак дает концентрацию питательных веществ в баке плавника до:
$C_ {xf} = M_ {xf} /V_F$
Дифференциальные уравнения части RAS могут быть получены следующим образом:
$xv_f/DT=Q_ {fin} -Q_ {fout} $
$dm_ {xf} /dt=m_ {xfin} -M_ {xfout} $,
Рис. 11.21 Пример SDTD для обмена RAS и HP
и для концентрации
$dc/dt= (Q_ {fin} C_ {xfin} -Q_ {fout} C_ {xf} /V_F) $
11.7.3 Программное обеспечение
В дополнение к базовым компьютерным языкам, таким как Fortran, C++ и Python, для быстрого вычисления и полностью пользовательской реализации доступны все виды передовых программных средств. Эти передовые программные средства предлагают множество сред, концепций и опций. Мы можем моделировать переменные состояния, дифференциальные уравнения, связи и циклы. Кроме того, мы можем использовать модель для моделирования, анализа стабильности, оптимизации и контроля.
Основные причины моделирования системы заключаются в том, чтобы понять и контролировать ее. Таким образом, модель помогает прогнозировать динамику или поведение системы. Программное обеспечение может позволить нам выполнять три последующие задачи: a) само моделирование, b) моделирование модели (моделей) и c) оптимизация модели и/или моделирования.
Программное обеспечение Mathematica_ предназначено для функционального анализа математически описанных задач (Wolfram 1991). Концепция основана на подходе LISP (McCarthy and Levin 1965.), очень эффективном функциональном языке программирования. Синтаксис достаточно прост, и это программное обеспечение популярно в математике, физике и системной биологии. Особенно, модуль Ndsolve помогает решать обычные дифференциальные уравнения, строить построение решения и находить конкретные значения.
Очень похожие инструменты для решения Odes предлагаются в Maple. Это программное обеспечение очень мощное; между его особенностями относятся решения краевых задач, точные решения и математические приближения. Copasi (комплексный тренажер пути) — программный инструмент для моделирования и анализа биохимических сетей с помощью обыкновенных дифференциальных уравнений.
SageMath является бесплатной системой математики с открытым исходным кодом. Программное обеспечение основано на Python и облегчает моделирование моделей ODE. Программное обеспечение Data2Dynamics_ представляет собой набор численных методов количественного динамического моделирования и представляет собой комплексный язык описания модели и данных. Программное обеспечение позволяет анализировать шум, калибровку и прогнозы неопределенности и имеет библиотеки биологических моделей.
Вероятно, лучшим языком моделирования является Simula (вероятно, больше не используется) и Simula 67, который рассматривается в начале как пакет для Algol 60. Это были первые полностью объектно-ориентированные языки, внедряющие классы, наследование, подклассы, сборщик мусора и другие. В начале XXI века создатели Ole-Johan Dahl и Kristen Nygaard были награждены медалью IEEE Джона фон Неймана и премией А.М. Тьюринга (Dahl and Nygaard 1966).
Идея Simula заключалась в том, что объекты имеют жизнь; они начинают существовать, делают свое существо и прекращают свое существование. Объекты определяются как общие классы (код шаблона), и каждый экземпляр такого объекта имеет «жизнь» в моделировании. Язык был довольно трудным для изучения. Тем не менее, она предложила возможность моделировать процессы по объекту и проводить моделирование их жизненного цикла. Моделирование выполняется на основе дискретных событий, и можно моделировать объекты в совместной программе. Дополнительные задачи могут запускаться, запускаться, отсоединяться, возобновляться и завершаться в перекрывающихся временных периодах в квазипараллельных процессах. Сегодняшнее оборудование позволяет нам моделировать и моделировать в полностью параллельных потоках. Однако многие концепции Simula уже были использованы для разработки других языков, а именно Java, C/C++/C\ # и постоянных библиотек объектов, таких как DOL (Soukup и Machacek 2014). Нынешним преемником Simula является BETA, расширяя и показывая возможности наследования в концепциях вложенных (суб) классов (с вложенным локальным временем) и паттернов (Madsen et al. 1993).
Это всегда возможность использовать любой из объектно-ориентированных языков и конкретных библиотек и программировать весь необходимый код для конкретной модели. С другой стороны, уже существующие графические среды программирования позволяют проектировать и связать структуру моделируемой системы из библиотек объектов (генератор сигналов, сумма, интегратор и т.д.), параметризировать их и запустить моделирование в виртуальное время.
Еще одним популярным программным обеспечением для моделирования является MathWorks Simulink, описывающая себя как инструмент проектирования на основе модели. Среда позволяет комбинировать и параметризировать предопределенные блоки (из широкого спектра библиотек) и диаграммы в подсистемы. Программирование осуществляется с помощью графических блоков и их соединений в функциональные части с обратной связью. Среда широко используется для управления, автоматизации и обработки сигналов. Другой возможностью является интеграция собственного кода из языка MathWorks Matlab или использование различных наборов инструментов (Jablonsky et al. 2016). Одна из них, SenSSb, ориентирована на анализ чувствительности и позволяет импортировать другие модели с использованием языка системной биологии. Для визуализации существующих моделей в Simulink также можно использовать очень быстрый просмотрщик моделей DiffPlug. PottersWheel поддерживает моделирование зависимых от времени динамических систем, калибровку параметров, анализ и прогнозирование. Интересным инструментом является экспериментальная конструкция для верификации модели.
Для моделирования и анализа динамики системы аналогичная стратегия используется программным приложением Stella Architect isee, где модель состоит из блоков, соединенных отношениями. Stella позволяет моделировать и моделировать самые разные виды применения, начиная от медицинских потребностей и заканчивая строительством зданий и заканчивая самолетами. Стелла иногда продается как программное обеспечение iThink. Powersim программное обеспечение изначально было разработано для экономических целей. Тем не менее, он превратился в более сложный инструмент, включая электронное моделирование, моделирование солнечной энергии или медикаментозное лечение. Бывший разработчик Powersim в настоящее время производит аналогичное программное обеспечение для более сложных задач Dynaplan Smia. Vensim — это система для моделирования отношений больших данных реальных систем. Мощность Vensim заключается в том, что он позволяет отслеживать причинно-следственные связи, анализировать чувствительность, калибровку и интенсивное моделирование. Однако программное обеспечение также способно работать с широким спектром простых и сложных реальных систем (Hassan et al. 2016). Программное обеспечение системной динамики True-World_ облегчает комплексное динамическое моделирование нескольких тел в дискретном и непрерывном времени. Моделирование в основном начинается с балансов.
Совершенно различными подходами к моделированию и моделированию являются клеточные автоматы или подходы к моделированию на основе агентов, популяризованные Стивен Вольфрам (Wolfram 1991) как новый вид науки. Подход иногда называют также игрой жизни. Моделирование осуществляется через взаимодействия автономных лиц (Macal и North 2005). Моделирование показывает эмергентное поведение и поэтому очень популярны в системной биологии для динамики популяции. Простым инструментом для базового (и продвинутого, а также) моделирования на основе агентов является программное обеспечение NetLogo, в котором простые описания и параметризация создают мощные модели. Программное обеспечение позволяет визуализировать развитие времени и индукцию шума (Stys et al. 2015). Приложение написано на Java, что иногда ограничивает доступную память. Вероятно, наибольшие усилия в многоагентном моделировании были предприняты разработкой программного обеспечения Wolfram, которое является продолжением популярной системы Mathematica, с расширенными инструментами моделирования и моделирования. Он поставил Simulink-подобное моделирование в более привлекательный костюм, а также создает возможности моделирования на основе агентов и гораздо больше инструментов для других математических дисциплин (многомерная статистика, интеллектуальный анализ данных, глобальная оптимизация).
AnyLogic является очень интересным программным обеспечением для задач потока — информации, денег, трафика, логистики и майнинга. Моделирование решает задачу оптимального потока в проектируемой системе с минимальными усилиями и максимальной эффективностью. Используемые понятия — системная динамика, агентное и дискретное моделирование событий. Он также предлагает гибриды между различными концепциями моделирования. Это программное обеспечение полезно, например, при моделировании распространения эпидемии (Emrich et al. 2007).
Другим инструментом моделирования на основе агентов является Insight Maker, для моделирования взаимодействия населения в географическом или сетевом пространстве. Программное обеспечение поддерживает построение графической модели, использование нескольких парадигм, встроенные скрипты и набор инструментов оптимизации (Fortmann-Roe 2014).
Для самого моделирования можно без колебаний использовать описание переменных состояний, решение ОД, параметризацию и анализ временных зависимостей, первую группу программного обеспечения от Mathematica до Matlab. Они представляют собой мощные инструменты для моделирования. В случае более сложного анализа, например, связанных с большими данными, симуляцией, шумовой индукцией, оптимизацией, чувствительностью и стохастикой, требуются более продвинутые инструменты с объектно-ориентированным подходом, предполагающим также более высокую индукцию в синтаксисе языков программирования.