exponenta event banner

Разделение моделей Simscape, содержащих большую сеть, на несколько небольших сетей

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

Зачем разделять сеть Simscape

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

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

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

open_system('sschdlexSolarInverterSingleNetworkExample')

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

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

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

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

open_system('Solar_Power_Inverter_Single_Network_HDL/Network')

Запуск помощника по рабочим процессам Simscape HDL

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

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

2. Запустите рабочий процесс в задачу Дискретизация уравнений. Вы видите, что представление состояния-пространства использует вокруг 173 режимы, что представляет собой большое количество режимов.

Такое большое количество режимов может потреблять значительно большое количество аппаратных ресурсов и даже может привести к тому, что подсистема DUT в модели реализации HDL не сможет синтезироваться на целевом устройстве FPGA.

Создание модели внедрения HDL и просмотр потребления ресурсов

Чтобы увидеть потребление ресурсов:

1. Запустите задачу Создать модель внедрения. Щелкните ссылку, чтобы открыть модель внедрения HDL.

Модель содержит блок подсистемы HDL, который моделирует уравнения состояния и пространства для сети Simscape. Сохраните модель как Solar_Power_Inverter_Single_Network_StateSpace.slx.

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

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

hdlset_param('Solar_Power_Inverter_Single_Network_StateSpace', 'ResourceReport', 'on')

3. Запустить makehdl для формирования кода для блока подсистемы HDL.

makehdl('Solar_Power_Inverter_Single_Network_StateSpace/HDL Subsystem')

Если Coder™ HDL генерирует ошибку о невозможности выделения задержек, увеличьте коэффициент избыточной дискретизации. Начните с увеличения коэффициента избыточной выборки до 100, а затем создать код HDL. Если кодер HDL все еще не может распределить задержки, то еще больше увеличьте коэффициент избыточной дискретизации.

hdlset_param('Solar_Power_Inverter_Single_Network_StateSpace', 'Oversampling', 100)

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

Разделение сети солнечных инверторов на несколько сетей Simscape

Чтобы уменьшить количество режимов, можно разделить сеть Simscape внутри подсистемы Network на две сети Simscape. Чтобы разделить сеть на несколько сетей:

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

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

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

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

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

4. В инверторной сети добавьте управляемый источник напряжения к входу напряжения в сеть.

5. Чтобы разорвать алгебраические циклы в системе, добавьте блоки задержки между сигнальными линиями, которые соединяют выход одной подсистемы с входом другой подсистемы. Для повышения точности добавьте блоки преобразования типов данных, чтобы обеспечить двойные типы данных в качестве входных данных для сетей.

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

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

open_system('sschdlexSolarInverterPartitionedNetworkExample')

Сведения о том, как запустить Simscape HDL Workflow Advisor и создать код HDL для этой модели, см. в разделе Создание кода HDL для моделей Simscape с несколькими сетями.

См. также

Функции

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