Некоторые приложения управления требуют, чтобы контроллер выбрал действия управления, таким образом, что состояния объекта не нарушают определенные критические ограничения. Во многих случаях ограничения находятся на объекте, утверждает, что контроллер не управляет непосредственно. Вместо этого вы задаете constraint function, который задает ограничение в терминах сигнала действия управления. Эта ограничительная функция может быть известным отношением или тем, которое необходимо узнать из экспериментальных данных.
Блок Constraint Enforcement, который требует программного обеспечения Optimization Toolbox™, вычисляет модифицированные действия управления, которые являются самыми близкими к заданным действиям управления, удовлетворяющим границам действия и ограничениям. Блок использует решатель квадратичного программирования (QP), чтобы найти действие управления u, который минимизирует функцию в режиме реального времени. Здесь, u 0 является немодифицированным действием управления от диспетчера.
Решатель применяет следующие ограничения к задаче оптимизации.
Здесь:
fx и gx являются коэффициентами ограничительной функции, которые зависят от объекта, утверждает x.
c является направляющимся в ограничительную функцию.
Min u является нижней границей для действия управления.
u макс. является верхней границей для действия управления.
Поскольку блок Constraint Enforcement изменяет исходное действие управления, итоговая система с обратной связью не может достигнуть целей проекта исходного контроллера, таких как запасы устойчивости.
Необходимо проверить, что объединенный контроллер и блок Constraint Enforcement достигают исходных целей управления. Если система не достигает ваших исходных целей, рассмотрите обновление вашего исходного проектирования контроллера. Например, можно добавить дополнительный запас по амплитуде и фазе, чтобы компенсировать любое потенциальное ухудшение эффективности.
В зависимости от вашего приложения коэффициенты fx и gx ограничительной функции могут быть линейными или нелинейными функциями состояний объекта и могут быть или известны или неизвестны.
Для примера, который использует известные нелинейные ограничительные коэффициенты функции, смотрите, Осуществляют Ограничения для ПИД-регуляторов. Этот пример выводит ограничительную функцию из динамики объекта.
Когда вы не можете вывести ограничительную функцию из объекта непосредственно, необходимо изучить коэффициенты с помощью данных о вводе/выводе из экспериментов или симуляций. Чтобы изучить такие ограничения, можно создать функциональную аппроксимацию и настроить аппроксимацию, чтобы воспроизвести отображение входа к выходу от данных моделирования или экспериментальных данных.
Чтобы изучить линейные коэффициентные функции, можно найти решение методом наименьших квадратов из данных. Для примеров, которые используют этот подход, смотрите, Обучают Агента RL Адаптивному Круиз-контролю с Ограничительным Осуществлением и Обучаются, Агент RL для Хранения Маршрута Помогают с Ограничительным Осуществлением.
Для нелинейных коэффициентных функций необходимо настроить нелинейную функциональную аппроксимацию. Примеры таких аппроксимаций включают:
Глубокие нейронные сети (требует программного обеспечения Deep Learning Toolbox™),
Нелинейные идентифицированные системные модели (требует программного обеспечения System Identification Toolbox™),
Нечеткие системы вывода (требует программного обеспечения Fuzzy Logic Toolbox™),
Для примеров, которые изучают нелинейную коэффициентную функцию по образованию глубокая нейронная сеть, смотрите, Изучают и Применяют Ограничения для ПИД-регуляторов и Обучают Агента Обучения с подкреплением с Ограничительным Осуществлением.