Изменение уровня возмущения блоков, возмущенных во время линеаризации

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

Изменение уровня возмущения блока

В этом примере показано, как изменить уровень возмущения на блок Magnetic Ball Plant в модели магбола. Изменение уровня возмущения изменяет результаты линеаризации.

Для этой модели значение состояния и входного сигнала являются значениями двойной точности. Размер возмущения по умолчанию для состояния и входных сигналов в этой модели, 10-5(1+|x|), где x - значение рабочей точки возмущенного состояния или входного сигнала.

Откройте модель перед изменением уровня возмущения.

open_system('magball')

Измените уровень возмущения состояний на 10-7(1+|x|), где x - значение состояния.

blockname = 'magball/Magnetic Ball Plant';
set_param(blockname,'StatePerturbationForJacobian','1e-7');

Чтобы изменить уровень возмущения входного сигнала для этого блока на 10-3(1+|x|), где x является значением входного сигнала, сначала получите указатели на порт блока и получите указатель на вход значение порта.

ph = get_param(blockname,'PortHandles');
p_in = ph.Inport(1);

Затем установите уровень возмущения порта входа.

set_param(p_in,'PerturbationForJacobian','1e-3');

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

statePerturb = get_param(blockname,'StatePerturbationForJacobian');

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

inputPerturb = get_param(p_in,'PerturbationForJacobian');

Когда соответствующее состояние или уровень возмущения входного сигнала находится на своем значении по умолчанию, оба statePerturb и inputPerturb являются 'auto'.

Уровни возмущения по умолчанию

Размер возмущения по умолчанию для состояний двойной точности и входных сигналов, 10-5(1+|x|), где x - значение рабочей точки возмущенного состояния или входного сигнала. Для состояний с одной точностью и входных сигналов, размер возмущения по умолчанию является 0.005(1+|x|).

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

set_param(blockname,'StatePerturbationForJacobian','auto');

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

set_param(p_in,'PerturbationForJacobian','auto');

Уровни возмущения целочисленных блоков

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

См. также

Похожие темы

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