Число с фиксированной точкой можно представить общей схемой кодирования наклона и смещения.
где:
- произвольно точное реальное значение.
- приблизительная реальная величина.
Q, запомненное значение, является целым числом, которое кодирует V.
S = F2E - наклон.
B - это смещение.
Для операции литья,
SbQb + Bb
или
BaSa),
где:
- чистый уклон.
BaSa является чистым смещением.
Проблемы точности могут возникать в константах фиксированной точки, чистом наклоне и чистом смещении из-за ошибок квантования при преобразовании из плавающей точки в фиксированную. Эти проблемы постоянной точности с фиксированной точкой могут привести к числовой неточности в модели.
Модель можно настроить так, чтобы она предупреждала о возникновении проблем с постоянной точностью в фиксированной точке.
Модель можно настроить так, чтобы она предупреждала о возникновении проблем с постоянной точностью в фиксированной точке. Чтобы получать предупреждения при возникновении проблем постоянной точности с фиксированной точкой, используйте эти опции, доступные в диалоговом окне Параметры конфигурации Simulink ® на панели Диагностика > Преобразование типов. Задайте для параметров значение warning или error чтобы Simulink предупреждал при возникновении проблем с точностью.
| Параметр конфигурации | Определяет | Дефолт |
|---|---|---|
| Обнаружение недопотока | Диагностическое действие, когда во время моделирования происходит понижение константы с фиксированной точкой | Не создает предупреждение или ошибку. |
| Обнаружение переполнения | Действие диагностики при переполнении константы фиксированной точки во время моделирования | Не создает предупреждение или ошибку. |
| Обнаружение потери точности | Действие диагностики при потере точности константы фиксированной точки во время моделирования | Не создает предупреждение или ошибку. |
Программное обеспечение Fixed-Point Designer™ предоставляет следующую информацию:
Тип проблемы точности: неполнота, переполнение или потеря точности.
Исходное значение константы с фиксированной точкой.
Квантованное значение константы с фиксированной точкой.
Ошибка в значении константы с фиксированной точкой.
Блок, который ввел ошибку.
Эта информация предупреждает, что выходные данные этого блока неточны. По возможности измените типы данных в модели, чтобы устранить проблему.
Неполный поток констант с фиксированной точкой возникает, когда программа Fixed-Point Designer обнаруживает константу с фиксированной точкой, тип данных которой не имеет достаточной точности для представления идеального значения константы, поскольку идеальное значение слишком близко к нулю. Приведение идеального значения к типу данных с фиксированной точкой приводит к тому, что значение константы с фиксированной точкой становится нулевым. Поэтому значение константы с фиксированной точкой отличается от её идеального значения.
Переполнение константы с фиксированной точкой происходит, когда программа Fixed-Point Designer преобразует константу с фиксированной точкой в тип данных, диапазон которого недостаточно велик, чтобы соответствовать идеальному значению константы с разумной точностью. Тип данных не может точно представлять идеальное значение, поскольку идеальное значение либо слишком велико, либо слишком мало. Приведение идеального значения к типу данных с фиксированной точкой приводит к переполнению. Например, предположим, что идеальным значением является 200 и преобразованный тип данных: int8. В этом случае происходит переполнение, поскольку максимальное значение int8 может представлять 127.
Программа Fixed-Point Designer сообщает об ошибке переполнения, если квантованное значение отличается от идеального значения более чем на точность для данного типа данных. Точность для типа данных приблизительно равна масштабированию по умолчанию (дополнительные сведения см. в разделе Параметры типа данных с фиксированной точкой). Поэтому для положительных значений программа Fixed-Point Designer обрабатывает ошибки, превышающие наклон, как переполнение. Для отрицательных значений ошибки больше или равны уклону при переполнении.
Например, максимальное значение, int8 может представлять 127. Точность для int8 является 1.0. Идеальное значение 127.3 квантует до 127 с абсолютной ошибкой 0.3. Хотя идеальное значение 127.3 больше максимального представимого значения для int8, ошибка квантования мала относительно точности int8. Поэтому программное обеспечение Fixed-Point Designer не сообщает о переполнении. Однако идеальное значение 128.1 вызывает переполнение, поскольку ошибка квантования 1.1, которая больше, чем точность для int8.
Примечание
Переполнение константы с фиксированной точкой отличается от потери точности константы с фиксированной точкой. Потеря точности происходит, когда идеальное постоянное значение фиксированной точки находится в диапазоне текущего типа данных и масштабирования, но программное обеспечение не может точно представить это значение.
Потеря точности константы фиксированной точки происходит, когда программа Fixed-Point Designer преобразует константу фиксированной точки в тип данных без достаточной точности для представления точного значения константы. В результате квантованное значение отличается от идеального значения. Пример этого поведения см. в разделе Обнаружение постоянной потери точности в фиксированной точке.
Примечание
Потеря точности константы с фиксированной точкой отличается от переполнения константы с фиксированной точкой. Переполнение происходит, когда диапазон типа данных параметра, то есть максимальное значение, которое он может представить, меньше идеального значения параметра.