Программное обеспечение Model Predictive Control Toolbox™ поддерживает те же форматы модели LTI, как делает программное обеспечение Control System Toolbox™. Можно использовать, какой бы ни является самым удобным для приложения. Также легко преобразовать от одного формата до другого. Для получения дополнительной информации см. документацию Control System Toolbox.
Передаточная функция (TF) связывает конкретную пару ввода/вывода. Например, если u (t) является входом объекта, и y (t) является вывод, передаточная функция, связывающая их, может быть:
Этот TF состоит из полинома numerator, s +2, полином знаменателя, s2 +s+10, и задержка, которая является 1,5 единицами измерения времени здесь. Можно задать G с помощью Control System Toolbox функция tf
:
Gtf1 = tf([1 2], [1 1 10],'OutputDelay',1.5)
Сборки программного обеспечения Control System Toolbox и отображения это можно следующим образом:
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. Начала (например, C ′A) обозначают отклонение от номинального установившегося условия, при котором линеаризовалась модель.
Схематичный CSTR
Измерение концентраций реагента является часто трудным, если не невозможный. Давайте примем, что T является измеренный вывод, CA является неизмеренный вывод, Tc является переменной, которой управляют, и CAi является неизмеренным воздействием.
Модель соответствует общему формату пространства состояний
где
Следующий код показывает, как задать такую модель для некоторых определенных значений констант bij и aij:
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
, описанные в Моделях Передаточной функции и Нулевых/Полюсах/Усилениях Моделях также, создают объекты 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
маркировать графики и таблицы. В том контексте символ подчеркивания заставляет следующий символ быть отображенным как индекс.
Общий случай. Как упомянуто в Типах Сигнала, программное обеспечение Model Predictive Control Toolbox поддерживает три входных типа и два выходных типа. В проекте Model Predictive Control Toolbox обозначение типов ввода и вывода определяет размерности контроллера и имеет другие важные последствия.
Например, предположите, что ваша структура объекта была следующие:
Входные параметры объекта |
Объект Выходные параметры |
---|---|
Две переменные, которыми управляют (MVS) |
Три измеренных выходных параметров (MOS) |
Одно измеренное воздействие (MD) |
Два неизмеренных выходных параметров (UOs) |
Два неизмеренных воздействия (UDs) |
У получившегося контроллера есть четыре входных параметров (три MOS и MD) и два выходных параметров (MVS). Это включает feedforward компенсацию за измеренное воздействие и принимает, что вы хотели включать неизмеренные воздействия и выходные параметры как часть проекта регулятора.
Если бы вы не хотели, чтобы конкретный сигнал был обработан как один из вышеупомянутых типов, вы могли выполнить одно из следующих действий:
Устраните сигнал перед использованием модели в проектировании контроллера.
Для вывода определяйте его как неизмеренный, затем обнулите его вес.
Для входа определяйте его как неизмеренное воздействие, затем задайте пользовательское средство оценки состояния, которое игнорирует вход.
По умолчанию программное обеспечение принимает, что незаданные входные параметры объекта являются переменными, которыми управляют, и измеряются незаданные выходные параметры. Таким образом, если бы вы не указывали, что сигнал вводит вышеупомянутый пример, у контроллера было бы четыре входных параметров (принимающий весь объект, выходные параметры были измерены) и пять выходных параметров (принимающий, что все входные параметры объекта были переменными, которыми управляют).
Для модели CSTR
предположения Model Predictive Control Toolbox по умолчанию являются неправильными. Необходимо установить его свойства InputGroup
и OutputGroup
, как проиллюстрировано в вышеупомянутом коде, или изменить настройки по умолчанию, когда вы загружаете модель в MPC Designer.
Используйте setmpcsignals
, чтобы сделать определение типа. Например:
CSTR = setmpcsignals(CSTR,'UD',2,'UO',2);
наборы InputGroup
и OutputGroup
к тем же значениям как в предыдущем примере. Отображение 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) |
Ответ модульного импульса модели Graph |
linearSystemAnalyzer(CSTR) |
Откройте Linear System Analyzer с загруженной моделью |
pole(CSTR) |
Вычислите полюса модели |
step(CSTR) |
Модульный переходной процесс модели Graph |
zero(CSTR) |
Вычислите нули передачи модели |
[1] Seborg, D. E. Т. Ф. Эдгар, и Д. А. Мелличамп, Динамика Процесса и Управление, 2-й Выпуск, Вайли, 2004, стр 34–36 и 94–95.
setmpcsignals
| ss
| tf
| zpk