exponenta event banner

ee_getPowerLossTimeSeries

Расчет потерь рассеиваемой мощности и потерь при переключении, а также возврат данных временных рядов

Описание

пример

lossesCell = ee_getPowerLossTimeSeries(node) вычисляет рассеиваемые потери мощности для блоков в модели на основе зарегистрированных данных моделирования и возвращает данные временных рядов для каждого блока.

Перед вызовом этой функции необходимо иметь переменную журнала моделирования в текущей рабочей области. Создайте переменную журнала моделирования путем моделирования модели с включенным протоколированием данных или загрузите ранее сохраненную переменную из файла.

ee_getPowerLossTimeSeries функция вычисляет рассеиваемые потери мощности для каждого блока, который имеет power_dissipated переменная. Все блоки в библиотеке полупроводниковых устройств, а также некоторые другие блоки имеют внутреннюю переменную, называемую power_dissipated, которая представляет мгновенную мощность, рассеиваемую блоком. Некоторые блоки имеют более одного power_dissipated переменная, в зависимости от их конфигурации. Например, N-канальный блок MOSFET имеет отдельный power_dissipated узлы регистрации для МОП-транзистора, резистора затвора, а также для резисторов истока и стока, если они имеют ненулевые значения сопротивления. Функция суммирует все эти потери и предоставляет значение потери мощности для всех блоков как функции времени.

Примечание

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

Две различные переменные, lastTurnOnLoss и lastTurnOffLoss сообщите о потерях при переключении.

Потери переключения - это потери, связанные с переходом полупроводникового переключателя из его включенного состояния в его выключенное состояние и наоборот. Они зависят от частоты. ee_getPowerLossTimeSeries функция возвращает потери переключения при каждом событии переключения и выражает их в джоулях.

Если node является именем переменной журнала моделирования, то таблица содержит данные для всех блоков в модели, которые рассеивают мощность (то есть содержат, по крайней мере, один power_dissipated переменная). Если node - имя узла в дереве данных моделирования, то таблица содержит данные только для блоков в этом узле.

пример

lossesCell = ee_getPowerLossTimeSeries(node,startTime,endTime) вычисляет рассеянные потери мощности и возвращает данные временных рядов для временных шагов из startTime кому endTime. Если startTime равно endTime, интервал фактически равен нулю, и функция возвращает мгновенную мощность для временного шага, который происходит в этот момент. Если эти два входных аргумента опущены, функция возвращает данные за все время моделирования.

пример

lossesCell = ee_getPowerLossTimeSeries(node,startTime,...
endTime,intervalWidth)
вычисляет рассеянные потери мощности и возвращает данные временных рядов для временных шагов из startTime кому endTime, усредненное по времени intervalWidth. Если опустить intervalWidthили установите значение 0, функция возвращает мгновенные данные без усреднения. Если опустить все три необязательных аргумента, функция возвращает мгновенные данные за все время моделирования.

[lossesCell, switchingLosses] = ee_getPowerLossTimeSeries(node) вычисляет рассеиваемые потери мощности для блоков в модели на основе зарегистрированных данных моделирования и возвращает данные временных рядов, lossesCell, для каждого блока и массива ячеек, switchingLosses, с потерями на переключение каждого устройства.

Если потери при переключении отсутствуют, switchingLosses output - пустой массив ячеек.

Примеры

свернуть все

В этом примере показано, как рассчитать мгновенные потери на основе рассеиваемой мощности и вернуть данные временных рядов для всех временных шагов за все время моделирования с помощью ee_getPowerLossTimeSeries функция.

Откройте модель. В командной строке MATLAB ® введите:

model = 'ee_solar_inverter';
open_system(model)

В этом примере модели включено ведение журнала данных. Запустите моделирование и создайте переменную журнала моделирования.

sim(model)

Переменная журнала моделирования simlog_ee_solar_inverter сохраняется в текущей рабочей области.

Вычислите рассеянные потери мощности и верните данные временных рядов в массиве ячеек.

