Статья посвящена описанию библиотеки программ на языке Python для решения задач синтеза систем управления методами символьной регрессии. Задача синтеза становится все более актуальной, приобретая особое значение ввиду стремительного развития робототехники. Как правило, инженеры и просто практики используют регуляторы шаблонного типа при моделировании, а затем подбирают под них параметры. В условиях, когда вычислительная мощность персональных компьютеров достигла своего апогея, а языки программирования стали чрезвычайно выразительны за счет высокого уровня абстрактности и обширности библиотек, целесообразнее реализовать синтез в виде пакета. В качестве языка для реализации синтеза был выбран Python. По мнению авторов статьи, Python является удобным языком для программирования матричных и векторных вычислений благодаря пакету numpy. Более того, доля проектов, написанных на Python, в веб-сервисе для хостинга Github за последнее время неизменно растет, что говорит о поддержке языка со стороны сообщества разработчиков. В данной статье представлено описание применения библиотеки для решения задачи синтеза управления. Приведено описание метода символьной регрессии, метода сетевого оператора и алгоритмов поиска оптимального решения с использованием принципа малых вариаций базисного решения. Рассмотрен пример использования библиотеки для решения задачи синтеза управления мобильным роботом, движущимся на плоскости, в условиях препятствий.
This article is devoted to the desription of аpython library based on symbolic regression methods for control systems synthesis problem. Control sysnthesis is becoming more and more relevant, gaining particular importance in view of the rapid development of robotics. Usually, practicians and engineers apply template-type regulators when modeling, and then select optimal parameters for them. At a time when the computing power of PC’s has reached its peak, and programming languages have become extremely expressive due to the high level of abstraction and the vastness of libraries, it is better to implement the synthesis in the form of a library. Python was chosen as the language for synthesis implementation. According to the authors of the article, Python is a convenient language for programming matrix and vector calculations thanks to the numpy package. Moreover, the share of projects written in Python in the web service for hosting Github has been steadily increasing recently, which indicates the support of the language from the developer community. This article describes how to use the package to solve the problem of control synthesis. The authors provide the description of the symbolic regression method, the network operator and algorithms for finding the optimal solution using the principle of small variations of the basic solution. In the experimental part of the article, an example of how to use the library to solve the problem of synthesis of control of a mobile robot moving on a planewith obstacles is considered.