Этот пример показывает, как преобразовать модель, которая нелинейна из-за переменного резистора в коммутируемое линейное создание моделей он совместимый с Simscape к Рабочему процессу HDL.
Simscape к Рабочему процессу HDL поддерживает преобразование переключенных линейных моделей Simscape к функционально эквивалентным моделям Simulink, которые совместимы для генерации HDL-кода. Из-за природы уравнений, которые следуют из переменных резисторов, блоки, такие как Кусочно-постоянный Резистор могут привести к нелинейному поведению и должны быть заменены эквивалентными коммутируемыми линейными компонентами. В частности Кусочно-постоянный Резистор содержит события, которые не поддержаны HDL Workflow Advisor Simscape.
Откройте Модель Simscape™. В командной строке MATLAB®, введите:
addpath(fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoderdemos', 'simscapehdldemos')) nonlinearModel = 'sschdlexVariableResistorExample'; load_system(nonlinearModel) open_system(nonlinearModel)
Эта модель является схемой RLC с Кусочно-постоянным Резистором, действующим как резистор или 'загрузка'. Для Кусочно-постоянного Резистора отношения между напряжением V и текущий я - V=I*R, где R является численным значением, представленным в порте R физического сигнала.
Чтобы гарантировать положительное значение для сопротивления, любое значение ниже 1e-6 заменяется 1e-6. Этот резистор является Кусочно-постоянным, потому что сопротивление только изменяется, когда входное значение отличается от текущего сопротивления больше, чем допуск набора. Таким образом постоянно вход изменения был бы преобразован в дискретный набор сопротивлений.
В этой модели сигнал, входящий в Кусочно-постоянный Резистор, является ступенчатой функцией, которая изменяется от 2 до 3 в t=0.1, таким образом изменяющем нагрузочное сопротивление от 2 до 3.
Открыть HDL Workflow Advisor Simscape в командной строке, введите: sschdladvisor (nonlinearModel)
Запустите рабочий процесс к Получить задаче параметров пространства состояний. Эта задача перестала работать из-за присутствия Кусочно-постоянного Резистора.
Чтобы преобразовать эту модель в эквивалентную коммутируемую линейную модель, замените Кусочно-постоянный Резистор на набор переключателей и резисторы для каждого требуемого значения. Открыть коммутируемую линейную версию в командной строке 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 $\\резистор Омеги одновременно.
Теперь, когда переменный резистор был заменен коммутируемыми линейными компонентами, запускают HDL Workflow Advisor Simscape и видят, что все задачи выполнение до завершения.
Путем изменения переменного кусочного резистора на многие заданные резисторы, которые включают и выключают модель, был изменен на форму, которая совместима с Simscape к рабочему процессу HDL.