Применение Python в классической реализации CPython#
Для автоматизации работы с моделью REPEAT VISION из Python разработан пакет repeat.
Внимание
Для решения задач автоматизации с применением Python пользователь должен обладать навыками программирования в классической реализации CPython.
Также вам потребуются:
В этом уроке вы познакомитесь с возможностями автоматизации работы с моделью REPEAT VISION на примере проекта [DEMO] ТАД подъемного механизма.
После выполнения урока вы получите следующие навыки:
Умение настраивать доступ к модели REPEAT VISION из Python программы через API ключи
Знания в настройке временных интервалов для получения необходимых результатов расчётов
Навыки взаимодействия с моделью с через контекстный менеджер для получения необходимых результатов расчётов
1. Начало использования#
В вашей рабочей области жёсткого диска требуется создать папку для работы с моделью REPEAT VISION, например, папку с именем repeat_postprocessing. В рабочей папке repeat_postprocessing создаётся виртуальное окружение для последующей установки пакета repeat с его зависимостями.
mkdir repeat_postprocessing
cd repeat_postprocessing
python -m venv .
После создания рабочей папки и виртуального окружения выполняется активация виртуального окружения. Для операционных систем на базе Linux выполняется команда bash, а для Windows выполняется команда PowerShell.
source ./bin/activate
Scripts\Activate.ps1
Теперь необходимо установить пакет repeat. Данная команда также установит необходимые зависимости.
python -m pip install repeat
В удобном для вас текстовом редакторе программного кода Python требуется создать файл, например, example.py, в рабочей папке repeat_postprocessing. В файле example.py создадим код для импорта пакета repeat и вызова его справочной информации.
# -*- coding: utf-8 -*-
import repeat as rp
help(rp)
Далее выполним данный файл в командной строке.
python example.py
В результате выполнения примера получим в командной строке следующий вывод.
Help on package repeat:
NAME
repeat
DESCRIPTION
repeat
------
Модуль repeat предназначен для взаимодействия пользовательской Python программы
с расчётной моделью REPEAT VISION для решения следующих задач:
- выполнение исследований на результах расчётов модели REPEAT VISION
- анализ данных и выполнение постобработки временных рядов REPEAT VISION.
Теперь можно реализовать процесс взаимодействия с моделью REPEAT VISION.
2. Настройка API ключа пользователя#
Для соединения с REPEAT VISION требуется использование API ключа, который вы можете создать в соответствующем разделе настроек вашего аккаунта.
В интерфейсе REPEAT VISION нажмите на кнопку настроек пользователя и в выпадающем окне выберете раздел API ключи.
В разделе API ключи создайте API ключ с помощью кнопки Новый API ключ.
Новый API ключ добавьте в настройки пользователя класса User при создании его экземпляра в вашей программе в файле example.py.
# -*- coding: utf-8 -*-
import repeat as rp
user = rp.User(token = 'enter a unique API key from REPEAT user cabinet instead of this comment')
Далее требуется настроить класс Application для настройки соединения с REPEAT VISION.
app = rp.Application(user)
Теперь всё готово для взаимодействия с моделью REPEAT VISION!
3. Запуск модели REPEAT VISION на расчёт#
В интерфейсе REPEAT VISION требуется открыть проект [DEMO] ТАД подъемного механизма и выполнить следующие шаги:
4. Настройка временного интервала#
На следущем шаге создаётся экземпляр класса TimeInterval для настройки диапазона времени, в котором пользователю необходимо получить значения результатов расчёта параметров из модели REPEAT VISION:
Аргументу
startпередаётся начальное значение диапазона в миллисекундах \(start = 1 [ms]\),Аргументу
endпередаётся конечное значение диапазона \(end = 2000 [ms]\). Напомним, что расчёт остановлен на паузе на значении времени 2 секунды.
t_interval = rp.TimeInterval(start = 1, end = 2000)
5. Настройка взаимодействия с моделью#
С помощью метода get_model класса Application создаётся экземпляр класса Model для дальнейшего получения результатов расчёта из модели REPEAT VISION.
Для выполнения этого действия требуется методу get_model в качестве аргумента передать t_interval с настройками временного диапазона.
model = app.get_model(t_interval)
6. Получение результатов расчётов модели#
Теперь из модели REPEAT VISION можно получить результаты расчёта необходимых параметров с помощью контекстного менеджера экземпляра класса Model, в котором методу get_results передаётся значение строки для интересующего имени параметра.
Метод get_results возвращает результаты расчёта в структуре данных pandas.Series популярного модуля pandas для анализа данных.
Внутри with блока можно получить необходимый набор результатов параметров.
Подсказка
Значение строк имён параметров модели доступны для копирования в графическом интерфейсе REPEAT VISION в областях настройки блоков
Получим результаты для двух параметров с именами '1687723033287_OUT_2' и '1687722637724_OUT_3'
with model as md:
res1 = md.get_results('1687723033287_OUT_2')
res2 = md.get_results('1687722637724_OUT_3')
7. Работа с результатами расчёта#
Первым шагом в анализе данных является рассмотрение численных значений параметров, а также их взаимосвязей, например, на графиках. Для этого воспользуемся встроенными методами pandas для анализа результатов параметра '1687723033287_OUT_2', находящегося в объекте res1.
res1.head() # Numerical values output of the parameter calculation results
res1.plot( # Displaying dependencies on a diagram
ylabel = f'Parameter {res1.name}', # Adding a signature with the parameter name to Y axis
xlabel = 'Time $[ms]$' # Adding a signature with the time name to X-axis
)
Данные вызовы методов выведут следующее:
1.0 0.000000e+00
2.0 5.058322e-08
3.0 6.064362e-07
4.0 3.427226e-06
5.0 1.293609e-05
Name: 1687723033287_OUT_2, dtype: float64

8. Итоги#
Весь код программы
# -*- coding: utf-8 -*-
import repeat as rp
user = rp.User(
token = 'enter a unique API key from REPEAT user cabinet instead of this comment'
)
app = rp.Application(user)
t_interval = rp.TimeInterval(
start = 1, # initial value of time range in [ms]
end = 2000 # end value of time range in [ms]
)
model = app.get_model(t_interval)
with model as md:
res1 = md.get_results('1687723033287_OUT_2')
res2 = md.get_results('1687722637724_OUT_3')
res1.head() # Numerical values output of the parameter calculation results
res1.plot( # Displaying dependencies on a diagram
ylabel = f'Parameter {res1.name}', # Adding a signature with the parameter name to Y axis
xlabel = 'Time $[ms]$' # Adding a signature with the time name to X-axis
)
В данном уроке вам удалось освоить следующие навыки:
Умение настраивать доступ к модели REPEAT VISION с помощью классов
UserиApplicationЗнания в настройке временных интервалов через класс
TimeIntervalс учётом его особенности настройки времени в микросекундахОсобенности получения имён параметров из интерфейса REPEAT VISION
Навыки взаимодействия с моделью с через контекстный менеджер экземпляра класса
Modelдля получения необходимых результатов расчётов с помощью методаget_results



