Блоки, которые не поддерживают типы данных с фиксированной точкой

Проблема

Некоторые блоки не поддерживают типы данных с фиксированной точкой и могут привести к ошибке во время преобразования с фиксированной точкой.

Simulink® Таблица поддержки типа блочных данных суммирует характеристики блоков в библиотеке блоков Simulink, включая то, поддерживают ли они типы данных с фиксированной точкой. Чтобы просмотреть таблицу, в MATLAB® в командной строке введите:

showblockdatatypetable

Возможные решения

Изоляция неподдерживаемого блока

Если вы столкнулись с блоком, который не поддерживается для преобразования с фиксированной точкой, можно изолировать неподдерживаемый блок, развязав его с Data Type Conversion блоком. Это решение полезно, когда вы не намерены использовать неподдерживаемый блок на встраиваемом процессоре.

Одним из примеров этого является использование блока Chirp Signal, который не поддерживает выходы с фиксированной точкой, чтобы сгенерировать сигнал для данных моделирования.

Показанная подсистема предназначена для использования на встраиваемом процессоре и должна быть преобразована в фиксированную точку. Блок Chirp Signal создает данные моделирования. Блок Chirp Signal поддерживает только двойные выходы с плавающей точкой. Однако, если вы отсоедините Chirp Signal от остальной части модели, вставив блок преобразования типа данных после блока Chirp Signal, можно использовать Fixed-Point Tool, чтобы продолжить преобразование подсистемы в фиксированную точку.

Изолируйте неподдерживаемые блоки с помощью Fixed-Point Tool.  На этапе подготовки преобразования Fixed-Point Tool идентифицирует любые блоки или конструкции в вашей системе под проекты, которые не поддерживают фиксированных точек. Когда система под проект содержит неподдерживаемые конструкции, Fixed-Point Tool инкапсулирует любые неподдерживаемые элементы в подсистему, содержащую неподдерживаемый блок, окруженный Data Type Conversion блоками. Для получения дополнительной информации смотрите Использование Fixed-Point Tool для подготовки системы к преобразованию.

Изолируйте неподдерживаемые блоки с fxpopt.  По умолчанию, fxpopt изолирует любые неподдерживаемые блоки путем инкапсуляции неподдерживаемого блока в подсистему, окруженную Data Type Conversion блоками. Изолированные блоки игнорируются оптимизатором.

Примечание

Когда fxpopt изолирует неподдерживаемые блоки, итерации оптимизации не могут выполняться параллельно. Чтобы запустить итерации оптимизации параллельно, используйте Fixed-Point Tool, чтобы изолировать неподдерживаемые блоки на стадии подготовки, сохраните модель, затем запустите fxpopt с 'UseParallel' включен.

Реализация блока интерполяционной таблицы

Многие блоки, которые не поддерживаются Fixed-Point Tool, могут быть аппроксимированы блоком интерполяционной таблицы. Спроектируйте эффективную реализацию неподдерживаемого блока с фиксированной точкой при помощи Lookup Table Optimizer. Например, см. «пример модели с плавающей точкой в фиксированную точку».

Авторские блоки

Можно создать свой собственный блок, который поддерживается инструментом Fixed-Point Tool, из одного из блоков в библиотеке пользовательских функций.

См. также

Похожие темы