В этом примере показано, как можно разделить модель инвертора солнечной энергии, которая содержит одну, большую сеть Simscape™ в несколько сетей. После того, как вы разделите сеть, можно запустить HDL Workflow Advisor Simscape, чтобы сгенерировать модель реализации HDL. Чтобы изучить, как вы запускаете Советника по модели, смотрите, Генерируют HDL-код для Моделей 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')
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.
Видеть потребление ресурсов:
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. Разделить сеть в несколько сетей:
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 с Несколькими Сетями.