ee_getPowerLossTimeSeries

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

Описание

пример

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

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

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

Примечание

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

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

Потери переключения являются потерями, связанными с переходом полупроводникового переключателя из его включенного состояния в его off-состояние и viceversa. Они зависят от частоты. 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 выводится пустой массив ячеек.

Примеры

свернуть все

В этом примере показано, как вычислить мгновенные потери на основе степени и вернуть данные временных рядов для всех временных шагов за все время симуляции с помощью 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 массив ячеек, затем откройте double 77180x3 числовой массив для 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 массив ячеек, затем откройте double 39150x3 числовой массив для 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 массив ячеек, затем откройте double 72x3 числовой массив для 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 диалогового окна Параметры конфигурации. Чтобы задать узел в переменной журнала симуляции, укажите полный путь к этому узлу через дерево данных моделирования, начиная с имени переменной верхнего уровня.

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

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

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

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

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

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

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

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

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

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

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

Пример: 1.1e-3

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

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

свернуть все

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

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

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

  • Столбец третий содержит рассеянную степень для временного интервала.

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

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

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

Введенный в R2017a