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

Можно линеаризовать блоки, которые имеют сигналы нес плавающей точкой или состояния и не имеют никакой предварительно запрограммированной точной линеаризации. Без дополнительной настройки такие блоки автоматически линеаризуют, чтобы обнулить. Например, блоки логического оператора имеют булевы выходные параметры и линеаризуют к 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. Восстановите настройки, когда линеаризация будет завершена.

Смотрите также

Похожие темы