Программное обеспечение Model Predictive Control Toolbox™ поддерживает те же форматы модели LTI, что и программное обеспечение Control System Toolbox™. Вы можете использовать то, что наиболее удобно для вашего приложения, и преобразовать из одного формата в другой. Для получения дополнительной информации см. «Основные модели».
Передаточная функция (TF) связывает конкретную пару вход/выход. Для примера, если u (t) является объектом входа а y (t) является выход, передаточная функция, связывающая их, может быть:
Этот TF состоит из numerator полинома, s + 2, многочлена знаменателя, s2+ s + 10, и задержка, которая 1,5 время модулей здесь. Определить G можно с помощью Control System Toolboxtf
функция:
Gtf1 = tf([1 2], [1 1 10],'OutputDelay',1.5)
Transfer function: s + 2 exp(-1.5*s) * ------------ s^2 + s + 10
Как и формат TF, формат ноль/полюс/усиление (ZPK) связывает пару вход/выход. Различие, что числитель ZPK и полиномов знаменателя факторизированы, как в
(нули и/или полюсы являются комплексными числами в целом).
Вы задаете модель ZPK, задавая нули (нули ) (ы), полюс (ы) и усиление как в
poles = [-0.3, -0.1+0.7*i, -0.1-0.7*i]; Gzpk1 = zpk(-0.45,poles,2.5);
Формат в пространстве состояний удобен, если ваша модель является набором дифференциальных и алгебраических уравнений LTI. Например, рассмотрим следующую линеаризированную модель непрерывного реактора с мешалкой (CSTR), включающую экзотермическую (теплогенерирующую) реакцию [1].
где CA - концентрация ключевого реагента, T - температура в реакторе, Tc - температура хладагента, CAi - концентрация реагента в сырье реактора и aij и bij являются постоянными. См. технологическую схему в CSTR Schematic. Простые числа (например, C ′ A) обозначают отклонение от номинального установившегося условия, при котором модель была линеаризирована.
Схема CSTR
Измерение концентраций реагентов часто является трудным, если не невозможным. Предположим, что T является измеренным выходом, CA является неизмеренным выходом, Tc является манипулированной переменной и CAi является неизмеренным нарушением порядка.
Модель подходит к общему формату пространства состояний
где
Следующий код показывает, как задать такую модель для некоторых определенных значений констант aij и bij:
A = [-0.0285 -0.0014 -0.0371 -0.1476]; B = [-0.0850 0.0238 0.0802 0.4462]; C = [0 1 1 0]; D = zeros(2,2); CSTR = ss(A,B,C,D);
Это задает модель пространства состояний в непрерывном времени. Если вы не задаете период выборки, применяется значение выборки по умолчанию, равное нулю. Можно также задать модели пространства состояний в дискретном времени. Можно задать задержки как в модели непрерывного времени, так и в модели дискретного времени.
Примечание
В примере CSTR матрица D равна нулю, и выход не реагирует мгновенно на изменение входа. Программное обеспечение Model Predictive Control Toolbox запрещает прямое (мгновенное) сквозное соединение от манипулируемой переменной до выхода. Например, модель CSTR может включать прямое сквозное соединение сигнала от неизмеренного нарушения порядка, CAi, к CA или T, но прямое сквозное соединение сигнала от Tc к любому выходу будет нарушать это ограничение. Если модель имела прямое сквозное соединение от Tc, можно добавить небольшую задержку на этом входе, чтобы обойти задачу.
ss
функция в последней линии вышеуказанного кода создает модель пространства состояний, CSTR
, который является объектом LTI. tf
и zpk
команды Передаточной функции описанные в Модели и Zero/Pole/Gain Моделей также создают объекты LTI. Такие объекты содержат параметры модели, а также дополнительные свойства.
Следующий код устанавливает некоторые из CSTR
необязательные свойства модели:
CSTR.InputName = {'T_c','C_A_i'}; CSTR.OutputName = {'T','C_A'}; CSTR.StateName = {'C_A','T'}; CSTR.InputGroup.MV = 1; CSTR.InputGroup.UD = 2; CSTR.OutputGroup.MO = 1; CSTR.OutputGroup.UO = 2; CSTR
Первые три линии задают метки для переменных входа, вывода и состояния. Следующие четыре определяют тип сигнала для каждого входа и выхода. Обозначения MV
, UD
, MO
, и UO
средняя манипулируемая переменная, неизмеренное нарушение порядка, измеренный выход и неизмеренный выход. (Определения см. в разделе «Типы сигналов».) Для примера код задает, что вход 2 модели CSTR
является неизмеренным нарушением порядка. Последняя линия приводит к отображению объекта LTI, генерируя следующие линии в MATLAB® Командное окно:
A = C_A T C_A -0.0285 -0.0014 T -0.0371 -0.1476 B = T_c C_Ai C_A -0.085 0.0238 T 0.0802 0.4462 C = C_A T T 0 1 C_A 1 0 D = T_c C_Ai T 0 0 C_A 0 0 Input groups: Name Channels MV 1 UD 2 Output groups: Name Channels MO 1 UO 2 Continuous-time model
Необязательный InputName
и OutputName
свойства влияют на отображения модели, как в приведенном выше примере. Программное обеспечение также использует InputName
и OutputName
свойства для маркировки графиков и таблиц. В этом контексте символ подчеркивания вызывает отображение следующего символа в виде индекса.
Общий случай. Как упоминалось в Signal Types, программное обеспечение Model Predictive Control Toolbox поддерживает три типа входа и два типа выхода. В проекте Model Predictive Control Toolbox обозначение входного и выходного типов определяет размерности контроллера и имеет другие важные последствия.
Например, предположим, что структура объекта была следующей:
Входные параметры объекта | Выходы объекта |
---|---|
Две манипулированные переменные (MVs) | Три измеренных выхода (MO) |
Одно измеренное нарушение порядка (MD) | Два неизмеренных выхода (UO) |
Два неизмеренных нарушения порядка (UD) |
Получившийся контроллер имеет четыре входа (три MO и MD) и два выхода (MV). Это включает компенсацию с feedforward для измеренного нарушения порядка и принимает, что вы хотели включить неизмеренные нарушения порядка и выходы в проект регулятора.
Если вы не хотите, чтобы конкретный сигнал рассматривался как один из вышеуказанных типов, можно сделать одно из следующих:
Удалите сигнал перед использованием модели в проектировании контроллера.
Для выхода обозначите его как unmeasured, затем установите его вес равным нулю.
Для входов определите его как неизмеренное нарушение порядка, а затем задайте пользовательскую оценку состояния, которая игнорирует входы.
Примечание
По умолчанию программное обеспечение принимает, что неопределенные входы объекта управления являются манипулируемыми переменными, и неопределенные выходы измеряются. Таким образом, если бы вы не задали типы сигналов в приведенном выше примере, контроллер имел бы четыре входа (при условии, что все выходы объекта были измерены) и пять выходы (при условии, что все входы объекта были управляемыми переменными).
Для CSTR модели
, допущения Model Predictive Control Toolbox по умолчанию неправильны. Вы должны задать его InputGroup
и OutputGroup
свойства, как показано в приведенном выше коде, или изменение настроек по умолчанию при загрузке модели в MPC Designer.
Использовать setmpcsignals
для создания определения типа. Для примера:
CSTR = setmpcsignals(CSTR,'UD',2,'UO',2);
устанавливает InputGroup
и OutputGroup
к тем же значениям, что и в предыдущем примере. The CSTR
отображение будет включать следующие линии:
Input groups: Name Channels Unmeasured 2 Manipulated 1 Output groups: Name Channels Unmeasured 2 Measured 1
Заметьте, что setmpcsignals
устанавливает незаданные входы в Manipulated
и неопределенные выходы для Measured
.
Программное обеспечение Control System Toolbox обеспечивает функции для анализа моделей LTI. Некоторые из наиболее часто используемых перечислены ниже. Введите код примера в подсказке MATLAB, чтобы увидеть, как они работают для CSTR
пример.
Пример | Предполагаемый результат |
---|---|
dcgain(CSTR) | Вычислите матрицу усиления для |
impulse(CSTR) | Графическое |
linearSystemAnalyzer(CSTR) | Откройте Linear System Analyzer с |
pole(CSTR) | Вычислите |
step(CSTR) | Графическое |
zero(CSTR) | Вычислите |
[1] Себорг, Д. Э., Т. Ф. Эдгар, и Д. А. Mellichamp, Process Dynamics and Control, 2nd Edition, Wiley, 2004, pp. 34-36 и 94-95.
setmpcsignals
| ss
| tf
| zpk