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
Откройте Fixed-Point Tool из образцового меню путем выбора Analysis> Data Type Design> Fixed-Point Tool.
В Fixed-Point Tool, в разделе Prepare System панели инструментов, под System Under Design, выбирают подсистему, которую вы хотите преобразовать в фиксированную точку. В этом примере выберите Target Embedded System
.
В разделе Collect Ranges выберите Simulation Ranges как метод сбора области значений.
Нажмите кнопку Prepare. Fixed-Point Tool проверяет систему в соответствии с проектом для совместимости с процессом преобразования и сообщает о любых проблемах, найденных в модели.
Когда объекты модели в системе в соответствии с проектом совместно используют тип данных с объектами за пределами системы в соответствии с проектом, проблемы распространения типа данных могут произойти после преобразования в фиксированную точку. Поэтому во время этапа подготовки преобразования, Fixed-Point Tool вставляет блоки Преобразования типа данных при выходных параметрах системы в соответствии с проектом.
В этом примере инструмент не может автоматически вставить блок Data Type Conversion в порте ex_data_objects/Throttle
, потому что порт использует сигнал шины. Можно проигнорировать это предупреждение в этом случае, потому что уже существуют блоки Преобразования типа данных, изолирующие этот порт в подсистеме Дросселя.
Нажмите кнопку Collect Ranges, чтобы запустить симуляцию. Fixed-Point Tool хранит собранную информацию области значений в выполнении, названном Ranges (Double)
.
В разделе Convert Data Types нажмите кнопку Propose Data Types.
Fixed-Point Tool обнаруживает объекты данных в модели и предлагает тип данных, который удовлетворяет ограничения объекта данных. Можно просмотреть все объекты данных, используемые в модели путем выбора Data Objects в панели Model Hierarchy.
Чтобы узнать больше о конкретном результате, выберите результат в электронной таблице. Панель Result Details предоставляет больше подробную информацию о предложении и дает ссылку, чтобы подсветить все блоки в вашей модели с помощью конкретного объекта данных.
Инструмент отображает предложенные типы данных для всех результатов в столбце ProposedDT электронной таблицы.
Чтобы просмотреть группу типа данных, которой принадлежит результат, добавьте столбец 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: ''