В этой модели показано, как можно проектировать коммутационные контроллеры путем объединения функций Stateflow ® и Simulink ®.

Диаграмма Stateflow SwitchingController реализует простой контроллер коммутации, который переключается между тремя состояниями: STEADY, P и PID. При входе STEADY состояние, мы производим нулевой управляющий выход. При входе P или PID, мы делегируем подсистемам вызова функций Simulink для вычисления требуемых усилий управления.
Параметр «Создать данные для мониторинга» для состояния PID проверяется. Поэтому в дополнение к управляющему выходу u, диаграмма Stateflow также создает выходной файл регистрации с тем же именем, что и состояние PID.
Условие переключения с P кому PID основано на том, что ошибка является достаточно низкой [e < PID_TRESH]. PID_TRESH - переменная, определенная в рабочей области модели со значением 0,3.

Подсистема Simulink SwitchingController/P.p_control реализует очень простое пропорциональное управление с коэффициентом усиления 3. Если бы мы продолжали оставаться в штате P, коэффициент усиления в установившемся состоянии системы с замкнутым контуром будет 3/4 = 0,75. Поэтому мы получили бы ошибку 0,25.

Подсистема Simulink SwitchingController/PID.pid_control реализует простую стратегию управления PID. Пропорциональный коэффициент усиления такой же, как в P тем самым обеспечивается плавный переход в контрольном усилии.

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

В отсутствие контроля PID у нас была бы ошибка устойчивого состояния 0,25. Если мы изменим PID_TRESH до 0,1, мы никогда не доберемся до PID, потому что ошибка никогда не будет ниже 0,25, пока мы находимся в состоянии P.
