entity-manager_visual

0

Описание

Визуальные инструменты для работы с entity-manager

Языки

  • Python100%
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
README.md

Визуализатор конфигурационных файлов Entity Manager

Программа для наглядного отображения конфигурации зон управления температурой, температурных датчиков, вентиляторов и графиков Stepwise управления в OpenBMC.

Функциональность

  • Анализ Pid.Zone: Отображение всех зон управления с их параметрами
  • Температурные датчики: Визуализация TMP75 и других температурных датчиков
  • Вентиляторы: Отображение конфигурации AspeedFan вентиляторов
  • Stepwise управление: Построение графиков зависимости выходного сигнала от температуры
  • PID управление: Анализ PID конфигураций для управления вентиляторами

Установка

  1. Создайте виртуальное окружение:
  1. Установите зависимости:

Использование

Базовый запуск

Указание конкретных файлов

Указание префикса выходных файлов

Полная справка

Выходные файлы

Программа создает три файла с указанным префиксом:

  1. {prefix}_diagram.png
    - Диаграмма зон управления с связанными компонентами
  2. {prefix}_stepwise.png
    - Объединенные графики Stepwise управления с цветовыми зонами гистерезиса
  3. {prefix}_report.txt
    - Текстовый отчет с детальной информацией

Особенности визуализации Stepwise

Объединенный график

  • Один график на конфигурацию вместо двух раздельных
  • Ступенчатая функция отображает реальную зависимость скорости вентилятора от температуры
  • Цветовые зоны гистерезиса:
    • 🔴 Красные зоны - положительный гистерезис (выше ступени)
    • 🔵 Синие зоны - отрицательный гистерезис (ниже ступени)
  • Пороговые значения отмечены зелеными точками
  • Вертикальные пунктиры показывают температурные пороги
  • Аннотации с процентами скорости вентилятора

Гистерезис

Гистерезис предотвращает частые переключения скорости вентилятора при малых колебаниях температуры:

  • Положительный: температура должна превысить порог + гистерезис для увеличения скорости
  • Отрицательный: температура должна опуститься ниже порога - гистерезис для уменьшения скорости

Анализируемые компоненты

Pid.Zone

  • Интервал цикла (CycleIntervalTimeMS)
  • Минимальный выход (MinThermalOutput)
  • Failsafe процент (FailSafePercent)
  • Время обновления (UpdateThermalsTimeMS)

Температурные датчики

  • Тип датчика (TMP75, TMP421, TMP441)
  • I2C адрес
  • Шина подключения

Вентиляторы

  • Тип (AspeedFan)
  • PWM коннекторы
  • Тахометры
  • Пороговые значения

Stepwise конфигурации

  • Входные датчики
  • Пороговые значения температуры
  • Выходные значения
  • Гистерезис

PID конфигурации

  • Входные вентиляторы
  • Выходные PWM сигналы
  • Коэффициенты P, I, D
  • Ограничения выходного сигнала

Пример анализа

Для конфигурации EntityManager были обнаружены:

  • 2 зоны управления:
    zone_cpu
    и
    zone_board
  • 4 температурных датчика: CPU_amb, DIMM0123_amb, DIMM4567_amb, PCIE_amb
  • 9 вентиляторов: FAN_J59 - FAN_J67_CPU
  • 2 Stepwise конфигурации: TEMP CPU, TEMP board
  • 2 PID конфигурации: PID_CPU, PID_board

Зона CPU

  • Управляется датчиком CPU_amb
  • Stepwise управление с порогами 25-60°C
  • PID управление вентилятором FAN_J67_CPU
  • Минимальная скорость вентилятора: 20%

Зона Board

  • Управляется датчиками CPU_amb, DIMM0123_amb, DIMM4567_amb, PCIE_amb
  • Stepwise управление с порогами 30-55°C
  • PID управления вентиляторами FAN_J59 - FAN_J66
  • Минимальная скорость вентилятора: 10%

Тестирование

В проекте включены тесты для проверки функциональности:

Запуск тестов

Структура тестов

  • tests/test_stepwise_logic.py
    - Тестирование логики stepwise функций без GUI
  • tests/test_stepwise_editor.py
    - Тестирование функциональности stepwise редактора (требует GUI)
  • tests/test_baseboard.json
    - Тестовые данные для baseboard конфигурации
  • tests/test_chassis.json
    - Тестовые данные для chassis конфигурации

Подробная информация в

tests/README.md

Структура проекта

et_visual/ ├── README.md # Основная документация ├── requirements.txt # Зависимости Python ├── .gitignore # Исключения для Git ├── zone_visualizer.py # Основной визуализатор зон ├── entity_manager_visualizer.py # Визуализатор Entity Manager ├── stepwise_editor.py # Редактор Stepwise конфигураций ├── thermal_graph_visualizer.py # Графовый визуализатор температурных зон ├── uml_zone_visualizer.py # UML визуализатор ├── tests/ # Тесты проекта │ ├── README.md # Документация по тестам │ ├── test_stepwise_logic.py # Тесты логики │ ├── test_stepwise_editor.py# Тесты редактора │ ├── test_baseboard.json # Тестовые данные │ └── test_chassis.json # Тестовые данные ├── result/ # Результаты работы └── venv/ # Виртуальное окружение

Требования

  • Python 3.7+
  • matplotlib >= 3.5.0
  • numpy >= 1.21.0

Лицензия

Программа разработана для анализа конфигурационных файлов OpenBMC Entity Manager.