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

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

Почему раздел сеть Simscape

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

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

Открыть модель инвертора солнечной энергии в качестве примера, запуск:

open_system('sschdlexSolarInverterSingleNetworkExample')

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

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

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

Чтобы видеть конвертер повышения и инвертор, откройте Сетевую подсистему.

open_system('Solar_Power_Inverter_Single_Network_HDL/Network')

Запустите HDL Workflow Advisor Simscape

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

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. Запустите Сгенерировать задачу модели реализации.

2. Щелкните по ссылке, чтобы открыть модель реализации HDL. Модель содержит блок Subsystem 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')

3. Включите генерацию отчета использования ресурса.

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

4. Запустите makehdl функция, чтобы сгенерировать код для блока Subsystem HDL.

makehdl('Solar_Power_Inverter_Single_Network_StateSpace/HDL Subsystem')

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

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

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

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

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

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

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

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

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

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

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

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

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

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

open_system('sschdlexSolarInverterPartitionedNetworkExample')

Чтобы изучить, как вы запускаете HDL Workflow Advisor Simscape и генерируете HDL-код для этой модели, смотрите, Генерируют HDL-код для Моделей Simscape с Несколькими Сетями.

Смотрите также

Функции

Похожие темы