Этот пример показывает, как обработать в пакетном режиме - вычисляют установившиеся рабочие точки для модели с помощью, сгенерировал код MATLAB®. Можно или моделировать или линеаризовать модель в этих рабочих точках и изучить изменение в поведении модели.
Если вы плохо знакомы с записью скриптов, в интерактивном режиме конфигурируете свой поиск рабочих точек использование Steady State Manager или Linear Analysis Tool.
Прежде, чем сгенерировать код для пакетной обрезки, сначала вычислите рабочую точку, чтобы соответствовать экземпляру ваших спецификаций. Для получения дополнительной информации о вычислении рабочих точек в:
Steady State Manager, смотрите, Вычисляют Рабочие точки из Спецификаций Используя Steady State Manager.
Linear Analysis Tool, смотрите, Вычисляют Рабочие точки из Specifications Using Linear Analysis Tool.
После вычисления рабочей точки сгенерируйте скрипт MATLAB. Сделать так в:
В Steady State Manager, на вкладке Specification, нажимают Trim
и выбирают Script
.
В Linear Analysis, в Обрезке образцовое диалоговое окно, нажимают Generate MATLAB Script.
Для получения дополнительной информации о генерации скриптов смотрите, Генерируют код MATLAB для Настройки Рабочей точки.
Сгенерированный скрипт открывается в окне MATLAB Editor. Можно затем изменить скрипт, чтобы обрезать модель в нескольких рабочих точках.
Этот пример демонстрирует обрезку пакета с помощью модели magball
Simulink®.
Откройте модель.
open_system('magball')
Чтобы открыть Steady State Manager, в окне модели Simulink, выбирают Analysis> Control Design> Steady State Manager.
На вкладке Steady State нажмите Trim Specification.
В документе spec1, в столбце Known, выбирают состояние magball/Magnetic Ball Plant/height.
Сгенерируйте обрезку код MATLAB. На вкладке Specification нажмите Trim
и выберите Script
.
В окне MATLAB Editor измените скрипт, чтобы обрезать модель в нескольких рабочих точках.
Удалите ненужные комментарии из сгенерированного скрипта.
Задайте переменную высоты, height
, со значениями, в которых можно вычислить рабочие точки.
Добавьте цикл for
вокруг кода поиска рабочей точки, чтобы вычислить установившуюся рабочую точку для каждого значения height
. В цикле, прежде, чем вызвать findop
, обновляют ссылочную высоту шара, заданную блоком Desired Height.
Ваш скрипт должен выглядеть подобным следующему коду.
%% Specify the model name model = 'magball'; %% Create the operating point specification object. opspec = operspec(model); % State (5) - magball/Magnetic Ball Plant/height % - Default model initial conditions are used to initialize optimization. opspec.States(5).Known = true; %% Create the options opt = findopOptions('DisplayReport','iter'); %% Specify ball heights at which to compute operating points height = [0.05;0.1;0.15]; %% Loop over height values to find the corresponding operating points for i = 1:length(height) % Set the ball height in the specification opspec.States(5).x = height(i); % Update the model ball haight reference parameter set_param('magball/Desired Height','Value',num2str(height(i))) end %% Compute operating points using the defined specs [op,opreport] = findop(model,opspec,opt);
После выполнения этого скрипта op
содержит рабочие точки, соответствующие каждому из заданных значений height
.