Линеаризуйте основанные на событии подсистемы (внешне запланированные подсистемы)

Линеаризация основанных на событии подсистем

Основанные на событии подсистемы (инициированные подсистемы) и другие основанные на событии модели требуют специальной обработки во время линеаризации.

Выполнение инициированной подсистемы зависит от предыдущих событий сигнала, таких как нулевые пересечения. Однако, потому что линеаризация происходит в определенный момент вовремя, триггерный случай никогда не происходит.

Примером основанной на событии подсистемы является механизм внутреннего сгорания (IC). Когда поршень механизма приближается к верхней части рабочего хода, искра вызывает сгорание. Синхронизация искры для сгорания зависит от скорости и положения коленчатого вала механизма.

В модели scdspeed инициированные подсистемы генерируют события, когда поршни достигают обоих верх и низ рабочего хода. Линеаризация в присутствии таких инициированных подсистем не значима.

Подходы для линеаризации основанных на событии подсистем

Можно получить значимую линеаризацию инициированных подсистем, все еще сохраняя поведение симуляции, путем переделки основанной на событии динамики как одного из следующего:

  • Смешанная средняя модель, которая аппроксимирует основанное на событии поведение в зависимости от времени.

  • Подсистема вызова периодической функции, с Нормальным режимом симуляции.

    В случае периодических подсистем вызова функции подсистема линеаризует к выборке, при которой периодически выполняется подсистема.

    Во многих приложениях управления контроллер реализован как дискретный контроллер, но выполнение контроллера управляется внешним планировщиком. Можно использовать такие линеаризовавшие модели объекта управления, когда подсистема контроллера отмечена как подсистема вызова Периодической функции.

Если переделка основанной на событии динамики не приводит к хорошим результатам линеаризации, пробует оценку частотной характеристики. See Estimate Frequency Response Using Linear Analysis Tool.

Примечание

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

Подсистемы вызова периодической функции для моделирования основанных на событии подсистем

Этот пример показывает, как использовать подсистемы вызова периодической функции, чтобы аппроксимировать основанную на событии динамику для линеаризации.

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

    sys = 'scdPeriodicFcnCall';
    open_system(sys)
  2. Линеаризуйте модель в образцовой рабочей точке.

    io = getlinio(sys);
    linsys = linearize(sys,io)

    Линеаризация является нулем, потому что подсистема не является вызовом периодической функции.

    D = 
                     Desired  Wat
       Water-Tank S             0
     Static gain.

    Теперь, задайте блок Externally Scheduled Controller как Подсистему Вызова Периодической функции.

  3. Дважды кликните блок Externally Scheduled Controller (Function-Call Subsystem).

    Дважды кликните функциональный блок, чтобы открыть диалоговое окно Block Parameters.

  4. Установите Sample time type быть periodic.

    Оставьте значение Sample time как 0,01, который представляет шаг расчета вызова функции.

  5. Линеаризуйте модель.

    linsys2 = linearize(sys,io)
    A = 
                            H  Integrator
       H               0.9956    0.002499
       Integrator  -0.0007774           1
     
    B = 
                   Desired  Wat
       H               0.003886
       Integrator     0.0007774
     
    C = 
                              H  Integrator
       Water-Tank S           1           0
     
    D = 
                     Desired  Wat
       Water-Tank S             0
     
    Sampling time: 0.01
    Discrete-time model.
  6. Постройте переходной процесс.

    step(linsys2)

  7. Закройте модель.

    bdclose(sys);

Приближение основанных на событии подсистем Используя Curve Fitting (средняя глыбой модель)

Этот пример показывает, как использовать аппроксимирование кривыми, чтобы аппроксимировать основанную на событии динамику механизма.

Модель scdspeed линеаризует, чтобы обнулить, потому что scdspeed/Throttle & Manifold/Intake Manifold является инициированной событием подсистемой.

Можно аппроксимировать основанную на событии динамику подсистемы scdspeed/Throttle & Manifold/Intake Manifold путем добавления Преобразования в массовый блок заряда в подсистеме.

Преобразование в массовый блок заряда аппроксимирует отношение между Воздушным Зарядом, Разнообразным Давлением и Скоростью вращения двигателя как квадратичный полином.

Air Charge = p1×Engine Speed + p2×Manifold Pressure + p3×(Manifold Pressure)2+ p4×Manifold Pressure×Engine Speed + p5

Если результаты измерений для внутренних сигналов не доступны, используйте данные моделирования из исходной модели, чтобы вычислить неизвестные параметры p1, p2, p3, p4, и p5 с помощью метода выравнивания методом наименьших квадратов.

Когда у вас есть результаты измерений для внутренних сигналов, можно использовать программное обеспечение Simulink Design Optimization™, чтобы вычислить неизвестные параметры. Смотрите Оценку Параметра модели Скорости вращения двигателя (Simulink Design Optimization), чтобы узнать больше о вычислении параметров модели, линеаризации этой аппроксимированной модели и разработке обратной связи, которой управляют для линейной модели.

Следующая фигура сравнивает симуляции исходной основанной на событии модели и аппроксимированной модели. Каждый из импульсов соответствует ступенчатому изменению в скорости вращения двигателя. Размер ступенчатого изменения между 1 500 и 5500. Таким образом можно использовать аппроксимированную модель, чтобы точно моделировать и линеаризовать механизм между 1 500 об/мин и 5 500 об/мин.

Похожие темы