В этом примере показано, как преобразовать модель, которая является нелинейной из-за переменного резистора, в коммутируемую линейную модель, что делает ее совместимой с рабочим процессом Simscape to HDL.
Simscape to HDL Workflow поддерживает преобразование переключаемых линейных моделей Simscape в функционально эквивалентные модели Simulink, совместимые с генерацией кода HDL. Из-за природы уравнений, которые являются результатом переменных резисторов, такие блоки, как кусочно-постоянный резистор, могут привести к нелинейному поведению и должны быть заменены эквивалентными коммутируемыми линейными компонентами. В частности, кусочно-постоянный резистор содержит события, которые не поддерживаются консультантом Simscape HDL Workflow Advisor.
Откройте окно Модель Simscape™. В командной строке MATLAB ® введите:
nonlinearModel = 'sschdlexVariableResistorExample'; load_system(nonlinearModel) open_system([nonlinearModel,'/Simscape Subsystem'])

Эта модель представляет собой RLC-схему с кусочно-постоянным резистором, действующим как резистор или «нагрузка». Для кусочно-постоянного резистора зависимость между напряжением V и током I равна V = I * R, где R - числовое значение, представленное на физическом сигнальном порте R.
Для обеспечения положительного значения сопротивления любое значение ниже 1e-6 заменяется на 1e-6. Этот резистор является кусочно-постоянным, поскольку сопротивление изменяется только тогда, когда входное значение отличается от сопротивления тока более чем на заданный допуск. Таким образом, непрерывно изменяющийся вход будет преобразован в дискретный набор сопротивлений.
В этой модели сигнал, поступающий в кусочно-постоянный резистор, представляет собой ступенчатую функцию, которая изменяется от 2 до 3 при t = 0,1, таким образом изменяя сопротивление нагрузки от
2 до 3
.

Чтобы открыть Simscape HDL Workflow Advisor в командной строке, введите: sschdladvisor (нелинейная модель)
Запустите рабочий процесс в задачу Get state-space parameters. Эта задача завершается неуспешно из-за наличия кусочно-постоянного резистора.

Чтобы преобразовать эту модель в эквивалентную коммутируемую линейную модель, замените кусочно-постоянный резистор набором переключателей и резисторов для каждого требуемого значения. Чтобы открыть коммутируемую линейную версию в командной строке MATLAB ®, введите:
switchedLinearModel = 'sschdlexVariableResistorSwitchedLinearExample';
load_system(switchedLinearModel)
open_system(switchedLinearModel)

Переменный резистор заменен резистором и переключателем для каждого требуемого сопротивления. Для воссоздания поведения сопротивления нагрузки, изменяющегося от 2
до 3
при t = 0,1, используют два резистора, один с сопротивлением 2
, а другой с сопротивлением 3.
При замыкании и размыкании выключателей сопротивление нагрузки переключается с 2 на
3.
Выключатели должны быть включены и выключены для обеспечения правильного сопротивления нагрузки. Для просмотра управляющих сигналов для переключателей в командной строке MATLAB ® введите:
open_system([switchedLinearModel,'/Input'])

Для достижения правильного сопротивления создайте две ступенчатые функции. Один для того, чтобы открыть переключатель последовательно с 2
резистором при t = 0,1, а другой для того, чтобы закрыть переключатель последовательно с 3
резистором одновременно.
Теперь, когда переменный резистор заменен на коммутируемые линейные компоненты, запустите Simscape HDL Workflow Advisor и убедитесь, что все задачи выполняются.

Путем замены переменного кусочного резистора на ряд указанных резисторов, которые включают и выключают модель, модель была изменена на форму, совместимую с рабочим процессом Simscape to HDL.