exponenta event banner

Ошибки и предупреждения во время выполнения программирования

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

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

component MyVariableResistor
% Variable Resistor
% Models a linear variable resistor. The relationship between voltage V
% and current I is V=I*R where R is the numerical value presented at the
% physical signal port R. If this signal becomes negative, simulation
% errors out.
%

  inputs
    R = { 0.0, 'Ohm' };
  end

  nodes
    p = foundation.electrical.electrical; % +:left
    n = foundation.electrical.electrical; % -:right
  end

  variables
    i = { 0, 'A' };
    v = { 0, 'V' };
  end

  branches
    i : p.i -> n.i;
  end

  equations
    assert( R >= 0, 'Negative resistance is not modeled' );
    v == p.v - n.v;
    v == i*R;
  end

end

Если модель содержит этот блок переменного резистора, и сигнал R становится отрицательным во время моделирования, моделирование прекращается, и открывается окно Диагностика моделирования (Simulation Diagnostics) с сообщением, подобным следующему:

At time 3.200000, an assertion is triggered. Negative resistance is not modeled.
The assertion comes from:
Block path: dc_motor1/Variable Resistor
Assert location: between line: 29, column: 14 and line: 29, column: 18 in file:
C:/Work/libraries/+MySimscapeLibrary/+ElectricalElements/MyVariableResistor.ssc

Сообщение об ошибке содержит следующую информацию:

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

  • message строка (в этом примере Negative resistance is not modeled)

  • Активная ссылка на блок, вызвавший утверждение. Щелкните значок Block path для выделения блока на схеме модели.

  • Активная ссылка на расположение подтверждения в исходном файле компонента. Щелкните значок Assert location для открытия Simscape™ исходного файла компонента с курсором в начале условия нарушенного предиката. Для файлов, защищенных Simscape, Assert location информация опущена в сообщении об ошибке.

См. раздел assert справочная страница для описания синтаксиса и других примеров.

Связанные темы