Линеаризация блоков с сигналами или состояниями без плавающей точки

Можно линеаризировать блоки, которые имеют сигналы или состояния без плавающей точки и не имеют предварительно запрограммированной точной линеаризации. Без дополнительного строения такие блоки автоматически линеаризируются в нуль. Для примера блоки логических операторов имеют логические выходы и линеаризируются до 0.

Линеаризационные блоки, которые имеют сигналы без плавающей точки, требуют преобразования всех сигналов в двойную точность или одинарную точность. Этот подход работает только, когда ваша модель может работать правильно в полной двойной или одинарной точности.

Когда у вас есть только несколько блоков, затронутых типами данных без плавающей точки, можно использовать блок Data Type Conversion, чтобы исправить эту проблему.

Когда у вас есть много сигналов точности без помех, можно переопределить все типы данных с двойной точностью с помощью Инструмента Фиксированной Точки.

Переопределите тип данных с помощью блока преобразования типов данных

Преобразуйте отдельные сигналы в двойную точность перед линеаризацией модели путем вставки блока Data Type Conversion. Этот подход хорошо работает для модели, которая имеет только несколько затронутых блоков.

После линеаризации модели удалите блок Data Type Conversion из вашей модели.

Примечание

Переопределяющие типы данных без плавающей точки не подходят, когда модель полагается на эти типы данных, такие как опора на целочисленные типы данных для выполнения усечения из значений с плавающей точкой.

Например, рассмотрим модель, сконфигурированную для линеаризации блока Square в рабочей точке, где вход равен 1. Получившаяся линеаризированная модель должна быть 2, но вход в Square блок является логическим. Этот сигнал с типом данных без плавающей точки приводит к линеаризации нуля.

В этом случае вставка блока Data Type Conversion преобразует входной сигнал в блок Square в двойную точность. Делайте это

Переопределение типов данных с помощью инструмента с фиксированной точкой

Когда вы линеаризируете модель, которая содержит типы данных без плавающей точки, но все еще работает правильно с полной двойной или одинарной точностью, можно переопределить все типы данных, чтобы быть либо с двойной точностью, либо с одной точностью, используя Fixed Point Tool. Используйте этот подход, когда у вас есть много сигналов точности без плавающей точки.

После линеаризации модели восстановите свои исходные настройки.

Примечание

Переопределение типов данных без плавающей точки не подходит, когда модель полагается на эти типы данных, такие как опора на целочисленные типы данных для выполнения усечения из чисел с плавающей точкой.

  1. Откройте Fixed Point Tool. В Simulink® окно модели, на вкладке Apps, в галерее Apps, под Code Generation, нажмите Fixed Point Tool.

  2. В Data type override меню выберите Double или Single

  3. Восстановите настройки, когда линеаризация будет завершена.

См. также

Похожие темы