exponenta event banner

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

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

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

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

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

См. также

Связанные темы