linearizeOptions

Установите опции линеаризации

Описание

пример

options = linearizeOptions возвращает набор опций линеаризации по умолчанию.

options = linearizeOptions(Name,Value) возвращает набор опций с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

Примеры

свернуть все

Создайте набор опций линеаризации, который устанавливает метод преобразования скорости на метод Тастина с предваркой на частоте 10 рад/с. Кроме того, дайте указание линеаризации не опускать блоки за пределы пути линеаризации.

options = linearizeOptions('RateConversionMethod','prewarp',...
                           'PreWarpFreq',10,...
                           'BlockReduction','off');

Кроме того, используйте запись через точку, чтобы задать значения options.

options = linearizeOptions;
options.RateConversionMethod = 'prewarp';
options.PreWarpFreq = 10;
options.BlockReduction = 'off';

Входные параметры

свернуть все

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'RateConversionMethod','prewarp' устанавливает метод преобразования скорости в метод Тастина с предварительной обработкой.

Алгоритм, используемый для линеаризации, задается как разделенная разделенными запятой парами, состоящая из 'LinearizationAlgorithm' и одно из следующих:

  • 'blockbyblock' - Индивидуально линеаризируйте каждый блок в модели и объедините результаты, чтобы получить линеаризацию указанной системы.

  • 'numericalpert' - Полномодельная численно-возмущающая линеаризация, при которой входные порты и состояния корневого уровня возмущаются с помощью прямых различий; то есть путем добавления возмущений к значениям входа и состояния. Этот метод возмущения обычно быстрее, чем 'numericalpert2' способ.

  • 'numericalpert2' - Полномодельная численно-возмущающая линеаризация, при которой входные порты и состояния корневого уровня численно возмущаются с помощью центральных различий; то есть путем возмущения входа и состояния значений как в положительном, так и в отрицательном направлениях. Этот метод возмущения обычно более точен, чем 'numericalpert' способ.

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

Блочная линеаризация имеет несколько преимуществ по сравнению с числовым возмущением полной модели:

  • Много Simulink® блоки имеют предварительно запрограммированную точную линеаризацию.

  • Можно использовать точки линейного анализа, чтобы задать фрагмент модели для линеаризации.

  • Можно сконфигурировать блоки, чтобы использовать пользовательские линеаризации, не влияя на симуляцию модели.

  • Структурно неминимальные состояния автоматически удаляются.

  • Можно задать линеаризации, которые включают неопределенность (требует Robust Control Toolbox™ программного обеспечения).

  • Вы можете получить подробную диагностическую информацию о линеаризации.

Шаг расчета результата линеаризации, заданный как разделенная разделенными запятой парами, состоящая из 'SampleTime' и одно из следующих:

  • -1 - Установите время расчета на наименее распространенное произведение ненулевых шагов расчета в модели.

  • 0 - Создайте модель непрерывного времени.

  • Положительная скалярная величина - задайте шаг расчета для систем дискретного времени.

Флаг, указывающий, следует ли обрезать имена I/Os и состояния в линеаризированной модели, заданный как разделенная разделенными запятой парами, состоящая из 'UseFullBlockNameLabels' и либо:

  • 'off' - Используйте усеченные имена для I/Os и состояний в линеаризированной модели.

  • 'on' - Используйте полный путь к блоку, чтобы назвать I/Os и состояния в линеаризированной модели.

Флаг, указывающий, использовать ли номера каналов сигнала шины или имена для маркировки ввода-вывода в линеаризированной модели, заданный как разделенная разделенными запятой парами, состоящая из 'UseBusSignalLabels' и одно из следующих:

  • 'off' - Используйте номера каналов сигналов шины для маркировки входов/выходов на сигналах шины в линеаризированной модели.

  • 'on' - Используйте имена сигналов шины, чтобы пометить I/Os на сигналах шины в линеаризированной модели. Имена сигналов шины появляются в результатах, когда точки ввода-вывода расположены на выходе следующих блоков:

    • Блок входного порта корневого уровня, содержащий объект шины

    • Блок создателя шины

    • Блок Subsystem, источник которого отслеживает выход блока создателя шины

    • Блок Subsystem, источник которого отслеживает назад к входному порту корневого уровня, проходя только через контуры виртуальной или невиртуальной подсистемы

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

  • false - Не вычислять смещения линеаризации.

  • true - Вычисление смещений линеаризации.

