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

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

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

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

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

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

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

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

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

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

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

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

Если переделка основанной на событии динамики не приводит к хорошим результатам линеаризации, пробует оценку частотной характеристики. См., что Оценочная Частотная характеристика Использует Model Linearizer.

Примечание

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

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

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

  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 подсистема путем добавления блока Convert to mass charge в подсистеме.

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

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 об/мин.

Похожие темы