УДК 004.457
doi: 10.21685/2072-3059-2024-2-9
Использование компьютерного моделирования для разработки автоматизированной системы управления теплицей с применением технологии автоматного программирования
П. В. Гумунюк
Институт конструкторско-технологической информатики Российской академии наук, Москва, Россия
Аннотация. Актуальность и цели. Показано, как компьютерные модели и методики автоматного программирования помогают в разработке программного кода системы управления на примере создания программного обеспечения автоматизированной теплицы. Материалы и методы. Отражены основные этапы разработки программы управления с применением определенных математических паттернов и алгоритмов, используемых при создании кода системы управления и упрощения самого процесса разработки. Показана польза от применения автоматизированной теплицы как в домашнем хозяйстве, так и в аграрных компаниях. Приведены основные технологические узлы, которые помогают автоматизировать процесс выращивания растений, а также параметры, которые помогают контролировать эти узлы. Обоснована необходимость внедрения ПИД-регулятора в технологический процесс для контроля температуры внутри помещения теплицы. Приведен пример настройки ПИД-регулятора для конкретных условий теплицы. Результаты. Описан процесс распределения выделенных параметров технологической системы в блоки данных, каждый из которых находится в отдельном автомате. Выводы. Приведены блок-схема, которая имеется в логике программы автоматов, и схема общего взаимодействия компьютерных моделей в методике автоматного программирования.
Ключевые слова: автоматизированная теплица, ПИД-регулятор, автоматизированная система управления, Switch-технология, автоматное программирование, система управления, Индустрия 4.0
Для цитирования: Гумунюк П. В. Использование компьютерного моделирования для разработки автоматизированной системы управления теплицей с применением технологии автоматного программирования // Известия высших учебных заведений. Поволжский регион. Технические науки. 2024. № 2. С. 127-137. doi: 10.21685/20723059-2024-2-9
Using computer modeling for developing an automated greenhouse control system using automatic programming
P.V. Gumunyuk
Institute of Design and Technological Informatics of the Russian Academy of Sciences, Moscow, Russia [email protected]
Abstract. Background. The work shows how computer models and automatic programming techniques help in developing control system program code using the example of creating software for an automated greenhouse. Materials and methods. The main stages of
© Гумунюк П. В., 2024. Контент доступен по лицензии Creative Commons Attribution 4.0 License / This work is licensed under a Creative Commons Attribution 4.0 License.
developing a control program are reflected using certain mathematical patterns and algorithms used in creating the control system code and simplifying the development process itself. The benefits of using an automated greenhouse have been shown, both in households and in agricultural companies. The main technological units that help automate the process of growing plants are presented, as well as the parameters that help control these units. The necessity of introducing a PID controller into the technological process to control the temperature inside the greenhouse is substantiated. An example of setting up a PID controller for specific greenhouse conditions is given. Results. The process of distributing selected parameters of a technological system into data blocks, each of which is located in a separate machine, is described. Conclusions. The article ends with a block diagram that is found in the logic of the automata program and a diagram of the general interaction of computer models in the Automata Programming technique.
Keywords: automated greenhouse, PID controller, automated control system, Switch technology, automatic programming, control system, Industry 4.0
For citation: Gumunyuk P.V. Using computer modeling for developing an automated greenhouse control system using automatic programming. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki = University proceedings. Volga region. Engineering sciences. 2024;(2):127-137. (In Russ.). doi: 10.21685/2072-3059-2024-2-9
Введение
Автоматизированные теплицы можно использовать как в домашних хозяйствах, так и в аграрных компаниях. Такие теплицы позволяют выращивать овощи с максимальной эффективностью и с минимальными затратами времени и ресурсов [1].
Материалы и методы
Рассмотрим основные параметры теплицы, которые необходимо регулировать. Плюсовая температура обеспечивает, в определенном диапазоне, комфортные условия для растений. Полив предотвращает пересыхание культуры и снабжает ее водой. Освещение лампами полного цикла в ночное время суток или в пасмурные дни обеспечивает растения достаточным количеством света [2].
Контроль температуры заключается в поддержании ее значения около 25 °С. Это, в свою очередь, подразумевает проветривание помещения в условиях высокой температуры окружающей среды и, напротив, его обогрев при пасмурной погоде и в ночное время суток. Капельный полив необходимо осуществлять утром и вечером. Освещение необходимо включать вечером с десяти часов до полуночи.
Автоматизированная теплица размером 3 х 6 м и высотой 2 м оснащается баком для набора воды, используемой в поливе; температурным датчиком; реле, открывающими окна для вентиляции; лампами для освещения и вентилятором для циркуляции воздуха в закрытой, непроветриваемой теплице. Через 2 ч после утреннего полива бак с водой должен наполняться водой для того, чтобы она успела нагреться за день до вечернего полива. Набор воды осуществляется с помощью электромагнитного клапана, который прекращает работу при срабатывании поплавкового датчика уровня, достигшего вершины бака. При понижении температуры в теплице датчик должен включать вентилятор, который забирает теплый воздух из верхней части теплицы и направляет его по трубам вниз к земляному покрытию с растениями. В тру-
бе, отводящей воздух, после вентилятора расположен нагревательный элемент, который должен включаться, если в течение 1 ч работы вентилятора температура воздуха не поднялась до требуемого значения. Если температура в теплице будет выше 25 °С, то реле должно подавать команду на приводы, открывающие окна для вентиляции, а при падении температуры до 25 °С окна должны закрываться. Основание покрыто теплоизоляционным материалом, который не будет допускать сильного охлаждения в ночное время суток [3].
Представленная автоматизированная система имеет три главных параметра, которые необходимо контролировать: температуру, освещение и полив. Включение освещения вызывает повышение температуры, что повлияет на систему контроля температуры. Полив должен осуществляться по таймеру, независимо от других параметров, поэтому его необходимо исключить из состояний автоматизированной системы. Включение освещения для насыщения растений ультрафиолетом вызывает повышение температуры в жаркую ночь, поэтому система должна, не выключая освещения, перейти в состояние регулирования температуры. Следовательно, в каждом состоянии автоматизированной системы флаги должны быть установлены и не сняты до того, как конкретным состоянием им не будет дана команда на это. Система управления состоит из двух независимых блоков. Первый отвечает за автоматический полив по таймеру и представляет собой систему полива и набора бака водой. Второй блок совмещает в себе функции освещения растений и регулирования температуры. При поливе растений и высокой температуре окружающей среды наблюдается высокое испарение, повышающее влажность в помещении, которое, в свою очередь, влияет на температурный режим. Но в условиях данной задачи регулирование температуры рассматривать этот фактор нецелесообразно, так как его влияние невелико при капельном поливе и возникающая влажность будет нормализироваться с климатическими условиями снаружи теплицы благодаря вентиляции помещения через открытые окна [4].
Регулирование температуры при экстремальных отклонениях ее значения в теплице от установленной величины (±6 °С) осуществляется активация ПИД-регулятора, который изменяет скорость вращения вентилятора, возвращая температуру к нужному значению. ПИД-регулятор оказывает воздействие только на вентилятор, так как скорость его вращения является регулируемым параметром, открытие же окон для проветривания на определенный угол не влияет на уровень изменения температуры по отношению к таковой окружающей среды. Нагревательный элемент является дополнительным органом регулирования, предназначенным для повышения температуры в холодные ночи или в пасмурные дни. Регулируемый вентилятор забирает у нагревательного элемента тепло и отдает его растениям через систему труб. Таким образом, вентилятор, увеличивая скорость своего вращения, интенсивнее гонит горячий или холодный воздух, чем и осуществляет регулирование температуры. Оснащение теплицы дополнительными узлами для плавного регулирования работы окон и нагревательного элемента влечет за собой дополнительные расходы при сомнительной эффективности данного решения в силу вышеописанных факторов. Однако при проектировании автоматизированных систем для крупных хозяйств с внушительной площадью теплиц
>100 м2 сложные устройства будут являться необходимыми. Для нагрева помещения теплицы вентилятор совершает вращение по часовой стрелке и, таким образом, забирает нагретый воздух из верхней части теплицы в трубу теплопередачи. При охлаждении вентилятор вращается в обратную сторону, т.е. против часовой стрелки, и нагретый воздух из верхней части теплицы гонится к открытым окнам для выброса его наружу [5].
Полученная система управления имеет два блока, программно-реализуемые двумя классами, причем каждый из них имеет свои собственные состояния.
Внешний вид автоматизированной теплицы представлен на рис. 1.
Рис.1. Схематическое изображение автоматизированной теплицы: 1 - клапан впуска воды; 2 - окна; 3 - бак с водой и система полива; 4 - вентилятор; 5 - нагревательный элемент; 6 - лампы освещения
Блок освещения растений и регулирования температуры имеет следующие состояния:
- окно открыто;
- окно закрыто;
- нагревательный элемент включен;
- нагревательный элемент выключен;
- вентилятор на нагрев включен;
- вентилятор на нагрев выключен;
- вентилятор на охлаждение включен;
- вентилятор на охлаждение выключен;
- освещение включено;
- освещение выключено;
- ПИД-регулятор на нагрев задействован;
- ПИД-регулятор на нагрев отключен;
- ПИД-регулятор на охлаждение задействован;
- ПИД-регулятор на охлаждение отключен.
Блок автоматического полива будет иметь следующие состояния:
- система готова к поливу;
- полив начат;
- полив завершен;
- начат набор воды в бак;
- завершен набор воды в бак.
Регулирование процедур полива и освещения растений в системе осуществляется таймером, передающим в блоки сигналы для запуска необходимых процедур [6].
В полученной программе1 выделим следующие блоки данных:
• автомат освещения растений и регулирования температуры;
• автомат, отвечающий за полив;
• ПИД-регулятор, входящий в состав первого автомата. Класс автоматического полива AutoWatering:
Int Watering; // Состояние блока автоматического полива Bool wateringStart; // Полив начался, где true - полив идет, false -полив завершен
Bool pumpStart; // Клапан набирает воду в бак, где true - набор воды идет, false - набор воды не идет
Bool tankFull; // Бак полон, где true - бак полон, false - бак пуст
Класс автоматического освещения и терморегулирования AutoLightingThermocontrol:
Int Control; // Состояние блока автоматического освещения и терморегулирования
Bool windowOpen; // Открытие окон теплицы с помощью реле, где True = открыть, False = закрыть
Bool heaterOn; // Включение нагревательного элемента, где True = включить, False = выключить
Bool heatFanOn; // Включение вентилятора на нагрев, где True = включить, False = выключить
Bool coldFanOn; // Включение вентилятора на охлаждение, где True = включить, False = выключить
Bool lightOn; // Выключение освещения, где True = включить, False = выключить
Bool PIDHeatOn; // Активирование ПИД-регулятора на нагрев, где True = задействовать, False = отключить
Bool PIDColdOn; // Активирование ПИД-регулятора на охлаждение, где True = задействовать, False = отключить
Float Temp; // Температура в теплице
Далее представлен фрагмент кода системы управления класса AutoLightingThermocontrol:
Switch Control: Case 0: // Окно открыто windowOpen = true ; Break ;
Case 1 // Окно закрыто Break ;
Case 2 // Включить вентилятор на нагрев heatFanOn = true ; Break ;
Case 3 // Включить вентилятор на нагрев с нагревательным элементом
1 Код написан на языке С#. Подробнее с кодом можно ознакомиться в репози-тории https://github.com/pavel-proger/Teplica
heatFanOn = true ; heaterOn = true ; Break ;
Case 4 // Включить вентилятор на охлаждение coldFanOn = true ; Break ;
Case 5 // Включить освещение lightOn = true ; Break ;
Case 6 // Выключить освещение lightOn = false ; Break ;
Case 7 // Включение ПИД-регулятора на охлаждение PIDColdOn = true ; Break ;
Case 8 // Включение ПИД-регулятора на нагрев PIDHeatOn = true ; Break ;
Case 9 // Выключить вентилятор и нагревательный элемент, если они были включены
heatFanOn = false ; heaterOn = false ; Break ;
Фрагмент кода системы управления класса AutoWatering [7]:
Switch AutoWatering:
Case 0 // Система готова к поливу
tankFull = true ;
Break ;
Case 1 // Полив начат wateringStart = true ; Break ;
Case 2 // Полив завершен wateringStart = false ; Break ;
Case 3 // Начат набор воды в бак pumpStart = true ; tankFull = false ; Break ;
Case 4 // Завершен набор воды в бак pumpStart = false ; Break ;
В каждом автомате проводятся математические операции, и если в ПИД-регуляторе они происходят по формуле его работы, то в двух других автоматных моделях все имеющиеся переменные меняют свои значения посредством выполнения булевой логики.
Для условий данной автоматизированной системы в ПИД-регуляторе задействованы все три звена. Чем выше значение пропорционального звена, тем менее плавно будет снижаться скорость вращения вентилятора при изменении температуры в сторону требуемого значения. Для данной системы не требуется точного регулирования температуры, поэтому можно установить среднее значение в районе 300 для данного звена. Интегральное звено отвечает за перерывы в работе вентилятора, поэтому контроллер определяет количество единиц, необходимых для достижения требуемой величины, и
если выставить это значение завышенным, то вентилятор будет останавливаться на несколько секунд, а затем вновь начинать работу. Так как для данной системы не нужны кратковременные перерывы в работе вентилятора, то можно выставить интегральный коэффициент на величину 100. Диффирен-циальный же коэффициент позволяет предугадывать будущее и в большинстве автоматизированных систем он не используется, так как нет особой необходимости в выведении значения на несколько большее показание, чем это требуется. Для данной системы требуемая норма - это 25 °С; чем больше дифференцирующее значение, тем большего запаса будет пытаться добиться регулирующий орган. В нашем случае достаточно величины больше 0,5 °С, поэтому значение будет 10 [8].
Полученную программную логику можно охарактеризовать как модель описания точек контроля и управления технологическим процессом, которая находит свое применение во всем программном коде.
Программный код в виде блок-схемы представлен на рис. 2, 3.
Результаты и обсуждение
База данных тегов как компьютерная модель имеет свое место в любой компьютерной программе и является ее основополагающей и неотъемлемой частью.
Согласно методике автоматного программирования можно выделить четыре компьютерные модели, применяемые для разработки систем управления на базе технологии автоматного программирования. Однако для популяризации данной теории нужна структура, позволяющая перевести базовые рабочие единицы автоматного программирования на более понятный рядовому специалисту язык. Данный метод имеет потенциал для расширения своего влияния благодаря тенденции Индустрии 4.0, заключающейся в увеличении доли умных устройств, за счет повсеместной цифровизации и автоматизации домохозяйств и предприятий. Компьютерная модель должна помочь разработчикам систем управления, не имеющих глубоких знаний в составлении программного кода. Для выполнения данной задачи целесообразно использовать компьютерную (численную) модель, а именно словарь понятий, который является структурным звеном алгоритма разработки программного обеспечения. Это позволит снизить время, затрачиваемое на создание системы управления, благодаря пониманию программного кода при его чтении и записи человеком [9].
Взаимосвязь компьютерных моделей в процессе разработки программного обеспечения показана на рис. 4.
Заключение
На основании вышеизложенного можно провести аналогию между переводом, чтением и написанием текста (или иной работой с иностранным или неродным языком) вручную или же, выполняя эту же работу, но уже со словарем. Как и в случае работы с человеческим языком, язык программирования, с которым производится работа, требует наличия базовых знаний и понятий. Наличие словаря существенно облегчает выполнение поставленной задачи, позволяя компенсировать отсутствие углубленных знаний и навыков, необходимых для быстрой и эффективной работы [10].
ш 4
Рис. 2. Представление программного кода класса автоматического освещения и терморегулирования в виде алгоритма (блок-схемы)
£
О. Система готова к поливу
1. Полив начат
2. Полив завершен
3. Начат набор воды
4. Завершен наоор во ды
Рис. 3. Представление программного кода класса автоматического полива ввиде алгоритма (блок-схемы)
Рис. 4. Взаимосвязь компьютерных моделей в процессе разработки программного обеспечения
Список литературы
1. Эрат Б., Вулстон Д. Теплица в вашем доме : справ. пособ. / пер. с фин. Калинина В. П. ; под ред. Оболенского Н. В. 2-е изд. М. : Стройиздат, 1994. 189 с.
2. Кубис В. А. Проектирование и опыт эксплуатации энергоэффективных теплиц (на примере Пензенской области). Пенза : ПГУАС, 2014. 128 с.
3. Канжелев С. Ю., Шалыто А. А. Преобразование графов переходов, представленных в формате MSVisio, в исходные коды программ для различных языков программирования (инструментальное средство MetaAuto). СПб. : ИТМО, 2005. 102 с.
4. Шалыто А. А. Методы аппаратной и программной реализации алгоритмов / Национальный исследовательский университет Институт точной механики и оптики. СПб. : ИТМО, 2005. 779 с.
5. INCOSE Systems Engineering Handbook: A Guide for System Life Cycle Processes and Activities / ed. by D. D. Walden, G. J. Roedler, K. J. Forsberg [et al.]. 4th ed. John Wiley and Sons Inc., 2015.
6. Татарчевский В. А. Switch - технология в задачах логического управления // Программные продукты и системы. 2006. № 4. С. 30-32.
7. Шалыто А. А., Туккель Н. И. Switch-технология - автоматный подход к созданию программного обеспечения «реактивных» систем // Программирование. 2001. Т. 27, № 5. С. 45-62.
8. Шалыто А. А. Алгоритмизация и программирование задач логического управления. СПб. : Наука, СПбГУ ИТМО, 1998. 55 c.
9. Большаков О. А., Рыбаков А. В. Автоматизация программирования логических контроллеров на основе компьютерных моделей при разработках автоматизированных систем управления технологическими процессами в промышленности : дис. ... канд. тех. наук. М., 2014. 155 с.
10. Поликарпова Н. И., Шалыто А. А. Автоматное программирование : учеб.-метод. пособие. СПб. : СПбГУ ИТМО, 2007. 108 c.
References
1. Erat B., Vulston D. Teplitsa v vashem dome: sprav. posob. = Greenhouse in your home: reference. allowance. Transl. from Fin. by Kalinina V.P.; ed. by Obolenskiy N.V. 2-nd ed. Moscow: Stroyizdat, 1994:189. (In Russ.)
2. Kubis V.A. Proektirovanie i opyt ekspluatatsii energoeffektivnykh teplits (na primere Penzenskoy oblasti) = Design and operation experience of energy-efficient greenhouses (by the example of Penza region). Penza: PGUAS, 2014:128. (In Russ.)
3. Kanzhelev S.Yu., Shalyto A.A. Preobrazovanie grafov perekhodov, predstavlennykh v formate MSVisio, v iskhodnye kody programm dlya razlichnykh yazykov pro-grammirovaniya (instrumental'noe sredstvo MetaAuto) = Conversion of graphs of transactions submitted to the MSVisio format into original program codes for various programming languages (MetaAuto tool). Saint Petersburg: ITMO, 2005:102. (In Russ.)
4. Shalyto A.A. Metody apparatnoy i programmnoy realizatsii algoritmov /Natsional'nyy issledovatel'skiy universitet Institut tochnoy mekhaniki i optiki = Methods of hardware and software implementation of algorithms / National Research University Institute of Precision Mechanics and Optics. Saint Petersburg: ITMO, 2005:779. (In Russ.)
5. Walden D.D., Roedler G.J., Forsberg K.J. et al. (eds.). INCOSE Systems Engineering Handbook: A Guide for System Life Cycle Processes and Activities. 4th ed. John Wiley and Sons Inc., 2015.
6. Tatarchevskiy V.A. Switch - technology in logical control tasks. Pro-grammnye produkty i sistemy = Software products and systems. 2006;(4):30-32. (In Russ.)
7. Shalyto A.A., Tukkel' N.I. Switch technology - an automatic approach to creating software for "reactive" systems. Programmirovanie = Programming. 2001;27(5):45-62. (In Russ.)
8. Shalyto A.A. Algoritmizatsiya i programmirovanie zadach logicheskogo upravleniya = Algorithmization and programming of logical control problems. Saint Petersburg: Nauka, SPbGU ITMO, 1998:55. (In Russ.)
9. Bol'shakov O.A., Rybakov A.V. Automatic programming of logic controllers based on computer models in the development of automated control systems for industrial technology processes. PhD abstract. Moscow, 2014:155. (In Russ.)
10. Polikarpova N.I., Shalyto A.A. Avtomatnoe programmirovanie: ucheb.-metod. posobie = Automata programming: textbook. Saint Petersburg: SPbGU ITMO, 2007:108. (In Russ.)
Информация об авторах /
Павел Васильевич Гумунюк аспирант, Институт конструкторско-технологической информатики Российской академии наук (Россия, г. Москва, Вадковский переулок, 18, стр. 1А)
E-mail: [email protected]
Information about the authors
Pavel V. Gumunyuk Postgraduate student, Institute of Design and Technological Informatics of the Russian Academy of Sciences (building 1A, 18 Vadkovsky lane, Moscow, Russia)
Автор заявляет об отсутствии конфликта интересов / The author declares no conflicts of interests.
Поступила в редакцию / Received 14.03.2024
Поступила после рецензирования и доработки / Revised 28.04.2024 Принята к публикации / Accepted 19.05.2024