Можно сконфигурировать LPV System блок с помощью смещений линеаризации. Для получения примера смотрите Аппроксимацию нелинейного поведения с использованием массива систем LTI

Флаг, указывающий, хранить ли диагностическую информацию во время линеаризации, задается как разделенная разделенными запятой парами, состоящая из 'StoreAdvisor' и одно из следующих:

  • false - Не хранить диагностическую информацию линеаризации.

  • true - Храните диагностическую информацию линеаризации.

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

Флаг, указывающий, следует ли опускать блоки, которые не находятся в пути линеаризации, задается как разделенная разделенными запятой парами, состоящая из 'BlockReduction' и одно из следующих:

  • 'on' - Возвращает линеаризированную модель, которая не включает состояния из неподконтрольных путей линеаризации.

  • 'off' - Возвращает линеаризированную модель, которая включает все состояния модели.

Пути мертвой линеаризации могут включать:

  • Блоки, которые линеаризируются в нуль.

  • Переключайте блоки, которые не активны вдоль пути.

  • Отключенные подсистемы.

  • Сигналы, отмеченные как точки линеаризации без разомкнутого контура.

Для примера, если этот флаг установлен в 'on'результат линеаризации модели, показанной на следующем рисунке, включает только два состояния. Он не включает состояния из двух блоков вне пути линеаризации. Эти состояния не появляются, потому что эти блоки находятся на мертвом пути линеаризации с блоком, который линеаризируется до нуля (блок нулевого усиления).

Эта опция применяется только при LinearizationAlgorithm является 'blockbyblock'. BlockReduction всегда рассматривается как 'on' когда LinearizationAlgorithm является 'numericalpert' или 'numericalpert2'.

Флаг, указывающий, следует ли удалять состояния в дискретном времени из линеаризации, заданный как разделенная разделенными запятой парами, состоящая из 'IgnoreDiscreteStates' и одно из следующих:

  • 'off' - Всегда включать состояния в дискретном времени.

  • 'on' - Удалите дискретные состояния из линеаризации. Используйте эту опцию при выполнении линеаризации в непрерывном времени (SampleTime = 0) для принятия D значение для всех блоков с состояниями в дискретном времени.

Эта опция применяется только при LinearizationAlgorithm является 'blockbyblock'.

Метод, используемый для преобразования скорости при линеаризации мультирейтовой системы, заданный как разделенная разделенными запятой парами, состоящая из 'RateConversionMethod' и одно из следующих:

  • 'zoh' - Метод преобразования скорости удержания нулевого порядка

  • 'tustin' - Метод Тустина (билинейный)

  • 'prewarp' - Метод Тустина с преваркой частоты. Когда вы используете этот метод, установите PreWarpFreq опция для требуемой предварительной частоты.

  • 'upsampling_zoh' - Улучшайте дискретные состояния, когда это возможно, и используйте 'zoh' в противном случае.

  • 'upsampling_tustin' - Улучшайте дискретные состояния, когда это возможно, и используйте 'tustin' в противном случае.

  • 'upsampling_prewarp' - Улучшайте дискретные состояния, когда это возможно, и используйте 'prewarp' в противном случае. Когда вы используете этот метод, установите PreWarpFreq опция для требуемой предварительной частоты.

Для получения дополнительной информации о преобразовании скорости и линеаризации многоскоростных моделей смотрите:

Примечание

Если вы используете метод преобразования скорости кроме 'zoh'преобразованные состояния больше не имеют того же физического смысла, что и исходные состояния. В результате имена состояний в полученной системе LTI изменяются на '?'.

