Python – это язык программирования высокого уровня, позволяющий создавать кросплатформенный, легко читаемый, гибкий и лаконичный код. Python отличает высокая скорость разработки, лёгкость в освоении, возможность решения как простых прикладных задач, так и проведение сложных математических расчётов. Эталонная реализация Python – CPython распространяется под лицензией Python Software Foundation License, позволяя использовать его в проприетарных приложениях. Стандартная библиотека языка включает множество полезных функций, также, функционал может быть расширен, путём подключения сторонних библиотек, большинство из которых распространяются под лицензиями GPL и LGPL. Все вышеперечисленные факторы позволили этому, относительно молодому языку программирования, стать мощным инструментом в решении научных и вычислительных задач. Различные реализации Python используются в таких компаниях, как IBM, CERN, NASA, STSCI, Apple, Google, Яндекс, Mail.Ru.
Одной из самых известных масштабируемых сборок Python, предназначенных для обработки данных, прогнозирования, анализа, математического моделирования, визуализации, машинного обучения, инженерных и научных расчётов, является Anaconda, предоставляемая компанией ContinuumAnalytics. В её состав входят интерпретаторы Python 2-ой и 3-ей ветви (2.6, 2.7 и 3.3 соответственно), а также более 100 библиотек для научных, инженерных, финансовых и аналитических расчётов, в числе которых NumPy, SciPy, Pandas, IPython, Matplotlib, Numba, Blaze, Bokeh. Стабильность работы компонентов сборки, её богатые возможности и бесплатность (сборка распространяется под лицензией GPL2) позволяют ей успешно конкурировать с такими коммерческими математическими пакетами, как Matlab, Maple, Mathematica.
IPython – один из компонентов пакета SciPy, интерактивная оболочка над интерпретатором Python, разработанная Fernando Perez и распространяемая под лицензией BSD. Она позволяет производить интерактивные параллельные вычисления, визуализацию данных и создание графического пользовательского интерфейса как из командной оболочки операционной системы, так и посредством браузера, через веб-интерфейс IPythonNotebook.
Создание абстрактной модели агрегата производственной системы — одна из задач, на верном решении которой строится успешное моделирование работы всей системы. Модель агрегата представляет собой объект, который может находится в одном из нескольких состояний в зависимости от управляющих команд и других моделируемых факторов. Состояний объекта соответствуют выполняемым им функциям, а также включают простои и поломки оборудования. Состояние любого агрегата в момент времени может описываться уравнением:
(1)
где — оператор переходов агрегата; — начальный момент времени; — следующий за момент времени, в который произошло изменение состояния агрегата; - начальное состояние агрегата.
Модель агрегата реализуем в виде стандартного класса Python. Основные константы, влияющие на поведение модели, реализуются в виде полей класса, методы класса условно подразделяются на внутренние и открытые. Внутренние методы предназначены для логической группировки кода класса, внешние же методы реализуют управляющий функционал. В file-header указываются директивы импорта математических модулей. Слоты определяют набор полей объекта класса Agregat, хранящих всю информацию о его состоянии. Основными моделируемыми параметрами оборудования относительно времени его работы являются время, необходимое для обработки детали, количество деталей в буфере агрегата, ошибки в работе оборудования и его простои, вызванные этими ошибками, простои, вызванные отсутствием детали в агрегате и его буфере.
Результат моделирования представляется в виде диаграмм, способы реализации которых аналогичны графикам в Mathlab.
Рис. 1. Результаты моделирования работы элемента ГПС в системе IPython
Основной график отображает время оставшееся время работы установки (до завершения механической обработки). Графики в верхней части изображения показывают количество деталей в буфере агрегата, наличие ошибок в работе агрегата и время, оставшееся до их устранения и моменты простоя агрегата относительно общего времени моделирования.
Таким образом, применение пакета Anaconda к классической задаче имитационного моделирования, позволило построить тривиальны алгоритм, основанный на базовых принципах ООП и полностью отвечающий требованиям, поставленным перед математической моделью. Язык Python в целом и пакет Anaconda в частности открывает перед инженером огромные возможности по моделированию и анализу машиностроительных процессов любой сложности, позволяя сократить затрачиваемые материальные и человеческие ресурсы, что является весомым аргументом при выборе программной базы для автоматизации производства.
Литература:
- Python Software Foundation. Python Official Website.// Python Comunity. 1990-2014. URL: http://www.python.org/ (дата обращения: 10.10.2013).
- Python Software Foundation. The Python Tutorial. 1990-2014. URL: http://www.python.org/3/tutorial/index.html (дата обращения: 10.10.2013).
- Continuum Analytics. Anaconda Scientific Python Distribution. URL: https://store.continuum.io/cshop/anaconda/ (дата обращения: 10.10.2013).
- IPython development team. Announcements — IPython. URL: http://ipython.org/ (дата обращения: 10.10.2013).
- В. Дьяконов. MATLAB 6/6.1/6.5 Simulink 4/5 в математике и моделировании. Салон-пресс. М. 2003. – 576с.
- Ларсен Р. У. Инженерные расчеты в Excel (Пер. с англ.). М. Вильямс. 2002. – 544с.