Пакет вычисляет установившиеся рабочие точки, снова использующие сгенерированный код MATLAB

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

Если вы плохо знакомы с записью скриптов, в интерактивном режиме конфигурируете свой поиск рабочих точек использование Steady State Manager или Model Linearizer.

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

После вычисления рабочей точки сгенерируйте скрипт MATLAB. Сделать так в:

  • В Steady State Manager, на вкладке Specification, нажимают Trim и выбирают Script.

  • В Linear Analysis, в Обрезке диалоговое окно модели, нажимают Generate MATLAB Script.

Для получения дополнительной информации о генерации скриптов смотрите, Генерируют код MATLAB для Настройки Рабочей точки.

Сгенерированный скрипт открывается в окне MATLAB Editor. Можно затем изменить скрипт, чтобы обрезать модель в нескольких рабочих точках.

Этот пример демонстрирует обрезку пакета с помощью magball Simulink® модель.

  1. Откройте модель.

    open_system('magball')
  2. Чтобы открыть Steady State Manager, в окне модели Simulink, в галерее Apps, нажимают Steady State Manager.

  3. На вкладке Steady State нажмите Trim Specification.

  4. В документе spec1, в столбце Known, выбирают состояние magball/Magnetic Ball Plant/height.

  5. Сгенерируйте обрезку код MATLAB. На вкладке Specification нажмите Trim и выберите Script.

  6. В окне MATLAB Editor измените скрипт, чтобы обрезать модель в нескольких рабочих точках.

    1. Удалите ненужные комментарии из сгенерированного скрипта.

    2. Задайте переменную высоты, height, со значениями, в которых можно вычислить рабочие точки.

    3. Добавьте for цикл вокруг рабочей точки ищет код, чтобы вычислить установившуюся рабочую точку для каждого height значение. В цикле, прежде, чем вызвать findop, обновите ссылочную высоту мяча, заданную блоком Desired Height.

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

    %% Specify the model name
    model = 'magball';
    
    %% Create the operating point specification object.
    opspec = operspec(model);
    
    %% Set the constraints on the states in the 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)))
        
        % Trim the model
        [op(i),opreport(i)] = findop(model,opspec,opt);
    end
    

    После выполнения этого скрипта, op содержит рабочие точки, соответствующие каждому заданному height значения.

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

Приложения

Функции

Похожие темы