Эта опция применяется только при LinearizationAlgorithm является 'blockbyblock'.

Предварительная частота в рад/с, заданная как разделенная разделенными запятой парами, состоящая из 'PreWarpFreq' и неотрицательный скаляр. Эта опция применяется только при RateConversionMethod является либо 'prewarp' или 'upsampling_prewarp'.

Флаг, указывающий, вычислять ли линеаризацию с точными задержками, задается как разделенная разделенными запятой парами, состоящая из 'UseExactDelayModel' и одно из следующих:

  • 'off' - Возвращает линейную модель с приблизительными задержками.

  • 'on' - Верните линейную модель с точными задержками.

Эта опция применяется только при LinearizationAlgorithm является 'blockbyblock'.

Флаг, указывающий, следует ли перекомпилировать модель при изменении значений параметров для линеаризации, заданный как разделенная разделенными запятой парами, состоящая из 'AreParamsTunable' и одно из следующих:

  • true - Не компилируйте модель повторно, когда все меняющиеся параметры настраиваются. Если какие-либо меняющиеся параметры не настраиваются, повторно компилируйте модель для каждой точки сетки параметра и выдайте предупреждающее сообщение.

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

Для получения дополнительной информации о компиляции модели при линеаризации с изменением параметра, смотрите Пакетную эффективность линеаризации, Когда Вы Изменяете Значения параметров.

Численный уровень возмущения, заданный как разделенная разделенными запятой парами, состоящая из 'NumericalPertRel' и положительная скалярная величина. Эта опция применяется только при LinearizationAlgorithm является 'numericalpert' или 'numericalpert2'.

Уровни возмущения для состояний системы:

NumericalPertRel+103×NumericalPertRel×|x|

Уровни возмущения для входов системы:

NumericalPertRel+103×NumericalPertRel×|u|

Переопределить эти значения можно с помощью NumericalXPert или NumericalUPert опции.

Уровни возмущения состояния, заданные как разделенная разделенными запятой парами, состоящая из 'NumericalXPert' и объект рабочей точки. Эта опция применяется только при LinearizationAlgorithm является 'numericalpert' или 'numericalpert2'.

Чтобы задать отдельные уровни возмущения для каждого состояния:

  1. Создайте объект рабочей точки для модели с помощью operpoint команда.

    xPert = operpoint('watertank');
  2. Установите значения состояний в объекте рабочей точки на уровни возмущения.

    xPert.States(1).x = 2e-3;
    xPert.States(2).x = 3e-3;
  3. Установите значение NumericalXPert опция для объекта рабочей точки.

    opt = linearizeOptions('LinearizationAlgorithm','numericalpert');
    opt.NumericalXPert = xPert;

Если NumericalXPert пуст, []алгоритм линеаризации выводит уровни возмущения состояния, используя NumericalPertRel.

Входные уровни возмущения, заданные как разделенная разделенными запятой парами, состоящая из 'NumericalUPert' и объект рабочей точки. Эта опция применяется только при LinearizationAlgorithm является 'numericalpert' или 'numericalpert2'.

Чтобы задать отдельные уровни возмущения для каждого входа:

  1. Создайте объект рабочей точки для модели с помощью operpoint команда.

    uPert = operpoint('watertank');
  2. Установите входные значения в объекте рабочей точки на уровни возмущения.

    uPert.Inputs(1).x = 3e-3;
  3. Установите значение NumericalUPert опция для объекта рабочей точки.

    opt = linearizeOptions('LinearizationAlgorithm','numericalpert');
    opt.NumericalUPert = uPert;

Если NumericalUPert пуст, []алгоритм линеаризации выводит входные уровни возмущения с помощью NumericalPertRel.

Выходные аргументы

свернуть все

Опции линеаризации, возвращенные как linearizeOptions набор опций.

См. также

| | | (Robust Control Toolbox)

Введенный в R2013b