Инструмент с фиксированной точкой генерирует предложение по типу данных для объектов данных на основе диапазонов, собранных посредством моделирования, производного анализа диапазонов и диапазонов проектирования, заданных на объектах модели. Кроме того, Fixed-Point Tool принимает во факторе любые ограничения типа данных, накладываемые объектами модели.
Эти типы объектов данных поддерживаются для преобразования с помощью Fixed-Point Tool.
В следующих разделах описывается, как инструмент собирает области значений и анализирует ограничения.
Объекты в вашей модели, которые используют тот же объект данных для определения его типа, должны иметь один и совпадающий тип данных. Этот Fixed-Point Tool собирает области значений для всех объектов вашей модели. Объекты, которые должны совместно использовать один и совпадающий тип данных, помещаются в группу типов данных. Этот Fixed-Point Tool генерирует предложение по типу данных для группы на основе объединения областей значений всех объектов модели в группе.
Когда это возможно, лучшая практика задать проект области значений информацию об объекте параметра. Когда тип данных объекта параметра установлен в auto
, Fixed-Point Tool следует тем же правилам, что и при предложении для унаследованных типов данных. Fixed-Point Tool определяет области значений для использования в предложении типа данных для объекта параметра путем принятия объединения значений параметров, областях значений проекта параметра и областей значений проекта клиентских блоков.
Некоторые объекты в группе типов разделяемых данных могут содержать ограничения на типы данных, которые они могут принять. Для примера некоторые блоки могут принимать только типы данных со знаком.
Fixed-Point Tool не может обнаружить, когда объект параметра должен быть только целым числом, таким как при использовании объекта параметра в качестве переменной для размерностей, управления вариантом или логического значения. В этих случаях необходимо очистить поле Accept на этапе предложения Fixed-Point Tool перед применением типов данных к модели.
Данные точек по оси Х всегда должны быть строго монотонно увеличены. Несмотря на то, что набор данных точек по оси Х может быть строго монотонным в двойном формате, из-за насыщения и квантования он может быть не после преобразования в тип данных с фиксированной точкой. Fixed-Point Tool учитывает это поведение и предлагает тип данных, достаточно большой, чтобы удовлетворить ограничению монотонности после преобразования. В некоторых случаях тип данных очень велик по порядку, чтобы удовлетворить ограничению. В этом случае рассмотрите изменение данных точек по оси Х таким образом, чтобы они могли быть эффективно представлены в фиксированной точке.
В следующей модели используется несколько различных типов объектов данных, включая Simulink.Bus
, Simulink.NumericType
, Simulink.LookupTable
, и Simulink.Breakpoint
объекты для определения типов. Используйте Fixed-Point Tool, чтобы преобразовать модель с плавающей точкой, включая объекты данных, используемые в модели, в фиксированную точку.
Откройте ex_data_objects
модель. В MATLAB® в командной строке введите:
addpath(fullfile(docroot,'toolbox','fixpoint','examples')); ex_data_objects
Из Simulink® Apps вкладке выберите Fixed-Point Tool.
В Fixed-Point Tool, под New потока операций, выберите Iterative Fixed-Point Conversion
.
В Fixed-Point Tool под System Under Design (SUD) выберите Target Embedded System
как систему, которую необходимо преобразовать.
В разделе Range Collection Mode выберите Simulation ranges.
Нажмите кнопку Prepare. Этот Fixed-Point Tool проверяет систему под проект на совместимость с процессом преобразования и сообщает о любых проблемах, обнаруженных в модели.
Когда объекты модели в проектируемой системе совместно используют тип данных с объектами за пределами проектируемой системы, проблемы распространения типа данных могут возникнуть после преобразования в фиксированную точку. По этой причине на этапе подготовки преобразования Fixed-Point Tool вставляет Data Type Conversion блоки на выходы проектируемой системы.
В этом примере инструмент не может автоматически вставить блок Data Type Conversion в ex_data_objects/Throttle
порт, поскольку порт использует сигнал шины. Вы можете игнорировать это предупреждение в этом случае, потому что уже есть Data Type Conversion блоков, изолирующих этот порт в подсистеме Throttle.
Разверните стрелу кнопки Collect Ranges и выберите Double Precision
. Нажмите кнопку Collect Ranges, чтобы начать симуляцию. Собранную областью значений информацию Fixed-Point Tool сохраняет в запуск под названием BaselineRun
.
В разделе Convert нажмите кнопку Propose Data Types.
Fixed-Point Tool обнаруживает объекты данных в модели и предлагает тип данных, который удовлетворяет ограничениям объекта данных. Можно просмотреть все объекты данных, используемые в модели, выбрав Data Objects в панели Model Hierarchy.
Чтобы узнать больше о конкретном результате, выберите объект данных в Results электронной таблице. Панель Result Details содержит более подробную информацию о предложении и ссылку для подсветки всех блоков вашей модели с помощью определенного объекта данных.
Инструмент отображает предложенные типы данных для всех результатов в ProposedDT столбце Results электронной таблицы.
Чтобы просмотреть группу типов данных, к которой принадлежит результат, добавьте столбец DTGroup к электронной таблице. Нажмите кнопку добавления столбца. Выберите DTGroup в меню.
Чтобы отсортировать по DTGroup столбцу, щелкните заголовок столбца. Теперь можно увидеть результаты, которые должны иметь один и совпадающий тип данных рядом друг с другом.
Нажмите кнопку Apply Data Types, чтобы записать предложенные типы данных в модель.
Этот Fixed-Point Tool применяет предложения по типам данных к объектам данных по их определению. В этом примере объекты данных заданы в базовом рабочем пространстве. Просмотрите детали конкретного объекта данных путем ввода имени объекта данных в командной строке MATLAB.
errorDT
NumericType with properties: DataTypeMode: 'Fixed-point: binary point scaling' Signedness: 'Signed' WordLength: 16 FractionLength: 11 IsAlias: 1 DataScope: 'Auto' HeaderFile: '' Description: ''