exponenta event banner

Пакетное вычисление стационарных рабочих точек с использованием сгенерированного кода MATLAB

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

Если вы новичок в написании сценариев, интерактивно настройте поиск рабочих точек с помощью Диспетчера устойчивого состояния (Steady State Manager) или Линеаризатора модели (Model Linearizer).

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

После вычисления рабочей точки создайте сценарий MATLAB. Для этого выполните следующие действия:

  • В Диспетчере устойчивого состояния (Steady State Manager) на вкладке Спецификация (Specification) щелкните Обрезать (Trim) и выберите Script.

  • В Линейном анализе (Linear Analysis) в диалоговом окне Отсечь модель (Trim the model) щелкните Создать сценарий MATLAB (Generate MATLAB Script).

Дополнительные сведения о создании сценариев см. в разделе Создание кода MATLAB для конфигурации операционной точки.

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

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

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

    open_system('magball')
  2. Чтобы открыть Диспетчер устойчивого состояния (Steady State Manager), в окне модели Simulink в галерее Apps щелкните Диспетчер устойчивого состояния (Steady State Manager).

  3. На вкладке Устойчивое состояние (Steady State) щелкните Отсечь спецификацию (Trim Specification).

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

  5. Создайте обрезанный код MATLAB. На вкладке Спецификация (Specification) щелкните Обрезать (Trim) и выберите Script.

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

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

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

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

    Сценарий должен выглядеть аналогично следующему коду.

    %% 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 значения.

См. также

Приложения

Функции

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