Skip to content

Latest commit

 

History

History
64 lines (42 loc) · 5.93 KB

3_Generate_dataset.md

File metadata and controls

64 lines (42 loc) · 5.93 KB

3. Создание датасета

3.1 Intro

Датасет представляет собой набор файлов организованный следующим образом:

  • dataset - базовая папка (будет создана автоматически как и всё ниже)
    • measurement_variant_1 - Вариант настройки измерителя (определённая частота, напряжение и т.д.)
      • X - папка относящаяся к конкретному классу (либо файлы без этой подпапки [в разработке]) (описание классов в предыдущем разделе)
        • N.cir - файл схемы с определенными параметрами
        • X_params_N.png - ВАХ схемы, с указанием параметров измерения и класса схемы
        • X_params_N.uzf - EPCore формат хранящий настройки измерения и кривую ВАХ
        • в это же папке другие параметры той же цепи, с другой N

3.2 Создание датасета

  • Из под виртуального окружения в корне проекта в консоли запустить модуль:

    python -m generate_dataset --image
    
  • При отсутствии флага --image изображения ВАХ генерироваться не будут

3.3 Настройки генерации

Удалите прошлый датасет руками, если он вам не понравился.

Чтобы настроить параметры генерации и сгенерировать снова существует два файла:

  • measurement_settings.json - Варианты настроек измерителя, для которых нужно сгенерировать датасет.
    • probe_signal_frequency - частота пробного сигнала
    • max_voltage - амплитуда напряжения
    • precharge_delay - время, которое будет пропущено перед получением данных (для зарядки конденсаторов)
    • sampling_rate - количество точек на цикл
    • internal_resistance - внутреннее сопротивление измерителя
  • parameters_variations.json - Описание перебора параметров компонентов
    • Пример: для резистора R существует один параметр измеряемый в cir_unit, который нужно перебрать в экспоненциальном интервале от 1 до 100000000 создав 10 точек.
    • Пример2: для диода D существует 4 параметра (всего их больше), которые следует перебрать, и все они вручную заданные константы. Из-за особенностей многопараметрических элементов, диод записан несколько иначе, чем резистор. В диоде cir_unit=null, но есть не нулевой cir_key. Если требуется добавить в этот файл новый элемент у которого требуется изменять параметры, то смотрите в .cir-файл, если у элемента есть собственная DMOD (DeviceModel) cir_key - это параметры этой DeviceModel.

3.4 Как генерируется датасет

Берутся все классы схем и все настройки измерений.

Для каждого класса ParametersChanger определяет какие элементы существуют в этой схеме и в каких интервалах их нужно перебрать. Генерируются все возможные комбинации параметров элементов (например если два резистора по 10 вариантов сопротивлений, то это 100 сочетаний) и записываются в changer.circuits

После чего с помощью changer.dump_circuits_on_disk() все комбинации параметров сохраняются на диск в виде новых .cir-файлов в папку датасета.

Далее SimulatorIVC генерирует для конкретной схемы с определенными параметрами и настройками вольт-амперную характеристику. (Схема circuit берётся из оперативки: changer.circuits)

ВАХ записывается на диск методом simulator.save_ivc(...) в формате uzf (зипованный json)

Если выставлен флаг --image, то так же сохраняется ВАХ в формате png

Алгоритм переходит к следующему классу.

Когда все классы готовы, алгоритм переходит к следующим настройкам измерения.

3.5 Зашумленные измерения

В файле measurement_settings.json в noise_settings есть несколько полей для генерации шума:

  • without_noise - Если true, то в датасете будут, в том числе, ВАХи без шума.
  • with_noise_copies - количество копий одной схемы с одними параметрами компонентов и с одними настройками измерения, но с разным шумом (Выставить 0, если шум не требуется)
  • SNR - (Signal-to-noise ratio) отношение сигнал/шум