При разработке алгоритма с использованием Simscape™ коммутируемых линейных блоков можно запустить Simscape HDL Workflow Advisor для создания модели реализации HDL. Модель реализации HDL представляет алгоритм Simscape с использованием блоков Simulink ®, совместимых с генерацией кода HDL.
Перед прообразом модели реализации на FPGA или целевых модулях ввода-вывода FPGA Speedgoat можно проверить функциональность конструкции в среде моделирования Simulink. Чтобы проверить функциональность, укажите вставку логики проверки в модель реализации HDL при запуске Simscape HDL Workflow Advisor. Эта логика проверяет соответствие числовых результатов модели реализации HDL исходному алгоритму Simscape.
В некоторых случаях может быть несоответствие в результатах моделирования между алгоритмом Simscape и соответствующей реализацией HDL. Такие несоответствия генерируют предупреждения или утверждения при моделировании модели внедрения. Для устранения предупреждений используйте комбинацию различных параметров настройки в задаче Создать модель внедрения, как показано ниже.
В этом примере модель выпрямителя моста используется для иллюстрации создания модели реализации с логикой проверки, вставленной в модель, и разрешения любых утверждений, которые могут быть созданы при моделировании модели реализации.
Откройте модель выпрямителя моста. В окне команд MATLAB ® введите:
open_system('sschdlexBridgeRectifierExample') open_system('sschdlexBridgeRectifierExample/Simscape_system')
Внутри Simscape_system, вы видите четыре диода, расположенных в конфигурации моста. Как для положительных, так и для отрицательных входных значений эта конфигурация обеспечивает положительный выпрямленный выходной сигнал.

Откройте Simscape HDL Workflow Advisor для модели:
sschdladvisor('sschdlexBridgeRectifierExample')Щелкните правой кнопкой мыши задачу Get state-space parameters и выберите Run to Selected Task, чтобы запустить все задачи в Advisor, кроме задачи Generate implementation model.
В задаче Создать модель реализации установите флажок Создать логику проверки для модели реализации. Оставьте другие параметры со значениями по умолчанию и выберите Выполнить эту задачу.

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

При моделировании модели создается несколько утверждений, указывающих на несоответствие результатов моделирования. При открытии программы Diagnostic Viewer появится следующее сообщение:
Assertion detected in 'gmStateSpaceHDL_BridgeRectifier_HDL_SimMismatch/Validation/Check Static Range1' at time 0.04186 [4982 similar]
Сообщение указывает, что алгоритм Simscape™ не соответствует эквивалентной реализации HDL. Чтобы устранить несоответствие проверки, можно изменить различные настройки в задаче Создать модель реализации, пока модель реализации HDL не будет соответствовать алгоритму Simscape. В большинстве случаев для устранения числового несоответствия можно использовать комбинацию этих параметров.
Преобразование алгоритма Simscape в эквивалентную реализацию HDL приводит к ошибкам округления. Значение допуска по умолчанию относительно мало и может быть трудно достичь, особенно при использовании типов данных с одной точностью в модели реализации HDL. Чтобы устранить несоответствие, выполните следующие действия.
Начните с увеличения допуска логики проверки до начального значения, такого как 1e-4.
Выберите Генерировать логику проверки для модели реализации и запустите задачу для генерации модели реализации HDL, которая включает логику проверки.
Смоделировать модель и проверить, отображает ли моделирование утверждения в средстве просмотра диагностики. Если в результате моделирования появляются предупреждения, перейдите к следующему шагу, чтобы увеличить число итераций решателя.
Для каждого режима в физической системе коммутируемый линейный рабочий процесс поступает в представление пространства состояний. Метод решателя является итеративным и выполняет несколько вычислений, чтобы определить правильный режим для следующего временного шага. После определенного числа итераций выходное значение следующего временного шага становится таким же, как и значение предыдущего временного шага. Эта непротиворечивость выходного значения указывает на правильное количество итераций решателя.
Помощник по умолчанию выбирает оптимальное значение для числа итераций решателя. См. раздел Использование числа итераций решателя (кодер HDL). Если увеличение значения допуска не улучшает точность модели реализации HDL, можно устранить числовое несоответствие, увеличив число итераций решателя.
При увеличении числа итераций решателя генератор кода изменяет время выборки созданной модели реализации HDL. Большое количество итераций может значительно увеличить время моделирования. См. раздел Уменьшение числа итераций решателя (кодер HDL). На этой блок-схеме показано, как изменить число итераций решателя.

Можно использовать параметр Точность с плавающей запятой (Floating-point precision) в задаче Создать модель реализации (Generate implementation model), чтобы указать тип данных с плавающей запятой, который требуется использовать для алгоритма внутри HDL Subsystem. Укажите, следует ли сохранять коэффициенты матрицы в single или double типы данных и необходимость использования single или double при выполнении вычислений.
| Точность с плавающей запятой | Описание |
|---|---|
Double | Используя double точность с плавающей запятой повышает численную точность формируемой модели и максимально достижимую целевую частоту. Однако потребление площади и задержка трубопровода также увеличиваются. |
Single | Это параметр по умолчанию для точности с плавающей запятой. |
Single coefficient, double computation | Этот режим предлагает компромисс между Single и Double режимы точности с плавающей запятой. Чтобы сохранить использование памяти, коэффициенты, которые хранятся в single. Матричные вычисления затем выполняются в double для повышения точности. |
Эта блок-схема иллюстрирует, как изменить точность с плавающей запятой и улучшить числовую точность созданной модели реализации HDL.

Примечание
Операции с двойной точностью имеют большие задержки и требуют большого коэффициента избыточной дискретизации для выделения достаточных задержек для операций с плавающей запятой, что снижает частоту дискретизации. Для компромисса между точностью и точностью используйте Single coefficient, double computation в качестве точности с плавающей запятой.
После указания двойных типов данных, если результаты моделирования по-прежнему вызывают предупреждения:
Перейдите к первому шагу для дальнейшего увеличения допуска логики проверки. Использовать значение допуска, равное 1e-03 а затем смоделировать модель, чтобы проверить, соблюдены ли требования числовой точности.
Увеличьте число итераций решателя, если предупреждения по-прежнему отображаются в средстве просмотра диагностики. Продолжайте итерацию между этими шагами, пока модель реализации HDL не будет численно соответствовать алгоритму Simscape.
Для модели выпрямителя моста для устранения предупреждений установите для логического допуска проверки значение 1e-4 и укажите точность с плавающей запятой как double. После создания модели реализации с логикой проверки видно, что при моделировании модели предупреждения в средстве просмотра диагностики не отображаются.
simscape.findNonlinearBlocks | sschdladvisor (кодер HDL)