Некоторые блоки не поддерживают типы данных с фиксированной точкой и могут привести к ошибке во время преобразования с фиксированной точкой.
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, из одного из блоков в библиотеке пользовательских функций.