lossesCell = ee_getPowerLossTimeSeries(simlog_ee_solar_inverter)
lossesCell =

  8×2 cell array

    {'ee_solar_inverter.Diode1'}    {77180×3 double}
    {'ee_solar_inverter.MOS1'  }    {77180×3 double}
    {'ee_solar_inverter.MOS2'  }    {77180×3 double}
    {'ee_solar_inverter.MOS3'  }    {77180×3 double}
    {'ee_solar_inverter.MOS4'  }    {77180×3 double}
    {'ee_solar_inverter.Diode2'}    {77180×3 double}
    {'ee_solar_inverter.Diode3'}    {77180×3 double}
    {'ee_solar_inverter.Diode4'}    {77180×3 double}

Просмотр данных временных рядов. В рабочей области откройте lossesCell массив ячеек, затем откройте 77180x3 double числовой массив для ee_solar_inverter.Diode1.

Первые два столбца содержат время начала и окончания интервала. Третий столбец содержит данные о потере мощности.

Постройте график данных.

plot(lossesCell{1, 2}(:,end))
title('Dissipated Power')
xlabel('Time Interval')
ylabel('Power (W)')

В этом примере показано, как рассчитать мгновенные потери на основе мощности, рассеиваемой, и вернуть данные временных рядов для всех временных шагов в конкретном периоде времени с помощью ee_getPowerLossTimeSeries функция.

Откройте модель. В командной строке MATLAB ® введите:

model = 'ee_solar_inverter';
open_system(model)

В этом примере модели включено ведение журнала данных. Запустите моделирование и создайте переменную журнала моделирования.

sim(model)

Переменная журнала моделирования simlog_ee_solar_inverter сохраняется в текущей рабочей области.

Время моделирования модели (t) составляет 1/60 секунд. Вычислите рассеянные потери мощности и верните данные временных рядов в массиве ячеек для второй половины цикла моделирования, когда t составляет от 1/120 до 1/60 секунд.

lossesCell = ee_getPowerLossTimeSeries(simlog_ee_solar_inverter,1/120,1/60)
lossesCell =

  8×2 cell array

    {'ee_solar_inverter.Diode1'}    {39150×3 double}
    {'ee_solar_inverter.MOS1'  }    {39150×3 double}
    {'ee_solar_inverter.MOS2'  }    {39150×3 double}
    {'ee_solar_inverter.MOS3'  }    {39150×3 double}
    {'ee_solar_inverter.MOS4'  }    {39150×3 double}
    {'ee_solar_inverter.Diode2'}    {39150×3 double}
    {'ee_solar_inverter.Diode3'}    {39150×3 double}
    {'ee_solar_inverter.Diode4'}    {39150×3 double}

Просмотр данных временных рядов. В рабочей области откройте lossesCell массив ячеек, затем откройте 39150x3 double числовой массив для ee_solar_inverter.Diode1.

Первые два столбца содержат время начала и окончания интервала. Третий столбец содержит данные о потере мощности.

Постройте график данных.

plot(lossesCell{1, 2}(:,end))
title('Dissipated Power')
xlabel('Time Interval')
ylabel('Power (W)')

В этом примере показано, как вычислять потери на основе рассеиваемой мощности и возвращать данные временных рядов за определенный период времени с применением усреднения по интервалам заданной ширины.

Откройте модель. В командной строке MATLAB ® введите:

model = 'ee_solar_inverter';
open_system(model)

В этом примере модели включено ведение журнала данных. Запустите моделирование и создайте переменную журнала моделирования.

sim(model)

Переменная журнала моделирования simlog_ee_solar_converter сохраняется в текущей рабочей области.

Время моделирования модели (t) составляет 1/60 секунд. Рассчитайте средние рассеиваемые потери мощности для интервалов 1,1e-4 с и верните данные временных рядов в массиве ячеек за период, когда время моделирования, t, составляет 0,008-0,017 секунды.

lossesCell = ee_getPowerLossTimeSeries(simlog_ee_solar_inverter,0.008,0.016,1.1e-4)
lossesCell =

  8×2 cell array

    {'ee_solar_inverter.Diode1'}    {72×3 double}
    {'ee_solar_inverter.MOS1'  }    {72×3 double}
    {'ee_solar_inverter.MOS2'  }    {72×3 double}
    {'ee_solar_inverter.MOS3'  }    {72×3 double}
    {'ee_solar_inverter.MOS4'  }    {72×3 double}
    {'ee_solar_inverter.Diode2'}    {72×3 double}
    {'ee_solar_inverter.Diode3'}    {72×3 double}
    {'ee_solar_inverter.Diode4'}    {72×3 double}

