exponenta event banner

Создание кода HDL для моделей Simscape с несколькими сетями

В этом примере показано, как можно запустить Simscape HDL Workflow Advisor для создания модели реализации HDL для модели Simscape™, содержащей несколько сетей. Можно также создать логику проверки, которая численно сравнивает каждую сеть Simscape с соответствующей реализацией пространства состояний в модели реализации HDL. Модель Simscape в этом примере представляет собой инвертор солнечной энергии, разделенный на две сети. Сведения о разделении этой сети см. в разделе Разделение моделей Simscape, содержащих большую сеть, на несколько небольших сетей.

Зачем использовать модель Simscape с несколькими сетями

Если модель Simscape содержит множество элементов переключения, представление состояния-пространства может содержать большое количество режимов. Сгенерированная модель реализации ЛПВП для такой большой конструкции может потреблять значительно большое количество ресурсов и может даже не синтезироваться на целевом устройстве FPGA. Чтобы уменьшить количество режимов, можно разделить сеть Simscape в модели на несколько сетей, а затем запустить Simscape HDL Workflow Advisor.

Модель инвертора солнечной энергии с несколькими сетями

Чтобы открыть модель, содержащую несколько сетей, выполните следующие действия.

open_system('sschdlexSolarInverterPartitionedNetworkExample')

В этом примере модель сохраняется как Solar_Power_Inverter_Multiple_Network_HDL. Эта модель является той же, что и sschdlexSolarInverterPartiaritStartПример, но имеет подсистемы перегруппировки и логику для солнечной панели, размещенной внутри подсистемы Solar_Panel.

open_system('Solar_Power_Inverter_Multiple_Network_HDL')
set_param('Solar_Power_Inverter_Multiple_Network_HDL', 'SimulationCommand', 'Update')

Модель состоит из четырёх частей: солнечная панель, контроллер наддува, контроллер инвертора и преобразователь наддува и полный мостовой инвертор. Солнечная панель моделируется в Simulink ® с помощью таблиц поиска. Контроллер наддува и контроллер инвертора обеспечивают управляющие сигналы для преобразователя наддува и полного мостового инвертора, который является Н-образным мостом.

Первоначальная модель содержит повышающий преобразователь и полный мостовой инвертор в виде единой сети внутри одной подсистемы. Для просмотра этой модели введите:

open_system('sschdlexSolarInverterSingleNetworkExample')

Секционированная модель содержит две сети внутри отдельных подсистем. Для просмотра преобразователя бустера откройте подсистему PV Boost.

open_system('Solar_Power_Inverter_Multiple_Network_HDL/PV Boost')

Для просмотра полного мостового инвертора откройте подсистему PV Inverter.

open_system('Solar_Power_Inverter_Multiple_Network_HDL/PV Inverter')

Запуск Simscape HDL Workflow Advisor для модели с несколькими сетями

1. Чтобы открыть Simscape HDL Workflow Advisor для модели, введите:

sschdladvisor('Solar_Power_Inverter_Multiple_Network_HDL')
### Running Simscape HDL Workflow Advisor for <a href="matlab:(Solar_Power_Inverter_Multiple_Network_HDL)">Solar_Power_Inverter_Multiple_Network_HDL</a>

2. Запустите рабочий процесс в линейную задачу Check switched.

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

3. Запустите задачу Извлечение уравнений.

Задача отображает количество режимов, состояний, входов, выходов и разностных переменных для каждой сети Simscape.

4. Выполните задачу Дискретизировать уравнения.

Представление пространства состояний теперь использует меньше режимов. Количество режимов: 58 для бустерного преобразователя и 9 для полного мостового инвертора, что приводит к общему количеству 67 режимы. Уменьшение количества режимов экономит область модели реализации ЛПВП на целевом устройстве.

5. Измените допуск логики проверки на 1e-4 и установите флажок Генерировать логику проверки для модели реализации. Запустите задачу Создать модель внедрения.

Открыть модель реализации ЛПВП и проверить алгоритм ЛПВП

Чтобы открыть модель внедрения, щелкните ссылку в журнале задач Создать модель внедрения. Переименуйте модель в Solar_Power_Inverter_Multiple_Network_StateSpace.

open_system('Solar_Power_Inverter_Multiple_Network_StateSpace')
set_param('Solar_Power_Inverter_Multiple_Network_StateSpace', 'SimulationCommand', 'Update')

Модель содержит две подсистемы HDL. Блок подсистемы HDL моделирует уравнения состояния и пространства для повышающего преобразователя. Блок Subsystem1 HDL моделирует уравнения состояния-пространства для полного мостового инвертора. Подсистемы проверки и Validation1 сравнивают функциональную эквивалентность представления пространства состояния повышающего преобразователя и полного мостового инвертора с соответствующей сетью Simscape в исходной модели.

Параметры пространства состояния сохраняются в файле MAT Solar_multiple_network_stateSpaceParameters.mat. Файл содержит массив ячеек из двух структур. Одна структура содержит параметры бустерного преобразователя. Другая структура содержит параметры для полного мостового инвертора.

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

Создание кода HDL и модели проверки

1. Разрешить создание отчета об использовании ресурсов.

hdlset_param('Solar_Power_Inverter_Multiple_Network_StateSpace', 'ResourceReport', 'on')

2. Перед созданием кода HDL рекомендуется включить создание модели проверки. Модель проверки сравнивает выходные данные созданной модели после генерации кода с выходными данными исходной модели. Дополнительные сведения см. в разделах Сгенерированная модель и модель проверки.

HDLmodelname = 'Solar_Power_Inverter_Multiple_Network_StateSpace';
hdlset_param(HDLmodelname, 'TargetDirectory', 'C:/Temp/hdlsrc');
hdlset_param(HDLmodelname, 'GenerateValidationModel', 'on');

3. Запустить makehdl для создания кода. Чтобы создать код HDL для обоих блоков подсистемы HDL, можно поместить блоки в другую подсистему верхнего уровня, а затем создать код HDL. Присвойте этой подсистеме имя HDL_DUT.

makehdl('Solar_Power_Inverter_Single_Network_StateSpace/HDL_DUT')

Сгенерированный код HDL и модель проверки сохраняются в каталоге C :/Temp/hdlsrc. Созданный код сохраняется как HDL_DUT_tc.vhd. Чтобы открыть модель проверки, щелкните ссылку для gm_Solar_Power_Inverter_Multiple_Network_StateSpace_vnl.slx в журналах создания кода в окне команд.

4. При создании кода HDL откройте отчет по созданию кода. Отчет об использовании ресурсов указывает большое количество сумматоров, множителей и регистров, которые могут потребляться на целевом устройстве FPGA.

Общее потребление ресурсов двух сетей значительно меньше, чем потребление ресурсов одной крупной сети. Сведения о потреблении ресурсов одной сети инверторов солнечной энергии см. в разделе Модели разделения Simscape, содержащие большую сеть, на несколько сетей меньшего размера.

См. также

Функции

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