Начало работы с оборудованием Simscape в рабочем процессе цикла

Чтобы выполнить оборудование в цикле (HIL) симуляция с меньшими тактами и увеличенной точностью, разверните модели объекта управления Simscape™ в FPGAs на борту модулей ввода-вывода Speedgoat.

  • Сгенерируйте модель реализации HDL при помощи HDL Workflow Advisor Simscape. Модель реализации является моделью Simulink®, которая заменяет компоненты Simscape на совместимые с HDL блоки Simulink.

  • Сгенерируйте HDL-код для модели реализации, и затем разверните сгенерированный код в типовой FPGAs, SoCs или FPGAs на борту модулей ввода-вывода FPGA Speedgoat при помощи HDL Workflow Advisor.

При помощи этой возможности можно смоделировать и развернуть комплексные физические системы в Simscape, который ранее занял много времени к модели при помощи блоков Simulink.

Модели Simscape в качестве примера для генерации HDL-кода

Для генерации HDL-кода можно спроектировать собственный алгоритм Simscape или выбрать из списка моделей в качестве примера, которые создаются в Simscape. Модели в качестве примера включают:

  • Повысьте конвертер

  • Мостовой выпрямитель

  • Понижающий конвертер

  • Полупериодный выпрямитель

  • Три выпрямителя фазы

  • Два идеала конвертера уровня

  • Два конвертера уровня IGBT

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

  • Швейцарский выпрямитель

  • Венский выпрямитель

Все примеры снабжаются префиксом sschdlex и снабженный постфиксом Example. Например, чтобы открыть модель конвертера повышения, в командной строке MATLAB®, введите:

load_system('sschdlexBoostConverterExample')
open_system('sschdlexBoostConverterExample/Simscape_system')

Инструкции для моделирования Simscape для совместимости HDL

Следуйте этим инструкциям при разработке алгоритма Simscape для совместимости с HDL Workflow Advisor Simscape. Чтобы заменить подсистему, которая использует блоки Simscape с соответствующим алгоритмом пространства состояний, следуйте этим дополнительным инструкциям как описано в Руководствах по моделированию для Замены Подсистемы Simscape.

Используйте линейные и коммутируемые линейные блоки

Создайте модель Simscape при помощи линейного, и переключил линейные блоки. Линейные блоки являются блоками, которые заданы линейным соотношением, таким как резисторы. Коммутируемые линейные блоки являются блоками, такими как диоды и переключатели. Эти блоки также заданы линейным соотношением такой как V = IR, где R может переключиться между двумя или больше значениями в зависимости от состояния диодов или переключателей.

Нелинейные блоки не поддерживаются. Чтобы проверить, что модель Simscape не содержит нелинейные блоки, используйте simscape.findNonlinearBlocks (Simscape) функция. Обеспечьте путь к своей модели Simscape в качестве аргумента к этой функции.

simscape.findNonlinearBlocks('current_model')

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

Задайте обратный эйлеров решатель с дискретным шагом расчета

Сконфигурируйте опции решателя для генерации HDL-кода при помощи блока Solver Configuration (Simscape).

В диалоговом окне Block Parameters этого блока:

  • Выберите Use локальный решатель.

  • Используйте Backward Euler как тип Решателя.

  • Задайте дискретный шаг расчета, Ts.

Чтобы проверить, что настройки решателя заданы правильно, запустите задачу настройки решателя Проверки HDL Workflow Advisor Simscape.

Запустите функцию hdlsetup

После создания модели сконфигурируйте модель для генерации HDL-кода путем выполнения hdlsetup функция. hdlsetup конфигурирует настройки решателя, такие как использование решателя фиксированного шага, указывает, что симуляция запускается и времена остановки и так далее. Запускать команду для вашего current_model:

hdlsetup('current_model')

Ограничения для генерации HDL-кода из моделей Simscape

HDL Coder™ не поддерживает генерацию кода от сетей Simscape, которые содержат:

  • События

  • Графики режима

  • Задержки

  • Параметры периода выполнения

  • Периодические источники

  • Блоки Simscape Multibody™

  • Simscape Electrical™ Специализированные блоки Энергосистем

  • Нелинейные и изменяющиеся во времени блоки Simscape. Изменяющиеся во времени блоки включают блоки, такие как Переменный Индуктор и Переменный конденсатор.

  • Нескалярные состояния или входные параметры к сети. Разделите нескалярные входные параметры в скалярные входные параметры и уменьшайте второй операнд оператора двоеточия одним для ошибки, вызванной нескалярными состояниями. Например:

    % Suppose this code generates an error
    tmp1 = u(1:4); 
    
    % Fix the error by reducing second operand by 1
    tmp1 = u(1:3);

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

|

Похожие темы