exponenta event banner

Определение жесткости системы

Определение числовой жесткости модели помогает выбрать между использованием неявного или явного решателя с фиксированным шагом для моделирования в реальном времени. Чтобы определить численную жесткость, сначала используйте рабочий процесс подготовки модели в реальном времени для оптимизации скорости и точности модели. Затем смоделируйте модель с помощью явных и неявных решателей с фиксированным шагом. Сравните результаты моделирования, чтобы увидеть поведение решателей. Если модель численно жесткая, явный решатель обычно проявляет небольшие колебания вокруг нужного решения.

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

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

Получение справочных результатов

  1. Для открытия модели в командной строке MATLAB ® введите:

    ssc_pneumatic_rts_reference

  2. Сохранить модель как stiffness_model в папку с возможностью записи по пути MATLAB.

  3. Моделирование модели.

  4. Назначьте результаты моделирования новым переменным.

    yRef = yout;
    tRef = tout;
  5. Постройте график результатов моделирования с переменным шагом.

    h1 = figure;
    plot(tRef,yRef)
    h1Leg = legend({'Reference'});
    title('Speed')
    xlabel('Time (s)')
    ylabel('Speed (rpm)')

Моделирование с помощью неявного решателя с фиксированным шагом

  1. Настройте модель для моделирования с фиксированным шагом с помощью неявного решателя ode14x. На панели Решатель параметров конфигурации задайте:

    • Введите для Fixed-step

    • Решатель для ode14x (extrapolation)

    • В разделе Дополнительные опции (Additional options) Фиксированный размер шага (время основной выборки) до 1e-3

    • Количество итераций Ньютона для 1.

    Нажмите кнопку «Применить».

  2. Моделирование модели.

  3. Назначьте результаты моделирования новым переменным.

    yOde14x = yout;
    tOde14x = tout;
  4. Используйте stairs функция для построения графика результатов неявного моделирования с фиксированным шагом, чтобы можно было увидеть поведение решателя при выполнении каждого шага моделирования.

    h1
    hold on
    stairs(tOde14x,yOde14x,'g--')
    h1Leg = legend({'Reference','Implicit Solver'});

    Результаты выглядят одинаково.

Моделирование с помощью явного решателя с фиксированным шагом

  1. Настройте модель для моделирования с фиксированным шагом с помощью явного метода решателя с фиксированным шагом mode5. На панели Решатель параметров конфигурации задайте:

    • Введите для Fixed-step

    • Решатель для ode5 (Dormand-Prince)

    Нажмите кнопку ОК.

  2. Фильтрация входного сигнала для получения требуемой входной производной для явного решателя. В диалоговом окне «PS-S Simulink Converter block» на вкладке «Input Handling» установите для параметра «Filtering and derivatives» значение Filter Input. Нажмите кнопку ОК.

  3. Моделирование модели.

  4. Назначьте результаты моделирования новым переменным.

    yOde5 = yout;
    tOde5 = tout;
  5. Используйте stairs функция для построения графика результатов явного моделирования с фиксированным шагом.

    h1
    hold on
    stairs(tOde5,yOde5,'r-')
    h1Leg = legend({'Reference','Implicit Solver','Explicit Solver'});

    Результаты различаются в точках перегиба.

Анализ результатов

  1. Чтобы увидеть результаты более точно, увеличьте масштаб до точки перегиба сразу после времени t = ~ 1 сек.

    Неявный решатель следует по пути, аналогичному пути, который используется решателем с переменным шагом при создании результатов привязки. Колебания, которые проявляет явный решатель, указывают на то, что модель является численно жесткой. Колебания также указывают на то, что явный решатель является более затратным с точки зрения вычислений, чем неявный решатель для моделирования жесткой модели. Используйте глобальный или локальный неявный решатель с фиксированным шагом для моделирования в реальном времени с численно жесткими моделями, чтобы избежать ненужных вычислительных затрат.

См. также

Связанные примеры

Подробнее