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

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

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

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

После вычисления рабочей точки сгенерируйте скрипт 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, выбирают Analysis> Control Design> 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);
    
    % 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.

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

Приложения

Функции

Похожие темы