Fixed-Point Tool генерирует предложение по типу данных по объектам данных на основе областей значений, собранных посредством симуляции, выведенного анализа области значений и диапазонов проекта, указанных на объектах модели. 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, изолирующие этот порт в подсистеме Дросселя.
Расширьте стрелу кнопки 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: ''