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

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

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

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

Для этой модели состояние и значения входного сигнала являются значениями с двойной точностью. Размер возмущения по умолчанию для состояния и входных сигналов в этой модели 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.

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

Похожие темы