Просмотр данных временных рядов. В рабочей области откройте lossesCell массив ячеек, затем откройте 72x3 double числовой массив для ee_solar_inverter.Diode1

Первые два столбца содержат время начала и окончания интервала. Третий столбец содержит данные о потере мощности. В этом случае для использования интервалов усреднения, равных по ширине 1,1e-4 секундам, функция корректирует время начала первого интервала с заданного значения 0,008 секунды до значения 0,0081 секунды. Существует 72 интервала 1,1e-4 секунды.

Постройте график данных.

plot(lossesCell{1, 2}(:,end))
title('Dissipated Power')
xlabel('Time Interval')
ylabel('Power (W)')

Входные аргументы

свернуть все

Переменная рабочей области журнала моделирования или узел в этой переменной, содержащий записанные данные моделирования модели, указанные как Node объект. Имя переменной журнала моделирования задается с помощью параметра Имя переменной рабочего пространства (Workspace variable name) на панели Simscape диалогового окна Параметры конфигурации (Configuration Parameters). Чтобы указать узел в переменной журнала моделирования, укажите полный путь к этому узлу через дерево данных моделирования, начиная с имени переменной верхнего уровня.

Если node является именем переменной журнала моделирования, то таблица содержит данные для всех блоков в модели, которые содержат power_dissipated переменные. Если node является именем узла в дереве данных моделирования, то таблица содержит данные только для:

  • Блоки или переменные в пределах этого узла

  • Блоки или переменные в подузлах на всех уровнях иерархии под этим узлом

Пример: simlog.Cell1.MOS1

Начало временного интервала для вычисления временного ряда потерь мощности, заданного как реальное число, в секундах. startTime должно быть больше или равно времени начала моделирования и меньше endTime.

Типы данных: double

Конец временного интервала для вычисления временного ряда потерь мощности, заданного как реальное число, в секундах. endTime должно быть больше, чем startTime и меньше или равно времени остановки моделирования.

Типы данных: double

Размер временного интервала для вычисления среднего рассеяния мощности, заданного как действительное число, в секундах. Если указано, функция возвращает данные для временных шагов из startTime кому endTime, усредненное по intervalWidth. Если опустить intervalWidth или установите его в 0, функция возвращает мгновенные данные без усреднения. Если все необязательные аргументы опущены, функция возвращает мгновенные данные за все время моделирования.

Если время между указанными startTime и endTime не является целым числом, кратным intervalWidth, функция корректирует время начала. На рисунке показано, как функция корректирует время начала, чтобы гарантировать, что ширина каждого временного интервала, по которому усредняется рассеиваемая мощность, равна указанному intervalWidth.

Черная линия является примером мгновенных переменных power_dissipated, суммированных по всем элементам в отдельном блоке. Моделирование выполняется в течение 6 секунд. startTime и endTime обозначены сплошными синими линиями. intervalWidth установлено в 1 секунду. Имеется пять интервалов, обозначенных красными пунктирными линиями. Крайний правый край последнего интервала совпадает с endTime. Крайний левый край первого интервала всегда больше или равен startTime. Кромка равна startTime только если (endTime -startTime)/intervalWidth - целое число. Выход в этом случае состоит из пяти значений для усредненного рассеяния мощности, по одной точке для каждого периода времени. Функция выводит фактическое время начала и окончания в табличных выходных данных.

Пример: 1.1e-3

Типы данных: double

Выходные аргументы

свернуть все

Массив ячеек, содержащий имена блоков в узлах, содержащих power_dissipated переменные, и для каждого блока массив из трех столбцов:

  • Первый столбец содержит время начала интервала.

  • Второй столбец содержит время окончания интервала.

  • Третий столбец содержит мощность рассеяния для временного интервала.

Если ширина интервала равна 0 секундам, то есть время начала равно времени окончания, то рассеиваемая мощность является мгновенной потерей мощности. Если интервал больше 0 секунд, рассеиваемая мощность является средней потерей мощности за время интервала.

Массив ячеек, который содержит время каждого переключателя в первом столбце и соответствующую энергию, рассеиваемую в этом событии переключения, в Джоулях, во втором столбце.

Если потери при переключении отсутствуют, массив ячеек пуст.

Представлен в R2017a