Текст
                    I пДкеты
прикл/дцных
прогр/ VMM
В. С. Медведев,
В. Г. Потёмкин
Control
System
Toolbox
MATLAB 5 дЛя студентов
(^ИМОГИ1И0И

УДК 681.142.2 ББК 32.97 М42 Пакеты прикладных программ Выпускается с 1999 года Медведев В. С., Потемкин В. Г. М42 Control System Toolbox. MATLAB 5 для студентов/ Под общ. ред. к. т. н. В. Г. Потемкина. - М.: ДИАЛОГ-МИФИ, 1999. - 287с. - (Пакеты прикладных программ). ISBN 5-86404-136-х Этим изданием открывается серия книг "Пакеты прикладных программ". В се- рию войдут описания пакетов программ по разделам математики, теории управле- ния, обработки сигналов и изображений. Первая книга посвящена описанию пакета программ Control System Toolbox по тео- рии управления, входящего в состав студенческой версии The Student Edition of MATLAB. Этот пакет является исторически первым пакетом прикладных программ, раз- работанным фирмой The MathWorks, Inc. Описываемая версия является результатом многолетней работы фирмы. В ней реализован объектно-ориентированный подход, кото- рый позволил рассмотреть все типы линейных моделей динамических систем с постоян- ными параметрами. Книга предназначена для студентов университетов и вузов, а также для всех, кто заинтересован в использовании мощного вычислительного инструмента при выпол- нении научных и инженерных работ. Учебно-справочное издание Медведев Владимир Степанович, Потемкин Валерий Георгиевич ControlSystem Toolbox. MATLAB 5 для студентов. Под общ. ред. к. т. н. В. Г. Потемкина Редактор О. А. Голубев Корректор В. С. Кустов Макет Н. В. Дмитриевой Лицензия ЛР N 071568 от 25.12.97. Подписано в печать 20.10.99. Формат 60x84/16. Бум. офс. Печать офс. Гарнитура Таймс. Усл. печ. л. 16,74. Уч.-изд. л. 9,2 Тираж 3 000 экз. Заказу ЧЭД ЗАО “ДИАЛОГ-МИФИ” 115409, Москва, ул. Москворечье, 31, корп. 2 Подольская типография 142100, г. Подольск, Московская обл., ул. Кирова, 25 ISBN 5-86404-136-х ISBN 5-86404-135-1 © Медведев В. С., Потемкин В. Г., 1999 © Оригинал-макет, оформление обложки. ЗАО “ДИАЛОГ-МИФИ”, 1999
50-летию кафедры Автоматики МИФИ посвящается ПРЕДИСЛОВИЕ Для сотен тысяч специалистов промышленности, правительственных учреждений и учебных заведений, занятых инженерными и научными ис- следованиями, система MATLAB обеспечила превосходную вычислитель- ную среду. Теперь и студенты могут позволить себе использовать в процес- се обучения этот мощный вычислительный инструмент для выполнения расчетных работ, анализа данных и визуализации, получая в распоряжение средство, которое будет играть неоценимую роль в течение всей их творч е- ской деятельности. Как только компьютеры стали незаменимым инструментом для инжене- ров и ученых, учебные институты осознали преимущества их применения, а главное - важность продвижения программного обеспечения. Однако высокая стоимость коммерческих программных продуктов при их использовании в учебном процессе препятствует превращению этих достоинств в реальные ре- зультаты. Как ответ на эту ситуацию, фирма The MathWorks, Inc. предложила специальную версию системы MATLAB для студентов, чтобы они могли пол у- чить представление об этом мощном вычислительном средстве уже на ранних этапах своего обучения. Эта версия включает алгоритмы математических вычислений в форме, которая позволяет использовать их для широкого диапазона приложений в таких курсах, как алгоритмы и численные методы, линейная алгебра, при- кладная математика, теория управления, цифровая обработка сигналов и изображений, курсах по специальности. Система MATLAB и эта книга сами по себе или совместно с другими пособиями могут быть эффективно ис- пользованы для того, чтобы раскрыть важность объединения фундамен- тального знания с современными информационными технологиями, с целью ЛМОМ1011
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX научить студента эффективно применять на практике полученные теорети- ческие знания. Здесь уместно вспомнить блестящее высказывание Гаррета Бирхгоффа, сделанное им в книге "Математика и психология" Прикладные математики, способные к глубокому общению с дру- гими учеными и инженерами и знакомые с мощью и ограничениями цифровых машин... способны стать вождями завтрашнего мате- матического мира, но их будет крайне трудно найти и развить!.. Специальная версия системы The Student Edition of MATLAB 5 включает ядро системы MATLAB 5 с некоторыми ограничениями на допустимые размеры массивов, а также пакеты прикладных программ по символьной математике Symbolic Mathematics Toolbox, обработке сигналов Signal Processing Toolbox, системам управления Control Systems Toolbox. Возможности студенческой версии в значительной мере совпадают с возможностями профессиональной версии MATLAB 5. Это издание открывает новую серию книг "Пакеты прикладных про- грамм". Оно является дополнением к студенческой версии The Student Edition of MATLAB, ориентированной на студентов вузов и специальных учебных заведений. Настоящая книга предназначена студентам, обучающимся проектирова- нию технических систем автоматического управления для поддержки авто- матизированных расчетов при выполнении домашних заданий, курсовых и дипломных проектов. В. Г. Потемкин Сентябрь 1999 года ВВЕДЕНИЕ В теории проектирования систем автоматического управления важное место уделяется анализу и синтезу линейных систем с постоянными пара- метрами. Это объясняется следующими обстоятельствами: • при описании динамики системы в отклонениях от положения равнове- сия или номинальной траектории движения получаем линейную (линеа- ризованную) систему; • теория линейных систем с постоянными параметрами представляет наиболее развитой и законченный раздел теории автоматического управления; • линейные системы после фиксации ("замораживания") параметров опи- сываются линейными дифференциальными или разностными уравне- ниями с постоянными параметрами; • при предварительных исследованиях систем автоматического управле- ния на этапах эскизного проектирования при неполной информации об объекте управления обычно используют упрощенную линейную модель объекта с постоянными параметрами, которую уточняют на дальнейших этапах проектирования. Истоки создания системы MATLAB связаны с решением задач линейной алгебры и повышением эффективности использования математических па- кетов L1NPACK и EISPACK, предназначенных для работы с матрицами. Ес- ли вспомнить, что источником математических моделей в виде линейных систем с постоянными параметрами являются линейные дифференциальные или разностные уравнения с постоянными коэффициентами, то становится понятным, что теоретической основой исследования этих уравнений явля- ется линейная алгебра. Поэтому ядро системы MATLAB составляет органи- ческую основу тех 98 операторов, которые входят в состав пакета приклад- ных программ (далее - ППП) Control System Toolbox. При реализации этого пакета использованы принципы объектно- ориентированного программирования. Введен новый класс объектов: ли- нейные системы с постоянными параметрами (linear time invariant objects, или lti-объекты). Этот класс включает линейные непрерывные или дискрет- ные, одномерные с одним входом и одним выходом (S1 SO-системы) и мно- гомерные со многими входами и (или) многими выходами (MIMO- системы). Каждому объекту присваивается определенный идентификатор. /1ИДЛОГЛ1П0И
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Модель lti-системы в теории автоматического управления может быть задана: • четверкой матриц {А, В, С, D}, которая описывет дифференциальное (или разностное) векторное уравнение системы в пространстве состоя- ний в явной форме Коши; • двумя векторами, задающими коэффициенты многочленов числителя и знаменателя передаточной функции системы; • двумя векторами и одним числом, задающими нули, полюсы и обобщен- ный коэффициент передачи передаточной функции системы. В соответствии с этим lti-система в ППП The Control System Toolbox может быть представлена тремя подклассами: • четверкой матриц - подкласс ss в пространстве состояний; • двумя векторами, составленными из коэффициентов числителя и знаме- нателя, - для одномерных систем, или двумя массивами ячеек, содержа- щих векторы коэффициентов, - для многомерных систем, что соответст- вует подклассу tf (передаточная функция в виде отношения многочленов либо матрица таких передаточных функций); • двумя векторами, составленными из нулей и полюсов передаточной функции, и скаляром, равным обобщенному коэффициенту передачи, - для одномерных систем, или двумя массивами ячеек, содержащих век- торы, составленные из нулей и полюсов, и массивом чисел - для много- мерных систем, что соответствует подклассу zpk (пер сдаточная функция в виде нулей, полюсов и обобщенного коэффициента передачи либо матрица таких передаточных функций). Модель системы, заданная в одном из этих подклассов, может быть пре- образована в любой другой подкласс. Дополнительные параметры позволяют указать, является ли система не- прерывной или дискретной, имеет ли запаздывания на входах системы; за- дать наименования входов, выходов или переменных состояния, а также другую вспомогательную информацию о системе. В ППП Control System Toolbox введен ряд функций, позволяющих опре- делять динамические параметры системы: нули и полюсы, собственные час- тоты и коэффициенты демпфирования и т. д. Имеются функции, позволяю- щие рассчитывать и строить переходные функции и частотные характери- стики систем. Наряду с задачами анализа ППП позволяет решать задачи синтеза регу- ляторов для линейных систем автоматического управления с постоянными параметрами. В пакет введен ряд функций для синтеза регулятора на основе [6]
Введение желаемого расположения полюсов или обеспечения минимального значения квадратичного критерия качества (ЛК-регулятор), синтеза наблюдателя и фильтра Каймана для оценки переменных состояния системы по известным значениям векторов входа и выхода. Поддержан также синтез динамических регуляторов на основе синтеза ЛК-регулятора и фильтра Калмана (ЛКГ- регулятор). При подготовке описании пакета предполагалось, что читатель знаком с теорией линейных систем автоматического управления с постоянными па- раметрами и работой с ядром системы MATLAB 5 для студентов в объеме соответствующих разделов следующих книг: 1. Попов Е. П. Теория линейных систем автоматического регулирования и управления. М.: Наука, 1978. 256 с. 2. Основы теории автоматического управления: Учеб, для вузов/ Под ред. Н. Б. Судзиловского. М.: Машиностроение, 1985. 512 с. 3. Астапов Ю. М., Медведев В. С. Статистическая теория систем автома- тического регулированияи и управления. М.: Наука,1982. 304 с. 4. Изерман Р. Цифровые системы управления: Пер. с англ. М.: Мир, 1984. 541 с. 5. Потемкин В. Г. Система MATLAB 5 для студентов. М.: ДИАЛОГ- МИФИ, 1999. 448 с.
1. МОДЕЛИ ЛИНЕЙНЫХ СИСТЕМ С ПОСТОЯННЫМИ ПАРАМЕТРАМИ ППП Control System Toolbox для описания непрерывных и дискретных динамических моделей систем управления с постоянными параметрами использует либо tf-форму передаточной функции, либо zpk-форму нулей, полюсов и обобщенного коэффициента передачи, либо ss-форму простран- ства состояний. Передаточная функция описывается в виде отношения мно- гочленов, которые задаются в виде векторов-строк, составленных из их ко- эффициентов. В zpk-форме корни многочленов числителя и знаменателя пе- редаточной функции и обобщенного коэффициента передачи также задаются в виде одномерных массивов. Наиболее естественным для систе- мы MATLAB является представление модели в пространстве состояний в виде дифференциального или разностного уравнения. Модели могут быть одномерными (с одним входом и одним выходом - SISO) или многомерны- ми (со многими входами и многими выходами - MIMO). Таким образом, математическую модель стационарной непрерывной или дискретной системы можно задать следующими способами: • в tf-форме передаточной функции N}sm+N2sm-l+...+Nms + Nm+l H(s) =-----------------------------, т<п, Dis" + D2sn 1 +... + Dns+Dn+y при описании дискретных систем комплексная переменная s заменяется на z; • в zpk-форме нулей, полюсов и коэффициента усиления н^=к <д-лХ-5.-гг)-<*-гд>., ,„5„. (s-PiXs-P2).. ,(s-pn) при описании дискретных систем комплексная переменная s заменяется на z; • в ss-формс пространства состояний в виде системы дифференциальных уравнений Jdx/dt =Ax + Bu, [ y = Cx+Du при описании дискретных систем в виде системы разностных уравнений. ЛИОШЗИ
1. Модели линейных систем с постоянными параметрами 1.1. Линейные стационарные объекты (lti-объекты) В ППП Control System Toolbox введен новый класс объектов - lti- объекты - линейные системы с постоянными параметрами. В зависимости от выбора модели линейная система может быть задана либо парой много- членов числитель/знаменатель передаточной функции, либо тройкой {нули, полюсы, обобщенный коэффициент передачи}, либо четверкой {А, В, С, D} для моделей в пространстве состояний. Для описания одномерных систем используются одномерные и двумерные массивы; в случае многомерных систем применяется новый класс объектов системы MATLAB - массивы ячеек. ППП Control System Toolbox обеспечивает создание структур данных для каждой из моделей, называемых соответственно tf-, zpk- или ss- под- классами класса lti-объектов. Эти три подкласса могут быть описаны одним типом данных - массивом ячеек, что позволяет манипулировать с линейны- ми системами как единым объектом, а не наборами данных в виде векторов или матриц. Например, команда Р = tf([l 2], [1 1 10]) создает объект Р подкласса tf с пе- редаточной функцией P(5) = (.v + 2)/(.v2 +5 + 10), который содержит коэффициенты числителя и знаменателя передаточной функции. Теперь можно манипулировать этой передаточной функцией как стандартным объектом lti-класса, например строить логарифмические час- тотные характеристики (диаграммы Боде) с помощью команды bode(P). Введение lti-объектов основано на реализованном в системе MATLAB 5 объектно-ориентированном подходе к программированию. Объекты класса задаются в виде структуры, поля которой содержат информацию о модели данных, периоде дискретности, именах входных и выходных переменных. Операции, выполняемые над объектами данного класса, называются мето- дами. Они могут включать как простые операции типа сложения или умно- жения, так и более сложные, например: сложение передаточной функции и числа Q(s') = 2+P(s) = (2s2 +35 + 22)/(52 + 5 + 10). Такое переопределение базисных операций для нового класса объектов (в данном случае lti-класса) в объектно-ориентированном программирова- нии называется переопределением методов. Рассмотрим иерархию объектов lti-класса. При выполнении операций суммирования или замыкания системы обратне й связью участвует несколь-
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX ко lti-объектов. Если эти объекты принадлежат различным подклассам, то возникает вопрос, какому подклассу будет принадлежать результирующий объект. Эта проблема разрешается введением иерархии объектов и соответ- ствующих правил приоритета. Объекты подклассов zpk и ss располагаются в соответствии с иерархией предпочтения таким образом, что объекты zpk- подкласса имеют приоритет перед объектами tf-подкласса, а объекты ss- подкласса имеют приоритет перед объектами tf и zpk-подклассов. Другими словами, операции, в которых в качестве операндов используются Iti- объекты двух или более подклассов, будут иметь результатом: • объект подкласса ss, если по крайней мере один операнд принадлежит подклассу ss; • объект подкласса zpk, если отсугствуют операнды подкласса ss и по крайней мере один из операндов принадлежит подклассу zpk; • объект подкласса tf, если все операнды относятся к подклассу tf. В ППП Control System Toolbox операции над моделями, представленны- ми различными подклассами, выполняются следующим образом: результи- рующий подкласс модели определяется вышеописанными правилами при- оритета и все операнды более низкого приоритета перед выполнением опе- рации преобразуются в подкласс операнда более высокого приоритета. Извлечение информации об lti-объектах Описанные выше функции tf, zpk и ss формируют информацию об ис- пользуемой модели и периоде дискретности в единый lti-объект. Как ре- шить обратную задачу: извлечь эти данные из описания существующего Iti- объекта? Следующие команды обеспечивают удобный способ извлечения этих данных: [num, den, Ts) = tfdata(sys) % Ts - период дискретности [z, p, k, Ts] = zpkdata(sys) [a,b, c, d, Ts] = ssdata(sys) [a, b, c, d, e, Ts] = dssdata(sys) Выходные аргументы num, den оператора tfdata и z, p оператора zpkdata всегда являются массивами ячеек. Они имеют число строк, равное числу выходов, и число столбцов, равное числу входов, а их элементы hy опреде- ляют передаточную функцию от j-ro входа к i-му выходу. Пример: Оператор Н = [tf([l -1], [1 2 10]), tf(1, [1 0])] формирует передаточную функцию многомерной системы с одним входом и двумя выходами:
1. Модели линейных систем с постоянными параметрами Transfer function from input 1 to output: s -1 sA2 + 2 s + 10 Transfer function from input 2 to output: 1 s H(s) = [ (s - 1)/(s2 + 2s + 10) 1/s)]. Последовательность операторов [num,den] = tfdata(H) num{1,1} den{1,1} вызывает отклик ППП Control System Toolbox num = [1x3 double] [1x2 double] den = [1x3 double] [1x2 double] ans = 0 1 -1 ans = 1 2 10 что соответствует числителю и знаменателю следующей передаточной функции по первому входу. Чтобы получить числитель и знаменатель передаточной функции одно- мерной системы непосредственно в виде векторов-строк, следует приме- нить оператор [num, den, Ts] = tfdata(sys, V). Пример: sys = tf([1 3],[1 2 5]); [num, den, Ts] = tfdata(sys,'v') num =013 den =12 5 Ts = 0 Точно так же оператор [z, р, k, Ts] = zpkdata(sys, V) возвращает для од- номерных систем нули z и полюсы р в виде векторов. Отметим, что эти функции применимы к любым lti-моделям независимо от их типа. Напри- мер, команда tfdata может быть применена к моделям класса ss, в этом слу- чае модель сначала преобразуется в класс tf, а затем из нее извлекаются данные о числителе и знаменателе. 0
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Формирование lti-объектов Рассмотрим lti-объект в частотной области как линейное отображение у = Ни. Это отображение может быть описано, например, передаточной матрицей Н, которая является либо преобразованием Лапласа, либо Z- преобразованием. Число столбцов матрицы Н равно числу входов, а число строк - числу выходов системы. Поэтому при выполнении операций над ли- нейными моделями они будут представлены как соответствующие операции над передаточными матрицами. Например, команда sys = sys1 + sys2 вы- полняет параллельное соединение двух lti-моделей sysl и sys2, так как па- раллельному соединению соответствует сложение передаточных матриц. Индексные операции используются для извлечения из матричной пере- даточной функции многомерной системы передаточных функций по соот- ветствующим входам и выходам. Например, команда sys(3, 1:2) выдает со- отношение вход-выход для третьего выхода (индекс строки) с учетом пер- вых двух входов (индексы столбцов). Это соотношение может быть описано следующей матричной операцией: | Щ Lu2 у-Hu ->уЗ=[Я(3,1) /7(3,2)] Ниже рассмотрены способы формирования непрерывных и дискретных, одномерных и многомерных lti-моделей различного вида с помощью функ- ций tf, zpk, ss. Tf-объект. Одномерная передаточная функция h(s) = num(s)/den(s) зада- ется многочленом числителя num и многочленом знаменателя den. В систе- ме MATLAB многочлены представляются как векторы-строки, составлен- ные из коэффициентов многочлена в порядке убывания степеней перемен- ной. Например, вектор [13 5] соответствует многочлену s2 + + 3s + 5. Если заданы векторы num и den, соответствующие многочленам числителя и знаменателя, то функция h = tf(num, den) создает lti-модель одномерной системы в виде передаточной функции h(s) = n(s)/d(s). Переменная h являет- ся объектом подкласса tf, содержащим данные о числителе и знаменателе передаточной функции. Пример: Функция h = tf([1 0], [1 2 10]) формирует передаточную функцию s/(s2 + 2s + 10) в следующем виде: 0
1. Модели линейных систем с постоянными параметрами Transfer function: s sA2 + 2s + 10 Передаточные функции многомерных систем являются массивами, со- ставленными из передаточных функций одномерных систем. Они также за- даются своими числителями и знаменателями. Пример: Массивы N(s) и D(s) определяют передаточную функцию многомерной системы Г s-l H(s) = _$2 + 45 + 5. Используя массивы ячеек, содержащие векторы-строки для представле- ния массивов N(s) и D(s), передаточную функцию многомерной системы можно сформировать с помощью следующей последовательности операто- ров: N={[1 -1];[1 2]} % массив ячеек, содержащих многочлены числителя D = {[1 1];[1 4 5]} % массив ячеек, содержащих многочлены знаменателя Н = tf(N, D) Transfer function from input to output... s -1 #1: — s + 1 s + 2 #2: ------- sA2 + 4 s + 5 Передаточные функции многомерных систем общего вида H(s) также можно задавать массивами ячеек, сформированных из векторов-строк N{i, j} и D{i, j}, которые определяют числители и знаменатели элементов Hy(s) матричной передаточной функции H(s). Другой способ сформировать передаточную функцию многомерной сис- темы - это объединить передаточные функции одномерных систем в виде массива tf-объектов: hll =tf([l -1],[1 1]) % (s-l)/(s+l); h21 = tf([ 1 2],[1 4 5]) % (s+2)/(sA2+4s+5); 3
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX H = [hll;h21] Transfer function from input to output... s-1 #1; --- S+ 1 s + 2 # 2: ----- sA2 + 4 s + 5 Функцию tf можно использовать для формирования матрицы коэффици- ентов передачи. Пример: Функция G = tf([1 0; 2 1]) формирует матрицу коэффициентов передачи в виде статических переда- точных функций Transfer function from input 1 to output... # 1: 1 # 2: 2 Transfer function from input 2 to output... # 1: 0 # 2: 1 Static gain Zpk-объект. Модели одномерных систем подкласса zpk задаются выра- жением где z,, z2, ..., zni - нули системы; pl, p2, ..., pn - полюсы системы. К - обобщенный коэффициент передачи, связанный с коэффициентом передачи к соотношением т мГ'ГЬ к = к------ (-п'Ш i=1 Эта модель тесно связана с формой представления lti-объекта в виде пе- редаточной функции: нули - это корни многочлена числителя, полюсы - корни многочлена знаменателя.
1. Модели линейных систем с постоянными параметрами Функция, предназначенная для формирования таких моделей, имеет вид h = zpk(z, р, К), где z и р - векторы из нулей и полюсов, а К - обобщенный коэффициент передачи. Она создает объект h подкласса zpk. Пример: Оператор: li = zpk(O, [1-i 1+i 2],-2) формирует zpk-объскт Zero/pole/gain: -2 s (s-2) (sA2 - 2s + 2) Для многомерных систем задание модели в подклассе zpk реализуется с использованием следующих массивов ячеек Z - массив ячеек размера р х m для размещения нулей; Р - массив ячеек размера р х m для размещения полюсов; К - массив ячеек размера р х m для размещения обобщенных коэффици- ентов усиления передаточной функции. Пример: Запишем последовательность операторов для формирования многомер- ной модели подкласса zpk с двумя входами и двумя выходами: Z = {[ ], -5; [1-i 1 +i] [ ]} % При отсутствии нулей используется [ ] Р = {О.[-1 -Щ1 2 3],[Ц К = [-1 3; 2 0] Н = zpk(Z, Р, К) Z = О [-5] [1x2 double] О Р = [ 0] [1 х2 double] [1x3 double] О К = -1 3 2 0 Zero/pole/gain from input 1 to output... -1 #1: -- s 2 (sA2 - 2s + 2) #2:------------ . (s-1) (s-2) (s-3)
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX 1. Модели линейных систем с постоянными параметрами Zero/pole/gain from input 2 to output... 3 (s+5) #1: ---- (s+1)r2 #2: 0 Ss-объект. Для описания динамических систем в пространстве состоя- ний применяются модели подкласса ss, которые ос-нованы на линейных дифференциальных или разностных уравнениях. Модель непрерывной системы в подклассе ss имеет вид J dx /dt = Ах + Ви; [ у = Сх + Du, где х - вектор состояния; и - вектор входа; у - вектор выхода. Такие модели возникают, когда для описания протекающих в них про- цессов применяются законы физики, механики и других естественных наук. Для формирования моделей в подклассе ss предназначена функция sys = ss(A, В, С, D). В результате получаем описание ss-объекта в виде четверки матриц {А, В, С, D}, которые должны иметь согласованные размеры. Если п - число переменных состояния, р - число входов и m - число выходов, то четверка матриц должна иметь следующие размеры: {Апхп, ВПхР, Cmxn, Dmxp}. Для моделей с нулевой матрицей D можно использовать присваивание D = 0 как краткую форму записи нулевой матрицы соответствующих разме- ров. Пример: Рассмотрим простую модель электрического двигателя, которой соот- ветствует дифференциальное уравнение второго порядка d20/dt2 +2dG/dt+50 = 31, где 6 - угол поворота ротора; I - ток в управляющей обмотке двигателя. Этому дифференциальному уравнению можно поставить в соответствие следующую систему уравнений, используя в качестве переменных состоя- ния угол и угловую скорость вращения ротора dx/dt = Ах + Bu; У = Сх, где 0 dG/dt О 1 -5 -2 В- 3 С=[о 1]. Эта система уравнений записана в явной форме Коши и может быть сформирована с использованием следующего обращения к функции ss: sys = ss([0 1;-5-2],[0;3],[0 1],0) а= х1 х2 х1 0 1.00000 х2 -5.00000 -2.00000 ь= U1 х1 0 х2 -5.00000 с= х1 х2 у1 0 1.00000 d= u1 у1 0 Описанные выше модели могут быть обобщены, если ввести в рассмот- рение модели в пространстве состояний, записанные в неявной форме Коши Edx/dt = Ax + Bu; У = Сх. ППП Control System Toolbox поддерживает такие модели только с невы- рожденной матрицей Е, и, хотя они могут быть использованием точной арифметики приведены к явной форме Коши, в тех случаях, когда матрица Е плохо обусловлена по отношению к операции обращения, следует приме- нять модель в неявной форме Коши. Функция dss является модификацией функции ss и предназначена для формирования моделей в неявной форме Коши. Оператор sys = dss(A, В, С, D, Е) создает непрерывную dss-модель, описываемую пятеркой матриц {А, В, С, D, Е}. Дискретные lti-объекты. Для того чтобы сформировать дискретную модель с заданным периодом дискретности, просто следует к входным ар- гументам функций tf, zpk и ss добавить период дискретности Ts, измеряе- мый в секундах:
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX 1. Модели линейных систем с постоянными параметрами sys = tf(num, den, Ts); sys = zpkfz, p, k, Ts); sys = ss(a, b, c, d, Ts). Пример: Следующий, оператор формирует передаточную функцию дискретной модели с периодом дискретности 0.1 с: h = tf([1-1]. [1-0.5J.0.1) Transfer function: z-1 z-0.5 Sampling time: 0.1 Оператор sys = ss(A, В, C, D, 0.5) позволяет сформировать модель дис- кретной системы в пространстве состояний с периодом квантования 0.5 с следующего вида: f х[А] = Ах [А- -1]+ Bu[A_ -1]; [у[£] = Cx[£]+Du[&]. Векторы х, и, у обозначают переменные состояния, входы и выходы для k-1-rp и k-го моментов времени. Принято, что период дискретности Ts для непрерывной системы равен нулю. Значение Ts = -1 соответствует случаю, когда период дискретности для дискретной системы не специфицирован. Пример: Следующий оператор формирует дискретную передаточную функцию, не приписывая никакого значения периоду дискретности: h = tf([1 -0.2],[1 0.3],-1) Transfer function: z-0.2 z + 0.3 Sampling time: unspecified Если аргумент Ts не указан, то система рассматривается как непрерывная. При цифровой обработке сигналов принято записывать дискретные пе- редаточные функции как рациональные выражения от аргумента z -1 (dsp- форма), а коэффициенты числителя и знаменателя - в порядке убывания степени переменной z Я(д"’) = (1 + 0.5г”1) /(1 + 2г”1 + 3z”2). В тех случаях, когда степени числителя и знаменателя передаточной функции различны, их представления по степеням z и z ’* не будут совпа- дать. Поэтому в состав ППП Control System Toolbox включена специальная функция filt для формирования передаточных функций в dsp-форме. Возможны два способа обращения к этой функции: h = filtfnum, den) ; h = filtfnum, den, Ts). Первый применяется для формирования дискретной передаточной функции, которой нс приписывается периода квантования; второй - для за- данного периода квантования Ts. Эта функции создают объекты подкласса tf, но коэффициенты числителя num и знаменателя den располагаются в по- рядке возрастания степени переменной z ': Пример: Оператор создает объект подкласса tf с неспецифицированным периодом дискретности h = filt([1 0.5],[1 2 3]) Transfer function: 1 + 0.5 zM 1 + 2 zM + 3 zA-2 Sampling time: unspecified Команда filt может быть применена и для задания передаточной функ- ции многомерной системы в dsp-форме. В этом случае входные аргументы num и den являются массивами ячеек, в которых хранятся векторы-строки коэффициентов в порядке возрастания степеней z'1. 1.2. Свойства lti-объектов В предыдущем разделе было показано, как можно создавать lti-объекты, которые включают данные о модели и периоде дискретности. Lti-объекты могут также содержать дополнительную информацию, такую, как имена входов или примечания об истории модели. В данном разделе дан полный обзор свойств lti-объектов подклассов tf, zpk и ss. Для того чтобы получить общую информацию о свойствах lti-объектов, следует воспользоваться ко- мандой Itiprops. С точки зрения структуры данных свойства lti-объектов - это различные поля при описании объектов, принадлежащих подклассам tf, zpk и ss. Эти поля имеют имена (имена свойств) или содержат значения (значения свойств). Различают родовые свойства, которые являются общи- ми для всех трех подклассов объектов класса Iti, и специфические свойства, которые относятся только к одному подклассу модели.
________1. Модели линейных систем с постоянными параметрами В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Родовые свойства Рассмотрим свойства, которые являются общими для всех трех подклас- сов lti-объектов. Они перечислены в табл. 1. Таблица 1. Родовые свойства lti-объектов Свойство Описание Тип данных InputName Названия входов Массив ячеек Notes Информация об истории модели Текст OutputName Названия выходов Массив ячеек Ts Период дискретности Скаляр Td Запаздывание на входе Вектор Userdata Дополнительные данные Произвольные Свойства InputName и OutputName предназначены для того, чтобы опи- сать назначение входов и выходов системы; для их представления исполь- зуются массивы ячеек, содержащих строки символов вида: 'мощность, {'скорость'; 'угол атаки’} и т. п. Свойство Notes предназначено для указания описательной информации об истории модели, времени ее создания и т. п. По умолчанию это поле яв- ляется пустым. Свойство объекта Ts хранит информацию о периоде дискретности моде- ли, измеряемом в секундах; значения 0 и -1 используются соответственно для непрерывных моделей и дискретных моделей с неспецифицированным периодом дискретности. Свойство запаздывания на входе Td доступно только для непрерывных систем, его представление - вектор запаздываний для каждого входного ка- нала, измеренных в секундах; по умолчанию используется нулевое значение (отсутствие запаздывания). Свойство Userdata может содержать числовые данные о модели, описы- ваемые произвольными типами данных. По умолчанию это поле является пустым. Специальные свойства Другие свойства lti-объектов являются специфическими для каждого иэ трех подклассов. Они перечислены в табл. 2. Таблица 2. Специальные свойства объектов подкласса tf Свойство Описание Тип данных num Числитель(и) переда- точной функции Вектор-строка для одномерной, массив ячеек для многомерной передаточной функции den Знаменатель(и) пере- даточной функции Вектор-строка для одномерной, массив ячеек для многомерной передаточной функции variable Разрешенный набор символов 's', 'р', 'z', 'q' или 'гл-Г для обозна- чения переменной пе- редаточной функции Символьная переменная Таблица 3. Специальные свойства объектов подкласса zpk Свойство Описание Тип данных к Обобщенный(е) коэф- фициенты) усиления Скаляр для одномерной, двумерный мас- сив для многомерной системы Z Нули передаточной функции Вектор-строка для одномерной, массив ячеек для многомерной системы р Полюсы передаточной функции Вектор-строка для одномерной, массив ячеек для многомерной системы variable Разрешенный набор символов 's', 'р', 'z', 'q' или 'zA-T для обозна- чения переменной пе- редаточной функции Символьная переменная Таблица 4. Специфические свойства объектов подкласса ss Свойство Описание Тип данных а Матрица состояний ь Матрица вход-состояние с Матрица вход-состояние-выход Двумерная матрица d Матрица вход-выход е Матрица при производных StateName Названия переменных состояний Массив ячеек из строк Отметим некоторые особенности используемых свойств lti-объектов. Свойство Variable для объектов подклассов tf и zpk задает способ ото- бражения переменной при выводе передаточных функций на экран. По' умолчанию такими переменными являются 's' (переменная преобразования Лапласа) для непрерывных систем и 'z' (переменная Z-преобразования) для Дискретных систем. Альтернативными значениями переменной могут быть Р* для 's' и 'q' или 'z'1 для z. Отметим, что команда tf дает тот же результат, П о и команда filt, когда свойство Variable имеет значение ’z“b или 'q'. Матрица при производных Е по умолчанию равна пустой матрице [ ]. Свойство StateName позволяет присвоить имена переменным состояния.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX При работе с ППП Control System Toolbox перечень свойств lti-объскта может быть просмотрен с помощью команд set(ss), set(tf), sct(zpk). Чтение и установка значений Каждое свойство lti-объекта задается парой аргументов {свойство (PropertyName), значение (PropertyValue)): PropertyName - строка, определяющая название свойства; она может быть собственно именем свойства или его сокращением, достаточным для идентификации имени. Например, сокращение 'user' достаточно для опреде- ления свойства Userdata; PropertyValue - значение, приписываемое свойству; этот формат такжю поддерживается функциями tf, zpk и ss. Поэтому значения свойств системы можно определить с помощью ко- манды get: PropertyValue = get(sys, PropertyName), где строка PropertyName - либо полное название свойства, либо некоторое сокращение с числом символов, достаточным для однозначной идентифи- кации этого свойства. Пример: Последовательность операторов h =tf(100,[1 5 100],'input','Напряжение','notes'.'Простая электрическая цепь') set(h,'output','Ток') getfh, ’notes') выводит на экран следующую информацию Transfer function from input "Напряжение" to output: 100 sA2 + 5s + 100 ans = 'Простая электрическая цепь’ Для вывода на экран всех свойств, следует использовать команду get(h) num = {[0 0 100]} den = {[1 5 100]} Variable = 's’ Ts = 0 Td = O InputName = {'Напряжение'} OutputName = {'Ток'} Notes = {'Простая электрическая цепь'} UserData = [] 1. Модели линейных систем с постоянными параметрами Существует три способа для установки значений свойств lti-объекта: . при создании lti-объектов с помощью команд tf, zpk или ss; . изменение значений свойств существующей lti-модели с помощью ко- манды set; . присваивание значений элементам структуры. Первый способ установки значений заключается в том, чтобы расширить список входных переменных этих функций парами {свойство, значение}. Пример: Сформировать одномерную стационарную систему в tf-форме с входной переменной 'тяга', выходной переменной 'скорость' и с использованием в качестве символа переменной передаточной функции'р'. sys - tf(1 ,[1 10],'inputname','тяге','outputname','скорость','variable','р') Transfer function from input "тяга" to output “скорость"; 1 p + 10 Второй способ состоит в том, чтобы сначала сформировать модель, а за- тем изменять отдельные ее свойства. Пример: Сформировать одномерную стационарную систему в tf-форме. h = tf(1,[1 10]) Transfer function: 1 s+ 10 Ввести обозначение входной переменной 'тяга' и выходной переменной 'скорость', а также заменить символ 's' на 'р'. set(h,'inputname','тяга','outputname’,'скорость'.УапаЫе'.'р') h Transfer function from input “тяга" to output "скорость": 1 p + 10 В случае многомерной системы для назначения имен каждому входу и выходу следует использовать массивы ячеек, составленные из символов. num = {3, [1 2]}; den = {[1 10], [1 0]}; Н = tf(num, den); % H(s) имеет один выход и два входа set(H,'inputname’.{'температура'; 'давление'}) н Transfer function from input "температурв" to output:
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX 1. Модели линейных систем с постоянными параметрами 3 s + 10 Transfer function from input "давление" to output; s + 2 s Если какие-либо названия следует оставить неприсвоенными, то вместо них надо указать пустую строку' Н = tf(num, den,’inputname',{'TeMnepaTypa';")) По команде set(sys) можно вывести на экран все свойства для lti-модели sys. апример, передаточнфу! I имеем; set(H) num: Ny-by-Nu cell of row vectors (Nu = no. of inputs) num; Массив ячеек размера NyxNu из векторов-строк (Nu - количество входов) den; Ny-by-Nu cell of row vectors (Ny = no. of outputs) den; Массив ячеек размера NyxNu из векторов-строк (Ny - количество выходов) Variable; [ 's' | 'р' | 'z' | 'zA-T | 'q' ] Ts; scalar Ts; скаляр Td: vector of length Nu (for continuous systems only) Td; вектор длины Nu (только для непрерывных моделей) InputName: Nu-by-1 cell array of strings InputName; Массив ячеек размера Nu x 1 из символьных строк OutputName: Ny-by-1 cell array of strings OutputName; Массив ячеек размера Ny x 1 из символьных строк Notes: array or cell array of strings Notes: Массив или массив ячеек, составленные из символьных строк UserData: arbitrary UserData: любой тип данных Предупреждение: Переустановка значения периода дискретности, например с нулевого на не- нулевое значение, характерное для дискретных систем, не влечет за собой по- строения дискретной модели. Для перехода от непрерывной модели к дискрет- ной и обратно следует использовать функции c2d и d2c. Третий способ установки значений свойств - это присваивание значений элементам структуры. Используемые в ППП Control System Toolbox lti- объекты с точки зрения типа данных являются массивами записей (структу- рами) языка MATLAB, которые снабжены дополнительным флагом, указы- вающим, что они являются lti-объектами. Пример: Рассмотрим одномерную стационарную систему в tf-форме и выявим ее структуру. sys = tf(1,[1 10]) namefields=fieldnames(sys) Transfer function; 1 s+ 10 namefields = 'num' 'den' 'Variable' 'Iti' Для получения значений полей следует использовать следующие опера- торы: sys.num ans = [1x2 double] sys.num{1) ans ~ 0 1 sys.den ans = [1x2 double] sys.den{1) ans =110 sys.var ans = s Имена полей массива записей (структуры) являются именами свойств, поэтому можно назначать или изменять значения свойств, присваивая зна- чения элементам структуры: PropertyValue = sys.PropertyName % получить значение свойства sys.PropertyName = PropertyValue % установить значение свойства Эти операторы присваивания эквивалентны следующим операторам с использованием функций get и set; PropertyValue = get(sys,'PropertyName') set(sys,'PropertyName', PropertyValue) Примеры: Выполнив приведенную ниже последовательность операторов, опреде- лим символ используемой переменной в передаточной функции: h = tf(1 ,[1 0],'inputname','u','variable','p'); % h(p)=1/p; h.Variable ans = p Изменим значения матрицы А для следующей модели в пространстве состояний: sys = ss(1,2,3,4); sys.a = -1 % замена матрицы А на -1
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX 1. Модели линейных систем с постоянными параметрами а = х1 х1 -1 Ь = ul х1 2 с = х1 у1 3 d = u1 у1 4 Continuous-time system. В отличие от использования стандартных структур системы MATLAB в ППП Control System Toolbox не надо указывать полное имя поля структуры и различать строчные и прописные буквы. Пример: Вводя операторы и используя сокращения для имени поля h = tf(1,[1 0],'inputname','u'.'variable'.'p'); % h(p)=1/p; h.inp получим ans = 'u' Этот результат эквивалентен обращению в форме h.InputName. Все допустимые форматы операторов, используемые для работы с мас- сивами записей (структурами), распространяются на объекты класса Iti. Пример: Следующие операторы позволяют изменять числитель передаточной функции: h = tf(1.[1 0],’inputname','u'.'variable'.'p') h.num{1) = [1 2] % заменяет числитель на р+2 h.num{1}(1) = 3 % заменяет числитель на Зр+2 Transfer function from input "u" to output: 1 P Transfer function from input "u" to output: p + 2 P Transfer function from input "u" to outpu*: 3p + 2 P Преобразование lti-моделей Поскольку существует три подкласса lti-объектов: ss, tf и zpk, необходи- мо иметь функции для преобразования моделей одного подкласса в модели другого. Преобразования выполняются с помощью функций tf, ss и zpk. Пусть за- дана некоторая модель lti-системы, описываемая переменной sys, тогда опе- раторы преобразования будут иметь следующий вид: sys = tf(sys) % преобразование в подкласс tf sys = zpk(sys) % преобразование в подкласс zpk sys = ss(sys) % преобразование в подкласс ss Пример: Преобразуем некоторую модель из подкласса ss в модель подкласса zpk. sys = ss(-2,1,1,3) а = х1 х1 -2 Ь = и1 х1 1 с = х1 у1 1 d = u1 у1 3 Continuous-time system. zpk(sys) Zero/pole/gain: 3 (s+2.333) (s+2) Отметим, что большинство функций ППП Control System Toolbox вы- полняют автоматическое преобразование моделей. Например, последова- тельность операторов sys = ss(0, 1,1,0); sys = tf(sys); • сначала формирует ss-модель sys в пространстве состояний, а затем функция tf преобразует ее в tf-модсль. Заметим, что преобразование tf и zpk моделей в ss-модели неоднозначно и зависит от выбора переменных состояния.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX 1. Модели линейных систем с постоянными параметрами Предупреждение-. При работе с lti-моделями следует принимать во вни- мание следующие обстоятельства. • три подкласса lti-моделей не в равной степени пригодны для численных вычислений: так, точность вычислений при применении в качестве tf- моделей передаточных функций высокого порядка может оказаться низ- кой. Рекомендуется работать с масштабированными моделями в про- странстве состояний, а передаточные функции использовать только для иллюстрации или интерпретации результатов; • преобразования в формат передаточной функции могут привести к поте- ре точности. В результате нули и полюсы передаточной функции могут заметно отличаться от параметров исходной zpk- модели или ss-модели; • поскольку преобразования моделей в ss-форму в пространстве состояний не определены однозначно для одномерной системы и не гарантируют минимальной реализации в многомерном случае, то выполнение, напри- мер, последовательности функций ss(tf(sys)) может приводить к форми- рованию моделей с различными матрицами и с различным числом пере- менных состояния в многомерном случае. Поэтому общая рекомендация заключается в том, чтобы избегать взаимообратного преобразования Iti- объектов при использовании ss-моделей. 1.3. Операции над lti-объектами К lti-объектам можно применять такие двухместные базисные алгебрам-' ческие операции, как сложение, умножение, объединение моделей. Эти операции являются переопределяемыми, т. е., будучи определены для чи- еловых объектов, они сохраняют формат записи операции, но приобретаю'? иное функциональное назначение применительно к lti-объектам. В качестве операндов базисных операций могут использоваться модели раз- личных подклассов. Результирующий класс определяется правилами предпоч- тения. Для того чтобы получить результирующую модель заданного класса можно либо предварительно преобразовать все операнды в один класс до вы* полнения операции, либо преобразовать в этот класс результат. Предположим например, что модель sysl относится к подклассу tf, а система sys2 к подкласс/ ss. Чтобы вычислить передаточную функцию их суммы, можно предварительно преобразовать второй операнд в подкласс tf, т. е. sys = sysl + tf(sys2), либо вы* полнить преобразование суммы sys = tf(sysI + sys2). Таким образом, эти операции, похожие по форме записи, отличаются от соответствующих операций над числовыми объектами и выполняются над, lti-объектами: в первом случае над передаточными функциями (tf-объекты) во втором случае над моделями в пространстве состояний (ss-объекты). Те- перь важно определить, как наследуются свойства объектов и как свойства операндов передаются результату операции. Хотя правила наследования свойств зависят от выполняемых операций, некоторые общие правила мож- но сформулировать следующим образом: • операции над дискретными моделями можно выполнять только в случае одинаковых периодов дискретности по времени для каждой системы. Системы с неспецифицированным периодом дискретности (sys.Ts = -1) могут использоваться, если все операнды являются дискретными моде- лями; • большинство операций не использует свойств Notes и Userdata; • если имена входов и выходов операндов совпадают, то они передаются результату; в противном случае имена удаляются; • для моделей подклассов tf и zpk свойство Variable наследуется от опе- рандов. Конфликтные ситуации разрешаются на основании следующих правил: символ 'р1 заменяет 's', символы для описания дискретных пере- даточных функций ранжируются в следующем порядке: 'zA-l', 'q' и 'z', где символ *z* имеет низший приоритет. Переопределяемые базисные операции Сложение и вычитание. Сложение lti-объектов адекватно параллель- ному соединению соответствующих динамических моделей. Операция sys = sysl 4- sys2 возвращает lti-модель параллельного соединения (рис. 1). Понять, почему операция сложения соответствует параллельному соеди- нению систем, нагляднее всего можно при описании моделей в виде переда- точных функций. Если Н] и Н2 - передаточные матрицы систем sysl и sys2, то вход и и выход у связаны следующим соотношением: у = (Н| + Н2)и.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Такое параллельное соединение соответствует сложению передаточных матриц. Если же использовать модели sysl и sys2 в пространстве состояний, опи- сываемые четверками {Ah В(, Cb DJ и {Л2, В2, С2, D2}, то реализацией суммы sys1+sys2 является следующая четверка {А, В, С, D}: Л] О О Л2 С = [Сг С2]; D = Dl+D2. Определена также и операция сложения многомерных моделей и одно- мерной lti-модели: если sysl - многомерная система, a sys2 - одномерная система, то сумме sysl+sys2 соответствует система той же самой размерно- сти, что и sysl, а результат определяется по формуле sysl(i, j)+sys2. Вычитанию систем sys = sysl - sys2 соответствует система y = (H,-H2)u. Умножение. Умножение lti-объектов систем адекватно последователь- ному соединению соответствующих динамических моделей. Операция sys = sysl*sys2 возвращает lti-модель sys для последовательного соединения систем (рис. 2). Рис. 2 Обратите внимание на обратный порядок следования lti-моделей sysl и sys2 в операции умножения и на структурной схеме. Это связано со спосо- бом изображения и обозначения блоков на структурной схеме: если систе- мы sysl и sys2 имеют передаточные матрицы Hi и Н2, то справедливо сле- дующее соотношение: у = H,v = H,(H2u) = (HtxH2)u. Для моделей в пространстве состояний sysl и sys2, описываемых чет- верками матриц {Ав В|, Ci, D|} и {А2, В2, С2, D2}, результатом умножения sysl*sys2 будет следующая модель в пространстве состояний: А! О В'С2 • В- B,D2 а2 _ в2 ; С =[С, DjCj; D=D,D2. А = Определена также и операция умножения для многомерных и одномер- ных lti-объсктов: если sysl - модель многомерной системы и sys2 - модель, одномерной системы, то произведения sysl*sys2 и sys2*sysl интсрпрсти* руются как поэлементные скалярные произведения. Такая система имеет ту 1. Модели линейных систем с постоянными параметрами же размерность, что И система sysl, а результат определяется по формуле sysl (i, j)*sys2. Инверсия. Перемена местами входа и выхода модели называется инвер- сией модели и описывается следующими соотношениями: y = Hu =>; u = H"’y. Это преобразование определено только для моделей, описываемых квад- ратными матрицами, когда число входов равно числу выходов, и описыва- ется следующей операцией: isys = inv(sys). Инверсная модель isys принад- лежит тому же подклассу lti-объектов, что и модель sys. С операцией инверсии связаны еще две операции: • левое деление sys 1 \sys2, что эквивалентно inv(sys 1 )*sys2; . правое деление sysl/sys2, что эквивалентно sysl*inv(sys2) Для модели в пространстве состояний, описываемой четверкой {А, В, С, D}, операция инверсии определена только для случая, когда D квадратная неосо- бенная матрица; в этом случае результатом инверсии в пространстве состояний является модель, описываемая четверкой {А - BD-1C, BD'1, -D-1C, D'1}. Конкатенация. Конкатенация lti-объектов равносильна базисной опера- ции конкатенации массивов sys = [sysl, sys2] % Горизонтальная конкатенация; sys = [sysl; sys2] % Вертикальная конкатенация. В терминах моделей входа-выхода эти две операции имеют интерпрета- цию в виде структурных схем, представленных на рис. 3 если одномерным системам sysl и sys2 соответствуют передаточные матрицы Н! и Н2. Рис. 3. Структурные схемы с передаточными матрицами Н] и Н2; а - горизонтальная конкатенация; б - вертикальная конкатенация
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Операцию конкатенации можно использовать в качестве одного из спо- собов формирования многомерных lti-моделей в подклассах tf и zpk. Пример: Оператор вертикальной конкатенации Н = [tf(1,[1 0]) 1; 0 tf([1 -1],[1 1])] Transfer function from input 1 to output... 1 #1: - s #2: 0 Transfer function from input 2 to output... #1: 1 определяет tf-модель с передаточной матрицей Транспонирование. Операции транспонирования для массивов и мат- риц переносятся на lti-модели и позволяют сформировать сопряженную систему. При этом к любой lti-модели sys могут быть применены операции transpose (sys), или sys.', и ctranspose(sys), или sys'. Операция ctranspose для непрерывной ss-модели, описываемой четвер- кой {А, В, С, D}, возвращает сопряженную систему, которая описывается четверкой {-Ат, -Ст, Вт, DT}. Для дискретной модели {А, В, С, D) сопряженная система описывается четверкой {АА, АА*СТ, -ВТ*АА, D - ВТ*АА*СТ}, где АА = inv(AT). Такие системы играют важную роль в теории нестационарных систем и теории оптимального управления. Для непрерывной tf-модели, описываемой передаточной функцией H(s), соответствующая сопряженная система sys' описывается передаточной функцией [H(-s)]H. Для дискретной модели с передаточной функцией H(z) соответствующая сопряженная система описывается передаточной функци- ей [H(z-')]H Операция transpose для ss-модели, описываемой четверкой {А, В, С, D} возвращает систему, которая описывается четверкой {Ат, Ст, Вг, DT}. 1. Модели линейных систем с постоянными параметрами Для непрерывной tf-модели, описываемой передаточной функцией H(s), соответствующая система sys.' описывается передаточной функцией H(-s). Для дискретной модели с передаточной функцией H(z) соответствующая сопряженная система описывается передаточной функцией H(z'’). Выделение и модификация подсистем Динамическая система, представленная lti-объсктом, состоит из подсис- тем, которые связывают отдельные входы и выходы системы. Поэтому пе- редаточная матрица подсистемы - это нечто иное, как некоторая подматри- ца передаточной матрицы системы, связывающая определенный вход с оп- ределенным выходом. Если sys - система с двумя входами, тремя выходами и соотношением вход-выход у = Н х, то выделение из нее некоторой подсистемы SubSys, связывающей первый вход с третьим выходом, можно реализовать с помощью оператора SubSys = sys(3, 1), что в терминах матричной передаточной функции будет описы- ваться следующим образом: Уз = Н(3. 1)и,. Результирующая подсистема SubSys является моделью того же самого типа, что и sys. Если sys является моделью в пространстве состояний, описываемой чет- веркой {А, В, С, D}, то подсистема SubSys будет описываться векторно- матричной четверкой {А, В(:, 1), С(3,:), D(3, 1)}. В выражении вида sys(3, 1) первый индекс определяет номер выхода, а второй индекс - номер входа. Поэтому с помощью оператора присваивания sys(3, 1) = NewSubSys можно переопределить соотношение между первым входом и третьим выходом. Новое соотношение будет определяться Iti- моделью NewSubSys. Заметим, что система sys сохраняет свой первона- чальный подкласс, в то время как NewSubSys может быть моделью tf, zpk или ss подкласса. Переназначение подкласса может повлечь изменение раз- мерности модели. Возможны и другие способы выделения подсистем из описания Iti- объекта. Например, оператор sys(3, 1:2) позволяет выделить подсистему, связывающую первые два входа с третьим выходом. Оператор sys(:, 1) вы- деляет подсистему, связывающую первый вход со всеми выходами. Опера- тор sys([l 3], :) выделяет подсистему, связывающую первый и третий выход со всеми входами.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Пример: В качестве иллюстрации рассмотрим передаточную функцию системы с двумя входами и двумя выходами 1 0 Т(5) = 5 + 0.1 5-1 1 s' + 2s -ь 2 5 Такая модель может быть получена с помощью оператора Т = [tf(1, [1 0,1]), tf(O,1); tf([1 -1],[1 2 2]), tf(1,[1 0])] Transfer function from input 1 to output... 1 #1: ----- sA2 + 1 s -1 #2: --------- sA2 + 2 s + 2 Transfer function from input 2 to output... #1: 0 1 #2: - s Для выделения передаточной функции подсистемы, связывающей пер- вый вход с первым выходом, применим оператор Т(1,1) Transfer function; 1 sA2 + 1 Можно модифицировать эту подсистему, если ввести оператор T(l,l) = tf(l,[l 0.5]) Transfer function from input 1 to output... 1 #1:------ s + 0.5 s-1 #2; --------- sA2 + 2 s + 2 Transfer function from input 2 to output... #1; 0 1 #2: - s
1. Модели линейных систем с постоянными параметрами Изменение числа входов и выходов При работе с многомерными системами часто бывает необходимым из- менять количество входов и выходов системы. Для того чтобы удалить, например, первые два входа, надо просто вве- сти оператор sys(:, 1:2) = [ ]. Добавить число входов или выходов можно с помощью операции конка- тенации. К системе sys с единственным входом можно добавить второй вход, используя один из операторов sys = [sys, li] или sys(:, 2) = h, где h - любая lti-модель. Хотя последние две операции кажутся внешне похожими, между ними имеется существенное различие. Необходимо иметь в виду, что при использовании операции конкатенации учитывается свойство иерархии Jti-моделей. Если sys и h объекты подклассов ss и tf соответственно, то пер- вый оператор сформирует модель в пространстве состояний, а второй - пе- редаточную функцию. Для моделей в пространстве состояний при добавлении входов и выхо- дов всегда увеличивается порядок модели, потому что предполагается, что системы sys и h описываются независимыми переменными состояния. Если необходимо сохранить прежнюю матрицу системы, следует просто перена- значить некоторые векторы или матрицы в описании системы, используя оператор set. Пример: Добавить к модели sys в пространстве состояний второй вход путем пе- реназначения векторов b и d. sys = ss(a,b1,c,d1) setfsys.’b'.tbl b2],'d',[d1 d2J) Формирование lti-моделей с учетом запаздывания входных сигналов Для дискретных lti-моделей учет возможных запаздываний не вызывает каких-либо трудностей, поскольку с помощью функциии d2d всегда возмо- жен переход к другому периоду дискретности с последующим учетом за- паздывания входных сигналов. Для непрерывных систем учет запаздывания входного сигнала проще всего описать, используя модель в пространстве состояний. Рассмотрим не- которую систему с одним входом и одним выходом: dx/dt = Ax(t) + bu(t-r); y(V = cTx(i) + duft-r).
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Соответствующая передаточная функция имеет вид Y(s) = H(s)eST U(s). где Н(.у) = d + ct(j1 - A)’Jb - передаточная функция без учета запаздывания на входе; exp(-xs) - оператор запаздывания. Многомерные системы со многими входами могут иметь различные за- паздывания для каждого входа, и модель такой системы должна быть пред- ставлена в следующем виде: Jx/A = Ax(f) + b|U,(/-T|) + ... + b,„u„(f-xm); y(z) = Сх(Г) + djW,(/-Ti) + ... + d„,um(f-x„,) или в форме передаточной функции Y(s) = Hj(s) ехр(-5Т|) U,(s) + ... + exp(-sxm) Um(s), где H,(s) = dy + C(sl - A)’1 by. Для формирования lti-модели с запаздываниями по входным сигналам необходимо установить значение свойства Td в виде вектора запаздываний по каждому входу [xi х2... хт]. Примеры: Следующий оператор формирует модель с двумя входами и одним вы- ходом и вектором запаздываний по входам [0 0.2]: Н = tf({1 , [1 2]},{[1 0] [1 2 5]},ЧсГ, [0 0.2]) Transfer function from input 1 to output: 1 s Transfer function from input 2 to output: s + 2 sA2 + 2 s + 5 Input delays (listed by channel): 0 0.2 Для непрерывной системы первого порядка с двумя входами и двумя выходами ввести следующие запаздывания по входам [0.1 0.05]: sys = ss(-1, [1 2], [2; 1], 0); set(sys,'td',[0.1 0.05]) sys sys a = x1 x1 -1
1. Модели линейных систем с постоянными параметрами Ь = u1 u2 х1 1 2 с = х1 у1 2 у2 1 d = ut u2 у1 О О у2 О О Input delays (listed by channel): 0.1 0.05 Continuous-time system. Установка свойства Td в виде скалярной величины позволяет ввести по- стоянное время запаздывания для всех входов: sys = ss(-1, [1 2], [2; 1], 0); set(sys, 'td', 0.05) sys sys a = x1 x1 -1 b = u1 u2 x1 1 2 c = x1 y1 2 y2 1 d = u1 u2 y1 0 0 y2 0 0 Input delay (for all channels): 0.05 Continuous-time system. Для lti-объектов с запаздыванием входных сигналов разрешено ограни- ченное количество операций, а их применение имеет ряд особенностей. До- пустимы следующие операции: • горизонтальная конкатенация; • сложение lti-объектов с одинаковыми запаздываниями по входам; • умножение lti-объектов вида sysl*sys2, когда объект sysl не имеет за- паздываний; • аппроксимация запаздывания рядом Паде;
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX • преобразование непрерывной системы в дискретную с помощью функ- ции c2d; • все операции анализа во временной и частотной областях. Аппроксимация запаздывания входных сигналов рядом Паде. Функция pade выполняет аппроксимацию временного запаздывания в виде дробно- рациональных передаточных функций или эквивалентных моделей в про- странстве состояний. Разложение экспоненты exp(-sT) в ряд Паде имеет следующий вид: thk(-Ts)k ехр( -sT ) = —-------------------------, Е hk(Ts)k k=l л — k +1 . --------------“ k -1 hk = Л0=1> где n - порядок аппроксимации. Соответствующий формат функции pade имеет вид rsys = pade(sys, n), где sys - lti-модель непрерывной системы с запаздыванием по входам; п - порядок аппроксимации функции запаздывания рядом Паде. Результирующая lti-модель rsys не имеет запаздывания. Для многомерных систем с различными значениями запаздываний по входам sys = ss(-1, [1 2], 1, [2 0], 'td', [0.1 0.3]) а = х1 х1 -1 Ь = u1 u2 х1 1 2 с = х1 у1 1 d = u1 u2 у1 2 0 Input delays (listed by channel): 0.1 0.3 Continuous-time system.
1. Модели линейных систем с постоянными параметрами С помощью следующего оператора можно задать различный порядок аппроксимации по каждому из входов: rsys = pade(sys, [n1 n2]). В этом случае оператор pade выполняет аппроксимацию Паде порядка л! для первого запаздывания (0.1 с) и порядка п2 для второго запаздывания (0.3 с). Результирующая модель rsys в пространстве состояний имеет поря- док п1+«2+1. В конкретном случае, когда п 1=2, п2=3, получим rsys = pade(sys, [2 3]) а = х1 х2 хЗ х4 х5 хб х1 -1 -15 0 20 0 4.3403 х2 0 -60 -37.5 0 0 0 хЗ 0 32 0 0 0 0 х4 0 0 0 -40 -20.833 -8.6806 х5 0 0 0 32 0 0 хб 0 0 0 0 16 0 Ь = и1 и2 х1 1 -2 х2 8 0 хЗ 0 0 х4 0 8 х5 0 0 хб 0 0 с = х1 х2 хЗ х4 х5 хб у1 1 -30 0 0 0 0 d = u1 u2 у1 2 0 Continuous-time system. Результирующая ss-модель имеет следующее описание в пространстве состояний: [sys, rsys] а = х1 х2 хЗ х4 х5 хб х7 х1 -1 0 0 0 0 0 0 х2 0 -1 -15 0 20 0 4.3403 хЗ 0 0 -60 -37.5 0 0 0 х4 0 0 32 0 0 0 0 х5 0 0 0 0 -40 -20.833 -8.6806 хб 0 0 0 0 32 0 0 . Х7 0 0 0 0 0 16 0 |39
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX b = u1 u2 u3 u4 x1 1 2 О 0 x2 0 0 1 -2 хЗ 0 0 8 0 x4 О О О 0 x5 О 0 0 8 хб О О О 0 x7 О О О 0 c = х1 x2 хЗ x4 x5 x6 x7 y1 1 1 -30 0 0 0 0 d = u1 u2 u3 u4 y1 2 0 2 0 Input delays (listed by channel): 0.1 0.3 0 0 Continuous-time system. 1.4. Построение дискретных моделей непрерывных систем В состав ППП Control System Toolbox включены две функции для пре- образования непрерывных моделей в дискретные c2d и дискретных моделей в непрерывные d2c. Реализовано несколько методов дискретизации и экст- раполяции сигналов, включая экстраполяторы нулевого (ZOH) и первого (FOH) порядков; дробно-рациональную аппроксимацию Тастина без кор- рекции и с коррекцией; отображения полюсов и нулей. Методы экстраполяции Экстраполятор нулевого порядка. Построение дискретной модели не- прерывной системы с использованием экстраполятора нулевого порядка за- ключается в следующем: устройство ZOH, на вход которого поступает дис- кретный сигнал u[k], генерирует непрерывный сигнал u(t), экстраполируя каждое дискретное значение постоянным уровнем в течение одного периода дискретности: u(l) = u[k] при kT5< t < (к+1 )TS. Этот сигнал поступает на вход непрерывной системы с передаточной функцией H(s), выход с которой y(t) квантуется по времени с периодом Ts секунд, в результате получаем сигнал у[к]. Структурная схема полученной дискретной модели с передаточной функцией Hd(z) приведена,на рис. 4.
1. Модели линейных систем с постоянными параметрами Обратно, для заданной дискретной системы с помощью функции d2c можно построить непрерывную модель, которая при использовании экстра- полятора нулевого порядка будет совпадать с исходной дискретной систе- мой. Последнее преобразование имеет ряд ограничений: • его нельзя применять к дискретным системам с нулевыми полюсами; • отрицательные действительные полюсы на плоскости z отображаются в виде пары комплексных полюсов в области s, что увеличивает порядок непрерывной системы; • функция d2c применима только к системам подкласса tf. Пример: Построим непрерывную модель для дискретной системы с периодом дискретности 0.1 с и отрицательными вещественными полюсами. hd = tf(1,[1 0.5], 0.1) Transfer function: 1 z + 0.5 Sampling time: 0.1 he = d2c(hd) Warning: System order was increased to handle real negative poles. Предупреждение: Для отрицательных действительных полюсов порядок модели увеличен. Transfer function: 4.621 s + 690 sA2 + 13.86 s + 1035
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Обратное преобразование возвращает следующую передаточную функцию: c2d(hc, 0.1) Transfer function: z + 0.5 zA2 + z + 0.25 Sampling time: 0.1 Экстраполятор первого порядка. Экстраполятор первого порядка FOH отличается от экстраполятора нулевого порядка ZOH способом аппрокси- мации входного сигнала. Он использует линейную экстраполяцию на пе- риоде дискретности: u(t) = u[k] + (t - kTs) (u[k+1 ] - u[k])/Ts при kTs < t < (k+1 )TS. Для систем с гладкими входными сигналами этот метод обеспечивает более высокую точность, но может быть использован только для преобразо- вания непрерывной системы в дискретную с помощью функции c2d. Посколку экстраполяция реализуется только на одном шаге, описанный метод FOH более правильно называть методом треугольной аппроксима- ции. Этот метод известен также как аппроксимация, инвариантная к пило- образному сигналу, потому что он является точным для случая пилообраз- ного сигнала на входе. Билинейная аппроксимация Тастина. Билинейная аппроксимация Тастина использует приближенное соотношение для представления экспо- ненты z = exp(sT5) = l + sTs/2 \-sTJ2' чтобы установить связь между переменными s и z для передаточных функ- ций непрерывной и дискретной моделей. В этом случае передаточная функ- ция H(s) непрерывной модели преобразуется в передаточную функцию дис- кретной модели с использованием соотношения Hd(z) H(s), где s = 2 z-1 Ts z +1 ’ а обратное преобразование H(s) = H(z)
1. Модели линейных систем с постоянными параметрами 1 + 5’71/2 использует подстановку z =-----------. 1 - sTs 12 Метод Тастина с коррекцией. Этот вариант билинейной аппроксима- ции использует приближенное соотношение Hd(z) = H(s), (О z-1 где s =-----------------, tg(coTs IT)z + \ чтобы обеспечить равенство соответствующих непрерывных и дискретных частотных характеристик на частоте со: H(jco) = Hd(exp(j coTs). Метод соответствия полюсов и пулей. Метод соответствия полюсов и нулей применим только к одномерным системам. Непрерывные и дискрет- ные системы имеют одинаковый коэффициент усиления, а их полюсы и ну- ли соотносятся в соответствии с выражением z = exp(sTs). Системы с запаздыванием Функция c2d позволяет строить дискретные модели для непрерывных систем с запаздыванием. Однако в этом случае можно использовать только методы экстраполяции. Пример: Построить дискретную модель с периодом дискретности 0.1 с для не- прерывной модели с запаздыванием на входе 0.25 с. h = tf(10, [1 3 10],'td', 0.25) hd = c2d(h, 0.1) Transfer function: 10 sA2 + 3 s + 10 Input delay: 0.25 Transfer function: 0.01187 zA2 + 0.06408 z + 0.009721 zA5 - 1.655 zA4 + 0.7408 zA3 Sampling time: 0.1
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX На рис. 5 сравниваются переходные реакции на единичную ступенчатую функцию для непрерывной и дискретной моделей. step(h,':',hd,’-’) Изменение периода дискретности В ППП Control System Toolbox предусмотрена возможность пересчета дискретной модели при увеличении периода дискретности, при этом необя- зательно, чтобы новый период дискретности был кратен первоначальному. Пример: Преобразовать дискретную модель с тактом дискретности 0.1 с в дискретную модель с тактом дискретности 0.25 с. hi =tf([1 0.4],[1 -0.7],0.1) h2 = d2d(h1, 0.25) Transfer function: z + 0.4 z-0.7 Sampling time: 0.1 Transfer function; z + 1.754 z - 0.41 Sampling time: 0.25
1. Модели линейных систем с постоянными параметрами На рис. 6 сравниваются переходные реакции на единичную ступенчатую функцию для дискретных моделей: реакция с периодом дискретности 0 1 с (hl) показана пунктирной линией, а реакция с периодом дискретности 0.25 с (Ь2) показана сплошной линией. step(h1,':',h2,'-') 1.5. Система Simulink для моделирования lti-систем В состав базовых программных средств семейства MATLAB входит сис- тема SIMULINK, предназначенная для моделирования динамических сис- тем, описываемых обыкновенными нелинейными дифференциальными уравнениями или структурными схемами. Предусмотрена возможность включения lti-объектов в состав структурных схем. Вызвать lti-блок для его последующей настройки можно непосредствен- но из среды системы MATLAB с помощью команды Itiblock или открывая блок Controls Toolbox из раздела Blocksets and Toolboxes главной библиотеки Simulink (рис. 7, a).
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Itiblock ? л 'File Edit View Simulation Formal • Tools LTI System Block for use with LTI Objects and the Control System Toolbox 6 Рис. 7 > txi.|i 1» LTI System Блок lti-объекта (LTI System Block) включает диалоговую панель для на- стройки параметров lti-моделей (рис. 7, б). Блок lti-объекта допускает ис- пользование непрерывных и дискретных lti-моделей, создаваемых в ППП Control System Toolbox в виде ss, tf или zpk моделей. При этом для много- мерных lti-объектов запаздывания не должны принимать отрицательных значений, а начальные условия должны указываться только для ss-моделей. В окне LTI system variable можно указать либо дескриптор (имя) lti- объекта (например, sys) , либо функцию формирования lti-объекта (напри- мер, tf (1 [, 1 1])). Перед началом моделирования система Simulink преобра- зует все модели в подкласс ss. Окно Initial states предназначено для ввода начальных условий. Понятие начальных условий определено только для моделей в пространстве состоя- ний. Начальные условия для tf и zpk моделей предполагаются нулевыми, и моделирование не будет выполняться, когда они отличаются от нулевых. 1.6. Функции создания и преобразования lti-моделей Обзор функций формирования и преобразования lti-объектов Описанные выше понятия и принципы работы с lti-объектами реализу- ются в виде функций, которые могут применяться только к классу Iti- объектов. Для того чтобы получить общее представление о составе функ- ций, мы будем использовать их представление в виде таблиц, которые ука-
1. Модели линейных систем с постоянными параметрами зывают на их назначение. И уже затем в отдельном разделе мы описываем их в виде справочного материала. Функции, о которых шла речь в этой главе, могут быть классифицирова- ны следующим образом. Создание lti-моделей set Установка свойств ' SS Формирование ss-модели системы в явной форме Коши dss Формирование ss-модели системы в неявной форме Коши tf Формирование tf-модели в форме передаточной функции zpk Формирование zpk-модели filt Формирование модели в форме дискретного фильтра Извлечение информации об lti-моделях get Информация о свойствах ssdata Извлечение данных об ss-модели в явной форме Коши dssdata Извлечение данных об ss-модели в неявной форме Коши tfdata Извлечение данных о tf-модели zpkdata Извлечение данных о zpk-модели Преобразование lti-моделей c2d Построение дискретной модели непрерывной системы d2c Построение непрерывной модели дискретной системы d2d Изменение периода дискретности SS Преобразование моделей к ss-форме tf Преобразование моделей к tf-форме zpk Преобразование моделей к zpk-форме Переопределение базисных функций plus Переопределить функцию a + b (сложение lti-моделей) minus Переопределить функцию a - b (вычитание lti-моделей) mtimes Переопределить функцию а * b (умножение lti-моделей) horzeat Переопределить функцию [а, Ь] (горизонтальная конкатенация lti- моделей) vert cat Переопределить функцию [а; Ь] (вертикальная конкатенация lti- моделей) ctranspose Переопределить функцию а’ (переход к сопряженной lti-модели) transpose Переопределить функцию а." (переход к сопряженной lti-модели) inv Переопределить функцию inv(a) (инверсия lti-модели)
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX mrdivide Переопределить функцию а/b (инверсия lti-модели вида inv(afb) mldivide Переопределить функцию а\Ь (инверсия lti-модели вида inv(b)‘a) Соединение lti-моделей parallel Параллельное соединение (сложение lti-моделей) series Последовательное соединение (умножение lti-моделей) feedback Соединение с обратной связью append Объединение lti-моделей с добавлением входов и выходов connect Объединение ss-моделей с использованием матрицы соединений star Объединение взаимосвязанных многомерных моделей Создание lti-моделей | SET I Установка свойств Синтаксис: set(sys, 'Property', Value) set(sys, 'Property!', Value"!, 'Property2', Value2,...) set(sys, 'Property') set(sys) Описание: Функция set(sys, 'Property1, Value) предназначена для того, чтобы Iti- объекту, описываемому дескриптором sys, присвоить свойство 'Property' со значением Value. Строка 'Property' может содержать либо полное имя свой- ства (например, 'UserData'), либо сокращение, которое понимается одно- значно и может быть набрано в произвольном регистре (например, 'user'). Устанавливаемое свойство должно соответствовать подклассу модели. На- пример, если модель sys является передаточной функцией, то свойство Variable допустимо, а свойство StateName - нет. Функция set(sys, 'Property!', Valuel, 'Property?', Value?,...) позволяет при- своить значения нескольким свойствам с помощью одной команды. Каждая пара свойство/значение ('Property'/Value) соответствует одному конкретно- му свойству. Функция set(sys, 'Property') выводит список допустимых значений для свойства 'Property'. Функция set(sys) выводит полный список свойств для модели sys и их допустимых значений. Пример: Рассмотрим ss-модель одномерной системы в пространстве состояний {а, Ь, с, d}.
1. Модели линейных систем с постоянными параметрами sys = ss(1, 2, 3, 4) а = х1 х1 1 Ь = И х1 2 с = х1 у1 3 d = u1 у1 4 Continuous-time system. Дополним эту модель следующими свойствами: • запаздывание td по входу 0.1с; • имя входной переменной 'Момент'; • заменить значение d на нулевое; • сохранить значение коэффициента передачи модели, используя свойство "Userdata'. Следующий оператор позволяет установить все эти свойства. set(sys,'td',0.1,'inputn', 'Момент', 'd',0, 'user', dcgain(sys)) Проверим установки, используя функцию get(sys) а = 1 Ь = 2 с = 3 d = 0 е = О StateName = {"} Ts = O Td = 0.1 InputName = {'Момент'} OutputName = {''} Notes = {} UserData = -2 Сопутствующие функции; GET, SS, TF, ZPK. SS I Создание ss-моделей Синтаксис: sys = ss(A, В, C, D) sys = ss(A, В, C, D, Ts) sys = ss
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX sys = ss(D) sys = ss(A, В, C, D, Itisys) Описание: Функция sys = ss(A, В, C, D) формирует непрерывную ss-модсль, описы- ваемую четверкой {А, В, С, D}. Функция sys = ss(A, В, С, D, Ts) формирует дискретную ss-модель с пе- риодом дискретности Ts; если Ts = -1, то период дискретности считается неспецифицированным. Функция sys = ss формирует пустую ss-модель со следующей структурой: get(sys) d = [] е = [] StateName = {0x1 cell} Ts = 0 Td = [1x0 double] InputName = {0x1 cell} OutputName = {0x1 cell} Notes = {} UserData = [ ] Функция sys = ss(D) формирует матрицу коэффициентов передачи. Функция sys = ss(A, В, С, D, Itisys) формирует модель в пространстве со- стояний со свойствами, наследуемыми от lti-модели LTISYS. Все вышеперечисленные форматы могут быть дополнены парами свой- ство/значение (Property/Value). Если вы забыли какие-либо свойства lti- моделей, воспользуйтесь командой Itiprops, которая даст необходимую под- сказку. Присваивание D = 0 интерпретируется как нулевая матрица соответст- вующих размеров. Сформированный lti-объект с дескриптором sys принадлежит подклассу ss. Пример: Создать ss-модель дискретной системы, описываемой четверкой {А, В, С, D}, с периодом дискретности 0.05 с, с двумя переменными состояния 'Положение' и 'Скорость', с входом 'Сила', в примечании указать дату созда- ния модели. sys=ss(A, В, С, D, 0.05, 'statename', {'Положение','Скорость'},inputname', 'Сила',... 'notes','Модель создана 18/03/99') Сопутствующие функции: SET, SSDATA, DSS, TF, ZPK.
1. Модели линейных систем с постоянными параметрами I dss I Создание ss-модели в неявной форме Коти Синтаксис: sys = dss(A, В, С, D, Е) sys = dss(A, В, С, D, Е, Ts) sys = dss(A, В, С, D, Е, Hi) Описание: Функция sys = dss(A, В, С, D, Е) формирует непрерывную ss-модель сис- темы, заданной в неявной форме Коши. Функция sys = dss(A, В, С, D, Е, Ts) Е) формирует дискретную ss-модель системы, заданной в неявной форме Коши, с периодом дискретности Ts; ес- ли Ts = -1, то период дискретности считается неспецифицированным. Функция sys = dss(A, В, С, D, Е, Iti) формирует дискретную ss-модель системы, заданной в неявной форме Коши, со свойствами, наследованными от системы Iti, которая, в свою очередь, может принадлежать одному из подклассов ss, tf или zpk. Все вышеперечисленные форматы могут быть дополнены парами свой- ство/значение (Property/Value). Если вы забыли какие-либо свойства lti- моделей, воспользуйтесь командой Itiprops, которая даст необходимую под- сказку. Присваивание D = 0 интерпретируется как нулевая матрица соответст- вующих размеров. Сформированный lti-объект с дескриптором sys принадлежит подклассу ss. Пример: Создать модель подкласса ss с матрицами A=l, В=2, С=3, D=4, Е=5, с за- паздыванием на входе 0.1 с; название входа 'Напряжение', в примечании указать, что модель является примером. sys = dss(1,2,3,4,5, 'tcF, 0.1, ’inputname', ’Напряжение', 'notes', 'Пример') a = х1 х1 1 b = Напряжение х1 2 с = х1 у1 3 d = Напряжение у1 4 0
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX е = х1 х1 5 Input delay: 0.1 Continuous-time system. Сопутствующие функции: SET, DSSDATA, GET, SS. TF Создание tf-моделей Синтаксис: sys = tf(num, den) sys = tf(num, den, Ts) sys = tf sys = tf(M) sys = tf(num, den, tisys) sys = tf(num, den, 'Property Г, Valuel,..., 'PropertyN', ValueN) sys = tf(num, den, Ts, 'Propertyl'. Valuel,..., 'PropertyN', ValueN) Описание: Функция sys = tf(num, den) создает tf-модель непрерывной системы с передаточной функцией num(s)/den(s). Функция sys = tf(num, den, Ts) создает tf-модсль дискретной системы с передаточной функцией num(z)/den(z) с периодом дискретности Ts; если Ts - -1, то период дискретности считается неспецифицированным. Функция sys = tf формирует пустую tf-модель со следующей структурой: get(sys) num = {} den = {} Variable = 's' Ts = 0 Td = [1x0 double] InputName = {0x1 cell) OutputName = {0x1 cell) Notes = {} UserData = [j Функция sys = tf(M) формирует матрицу коэффициентов передачи. Функция sys = tf(num, den, Itisys) формирует tf-модель co свойствами, наследуемыми от lti-модели Itisys. Все вышеперечисленные форматы могут быть дополнены парами свой- ство/значение (Property/Value). Если вы забыли какие-либо свойства lti- моделей, воспользуйтесь командой Itiprops, которая даст необходимую под- сказку. Сформированный lti-объект с дескриптором sys принадлежит подклассу tf.
1. Модели линейных систем с постоянными параметрами По умолчанию сформированные передаточные функции выводятся на экран как функции переменных 's' или 'z', соответственно. Кроме того, мож- но установить другие символы переменных: 'р' для непрерывных моделей и ’zA-l' или 'q' для дискретных моделей, используя для этого свойство 'Variable1. Для одномерных систем по умолчанию num и den являются векторами- строками, состоящими из коэффициентов числителя и знаменателя переда- точной функции и расположенными в порядке убывания степеней перемен- ных s или z либо в порядке возрастания степеней переменных q или zA-l. Для многомерных систем с Nu входами и Ny выходами массивы num и den являются массивами ячеек размера NyxNu, элементы которых num{i, j} и den{i, j} определяют передаточную функцию от входа] к выходу i. Пример 1: Сформировать tf-модсль с одним входом и двумя выходами с матричной передаточной функцией | -5/(5 + !) 1 [(?-55 + 6)/(s2+s)j tf({-5; [1 -5 6]}, {[1 -1]; [1 1 0]}) Transfer function from input to output... -5 #1: ---- s -1 sA2 - 5 s + 6 #2: --------- sA2 + s Пример 2: Сформировать непрерывную tf-модель с одним входом и двумя выхода- ми, с именами для входа 'Ток', для выходов 'Момент' и 'Угловая скорость' и переменной 'р'. num = {[1 1]; 1}; den = {[1 2 2]; [1 0]}; Н = tf(num, den); set(H, 'inputn'.'ToK') set(H, 'outputn',{'Момент' 'Угловая скорость'}) set(H, 'variable','p') H Transfer function from input "Ток" to output... p + 1 Момент: ---------- рл2 + 2 p + 2
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX 1 Угловая скорость: - Р Пример 3: Сформировать дискретную tf-модель с двумя входами и двумя выхода- ми, с периодом дискретности 0.2 с. nums = {1 [1 0];[-1 2] 3}; Ts = 0.2; Н = tf(nums,[1 0.3], Ts) Transfer function from input 1 to output... 1 #1: ----- z + 0.3 -z + 2 # 2: --- z + 0.3 Transfer function from input 2 to output... z # 1:---- z + 0.3 3 # 2:---- z + 0.3 Sampling time: 0.2 Правила замены переменных для дискретных систем. В теории управления и цифровой обработке сигналов используются различные пра- вила для задания дискретных передаточных функций. В теории управления используют переменную z и располагают многочлены числителя и знамена- теля в порядке убывания степеней этой переменной. Например, g(z) = z2/(z2+2z+3). Здесь многочлены num и den задаются векторами-строками [1 0 0] и [1 2 3], соответственно. С другой стороны, при цифровой обработке сигналов предпочитают записывать эту передаточную функцию как функ- цию переменной гЛ-1 и для приведенного выше примера определяют ее числитель равным единице (вместо [1 0 0]), а знаменатель как [1 2 3], т. е. h(zA-l) = 1/(1 + 2zA-l + 3z Л-2). Эти два соглашения входят в противоречие друг с другом, когда числи- тель и знаменатель имеют различные длины. Чтобы быть совместимой с обеими формами записи, функция tf включает условие, основанное на вы- боре переменной:
1. Модели линейных систем с постоянными параметрами Переменная Правило z (по умолча- нию) Для задания многочлена akzk + ... + a1z + а0 использовать вектор- строку [ак ... а1 аО] (коэффициенты расположены в порядке убыва- ния степеней переменной z) 'z'M', 'q' Для задания многочлена Ь0 + b1z-1 + ... + bkz-k использовать век- тор-строку [Ь0 ... Ы bk] (коэффициенты расположены в порядке возрастания степени переменной zA-1) Например, функция g = tf([l 1], [1 2 3], 0.1) определяет дискретную пе- редаточную функцию с переменной z вида g(z) = (z+l)/(z2+2z+3). Функция h = tf([l 1], [1 2 3], 0.1, 'variable', 'zA-l') определяет дискретную передаточную функцию h(z"’) = (1 + z “' + 3z *2) = zg(z). Для задания дискретной передаточной функции в формате цифрового фильтра следует использовать команду flit. Пример 4: Заменить переменную следующей передаточной функции на zA-l: h = tf([1 1],[1 2 3],0.1) Transfer function: z +1 zA2 + 2 z + 3 Sampling time: 0.1 g = h; set(g,'variable','zA-1'), g Transfer function: zA-1 + zA-2 1 + 2 zA-1 + 3 zA-2 Sampling time: 0.1 Сопутствующие функции: FILT, TFDATA, GET, SET, LTIPROPS, ZPK, SS. IZPK I Создание zpk-моделей Синтаксис: sys = zpk(z, p, k) sys = zpk(z, p, k, Ts) sys = zpk(M) sys = zpk(z, p, k, Itisys) sys = zpk(z, p, k, 'PropertyT, Valuel,.... 'PropertyN', ValueN) sys = zpk(z, p, k, Ts, 'PropertyT, Valuel, ..., 'PropertyN', ValueN) zsys = zpk(sys) zsys = zpkfsys, 'inv') % только для систем sys подкласса ss Описание: Функция sys = zpk(z, p, k) формирует zpk-модель непрерывной системы.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Функция sys = zpk(z, p, k, Ts) создает zpk-модель дискретной системы с периодом квантования Ts; если Ts = -1, то период дискретности считается нсспецифицированным. Функция sys = zpk формирует пустую zpk-модсль со следующей струк- турой: get(sys) Variable = 's' Ts =0 Td = [1x0 double] InputName = {0x1 cell) OutputName = {0x1 cell] Notes = {} UserData = [] Функция sys = zpk(M) формирует матрицу коэффициентов передачи. Функция sys = zpk(num, den, Itisys) формирует zpk-модель co свойства- ми, наследуемыми от lti-модсли Itisys. Все вышеперечисленные форматы могут быть дополнены парами свой- ство/сначенис (Property/Value). Если вы забыли какие-либо свойства lti- моделей, воспользуйтесь командой Itiprops, которая даст необходимую под- сказку. Сформированный lti-объект с дескриптором sys принадлежит под- классу zpk. Для одномерных систем z и р являются векторами, составленными из нулей и полюсов; если нули или полюсы отсутствуют, массив является пус- тым [ ]; к - скалярный коэффициент. Для многомерных систем с Nu входами и Ny выходами: • z и р являются массивами ячеек размера NyxNu, где элементы z{i, j} и p{i, j} содержат нули и полюсы передаточной функции по входу j и вы- ходу I; • к - двумерный массив обобщенных коэффициентов передачи. Пример 1: Построить дискретную zpk-модель с нсспецифицированным периодом дискретности. z = {D;-0.5}; р = {0.3; [0.1+i 0.1-i]}; k = [1;2]; Н = zpk(z, р, к, -1) Zero/pole/gain from input to output...
7. Модели линейных систем с постоянными параметрами 1 #1: ---- (z-0.3) 2 (z+0.5) #2:------------ (zA2 - 0.2z+ 1.01) Sampling time: unspecified Сопутствующие функции: ZPKDATA, GET, SET, LTIPROPS, TF, SS. | HLT | Создание tf-модели в формате цифрового фильтра Синтаксис: sys = filt(num, den) sys = filt(num, den, Ts) sys = filt(M) Описание: Функция sys = filt(num, den) формирует tf-модель в формате цифрового фильтра с неспсцифицированным периодом дискретности вида H(z'*) = num(z"I)/dcn(z'1). Функция sys = filt(num, den, Ts) формирует tf-модель в формате цифро- вого фильтра с периодом дискретности Ts вида Hfz’1) = = num(z',)/den(z'1). Функция sys = filt(M) формирует матрицу коэффициентов передачи. Во всех приведенных выше форматах за указанными входными аргу- ментами могут следовать пары свойство/значение (Property/Value). Для одномерной системы num и den векторы-строки, в которых содер- жатся коэффициенты числителя и знаменателя передаточной функции в по- рядке возрастания степеней z’1. В многомерном случае num и den являются массивами ячеек векторов-строк таких, что num{i, j} и den{i, j) определяют передаточную функцию от входа j к выходу /. Сформированный lti-объект с дескриптором sys принадлежит подклассу tf. Пример: Сформировать tf-модсль в формате цифрового фильтра по двумя входам с нсспецифицированным периодом дискретности и именами входов 'Канал 1' и 'Канал 2'. num = {1 , [1 0.3]}; den = {[112] ,[5 2]}; Н = filt(num, den, 'inputname', {'Канал 1' 'Канал 2'})
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Transfer function from input "Канал 1" to output: 1 1 + z*-1 + 2 zA-2 Transfer function from input "Канал 2” to output: 1 + 0.3 zM 5 + 2 zM Sampling time: unspecified Сопутствующие функции: TF, ZPK, SS. Информация об lti-моделях J GET | Информация о свойствах lti-моделей Синтаксис: Value = get(sys, 'PropertyName') Struct = get(sys) get(sys) Описание: Функция Value = get(sys, 'PropertyName') возвращает текущее значение свойства PropertyName для lti-объекта с дескриптором sys. Строка 'PropertyName' может содержать либо полное имя свойства (например, 'UserData'), либо сокращение, которое понимается однозначно и может быть набрано в произвольном регистре (например, 'user'). Функция Struct = get(sys) формирует информацию о структуре lti- объекта с дескриптором sys в виде массива записей. Команда get(sys) выводит, на экран свойства lti-объекта с дескриптором sys и их текущие значения, если объект существует, и допустимые значения, если lti-объект не определен. Пример: Рассмотрим tf-модель дискретной одномерной системы, передаточная функция которой задана оператором h = tf(1,[1 2],0.1,'inputname','Напряжение','user','Студент'); Информацию о текущих значениях свойств lti-объекта с дескриптором h можно получить, используя оператор get(h) num = {[0 1]} den = {[1 2]} Variable = 'z' Ts = 0.1 Td = Q InputName = {'Напряжение'}
1. Модели линейных систем с постоянными параметрами OutputName = {’’} Notes = {} UserData = 'Студент' Информацию о структуре lti-объекта с дескриптором h можно получить, используя оператор S = get(h) S = num: {1x1 cell} den: {1x1 cell} Variable: 'z' Ts: 0.1 Td:[] InputName: {1x1 cell} OutputName: {1x1 cell} Notes: {} UserData: 'Студент' Информацию об отдельных свойствах lti-объекта с дескриптором h мож- но получить, используя операторы num = get(h.'num') num{1} num = [1x2 double] ans =01 get(h,'ts’) ans = 0.1000 либо h.num{1} ans = 0 1 Ts = h.ts Ts = 0.1 Замечание: Альтернативой оператору Value = gct(sys, 'PropertyName') является сле- дующая эквивалентная форма присваивания, используемая при работе с массивами записей: Value = sys.PropertyName. Сопутствующие функции: SET, TFDATA, ZPKDATA, SSDATA. SSDATA| Извлечение данных об ss-модели в явной форме Коши Синтаксис: [А, В, С, D] = ssdata(sys) [А, В, С, D, Ts, Td] = ssdata(sys)
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Описание: Функция [Л, В, С, D] = ssdata(sys) возвращает значения четверки матриц {А, В, С, D} для lti-объекта с дескриптором sys. Если lti-объект не является моделью подкласса ss, то в первую очередь он преобразуется в ss-модель. Функция [А, В, С, D, Ts, Td] = ssdata(sys) позволяет извлечь информа- цию о четверке матриц {А, В, С, D} для lti-объекта с дескриптором sys, а также о значениях периода дискретности Ts и запаздываниях на входах Td. Для непрерывных моделей Ts = 0, а каждый элемент вектора Td соответст- вует одному входу. Для дискретных моделей вектор Td является пустым. Другие свойства lti-объекта с дескриптором sys доступны по команде get или при прямом обращении к элементам массива записей. Сопутствующие функции: GET, DSSDA ТА. DSSDATA | Извлечение данных об ss-модели в неявной форме Коши Синтаксис: [А, В, С, D, Е] - dssdata(sys) [А, В, С, D, Е, Ts, Td] = dsdata(sys) Описание: Функция [А, В, С, D, Е] = dssdata(sys) возвращает значения пятерки мат- риц {А, В, С, D, Е} для lti-объекта с дескриптором sys. Эта информация со- ответствует ss-модели в неявной форме Коши. Функция dssdata эквивалент- на функции ssdata, если ss-модель записана в явной форме Коши. Функция [А, В, С, D, Ts, Td] = dssdata(sys) позволяет извлечь информа- цию о пятерке матриц {А, В, С, D, Е} для lti-объекта с дескриптором sys, а также о значениях периода дискретности Ts и запаздываниях на входах Td. Для непрерывных моделей Ts = 0, а каждый элемент вектора Td соответст- вует одному входу. Для дискретных моделей вектор Td является пустым. Другие свойства lti-объекта с дескриптором sys доступны по команде get или при прямом обращении к элементам массива записей. Сопутствующие функции: GET, SSDA ТА. | TFDATA | Извлечение данных о tf-модели Синтаксис: [num, den] = tfdata(sys) [num, den, Ts, Td] = tfdata(sys) [num, den] = tfdata(sys, V)
1. Модели линейных систем с постоянными параметрами Описание: Функция [num, den] = tfdata(sys) возвращает матричную передаточную функцию для lti-объекта с дескриптором sys в виде описания массивов чис- лителей и знаменателей. Массивы числителей num и знаменателей den яв- ляются массивами ячеек с числом строк, равным числу выходов, и числом столбцов, равным числу входов, а их индексы (i, j) определяют передаточ- ную функцию от входа / до выхода i. Если lti-объект не является моделью подкласса tf, то в первую очередь он преобразуется в tf-модель. Функция [num, den, Ts, Td] = tfdata(sys) также возвращает значения пе- риода дискретности Ts и запаздывания на входах Td. Для непрерывных мо- делей Ts = 0, а каждый элемент вектора Td соответствует одному входу. Для дискретных моделей вектор Td является пустым. Для одномерных систем функция [num, den] = tfdata(sys, 'v') возвращает числитель и знаменатель в виде числовых значений векторов-строк, а не в виде описания размерностей массива ячеек. Другие свойства lti-объекта с дескриптором sys доступны по команде get или при прямом обращении к элементам массива записей. Сопутствующие функции: GET, SSDATA, ZPKDATA. | ZPKDATA | Извлечение данных о zpk-модели Синтаксис: [z, р, k] = zpkdata(sys) [z, р. к, Ts, Td] = zpkdata(sys) [z, p. к] = zpkdata(sys, V) Описание: Функция [z, p, к] = zpkdata(sys) возвращает нули, полюсы и обобщенные коэффициенты передачи для каждого канала lti-объекта с дескриптором sys. Массивы отсек z, р имеют число строк, равное числу выходов, и число столб- цов, равное числу входов; их индексы (i, j) задают элементы массива ячеек, ко- торые содержат нули, полюсы и обобщенный коэффициент передачи для пере- даточной функции от входа ] до выхода i. Если lti-объект не является моделью подкласса zpk, то в первую очередь он преобразуется в zpk-модсль. Функция [z, р, k, Ts, I’d] = zpkdata(sys) также возвращает значения пе- риода дискретности Ts и запаздывания на входах Td. Для непрерывных мо- делей Ts = 0, а каждый элемент вектора Td соответствует одному входу. Для дискретных моделей вектор Td является пустым. Для одномерных систем функция [z, р, k] = zpkdata(sys, V) возвращает нули и полюсы знаменателя в виде числовых значений векторов-столбцов, а не в виде описания размерностей массива ячеек. й
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Другие свойства lti-объскта с дескрип тором sys доступны по команде get или при прямом обращении к элементам массива записей. Сопутствующие функции: GET, TFDATA, SSDATA. Преобразование lti-моделей c2d Построение дискретной модели непрерывной системы d2c Построение непрерывной модели дискретной системы d2d Изменение периода дискретности и запаздывания по входам SS Преобразование моделей в ss-форму tf Преобразование моделей в tf-форму zpk Преобразование моделей в zpk-форму | C2D | Построение дискретной модели непрерывной системы Синтаксис: SysD = c2d(SysC, Ts) SysD = c2d(SysC. Ts. 'метод') SysD = c2d(SysC, Ts, 'PREWARP', Wc) [SysD, G] = c2d(SysC, Ts, 'FOH') Описание: Функция SysD = c2d(SysC, Ts) реализует построение дискретной моде- ли SysD непрерывной системы SysC с периодом дискретности Ts и с использованием экстраполятора нулевого порядка по умолчанию. Функция SysD = c2d(SysC, Ts, 'метод') реализует построение дискретной модели SysD непрерывной системы SysC с периодом дискретности Ts и с использованием одного из нижеперечисленных методов экстраполяции: Метод экстраполяции Описание метода ZOH Экстраполятор нулевого порядка FOH Экстраполятор первого порядка TUSTIN Билинейная аппроксимация Тастина PREWARP Аппроксимация Тастина с коррекцией MATCHED Метод соответствия нулей и полюсов Функция SysD = c2d(SysC, Ts, 'PREWARP', Wc) реализует построение дискретной модели SysD непрерывной системы SysC с периодом дискрет- ности Ts и с использованием аппроксимации Тастина с коррекцией, пара- метр Wc задает частоту, на которой выполняется согласование частотных характеристик непрерывной и дискретной моделей. Эта функция примени- ма только для одномерных моделей.
1. Модели линейных систем с постоянными параметрами Функция [SysD, G] = c2d(SysC, Ts, 'FOH') реализует построение дис- кретной модели SysD непрерывной системы SysC с периодом дискретности Ts и с использованием экстраполятора первого порядка. Выходная матрица G позволяет для модели SysC, заданной в подклассе ss, с вектором началь- ных условий хО, вычислить эквивалентное начальное состояние по формуле хО - G*u(l, :). Пример: Построить дискретную модель с экстраполятором первого порядка и пе- риодом дискретности 0.1 с для непрерывной системы с запаздыванием по входу 0.35 с. Н = tf([1 -1], [1 4 5], 'td', 0.35) Hd = c2d(H, 0.1,'fotT) Transfer function: s-1 sA2 + 4 s + 5 Input delay: 0.35 Transfer function: 0.0115 zA3 + 0.0456 zA2 - 0.0562 z - 0.009104 zA6 - 1.629 zA5 + 0.6703 zA4 Sampling time: 0.1 На рис. 8 показаны переходные процессы в непрерывной и дискретной моделях. Сопутствующие функции: D2C, D2D
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX [ D2C | Построение непрерывной модели дискретной системы Синтаксис: SysC - d2c(SysD) SysC = d2c(SysD, Ts, 'метод') Описание: Функция SysC = d2c(SysD, Ts) реализует построение непрерывной моде- ли SysC дискретной системы SysD при условии, что модель дискретной системы соответствует экстраполятору нулевого порядка по умолчанию. Функция SysC = c2d(SysD, 'метод') реализует построение непрерывной модели SysC дискретной системы SysD при условии, что модель дискрет- ной системы соответствует одному из нижеперечисленных методов экстра- поляции: Метод экстраполяции Описание метода ZOH Экстраполятор нулевого порядка FOH Экстраполятор первого порядка TUSTIN Билинейная аппроксимация Тастина PREWARP Аппроксимация Тастина с коррекцией MATCHED Метод соответствия нулей и полюсов Пример: Рассмотрим дискретную систему с периодом дискретности 0.1 с и с пе- редаточной функцией H(z) = (z - ^/(z2 + z + 0.3). Построим непрерывную модель в предположении, что ей соответствует дискретная модель с экстра- полятором нулевого порядка; затем восстановим дискретную модель и сравним ее с исходной. Н = tf([1 -1], [1 1 0.3], 0.1) Нс = d2c(H) Hd = c2d(Hc, 0.1) Transfer function: z- 1 zA2 + z + 0.3 Sampling time: 0.1 Transfer function: 121.7 s + 1.878e-012 sA2 + 12.04 s + 776.7
1. Модели линейных систем с постоянными параметрами Transfer function: z-1 zA2 + z + 0.3 Sampling time: 0.1 Алгоритм: Для моделей в пространстве состояний восстановление непрерывной модели с экстраполятором нулевого порядка основано на вычислении лога- рифма от матрицы. Ограничения: Аппроксимация Тастина не определена для систем с полюсами z = -1 и плохо обусловлена для систем с полюсами, близкими к z = -1. Восстановление непрерывной модели с экстраполяцией 'ZOH' не приме- нимо к дискретным моделям с нулевыми полюсами. Кроме того, этот метод приводит к росту порядка непрерывной модели, если исходная дискретная система имеет отрицательные действительные полюсы. Это связано с тем, что функция логарифма от матрицы отображает отрицательные действи- тельные полюсы в комплексные. Пример: Преобразовать дискретную tf-модель с передаточной функцией /7|(z) = (z + 0.2)/(z + 0.5)(z2 + z + 0.4) и периодом дискретности 0.1 с в непрерывную. Ts = 0.1; Н = zpk(-0.2, -0.5,1, Ts) * tf(1, [1 1 0.4], Ts) Нс = zpk(d2c(tf(H))) c2d(Hc, Ts) Zero/pole/gain: (z+0.2) (z+0.5) (zA2 + z + 0.4) Sampling time: 0.1 Warning: System order was increased to handle real negative poles. Zero/pole/gain: -33.6556 (s-6.273) (sA2 + 28.29s + 1041) (sA2 + 9.163s + 637.3) (sA2 + 13.86s + 1035) Zero/pole/gain: (z+0.5) (z+0.2) (z+0.5)A2 (zA2 + z + 0.4) Sampling time: 0.1
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX После сокращения нуля и полюса, равного -0.5, получим исходную дис- кретную модель. Сопутствующие функции: C2D, D2D. рР2Р~| Изменение периода дискретности и учет запаздывания по входам Синтаксис: sys = d2d(sys, Ts) sys = d2d(sys, [ ], Nd) Описание: Функция sys = d2d(sys, Ts) формирует дискретную модель системы sys с новым периодом дискретности Ts. При этом предполагается, что дискрет- ной модели соответствует экстраполятор нулевого порядка и соответст- вующее преобразование равносильно такой последовательности преобразо- ваний: sysl = c2d(d2c(sys), Ts). Функция sys = d2d(sys, [ ], Nd) формирует дискретную модель с за- паздываниями по входам, которые задаются вектором целочисленных множителей Nd, так что вектор запаздываний по входам равен Nd*Ts. Если запаздывание по всем входам одинаково, то оно может быть задано одним числом Nd. Пример: Рассмотрим дискретную zpk-модсль H(z) = (z - 0.7)/(z - 0.5) с периодом дискретности 0.1 с; требуется преобразовать ее в дискретную модель с так- том дискретности 0.05 с. Н1 = zpk(0.7, 0.5,1, 0.1); Н2 = d2d(H1, 0.05) Zero/pole/gain: (z-0.8243) (z-0.7071) Sampling time: 0.05 Для учета запаздывания на входе, равного 3Ts, следует использовать оператор H3 = d2d(H1,0,3) Zero/pole/gain: (z-0.7) zA3 (z- Э.5) Sampling time: 0.1 Отметим, что число 3 означает три периода квантования, а не 3 с. Сопутствующие функции: D2C, C2D.
1. Модели линейных систем с постоянными параметрами Преобразование в ss-модель Синтаксис: sys = ss(sys) Описание: Функция sys = ss(sys) преобразует lti-модель sys произвольного подклас- са в подкласс ss. Пример: Вычислить реализацию передаточной функции в пространстве состояний: Н = [tf([1 1],[1 3 3 2]); tf([1 0 3],[1 1 1])] ss(H) Transfer function from input to output... s + 1 #1: --------------- sA3 + 3 sA2 + 3 s + 2 sA2 +3 #2: --------- sA2 + s + 1 x1 x2 x3 x1 -2 0 0.5 x2 0 -1 -0.5 x3 0 2 0 b = u1 x1 0 x2 2 x3 0 c = x1 x2 x3 y1 -0.5 0 0.25 y2 0 -0.5 0.5 d = u1 y1 0 y2 1 Continuous-time system. Эта реализация в виде ss-модели третьего порядка является минимальной. Ограничения: Функция гарантирует создание ss-модели, соответствующей минималь- ной реализации, только для одномерных динамических систем. Сопутствующие функции • TF, ZPK.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Преобразование в tf-модель Синтаксис: tfsys = tf(sys) tfsys = tf(sys, 'inv') Описание: Функция sys = tf(sys) преобразует произвольную Iti модель sys в модель подкласса tf. Функция sys = tf(sys, 'inv') может быть применена только для моделей из подкласса ss с одинаковым количеством входов и выходов и использует функцию инверсии перед се преобразованием в подкласс tf. Хотя этот алго- ритм и может оказаться более быстродействующим, но он характеризуется низкой точностью в случае большой размерности моделей и при малых ко- эффициентах передачи. Пример: Найти передаточную функцию системы, заданной в пространстве со- стояний. sys = ss([—2 -1;1 -2],[1 1;2 —1],[1 0],[0 1]) tf(sys) а = х1 х2 х1 -2 -1 х2 1 -2 Ь = u1 u2 х1 1 1 х2 2 -1 с = х1 х2 у1 1 О d = u1 u2 у1 0 1 Continuous-time system. Transfer function from input 1 to output: s sA2 + 4 s + 5 Transfer function from input 2 to output: sA2 + 5 s + 8 sA2 + 4 s + 5 |68]
1. Модели линейных систем с постоянными параметрами Алгоритм преобразования в tf-модель использует функцию poly для мо- делей подкласса zpk и функции tzero и pole для моделей подкласса ss. Сопутствующие функции: FILT, TFDATA, GET, SET, LTIPROPS, ZPK, SS. | ZPK ~| Преобразование в zpk-модель Синтаксис: zsys = zpk(sys) zsys = zpk(sys, 'inv') % только для систем sys подкласса ss Описание: Функция zsys = zpk(sys) преобразует произвольную lti-модель sys в под- класс zpk. Результат sys принадлежит подклассу zpk. Функция zsys = zpk(sys, 'inv') использует быстрый алгоритм инверсии для преобразования ss-модели в подкласс zpk. Хотя этот алгоритм и может оказаться более быстродействующим, но он характеризуется низкой точно- стью в случае большой размерности моделей и при малых коэффициентах передачи. Пример: Преобразовать tf-модель в zpk-модель. num=[-10 20 0]; den=[1 7 20 28 19 5); h = tf(num, den) zpk(h) Transfer function: -10 sA2 + 20 s sA5 + 7 sA4 + 20 sA3 + 28 sA2 + 19 s + 5 Zero/pole/gain: -10s(s-2) (s+1)A3(sA2 + 4s + 5) Алгоритм: Алгоритм преобразования к zpk-модели использует функцию poly для мо- делей подкласса tf и функции tzero и pole для моделей подкласса ss. Сопутствующие функции: ZPKDATA, GET, SET, LTIPROPS, TF, SS.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Переопределение базисных функций | PLUS, MINUS~~| Синтаксис: sys.lti = sysl.lti + sys2.lti sys = plus(sys1, sys2) Сложение и вычитание lti-моделей sys.lti = sysl.lti - sys2.lti sys = minus(sys1, sys2) Описание: Оператор sys.lti = sysl.lti + sys2.1ti выполняет операцию сложения двух lti-моделей, что равносильно их параллельному соединению. Функция sys = plus(sysl, sys2) предназначена для сложения двух объек- тов; она переопределена для моделей подклассов ss, tf, zpk и соответствует параллельному соединению lti-объектов. Оператор sys.lti = sysl.lti - sys2.1ti выполняет операцию вычитания двух lti-моделей, что равносильно следующей операции сложения: sys.lti = sysl.lti + (- sys2.1ti), для одной из которых знак изменяется на противопо- ложный. Функция sys = minus(sysl, sys2) предназначена для вычитания двух объ- ектов; она переопределена для моделей подклассов ss, tf, zpk и соответствует параллельному соединению lti-объектов, для одного из кото- рых знак изменяется на противоположный. Сопутствующие функции: PARALLEL, MINUS, UPLUS. I MTIMES I Умножение lti-моделей Синтаксис: sys.lti = sysl .Iti * sys2.lti sys = mtimes(sys1. sys2) Описание: Оператор sys.lti = sysl.lti * sys2.1ti выполняет операцию умножения двух lti-моделей, что равносильно их последовательному соединению. Функция sys = mtimes(sysl, sys2) предназначена для умножения двух объектов; она переопределена для моделей подклассов ss, tf, zpk и соответствует последовательному соединению lti-объектов. Сопутствующие функции: MLDIVIDE, MRDIVIDE, INV.
1. Модели линейных систем с постоянными параметрами HORZCAT, ERTCAT Конкатенация lti-моделей Синтаксис: sys.lti = horzcat(sys1 .Iti, sys2.lti,...) sys.lti = vertcat(sys1 .Iti, sysl.lti, ...) sys = [sysl, sys2,...] sys = [sysl; sys2;...] Описание: Функция sys.lti = horzcat(sysl.lti, sys2.1ti, ...) предназначена для объ- единения lti-объектов в форме горизонтальной конкатенации. Оператор sys = [sysl, sys2, ...] выполняет операцию горизонтальной кон- катенации для моделей подклассов ss, tf, zpk. Функция sys.lti = vertcat(sysl.lti, sys2.1ti, ...) предназначена для объедине- ния lti-объектов в форме вертикальной конкатенации. Оператор sys = [sysl; sys2; ...] выполняет операцию вертикальной конка- тенации для моделей подклассов ss, tf, zpk. Сопутствующие функции: PARALLEL, MINUS, PLUS. CTRANSPOSE, Транспонирование lti-моделей TRANSPOSE Синтаксис: sys.lti = (sys.lti)’ sys.lti = (sys.lti).’ sysl = ctranspose(sys) sysl = transpose(sys) Описание: Оператор sys.lti = (sys.lti)’ изменяет свойства lti-объекта так, чтобы они соответствовали его сопряженной модели. Функция sysl= ctranspose(sys) предназначена для построения сопряжен- ных моделей для lti-объектов из подклассов ss, tf, zpk. SS-модели: • для непрерывных моделей, заданных четверкой {А, В, С, D}, функция ctranspose возвращает четверку {-А', -С, В', D'}; • для дискретных моделей, заданных четверкой {А, В, С, D}, функция ctranspose возвращает четверку {АЛ, АА*С, -В'*АА, D'-lT*AA*C'}, где АА = inv(A'). Tf и zpk модели: • для непрерывных моделей с передаточной функцией H(s) функция ctranspose возвращает передаточную функцию H(-s)'; • для дискретных моделей с передаточной функцией H(z) функция ctrans- pose возвращает передаточную функцию H(z'')’. 0
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Для zpk-моделей на выходе формируются нули, полюсы и обобщенные коэффициенты передачи соответствующих передаточных функций. Оператор sys.lti = (sys.lti).' изменяет свойства lti-объекта так, чтобы они соответствовали операции транспонирования lti-модели. Функция sysl= transpose(sys) предназначена для транспонирования lti- объектов из подклассов ss, tf, zpk. SS-модели: • для непрерывных моделей и дискретных моделей, заданных четверками {А, В, С, D}, функция transpose возвращает четверки {А.', С.', В.', D.'}; Tf и zpk модели: • для непрерывных моделей с передаточной функцией H(s) функция trans- pose возвращает передаточную функцию H(s).'; • для дискретных моделей с передаточной функцией H(z) функция trans- pose возвращает передаточную функцию H(z).'. Для zpk-моделей на выходе формируются нули, полюсы и обобщенные коэффициенты передачи соответствующих передаточных функций. Сопутствующие функции: PARALLEL, MINUS, PLUS. | |NV | Инверсия lti-моделей Синтаксис: isys = inv(sys) Описание: Функция isys = inv(sys) выполняет инверсию входа и выхода системы так, что линейное соответствие вида у = G(s)u преобразуются в соответст- вие вида и = H(s)y, где H(s) = G(s)'1. Эта операция определена только для систем с одинаковым числом входов и выходов и обратимой матрицей D. Пример: Рассмотрим систему с двумя входами и двумя выходами, которая опи- сывается матричной передаточной функцией [1 — ] H{s) = ,s + 1 , О 1 и построим ее инверсную модель. Н = [1 tf(1,[1 1]);01]; Hi = inv(H) 0
1. Модели линейных систем с постоянными параметрами Transfer function from input 1 to output... #1: 1 #2: 0 Transfer function from input 2 to output... -1 #1: — s + 1 # 2: 1 Нетрудно убедиться, что полученная матрица является обратной по от- ношению к исходной: H*Hi Transfer function from input 1 to output... # 1: 1 # 2: 0 Transfer function from input 2 to output... # 1: 0 # 2: 1 Static gain. Ограничения: He следует применять функцию inv к моделям с обратными связями: На первый взгляд выглядит привлекательным вычислить передаточную функцию замкнутой системы с помощью функции inv(l+g*h) * g, однако это приводит к неверным результатам. Действительно,если g = zpk([], 1, 1) Zero/pole/gain: 1 (s-1) h = tf([21], [1 0]) Transfer function: 2s + 1 s
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX то оператор cloop = inv(1+g*h) * g Zero/pole/gain: s(s-1) (s-1) (sA2 + s + 1) создает модель замкнутой системы третьего порядка с сокращающимися неустойчивыми нулем и полюсом. Чтобы избежать этого, следует использовать функции feedback или star: cloop = feedback(g, h) Zero/pole/gain: s (sA2 + s + 1) MRDIVIDE, MLDIVIDE Транспонирование lti-моделей Синтаксис: sys = sys1/sys2' sys = sys1\sys2’ sys = mrdivide(sys1, sys2) sys = mldivide(sys1, sys2) Описание: Оператор sys = sysl/sys2 выполняет операцию правого деления, что со- ответствует построению модели вида sysl*inv(sys2). Функция sys = mrdividefsys 1, sys2) предназначена для построения моде- лей вида sysl *inv(sys2) для lti-объсктов из подклассов ss, tf, zpk. Оператор sys = sysl\sys2 выполняет операцию левого деления, что соот- ветствует построению модели вида inv(sysl)*sys2 . Функция sys = mldivide(sysl, sys2) предназначена для построения моде- лей вида inv(sysl)*sys2 для lti-объектов из подклассов ss, tf, zpk. Сопутствующие функции: INV, MTIMES. Соединение lti-моделей | PARALLEL~| Параллельное соединение lti-моделей Синтаксис: sys = parallel(sys1, sys2) sys = parallel(sys1, sys2, inp1, inp2, out1, out2)
1. Модели линейных систем с постоянными параметрами Описание: Функция sys = parallel(sysl, sys2) реализует параллельное соединение двух lti-моделей, показанное в виде структурной схемы на рис. 9. Обе модели долж- ны быть непрерывными или дискретными с одинаковыми периодами дискрет- ности. Допустимо использование безынерционных моделей, описываемых мат- рицами статических коэффициентов передачи. Эта функция эквивалентна операции сложения lti-моделей sys = = sysl + sys2. Функция sys = parallel(sysl, sys2, inpl, inp2, outl, out2) позволяет реали- зовать более общую форму параллельного соединения двух lti-моделей, по- казанную в виде структурной схемы на рис. 10. Векторы inpl и inp2 определяют, какие номера входов системы sysl и какие номера входов системы sys2 соединяются. Аналогично векторы outl и out2 определяют, какие номера выходов системы sys 1 и какие номера выхо-
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX дов системы sys2 суммируются. Результирующая модель sys имеет входом вектор [vl; u; v2] и выходом вектор [zl; у; z2]. Сопутствующие функции: APPEND, SERIES, FEEDBACK. | SERIES | Последовательное соединение lti-моделей Синтаксис: sys = series(sys1, sys2) sys = series(sys1, sys2, outputs'!, inputs2) Описание: Функция sys = seriesfsysl, sys2) реализует последовательное соединение двух lti-моделей, показанное в виде структурной схемы на рис. 11. Обе мо- дели должны быть непрерывными или дискретными с одинаковыми перио- дами дискретности. Допустимо использование безынерционных моделей, описываемых матрицами статических коэффициентов передачи. sys Рис. 11 Эта функция эквивалентна операции умножения lti-моделей sys = = sys2 * sysl. Функция sys = series(sysl, sys2, outputs 1, inputs2) позволяет реализовать более общую форму последовательного соединения двух lti-моделей, пока- занную в виде структурной схемы на рис. 12. sys Рис. 12
1. Модели линейных систем с постоянными параметрами Векторы outputs 1 и inputs! указывают, какие номера выходов системы sysl к каким номерам входов системы sys2 должны быть подсоединены. Получен- ная модель sys имеет входом вектор и и выходом вектору. Пример: Рассмотрим две модели: ss-модель sysl с пятью входами и четырьмя вы- ходами и ss-модель sys2 с двумя входами и тремя выходами. Выполним по- следовательное соединение этих моделей, когда выходы 2 и 4 модели sysl присоединяются к входам 1 и 2 модели sys2: outputs 1 = [2 4]; inputs2 = [1 2]; sys = series(sys1, sys2, outputs2, inputs'!) Сопутствующие функции: APPEND, PARALLEL, FEEDBACK. | FEEDBACK | Соединение lti-моделей обратной связью Синтаксис: sys = feedback(sys1, sys2) sys = feedback(sys1, sys2, sign) sys = fe.edback(sys1, sys2, feedin, feedout, sign) Описание: Функция sys = feedback(sysl, sys2) возвращает lti-модель с дескриптором sys, соответствующую соединению lti-моделей sysl и sys2 в контур с отри- цательной обратной связью, как это показано на рис. 13’ Замкнутая модель sys имеет вход и и выход у. Обе lti-модели sysl и sys2 должны быть непрерывными или дискретными с одинаковыми периодами дискретности. Правила приоритета определяют подкласс результирующей модели. Чтобы замкнуть систему положительной обратной связью, следует использовать следующее обращение: sys = feedback(sysl, sys2, +1). Функция feedback(sysl, sys2) эквивалентна функции feedback(sysl, sys2, -1). 0
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Функция sys = feedback(sysl, sys2, feedin, feedout) позволяет реализовать более общую форму соединения с обратной связью, показанную в виде структурной схемы на рис. 14. ет, какие ее входы включаются в контур с обратной связью; вектор feedout оп- ределяет, какие выходы системы sysl используются для организации обратной связи. Результирующая lti-модель sys имеет те же входы и выходы, что и сис- тема sysl (с сохранением их порядка). По умолчанию предполагается, что кон- тур замыкается отрицательной обратной связью; для замыкания положитель- ной обратной связью следует использовать обращение вида sys = feedback(sysl, sys2, feedin, feedout, +1). Для более сложных контуров с обратной связью могут оказаться полез- ными функции append и connect. Замечание: Можно применять матрицы статических коэффициентов усиления, на- пример sys = feedback(sysl,2). Однако по крайней мере один из двух аргу- ментов sysl или sys2 должен быть lti-объектом. Для петли обратной связи с двумя матрицами статических коэффициентов усиления kl и к2 следует ис- пользовать функцию sys = feedback(tf(kl),k2). Пример 1: Объединить объект управления G и регулятор Н в контур с отрицательной обратной связью в соответствии со структурной схемой на рис. 15 й
7. Модели линейных систем с постоянными параметрами Рис. 15 G = tf([2 5 1], [1 2 3], 'inputname','Момент', ’outputname’,'Скорость'); H = zpk(-2,-10, 5); Cloop = feedback(G, H) Zero/pole/gain from input "Момент" to output "Скорость": 0.18182 (s+10) (s+2.281) (s+0.2192) (s+3.419) (sA2 + 1.763s + 1.064) Согласно иерархии приоритетов, результирующая модель является мо- делью подкласса zpk, которая тем не менее наследовала имена входа и вы- хода от модели G. Ограничения: Соединение с обратной связью не должно содержать алгебраических пе- тель. Для ss-моделей в пространстве состояний это условие заключается в том, что матрицы прямой передачи входа D, и D2 таковы, что матрица I +D|D2 для контура с отрицательной обратной связью и матрица I-D(D2 для контура с положительной обратной связью являются невырожденными. Сопутствующие функции: STAR, SERIES, PARALLEL, CONNECT. | APPEND~| Объединение lti-моделей Синтаксис: sys = append(sys1, sys2,.... sysN) Описание: Функция sys = append(sysl, sys2, ..., sysN) объединяет входы и выходы lti-моделей sysl, ..., sysN и формирует агрегированную модель, показанную на рис. 16.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Для tf-моделей с передаточными функциями H(s), H2{s), Hf^s) ре- зультирующая модель sys характеризуется передаточной функцией в виде диагональной блочной матрицы H(s)= diag[Hl(s), H2(s), ..., HN(s)]. Для ss-моделей sysl и sys2, заданных в пространстве состояний четвер- ками {Аь Вь Cb Di} и {А2, В2, С2, D2}, функция append(sysl, sys2) создает модель в пространстве состояний: *1 *2 О X] Z>i И 72 С2 Х2 О О Z)2 Щ и2 о Входные аргументы функции sysl, sysN могут быть lti-моделями лю- бого подкласса. Допустимы безынерционные модели, описываемые матри- цами статических коэффициентов передачи, однако по крайней мере один аргумент должен быть lti-объектом. Все модели должны быть либо непре- рывными, либо дискретными с одинаковым периодом дискретности. При объединении моделей различных типов результирующий тип определяется на основе иерархии предпочтений. Ограничений на количество входных ар- гументов не накладывается. Пример: Построить объединение безынерционной и tf и ss моделей sysl = tf(1,[1 0]) sys2 = ss(1, 2, 3, 4) sys = append(sys1, 10, sys2)
1. Модели линейных систем с постоянными параметрами Transfer function: 1 х1 х1 1 U1 х1 2 х1 У1 3 d = u1 у1 4 Continuous-time system, а = х1 х2 х1 О О х2 0 1 Ь = u1 u2 u3 х1 1 О О х2 0 0 2 с = х1 х2 у1 1 О у2 О О уЗ 0 3 d = ul u2 u3 у1 О О О у2 О 10 О уЗ 0 0 4 Continuous-time system. Результирующая модель является ss-моделью второго порядка с тремя вхо- дами и тремя выходами. Сопутствующие функции: PARALLEL, SERIES, FEEDBACK, CONNECT. CONNECT I Построение lti-модсли на основе структурной схемы Синтаксис: sysc = connect(sys, Q, inputs, outputs) 0
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Описание: На практике сложные динамические системы часто описываются струк- турными схемами, состоящими из большого количества элементов. В этом случае даже для систем умеренной сложности построить ss-модель в про- странстве состояний по се структурной схеме бывает затруднительно. Ис- пользование функций append и connect существенно упрощает эту задачу. Сначала применяется функция sys = append(sysl, sys2,..., sysN), чтобы опи- сать каждый блок sysj на структурной схеме и сформировать блочно- диагональную модель sys без учета перекрестных связей. Затем с использо- ванием функции sysc = connect(sys, Q, inputs, outputs) формируется ss-мо- дсль в пространстве состояний с учетом соединений блоков. Входные аргументы Q, inputs и outputs имеют следующее назначение: • матрица связей Q предназначена для описания связей блоков на струк- турной схеме. Каждая строка этой матрицы соответствует одному входу системы sys; первый элемент строки - это номер входа, последующие элементы указывают номера выходов, которые алгебраически суммиру- ются по этому входу; отрицательные элементы обозначают суммирова- ние со знаком минус. Например, если на вход 7 поступают сигналы с выходов 2, 15 и 6, причем сигнал с выхода 15 имеет отрицательный знак, то соответствующая строка матрицы связей Q имеет вид [7 2 -15 6]. Те- перь с помощью функции connect может быть построена модель в про- странстве состояний с учетом перекрестных связей и с теми же входами и выходами, которые имела модель sys; • векторы inputs и outputs определяют, какие входы и выходы агрегиро- ванной системы являются внешними. Например, если внешними явля- ются входы 1, 2, 15 и выходы 2, 7 системы sys, то аргументы inputs и outputs должны иметь вид inputs = [1 2 15]; outputs = [2 7]. Результирую- щая модель sysc имеет именно эти входы и выходы. Поскольку при вводе большого объема данных достаточно просто до- пустить ошибку, следует выполнить проверку сформированной модели. Для этого можно предложить несколько рекомендаций: • следует убедиться, что полюсы модели sys соответствуют полюсам от- дельных блоков; • убедиться, что полюс и статические коэффициенты передачи результи- рующей системы являются приемлемыми; • построить переходные функции и частотные характеристики для систе- мы sysc и сравнить их с ожидаемыми.
1. Модели линейных систем с постоянными параметрами Если методика работы со структурными схемами является преобладаю- щей, следует рекомендовать работу с системой Simulink, как мощным инст- рументом построения моделей динамических систем. Пример: Рассмотрим следующую структурную схему на рис. 17. sys3 Рис. 17 Зададим матрицы ss-модели sys2: А = [9.0201,17.779; -1.6943, 3.2138]; В = [-0.5112, 0.5362; -0.002, -1.1847]; С = [-3.2897, 2.4544; -13.501, 18.075]; D = [-0.5476, -0.1410; -0.6459, 0.2958]; Опишем отдельные блоки системы в виде следующих lti-модслсй sysl = tf(10,[1 5], 'inputname'.'uc'); sys2 = ss(A, В, C, D, 'inputname',{'u1' 'u2'}, 'outputname',{'y1' 'y2'}); sys3 = zpk(-1, -2, 2); Объединим эти блоки в агрегированную модель sys без перекрестных связей: sys = append(sys1, sys2, sys3) a = x1 x2 x3 x4 x1 -5 0 0 0 x2 0 9.0201 17.779 0 x3 0 -1.6943 3.2138 0 x4 0 0 0 -2 uc u1 u2 ? x1 4 0 0 0 x2 0 -0.5112 0.5362 0 x3 0 -0.002 -1.1847 0 x4 0 0 0 0.4142
В, С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX с - х1 х2 хЗ х4 ? 2.5 0 0 0 у1 0 -3.2897 2.4544 О у2 0 -13.501 18.075 О ? О 0 0 -1.4142 d - uc u1 и2 ? ? О 0 0 0 у1 0 0.5476 -0.141 О у2 0 -0.6459 0.2958 О ? О 0 0 2 Continuous-time system. Отметим, что нумерация входов и выходов соответствует выбранной нумерации блоков. Непоименованные входы и выходы обозначены знаком ?. Чтобы получить полную модель, соответствующую структурной схеме (рис. 17), необходимо правильно задать перекрестные связи, а также внеш- ние входы и выходы. Требуется соединить выходы 1 и 4 со входом 3 (и2) и выход 3 (у2) со входом 4. Это соответствует следующей матрице перекрест- ных связей Q - [3 1 -4; 4 3 0]; при этом вторая строка матрицы Q дополнена нулем, чтобы обеспечить согласованность размеров строк. Структурная схема имеет два внешних входа uc и ul (входы 1 и 2 системы sys) и два внешних выхода у1 и у2 (выходы 2 и 3 системы sys). Это соответствует сле- дующим значениям аргументов inputs и outputs: inputs = [1 2]; outputs = [2 3]; Теперь можно построить ss-модсль с учетом перекрестных связей между блоками, используя функцию sysc = connectfsys. Q, inputs, outputs) a = x1 x2 x3 x4 x1 -5 0 0 0 x2 0.84223 18.117 5.6003 0.47644 x3 -1.8609 -21.793 30.122 -1.0527 x4 0.65708 -11.996 16.061 -1.6283 b = uc u1 x1 4 0 x2 0 -0.076001 x3 0 -0.96355 x4 0 -0.57391 c = x1 x2 y1 -0.22148 -5.6818 x3 5.6569 x4 -0.12529 y2 0.46463 -8.482 Z 11.356 0.26283
7. Модели линейных систем с постоянными параметрами d = uc u1 у1 0 -0.66204 у2 0 -0.40582 Continuous-time system. Сопутствующие функции: APPEND, SERIES, FEEDBACK, MINREAL. | STAR ] Соединение lti-моделей звездой Синтаксис: sys = star(sys1, sys2) sys = star(sys1, sys2, nu, ny) Описание: Функция sys = star(sysl, sys2, nu, ny) формирует соединение звездой для двух lti-моделей sysl и sys2. Этой операции соответствует следующая структурная схема (рис. 18). “-------------------------J Рис. 18 Обратная связь соединяет первые пи выходов системы sys2 с последни- ми пи входами системы sysl (сигналы и) и последние пу выходов системы sysl с первыми пу входами системы sys2 (сигналы у). Полученная система sys отображает вектор входа [wl; w2] на вектор выхода [zl; z2]. Системы с перекрестными связями такого типа широко применяются при робастном (грубом) управлении. Функция sys = star(sysl, sys2) возвращает lti-модель с дескриптором sys, которой может соответствовать одно из двух соединений, показанных на рис. 19. Если подсистема sys2 имеет меньшее количество входов и выходов, чем подсистема sysl, то образуется соединение, показанное на рис. 19, а, где по сравнению с рис. 18 отсутствуют сигналы w2 и z2.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Если подсистема sysl имеет меньшее количество входов и выходов, чем подсистема sys2, то образуется соединение, показанное на рис. 19, б, где по сравнению с рис. 18 отсутствуют сигналы wl и zl. Рис. 19 Ограничения: При использовании соединения звездой в контуре не должно возникать замкнутых алгебраических петель. Сопутствующие функции: FEEDBACK, CONNECT.
2. АНАЛИЗ МОДЕЛЕЙ LTI-ОБЪЕКТОВ Ниже рассмотрены функции ППП Control System Toolbox, предназна- ченные для анализа динамических свойств lti-объектов, вычисления и по- строения частотных характеристик и графиков переходных процессов. 2.1. Свойства lti-объектов Lti-объекты, используемые в составе ППП Control System Toolbox, ха- рактеризуются такими свойствами, как способ представления модели в ss, tf или zpk форме, тип модели - непрерывная или дискретная, количество вхо- дов и выходов - одномерные SISO и многомерные MIMO модели. Функции, которые позволяют выявить эти свойства, приведены в табл. 5. Таблица 5. Функции определения характеристик lti-объектов class Определить принадлежность lti-объекта подклассам ss, tf, zpk isa Истинно, если lti-объект принадлежит к указанному подклассу iset Истинно, если тип lti-модели непрерывный isdt Истинно, если тип дискретный isempty Истинно, если lti-модель пустая isproper Истинно, если lti-модель правильная issiso Истинно, если lti-модель одномерная size Определить количество входов, выходов и переменных состояния Применение некоторых из этих функций можно продемонстрировать на примере следующего lti-объекта подкласса tf в формедтередаточной функции: н = tf({1 [1 -1]},{[1 0.1] [1 2 10]}) Transfer function from input 1 to output: 1 s + 0.1 Transfer function from input 2 to output: s -1 sA2 + 2 s + 10 Определим подкласс, тип, количество входов и выходов и состояний системы: class(H) ans =tf ЛДИОГПТОИ
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX isct(H) % Является ли система непрерывной? ans = 1 size(H) Transfer function with 2 input(s) and 1 output(s). Передаточная функция: 2 входа, 1 выход. size(ss(H)) State-space model with 2 input(s). 1 output(s), and 3 state(s). Модель e пространстве состояний: 2 входа, 1 выход, 3 состояния. [ny, пи] - size(H) % пу - число выходов, пи - число входов пу = 1 пи ~ 2 2.2. Динамические параметры lti-моделей В состав ППП Control System Toolbox включены функции для анализа динамических характеристик lti-моделей, таких, как полюсы и нули, коэф- фициент демпфирования, коэффициент передачи, частотные характеристи- ки, максимальное значение модуля частотной характеристики, грамианы управляемости и наблюдаемости и т. п. Полюсы и нули Характеристики в виде полюсов и нулей являются универсальными ха- рактеристиками для lti-модели любой формы. В табл. 6 приведен перечень функций ППП Control System Toolbox, которые позволяют выполнить по вычислению, сортировке и графическому представлению полюсов и нулей lti-модели. Таблица 6. Функции для вычисления полюсов и нулей pole, eig Вычислить полюсы lti-модели tzero Вычислить нули lti-модели damp Вычислить собственную частоту и коэффициент демпфирования degain Вычислить коэффициент передачи lti-модели esort Отсортировать полюсы и нупи непрерывной lti-модели в порядке убы- вания их действительных частей dsort Отсортировать полюсы и нули дискретной lti-модели в порядке убыва- ния их модулей pzmap Отобразить полюсы и нули lti-модели на комплексную плоскость sgrid Нанести сетку постоянных линий коэффициента демпфирования и час- тоты на плоскости s zgrid Нанести сетку постоянных линий коэффициента демпфирования и час- тоты на плоскости z
2. Анализ моделей lti-объектов Рассмотрим применение указанных функций на примере непрерывной lti-модели в форме следующей передаточной функции: h = tf([4 8.4 30.8 60],[1 4.12 17.4 30 8 60]) Transfer function: 4 sA3 + 8.4 sA2 + 30.8 s + 60 sA4 + 4.12 sA3 + 17.4 sA2 + 30.8 s + 60 Вычислим и отсортируем полюсы и нули этой передаточной функции: esort(pole(h)) ans = -0.26291 + 2.7039i -0.26291 - 2.7039i -1.7971 + 2.2137i -1.7971 - 2.21371 esort(tzero(h)) ans = -0.05 + 2.7382i -0.05 - 2.7382I -2 Вычислим те же характеристики для дискретной модели с тактом дис- кретности 0.1 с: hd = c2d(h, 0.1) Transfer function: 0.3591 zA3 - 0.9816 zA2 + 0.9182 Z - 0.2908 zA4 - 3.508 zA3 + 4.707 zA2 - 2.857 z + 0.6623 Sampling time: 0.1 dsort(pole(hd)) ans = 0.93866+ 0.260171 0.93866 - 0.26017i 0.81512+ 0.18345i 0.81512 - 0.18345i dsort(tzero(hd)) 0.95783 + 0.95783 - 0.81811 0.26913i 0.26913i Построим расположения полюсов и нулей для непрерывной и дискрет- ной моделей (рис. 20, а и б): figure(1), pzmap(h) figure(2), pzmap(hd), zgrid
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Частотные характеристики Важную роль в практике анализа динамических систем играют характе- ристики, связанные с описанием lti-моделей в частотной области. Это лога- рифмические частотные характеристикие (диаграммы Боде), годографы Найквиста, частотные характеристики сингулярных значений. Такие свой- ства системы, как ширина полосы пропускания, резонансные частоты, ко- эффициент передачи по постоянному сигналу, запасы устойчивости по ам- плитуде и фазе, устойчивость замкнутого контура, могут быть определены по частотной характеристике разомкнутой системы. Перечень функций для исследования частотных характеристик lti-моделей приведен в табл. 7. Таблица 7. Функции для вычисления и построения частотных характеристик bode Логарифмические амплитудные и фазовые частотные характеристики (диаграммы Боде) evalfr Вычисление частотной характеристики на заданной частоте freqresp Вычисление частотной характеристики в заданном диапазоне частот margin Вычисление запасов устойчивости по фазе и модулю norm Вычисление максимального значения модуля частотной характеристики и соответствующей ему частоты nichols Частотный годограф Никольса ngrid Построение сетки координат для годографа Никольса nyquist Частотный годограф Найквиста sigma Частотные характеристики сингулярных значений передаточной функции Рассмотрим применение указанных функций на примере непрерывной lti-модели, заданной своей передаточной функцией:
2. Анализ моделей lti-объектов h = tf([4 8.4 30.8 60],[1 4.12 17.4 30.8 60]) Построим амплитудные и фазовые частотные характеристики (рис. 21): bode(h) Диаграмма Бода Вычислим запасы по фазе и модулю (рис. 22): margin(h) Частота (раД/с) Вычислим максимальное значение амплитуды и соответствующее зна- чение частоты: [peak, fpeak] = norm(h, inf) peak = 1.3402 fpeak = 1.8537
в. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Построим частотный годограф Никольса с нанесенной на него коорди- натной сеткой (рис. 23): nichols(h), ngrid Построим частотный годограф Найквиста (рис. 24): nyquist(h), grid Рис. 24
2. Анализ моделей lti-объектов Построим частотную характеристику сингулярных чисел, которая для одномерных систем совпадает с амплитудной частотной характеристикой lti-модели (рис. 25): sigma(h) Рис. 25 Характеристики lti-моделей в ss-форме Если при описании lti-объектов в форме tf и zpk моделей применяются частотные методы, позволяющие анализировать устойчивость, то при опи- сании в форме ss-моделей на первый план выходит анализ свойств управ- ляемости и наблюдаемости. При этом используются функции, представлен- ные в табл. 8. Таблица 8. Функции для анализа моделей в пространстве состояний ssbal Масштабирование с помощью диагональной матрицы ss2ss Линейное преобразование переменных состояния augstate Добавление вектора состояния к вектору выхода canon Канонические формы моделей в пространстве состояний ctrb Матрица управляемости ctrbf Матрица управляемости в ступенчатой форме obsv Матрица наблюдаемости obsvf Матрица наблюдаемости в ступенчатой форме gram Грамианы управляемости и наблюдаемости balreal Сбалансированная реализация minreal Минимальная реализация modred Понижение порядка модели
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX ord2 Создание модели второго порядка rss, rmodel Создание моделей устойчивых непрерывных систем со случай- ными параметрами drss, drmodel Создание моделей устойчивых дискретных систем со случайными параметрами Функция ssbal использует элементарное преобразование подобия на ос- нове диагональной матрицы Т вида {а, в, с}= {г’лг, т ’в, ст) для того, чтобы выполнить масштабирование четверки матриц {а, В, С, D} таким образом, чтобы минимизировать норму матрицы Розенброка т‘ат т~’в СТ D Такое масштабирование улучшает обусловленность системы по отноше- нию к вычислениям, связанным с анализом моделей в пространстве состоя- ний. Следует отметить, что функция ss использует такое масштабирование при построении ss-модслей на основе моделей в формах tf и zpk. Функция ss2ss выполняет линейное подобное преобразование одной ss- модели в другую ss-модель. Функция augstate объединяет вектор состояния с вектором выхода, что бывает необходимо при синтезе регуляторов. Функция canon позволяет построить две канонические реализации ss- моделей - модальную и присоединенную, последняя из которых весьма чув- ствительна к неточности задания ее элементов и плохо подходит для вычис- лений. Функции ctrb, ctrbf, obsv, obsvf предназначены для вычисления матриц управляемости и наблюдаемости, причем канонические формы, полученные с помощью функций ctrbf и obsvf, могут оказаться плохо обусловленными. Функция gram позволяет вычислить 1рамианы управляемости и наблю- даемости, которые можно использовать для построения минимальных реа- лизаций lti-объсктов. Функции balreal, minreal, modred предназначены соответственно для по- строения различных типов реализаций - сбалансированной, минимальной и понижения порядка lti-модели,. Функции ord2, rss, rniodel, drss, drmodel входят в состав только студентчсской версии системы MATL AB и имеют учебное назначение.
2. Анализ моделей lti-объектов Реакция lti-моделей на внешние воздействия Исследования переходных процессов в lti-моделях во временной области выполняются для нескольких конкретных типов входных сигналов и воз- мущений. По виду переходного процесса можно определять такие характе- ристики системы, как время первого достижения установившегося состоя- ния, время установления процесса, перерегулирование и установившуюся ошибку. ППП Control System Toolbox позволяет рассчитывать переходные и импульсные переходные функции, реакцию системы на ненулевые началь- ные условия и выполнять моделирование линейных систем при произволь- ных входных воздействиях. Перечень функций, связанных с исследованием переходных процессов, приведен в табл. 9. Таблица 9. Функции для построения переходных процессов initial Реакция на ненулевые начальные условия step Переходная функция impulse Импульсная переходная функция gensig Генератор входного сигнала Isim Моделирование процессов при произвольных входных сигналах covar Вычисление ковариационной матрицы выходов Функции initial, step, impulse вычисляют реакции на начальные условия, ступенчатый и импульсный входной сигнал и строят графики соответст- вующих переходных процессов. Функция gensig генерирует различные типы периодических входных сигналов: синусоиду, прямоугольный периодический сигнал, периодиче- ские импульсы. Функция Isim позволяет моделировать реакцию системы на произволь- ные входные последовательности, в том числе и на случайные, если вос- пользоваться генератором случайных чисел. Функция covar вычисляет ковариационную матрицу выходов линейной модели при воздействии "белого" шума. Приведем примеры использования некоторых из этих функций для рас- смотренной выше lti-модели (рис. 26): h = tf([4 8.4 30.8 60],[1 4.12 17.4 30.8 60]) subplot(3,1,1), step(h) subplot(3,1,2), impulse(h) xO = [0 1 0 0]; subplot(3,1,3), initial(ss(h), xO) % xO = вектор начальных условий
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Для многомерных систем эти команды рассчитывают и строят множест- во графиков: по одному на каждый канал входаа-выхода (рис. 27). h = [tf(1O, [1 2 10]),tf(l.[l 1])]; step(h)
2. Анализ моделей lti-объектов Длительность переходного процесса и интервал дискретности при выво- де значений на график определяются автоматически, исходя из динамиче- ских характеристик lti-модсли. Эти значения могут быть переопределены следующим образом: dt = 0.01 % интервал дискретности t = 0:dt:10 % интервал моделирования от 0 до 10 с step(sys, t) Замечание: При задании интервала построения переходного процесса в виде вектора t = 0 : dt: tf надо помнить о следующих ограничениях, налагаемых на ин- тервал дискретности dt: • для дискретных lti-моделей значение dt должно быть кратным периоду . дискретности; • при построении переходных процессов для непрерывных lti-моделей на первом шаге интегрирования используется экстраполятор нулевого по- рядка и dt является шагом интегрирования. Поэтому необходимо выби- рать интервал дискретности dt достаточно малым, чтобы учесть особен- ности переходной характеристики. При выполнении команды step(sys) эти требования учитываются автоматически. Особенности вывода характеристик для нескольких lti-моделей При работе с несколькими lti-моделями возникает необходимость стро- ить частотные характеристики или переходные реакции для разных lti- моделей на одном графике. Для этого следует вызывать соответствующие функции, указывая список моделей sysl,..., sysN: step(sys1, sys2.sysN) impulsefsys, sys2,..., sysN) bodefsysl, sys2,.... sysN) nichols(sys1,sys2, ..., sysN) Все модели должны иметь одинаковое число входов и выходов. Для того чтобы можно было легко различить линии графиков, при вызове функции следует назначить цвет, тип линии и се маркировку для каждой системы в следующей форме: bodefsysl,’г’,sys2,'у-',sys3,'gx’) В этом случае построение выполняется графиков следующим образом: для модели sysl - сплошными красными линиями, для модели sys2 - желты- ми пунктирными линиями и для модели sys3 - зелеными х-маркерами. Заме- тим, что при построении графиков для нескольких систем в их числе могут быть как непрерывные, так и дискретные модели.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX В следующем примере сравниваются переходные процессы в непрерыв- ной и соответствующей ей дискретной системе sysc = tf(1 ООО, [1 10 1000]); sysd = c2d(sysc, 0.2); % экстраполятор нулевого порядка, Т = 0.2 с step(sysc,'—',sysd,'-') % сравнение переходных функций (рис. 28) bode(sysc,sysd,'-’)% сравнение логарифмических частотных % характеристик (рис. 29) Частотные характеристики Частот а Срал^ РйС. 29 Числовые данные, связанные с частотными характеристиками и пере- ходными процессами, можно сохранить в виде массивов системы MATLAB и использовать при дальнейших расчетах. Например, следующий порядок команд и функций строит логарифмиче- ские частотные характеристики, переходную функцию и расположение ну- лей и полюсов на комплексной плоскости в одном графическом окне:
2. Анализ моделей lti-объектов h = tf([4 8.4 30.8 60],[1 4.12 17.4 30.8 60]); [mag, phase, w] = bode(h); [y,t] = step(h, 15); [p,z] = pzmap(h); % логарифмические частотные характеристики (рис. 30) subplot(221) semilogx(w,20‘log10(mag(:))), grid on titlefBode Magnitude (dB)') subplot(223) semilogx(w,phase(:)), grid on titlefBode Phase (deg)') % переходная функция subplot(222) plot(t.y), grid on 1Ше('Реакция на 1 (t)’) % расположение нулей и полюсов subplot(224) plot(z,'go'), hold, plot(p.'bx’), grid on titlefHynn и полюсы') 2.3. Операторы и функции для анализа систем Определение свойств lti-объектов | CLASS | Определить класс объекта или создать объект Синтаксис: str = с1аз8(’<имя_объекта>') obj = class(S, '<имя_класса>') obj = class(S, '<имя_класса>', <родитепь1>, <родитель2>, ...)
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Описание: Функция str=class('<iiMH объекта-') возвращает строку, содержащую имя класса, соответствующего табл. 10. Таблица 10. Классы объектов Имя класса Класс объектов double Многомерные массивы чисел в арифметике с плавающей точ- кой в формате удвоенной точности sparse Двумерные действительные или комплексные разреженные матрицы struct Массивы записей (структура) cell Массивы ячеек char Массивы символов '<имя объекта>' Класс, определяемый пользователем Функция obj = class(S, ’<имя_класса>') создает объект класса с указан- ным именем, используя структуру S в качестве шаблона. Такое обращение допустимо только в теле М-функции с именем имякласса.т, размещенной в каталоге @имя класса. Функция obj = class(S, '<имя_класса>', <родитель1>, <родитель2>, ...) создает объект класса с указанным именем, используя структуру S в качест- ве шаблона, а также гарантирует, что вновь создаваемый объект наследует методы и поля родительских объектов, указанных в качестве аргументов. Пример: Определим класс lti-объекта, создаваемого с помощью следующей функции: sys = tf(1, [1 1 1]); class(sys) ans = tf Сопутствующие функции: ISA, SUPERIORTO, INFERIORTO, STRUCT. ISA I Определить принадлежность объекта 1 к данному классу Синтаксис: isa(obj, '<имя_класса>') Описание: Функция isa(obj, '<имя_класса>') возвращает логическое TRUE (1), если объект принадлежит к данному классу, и логическое FALSE (0) в ином случае; аргумент '<имя_класса>' - это либо имя класса определенного пользователем, либо имя одного из классов объектов системы MATLAB (см. табл. 10). В состав ППП Control System Toolbox включено три класса lti-объектов: tf, zpk и ss. |ioo|
2 . Анализ моделей lti-объектов Пример: Определить, к какому классу относится lti-объект sys. sys = zpk([ ], [2 3], 1); isa(sys, ’tf), ans = 0 isa(sys, ’zpk') ans = 1 Сопутствующие функции: CLASS. | ISCT, ISDT | Проверить, является ли модель lti-объекта непрерывной или дискретной Синтаксис: boo = isct(sys) boo = isdt(sys) Описание: Функция isct(sys) возвращает 1 (TRUE), если модель lti-объекта sys не- прерывная, и О (FALSE) - в противном случае. Модель sys является непре- рывной, если ее период дискретности равен нулю, т. е. параметр sys. Ts ра- вен нулю. Функция isdt(sys) возвращает 1 (TRUE), если модель lti-объекта sys дис- кретная, и О (FALSE) - в противном случае. Дискретная модель имеет не равный нулю период дискретности, кроме случаев статической или пустой модели. В этих случаях обе функции выдают значение TRUE до тех пор, пока не будет явно указано значение периода дискретности. Пример: Функции isct(tf(1O)) ans - 1 isdt(tf(1O)) ans = 1 выдают в качестве результата значение TRUE. Однако если явно определить коэффициент усиления как дискретную модель, задав значение периода дискретности, получим g = tf(1O, ’is’, 0.01) isct(g) ans = 0 isdt(g) ans = 1 Сопутствующие функции: ISA, ISEMPTY, ISPRQPER
В. С. Медведев, В Г. Потемкин. CONTROL SYSTEM TOOLBOX [iSEMPTY | Проверни., является ли lti-объект пустым Синтаксис: boo = isempty(sys) Описание: Функция boo = iscmpty(sys) возвращает 1 (TRUE), если модель sys пус- тая, и О (FALSE) - в противном случае. Пример: Если функция isempty(ss(1, 2, [], [])) ans = 1 возвращает пустую модель, то функция isempty(ss(1, 2, 3, 4)) ans = О возвращает непустую ss-модель. Сопутствующие функции: SIZE, ISSISO. 11SPROPER | Проверить, является ли модель lti-объекта правильной Синтаксис: boo = isproper(sys) Описание: Функция boo = ispropcr(sys) возвращает 1 (TRUE), если модель lti- объекта sys является правильной, и О (FALSE) - в противном случае. Мо- дель lti-объекта подкласса ss всегда является правильной, модель одномер- ной системы подклассов tf и zpk правильная, если степень числителя ее пе- редаточной функции не больше степени знаменателя. Многомерная модель подклассов tf и zpk правильная, если вес ее одномерные составляющие правильные. Примеры: isproper(tf([1 0], 1)) % передаточная функция H(s) = s ans = 0 isproper(tf([1 0],[1 1])) % передаточная функция H(s) = s/(s+1) ans = 1 Сопутствующие функции: ISSISO, ISEMPTY. (1O2|
2. Анализ моделей lti-объектов I ISSISO I Проверить, является ли модель lti-объекта 1 одномерной Синтаксис: issiso(sys) Описание: Оператор issiso(sys) возвращает 1 (TRUE), если модель lti-объекта sys является одномерной моделью с одним входом и одним выходом, и О (FALSE) - в противном случае. Сопутствующие функции: SIZE, ISEMPTY | SIZE | Определение размерностей модели lti-объекта Синтаксис: size(sys) d = size(sys) [p, m] = size(sys) [p, m, n] = size(sys) Описание: Оператор size(sys), где sys-модель lti-объекта, возвращает словесное описание размерностей модели. Функция d = size(sys), где sys-модсль lti-объекта, возвращает двухэле- ментный вектор-строку d = [р, т] с указанием количества'входов и выходов модели. Функция [р, m] = size(sys), где sys-модель lti-объекта, возвращает коли- чество входов и выходов модели в виде отдельных переменных. Функция [р, m, n] = size(sys), где sys-модель lti-объекта, возвращает раз- мерности входов и выходов и порядок модели: число выходов р, число вхо- дов ш, количество переменных состояния п. Обращения в форме р = size(sys, 1), ni = size(sys, 2), в - size(sys, 3) позволяют определить каж- дый параметр независимо. Сопутствующие функции: ISEMPTY, ISSISO. Динамические параметры lti-моделей Определение нулей и полюсов [ POLE, EIG ~| Расчет полюсов lti-модели Синтаксис: р = pole(sys) poles = eig(sys)
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Описание: Функция р = pole(sys) вычисляет полюсы р одномерной или многомер- ной lti-модели sys. Для ss-моделей в явной форме Коши полюсами являются собственные значения задачи Лг = Хг, для ss-моделей в неявной форме Коши - обобщен- ные собственные значения задачи Аг = z.Br Для одномерных tf и zpk моделей полюсами являются корни знаменате- ля передаточной функции. Для многомерных tf и zpk моделей полюсы определяются как множество полюсов для каждого канала входа-выхода. В процессе вычислений могут возникнуть трудности при определении точного порядка многомерной пе- редаточной функции и выявлении избыточных полюсов. При применении функции pole tf и zpk модели преобразуются в ss-модели и, хотя при этом по некоторым каналам входа-выхода формируются минимальные реализации, в целом функция pole нс гарантирует минимальной реализации, за исклю- чением случаев, когда многомерная система имеет единственный вход или единственный выход. Функция poles = eig(sys) вычисляет полюсы lti-модели sys и реализована как переопределяемый метод для lti-объектов. Ограничения: При использовании функций pole и eig процедура вычисления кратных полюсов (собственных значений) оказывается численно неустойчивой. Это выражается в том, что собственному значению X кратности m , как правило, соответствует кластер близких собственных значений, расположенных на окружности с центром Л и радиусом порядка eps1/m. Для анализа и расчета систем с кратными собственными значениями рекомендуется использовать матрицы в канонической форме Жордана, ко- торые могут быть вычислены с использованием пакета программ JORD [1]. Сопутствующие функции: DAMP, ESORT, DSORT, TZERO, PZMAP. j TZERO | Передаточные нули lti-моделей Синтаксис: z = tzero(sys) [z, gain] = tzero(sys) z = tzero(a, b, c, d) Описание: Функция tzero позволяет вычислить нули одномерной lti-модели и пере- даточные нули многомерной lti-модели. Для многомерной модели, описы- Ш
2. Анализ моделей lti-объектов ваемой четверкой {А, В, С, D], передаточные нули определяются как собст- венные значения для обобщенной спектральной задачи вида Функция z = tzero(sys) возвращает передаточные нули lti-модели sys в виде вектора столбца. Функция [z, gain] = tzero(sys) возвращает также коэффициент передачи для zpk-моделей одномерных систем. Функция z = tzero(a, b, с, d) работает непосредственно с матрицами, оп- ределяющими систему в пространстве состояний, и эквивалентна объектно- ориентированной функции z = tzero(ss(a, b, с, d)). Алгоритм: Передаточные нули вычисляются с помощью алгоритма, описанного в работе [1]. Сопутствующие функции: PZMAP, POLE. Ссылки: 1. Emami-Naeini A., Van Dooren Р. Computation of Zeros of Linear Multivariable Systems// Automatica. 1982.N 18. P. 415—430. I DAMP I Расчет собственных частот и коэффициентов L—~““J демпфирования Синтаксис: [Wn, Z] = damp(sys) [Wn, Z, P] = damp(sys) Описание: Функция damp предназначена для расчета собственных частот и ко- эффициентов демпфирования, соответствующих полюсам lti-модсли sys. Если функция вызывается без выходных аргументов, то на экран выво- дится таблица, содержащая собственные значения в порядке возрастания их модуля и соответствующие им собственные частоты и коэффициенты демпфирования. Функция [Wn, Z] = damp(sys) возвращает векторы-столбцы Wn и Z, со- держащие собственные частоты и коэффициенты демпфирования lti-модсли sys. Для дискретных систем с полюсами z и периодом дискретности Ts рас- считываются эквивалентные полюсы непрерывной модели, исходя из соот- ношения z = exp(sTs). Оба вектора Wn и Z пустые, если период дискретно- сти нс указан.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Функция [Wn, Z, P] = damp(sys) дополнительно возвращает вектор P, со- держащий полюсы lti-модели sys, которые соответствуют применению функции Р = pole(sys). Пример: Вычислить и вывести на экран собственные значения, собственные час- тоты и коэффициенты демпфирования непрерывной системы со следующей передаточной функцией: Н = tf([2 5 1],[1 2 17 10 5]) Transfer function: 2 sA2 + 5 s + 1 s'4 + 2 sA3 + 17 sA2 + 10 s + 5 damp(H) Eigenvalue -3.02e-001 + 4.74e-001i -3.02e-001 - 4.74e-001i -6.98e-001 + 3.92e+000i -6.98e-001 - 3.92e+000i Damping 5.37e-001 5.37e-001 1.75e-001 1.75e-001 Freq, (rad/s) 5.62e-001 5.62e-001 3.98e+000 3.98e+000 Сопутствующие функции: EIG, ESORT, TZERO, POLE, PZMAP. |dcgain I Расчет коэффициента передачи Синтаксис: k = dcgain(sys) Описание: Функция k = dcgain(sys) вычисляет коэффициент передачи к для lti- модели sys. Непрерывные системы Для tf-моделей коэффициент передачи вычисляется как значение пере- даточной функции при s = 0. Для ss-моделей с матрицами А, В, С, D этот коэффициент определяется из соотношения k = D - СА'В. Дискретные системы Для tf-моделей коэффициент передачи вычисляется как значение дискретной передаточной функции при z = I. Для ss-моделсй с матрицами А, В, С, D этот коэффициент определяется из соотношения k = C(I- A) 'B + D. Коэффициент передачи для lti-модели с интегратором равен беско- нечности.
2. Анализ моделей Ннобъектов Пример: Рассчитать матрицу коэффициентов передачи для многомерной tf- модели со следующей передаточной функцией: 5 2 +5 + 3 1 5 + 2 5+1 5-3 Н = (1 tf([1 -1],[ 1 1 3]); tf(1, [1 1]) tf((1 2], [1 -3])]; dcgain(H) ans = 1 -0.33333 1 -0.66667 Сопутствующие функции: NORM, EVALFR. DSORT I Сортировка полюсов дискретной lti-модели Синтаксис: s = dsort(p) [s, ndx] = dsort(p) Описание: Функция dsort сортирует полюсы p дискретной lti-модели в порядке убыва- ния их модулей. Неустойчивые полюсы располагаются в начале списка. Функция s = dsort(p) возвращает отсортированные полюсы в векторе s. Функция [s, ndx] = dsort(p) возвращает также вектор ndx, содержащий индексы, использованные при сортировке. Пример: Выполнить сортировку полюсов дискретной системы. р =[-0.2410 + 0.5573i; -0.2410 - 0.55731; 0.1503; -0.0972; -0.2590] s = dsort(p) Р = -0.2410 + 0.55731 -0.2410 - 0.5573i 0.1503 -0.0972 -0.2590 s = -0.2410 +0.5573i -0.2410 -0.5573i -0.2590 0.1503 -0.0972
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Ограничения: Собственные значения в векторе р должны быть сгруппированы в ком- плексно сопряженные пары. Сопутствующие функции: EIG, ESORT, SORT, TZERO, POLE, PZMAP. | ESORT j Сортировка полюсов непрерывной lti-модели Синтаксис: s = esort(p) [s, ndx] = esort(p) Описание: Функция esort сортирует полюсы p непрерывной lti-модели в порядке убывания значений их действительной части. Неустойчивые полюсы распо- лагаются в начале списка, а остающиеся полюсы располагаются в порядке убывания их действительной части. Функция s = esort(p) возвращает отсортированные полюсы в векторе s. Функция [s, ndx] = csort(p) возвращает также вектор ndx, содержащий индексы, использованные при сортировке. Пример: Выполнить сортировку полюсов непрерывной системы. р =[—0.2410+0.5573i; -0.2410-0.55731; 0.1503; -0.0972; -0.2590] s = esort(p) Р = -0.2410 + 0.5573i -0.2410 - 0.5573i 0.1503 -0.0972 -0.2590 s = 0.1503 -0.0972 -0.2410 + 0.5573! -0.2410-0.5573i -0.2590 Ограничения: Собственные значения в векторе р должны быть сгруппированы в ком- плексно сопряженные пары. Сопутствующие функции: EIG, DSORT, SORT, TZERO, POLE, PZMAP. ftp»]
2. Анализ моделей lti-объектов | PZMAP | Вычисление полюсов и пулей системы Синтаксис: pzmap(sys) [р, z] = pzmap(sys) Описание: Команда pzmap(sys) указывает расположение полюсов и нулей непре- рывной или дискретной lti-модели sys на комплексной плоскости. Для од- номерной lti-модели выводятся полюсы и нули ее передаточной функции; для многомерной lti-модсли - полюсы и передаточные нули. Полюсы изо- бражаются маркером х, а нули - о. Функция [р, z] = pzmap(sys) возвращает полюсы и передаточные нули в виде векторов-столбцов р и z. План расположения нулей и полюсов на эк- ран не выводится. Для наглядности можно построить линии постоянного уровня для коэф- фициента демпфирования и собственной частоты на плоскости s или z, ис- пользуя команды sgrid или zgrid. Пример: Построить расположение полюсов и нулей lti-модели с передаточной функцией: Н = tf([2 5 1], [1 2 17 10 5]) [р, z] = pzmap(H) Transfer function: 2 sA2 + 5 s + 1 sA4 + 2 sA3 + 17sA2 + 10 s + 5 P = -0.6983 + 3.9184i -0.6983 -3.9184i -0.3017 + 0.4739i -0.3017 - 0.4739i z = -2.2808 -0.2192 pzmap(H), grid % рис. 31
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Рис. 31 SGRID, ZGRID Алгоритм: Функция pzmap использует функции pole и tzero. Сопутствующие функции: POLE, TZERO, DAMP, ESORT, DSORT, RLOCUS, SGRID, ZGRID. Построение сеток постоянного уровня коэффициентов демпфирования и собственных частот на плоскостях s и z Синтаксис: sgrid zgrid sgrid(z, wn) zgrid(z, wn) Описание: Команды sgrid и zgrid строят сетки постоянных коэффициентов демпфи- рования от 0 до 1 с шагом 0.1 и собственных частот от 0 до 10 рад/с с шагом 1 рад/с на плоскостях s и z, соответственно. Функции sgrid(z, wn) и zgrid(z, wn) строят сетки постоянных коэффици- ентов демпфирования и собственных для значений, указанных в векторах z и wn. Функция zgrid([ ], [ ]) строит окружность единичного радиуса. Замечание: Если текущая s или z плоскость содержит расположение нулей и полю- сов или график корневого годографа, то команда sgrid строит сетку коорди- нат поверх графика.
2. Анализ моделей lti-объектов Пример: Построить на s и z плоскости сетки постоянных коэффициентов демп- фирования и собственных частот (рис. 32): subplolfl, 2, 1), sgrid subplot(1, 2, 2), zgrid Рис. 32 Сопутствующие функции: PZMAP, RLOCUS. Частотные характеристики | ВОРЕ | Построение логарифмических частотных характеристик Синтаксис: bode(sys) bode(sys, w) bode(syst, sys2, .... sysN) bode(sys1, sys2 sysN, w) bode(sys1, '<тип_линии1>',.... sysN, '<тип_линииН>') [mag, phase, w] = bode(sys) Описание: Группа команд и функций bode предназначена для расчета амплитудных и фазовых логарифмических частотных характеристик (диаграмм Боде) для lti-моделей. Команды bode строят на экране графики логарифмических час- тотных характеристик. Функция bode выполняет только расчет характери- стик, но графиков нс выводит. Логарифмические частотные характеристики применяются при анализе таких свойств систем, как запас устойчивости по фазе и амплитуде, коэффициент передачи, ширина полосы пропускания, реакция системы на возмущения.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Команда bode(sys) строит на экране графики логарифмических частот- ных характеристик для lti-модели sys. Эта модель может быть непрерывной или дискретной, одномерной или многомерной. В случае многомерной мо- дели функция bode строит множество логарифмических частотных характе- ристик для каждого канала системы от входа к выходу. Диапазон частот определяется автоматически по значениям нулей и полюсов передаточной функции системы. Команда bode(sys, w) строит логарифмические частотные характеристи- ки в заданном диапазоне частот. Этот диапазон должен быть задан масси- вом ячеек w = {wmin, wmax). Для построения логарифмических частотных характеристик на заданных частотах создается вектор значений частот w. Для создания логарифмической сетки следует применить команду logspace. Единица измерения частоты - рад/с. Команды bode(sysl, sys2,..., sysN), bode(sysl, sys2,..., sysN, w) позволя- ют построить частотные характеристики для нескольких lti-моделей на од- ном графике. Все модели должны иметь одинаковое количество входов и выходов, среди них могут быть как непрерывные, так и дискретные. Команда bode(sysl, '<тип_линии1>',..., sysN, '<тип_линииК>') позволяет задать цвет, тип и маркеры линий для характеристик каждой модели. Функции [mag, phase, w] = bodc(sys), [mag, phase] = bode(sys, w) выпол- няют расчет амплитудных и фазовых частотных характеристик. Выходные аргументы mag и phase являются трехмерными массивами, последняя раз- мерность которых - частота. Единицу измерения амплитудной характери- стики можно преобразовать в децибелы (дБ) следующим образом: magdb = = 20*logl0(mag); единица измерения фазы - град, единица измерения часто- ты - рад/с. Аргументы: Выходные аргументы mag и phase являются трехмерными массивами размера nu х ny х length(w): • для одномерных моделей массивы mag(l, 1, к) и phase(l, 1, к) определя- ют значения амплитудной и фазовой характеристик на частотах w(k); • для многомерных моделей массивы mag(i, j, к) и phase(i, j, к) определяют значения амплитудной и фазовой частотных характеристик для переда- точных функций Нц от j-ro входа до i-ro выхода на частотах w(k). Пример: Построить логарифмические частотные характеристики для непрерыв- ной lti-модели с одним входом и одним выходом. д = tf([1 0.1 7.5],[1 0.12 9 0 0]); bode(g) |Tl2|
2. Анализ моделей lti-объектов Bede Dlagrari; Построим те же частотные характеристики в диапазоне частот от 0.1 до 100 рад/с: bode(g,{0.1, 100}) Bede tilagrarif ?requenq’ (radi'see) Рис. 34 Перейдем от непрерывной модели к дискретной с периодом дискретно- сти Ts = 0.5 с и построим на одном графике их частотные характеристики: [из!
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX gd = c2d(g, 0.5) bode(g,'r', gd.'b:') Получаем ответ Transfer function: 0.121 zA3 + 0.07256 ZA2 + 0.06758 z + 0.1146 zA4 - 2.138 zA3 + 2.218 zA2 - 2.021 z + 0.9418 Sampling time: 0.5 Bede Disarms Алгоритм: Для непрерывных lti-моделей функция bode рассчитывает частотные ха- рактеристики для значений переменной передаточной функции s=ja> на мнимой оси. Рассматриваются только положительные значения частоты со. Для ss-моделей частотная характеристика рассчитывается по формуле C(jcol - A) 'B+D. При расчетах матрицу А целесообразно привести к форме Хессенберга для экономии машинного времени и повышения точности ре- зультата. Для дискретных моделей частотная характеристика равна передаточной функции при значениях ее переменной на окружности единичного радиуса z = еj0>T5. Из-за периодичности частотной характеристики дискретной моде- ли она рассчитывается только от нуля до частоты со = л/Т5 (частота Найкви- ста), т. е. для верхней половины единичной окружности. Если период дис- кретности Ts не определен, он принимается по умолчанию равным единице.
2. Анализ моделей lti-объектов Предупреждение: Если lti-модель имеет полюс на мнимой оси в случае непрерывной моде- ли или на окружности единичного радиуса в случае дискретной модели, а вектор w содержит частоту, соответствующую этой! точке, то амплитудная характеристика на этой частоте равна бесконечности, и в этом случае выда- стся предупреждающее сообщение: Singularity in freq, response due to jw-axis or unit circle pole. (Неопределенное значе- ние частотной характеристики из-за наличия полюса на оси jw или на единичной окружности.) Сопутствующие функции: LTIVIEWER, NYQUIST, NICHOLS, SIGMA, FREQRESP, EVALFR. I EVALFR I Вычисление передаточной функции для заданного ' 1 1' значения аргумента Синтаксис: frsp = evalfr(sys, w) Описание: Функция frsp = evalfr(sys, w) вычисляет комплексное значение переда- точной функции lti-модели sys для заданного значения аргумента w. Для ss- модели с матрицами А, В, С, D результат равен fresp = (vvl - А)Л(-1)В. Функция evalfr является упрощенной версией функции freqresp и предна- значена для быстрого вычисления передаточной функции в одной точке. Для вычисления значений передаточной функции на множестве точек сле- дует использовать команду freqresp. Пример: Вычислить значение передаточной функции дискретной системы при z = 1 + j. H = tf([1 -1], [1 1 1],-1) W= 1+j eva!fr(H, w) T ransfer function: z-1 zA2 + z + 1 Sampling time: unspecified w= 1.0000+1.00001 ans = 0.2308 + 0.15381
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Ограничения: Значение передаточной функции равно бесконечности, если w является полюсом lti-модели sys. Сопутствующие функции: FREQRESP, BODE, SIGMA. | FRQRESP | Вычисление частотных характеристик Синтаксис: Н = freqresp(sys, w) Описание: Функция Н = freqresp(sys, w) рассчитывает частотные характеристики для lti-модели sys в точках действительных значений частоты, определяе- мых вектором w. Частоты должны быть заданы в радианах в секунду. Зна- чения частотных характеристик возвращаются в виде трехмерного массива Н, где частота является третьей размерностью. Для непрерывных систем частотная характеристика для частоты со равна передаточной функции при s=j<o. Для моделей в пространстве состояний это значение задается выражением H(jco) = D + C(jco 1-А) 'в. Для дискретных систем действительные частоты w(l), ..., w(N) отобра- жаются на точки единичной окружности z = exp(jcoTs), где Ts - период дис- кретности. По умолчанию для дискретных моделей с неопределенным пе- риодом квантования значение Ts принимается равным единице. Аргументы: Выходной массив Н является трехмерным массивом размера nu х пу х х length(w): • для одномерных моделей массивы Н(1, 1, к) являются скалярным значе- нием для частоты w(k); • для многомерных моделей частотная характеристика на частоте w(k) равна матрице Н(:,:, к) с числом строк, равным числу выходов и числом столбцов, равным числу входов. Пример: Рассчитать частотную характеристику для lti-модели с передаточной функцией на частотах 1,10, 100. P = [0,tf(1,[1,1]); tf([1,-1], [1,2]), 1] Transfer function from input 1 to output... #1: 0 s-1 #2:--- s + 2
2. Анализ моделей lti-объектов Transfer function from input 2 to output... 1 #1: ----- s + 1 #2: 1 w = [1 10 100] H = freqresp(P, w) w= 1 10 100 H(:,:.1) = 0 0.5000 - 0.5000i -0.2000 + 0.6000i 1.0000 H(:,:,2) = 0 0.0099 - 0.0990i 0.9423 + 0.2885! 1.0000 H(;,:,3) = 0 0.0001 -0.01 OOi 0.9994 + 0.0300i 1.0000 Три выходных массива определяют значения частотных характеристик для многомерной модели на частотах 1, 10 и 100 рад/с. Третий индекс мас- сива относится к вектору частот w. Это означает, что можно извлечь значе- ния частотных характеристик на частоте w = 10 рад/с следующим образом: Н(:,:, w==10) ans = 0 0.0099 - 0.0990i 0.9423 + 0.2885i 1.0000 Алгоритм: Для моделей классов tf или zpk функция freqresp вычисляет значения числителей и знаменателей многомерной передаточной функции при ука- занных значениях частот. Для ss-модслей частотная характеристика вычисляется в соответствии с выражением C(jwl - А)1 В + D. Когда это возможно, то для быстрого вычис- ления этого выражения используется приведение матрицы А к диагональ- ной форме. В иных случаях матрица А приводится к верхней форме Хес- сенберга и для каждого значения частоты ищется решение следующего ли- нейного матричного уравнения: (у<о1-А)Х = В. Приведение матрицы к форме Хессенбсрга обеспечивает хороший ком- промисс между скоростью и точностью вычислений.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Предупреждение: Если lti-модель имеет полюс на мнимой оси в случае непрерывной моде- ли или на окружности единичного радиуса в случае дискретной модели, а вектор w содержит частоту, соответствующую этой точке, то амплитудная характеристика на этой частоте равна бесконечности, и в этом случае выда- ется предупреждающее сообщение: Singularity in freq, response due to jw-axis or unit circle pole. (Неопределенное значе- ние частотной характеристики из-за наличия полюса на оси jw или на единичной окружности.) Сопутствующие функции: EVALFR, BODE, NYQUIST, NICHOLS, SINGULAR, LTIVIEW. [ MARGIN"! Определение запасов устойчивости но фазе и модулю Синтаксис: margin(sys) [Gm, Pm, Wcg, Wcp] = margin(sys) [Gm, Pm, Wcg, Wcp] = margin(mag, phase, w) Описание: Группа команд и функций margin вычисляет запасы устойчивости по фа- зе и модулю, а также соответствующие частоты для lti-модслсй одномерных разомкнутых систем. Значения запасов устойчивости указывают, на сколько частотная характеристика разомкнутой системы удалена от критической точки (-1 + jO). Запас устойчивости по модулю - это значение амплитудной частотной характеристики на частоте, где фазовая частотная характеристика имеет значение -180 1рад. Запас устойчивости по фазе - это разность между значением фазовой частотной характеристики и - 180 град на частоте среза. Частота среза - это частота, где значение амплитудной частотной харак- теристики равно 1.0, или 0 дБ. Как правило, запас устойчивости по фазе в пределах между 30 и 60 град обеспечивает приемлемый компромисс между устойчивостью и полосой пропускания. Команда margin(sys) строит логарифмические частотные характеристики разомкнутой системы с указанием запасов ее устойчивости. Команда при- менима как к непрерывным, так и к дискретным lti-моделям. Функция [Gm, Pm, Wcg, Wcp] = margin(sys) рассчитывает запас устойчи- вости по амплитуде Gm, запас устойчивости по фазе Pm и соответствующие частоты Wcg и Wcp для данной модели одномерной разомкнутой системы |Tl8
2. Анализ моделей lti-объектов_____________________ sys. Если имеется несколько точек пересечения амплитудной характеристи- ки на уровне 0 дБ и фазовой - на уровне -180 град, то возвращаются наи- меньшие значения соответствующих запасов устойчивости. Функция [Gm, Pm, Wcg, Wcp] = margin(mag, phase, w) возвращает значе- ния запасов устойчивости, вычисленных по значениям массива точек (mag, phase, w), где mag - амплитуда, phase - фаза и frequency - частота. В этом случае при определении запасов устойчивости необходимо выполнить ин- терполяцию для определения соответствующих точек пересечения, что при- водит к потере точности вычислений. Пример: Рассчитать запасы устойчивости по фазе и модулю, если задана сле- дующая дискретная передаточная функция разомкнутой системы: hd = tf([0.04798 0.0464],[1 -1.81 0.9048],0.1) Transfer function: 0.04798 z + 0.0464 гЛ2- 1.81 z +0.9048 Sampling time: 0.1 [Gm, Pm, Wcg, Wcp] = margin(hd); [20‘log10(Gm), Pm, Wcg, Wcp] ans = 6.2424 13.5712 5.4374 4.3544 Отобразим эти запасы устойчивости графически (рис. 36): margin(hd) Bode Dlanrams Сопутствующие функции: LTIVIEW. |ii9|
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX [ NORM [ Вычисление норм для lti-моделей Синтаксис: normsys = norm(sys) normsys = norm(sys, 2) normsys = norm(sys, inf) normsys = norm(sys, inf, tol) [ninf, fpeak] = norm(sys) Описание: Группа функций norm предназначена для вычисления норм типа Н2 или Но для непрерывной или дискретной lti-модели. Норма Н2 Норма Н2 устойчивой непрерывной системы с передаточной функцией H(s) - это квадратный корень из среднего значения квадрата импульсной переходной функции системы, а при переходе к преобразованию Лапласа в соответствии с теоремой Парсеваля, эта норма определяется таким соотно- шением: ||Я2|| = jTrace (Htfto)" . Эту норму можно интерпретировать так же, как ковариацию (или мощ- ность) выходного сигнала у = Hw в установившемся состоянии при воздействии на систему "белого шума" с единичной интенсивностью: ||Я2||2 =limM{y(Oy(f)’}, M{w(Z)w(t)} = I8(/-t). Норма Но, Норма Нгс равна максимальному значению модуля частотной характери- стики: • для одномерных моделей ll//( v)IL = iriax|Z7(yco)|; • для многомерных моделей ||H(s)|L =maxanm(HOco)), где <тгаах(.) - максимальное сингулярное число матрицы. Аналог нормы Щ для дискретной модели определяется выражением
2. Анализ моделей lti-объектов Функции normsys = norm(sys) и normsys = norm(sys, 2) возвращают Н2- норму для lti-модели sys. Эта норма принимает значение, равное бесконеч- ности, в следующих случаях: • если модель sys является неустойчивой; • если непрерывная модель sys имеет ненулевую матрицу D. Заметим, что команда nonn(sys) равносильна команде sqrt(trace(covar(sys, 1))). Функция normsys = norm(sys, inf) рассчитывает норму Щ для lti-модели sys. Эта норма равна бесконечности, если непрерывная модель sys имеет полюсы на мнимой оси либо дискретная модель имеет полюсы на окружно- сти единичного радиуса. Функция normsys = norm(sys, inf, tol) позволяет задать точность при рас- чете нормы Нсо, по умолчанию tol = 1е-2. Функция [ninf, fpeak] = norm(sys, inf) кроме значения нормы ninf воз- вращает частоту fpeak, где модуль частотной характеристики достигает максимального значения. Пример: Рассмотрим дискретную модель с периодом дискретности 0.1с и переда- точной функцией Н =tf([1 -2.841 2.875—1.004],[1 -2.417 2.003-0.5488],0.1) Transfer function: zA3 - 2.841 zA2 + 2.875 z - 1.004 zA3 - 2.417 zA2 + 2.003 z - 0.5488 Sampling time: 0.1 norm(H) ans = 1.2438 Рассчитаем норму Нсо: [ninf,fpeak] = norm(H, inf) ninf = 2.5488 fpeak = 3.0844 Это подтверждается видом логарифмических частотных характеристик: bode(H) % рис. 37
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Bode Dlacramf Рис. 37 Амплитудная частотная характеристика действительно имеет максимум на частоте около 3 рад/с, а его значение в децибелах равно 20*log10(ninf) ans = 8.1268 Алгоритм: Для вычисления нормы Н2 используется тот же самый алгоритм, что и при вычислении функции covar; для вычисления нормы Нк. используется алгоритм из работы [1]. Сопутствующие функции: BODE, SIGMA, FREQRESP. Ссылки: 1. Bruisma N. A., Steinbuch М. A Fast Algorithm to Compute tire Norm of a Transfer Function Matrix// System Control Letters. 1990. N 14. P. 287-293. I NICHOLS I Построение годографа Никольса Синтаксис: nichols(sys) nichols(sys, w) nichols(sys1, sys2...sysN) nichols(sys1, sys2...sysN, w) nichols(sys1, ’<тип_линии1>’,.... sysN, '<тип_лини^>’) [mag, phase, w] = nichols(sys) F122]
2. Анализ моделей lti-объектов Описание: Группа команд и функций nichols предназначена для расчета и построе- ния амплитудно-фазового годографа Никольса для lti-моделей. При нало- жении на годограф Никольса диаграммы Никольса с помощью команды ngrid можно проанализировать свойства как разомкнутой, так и замкнутой модели. Наибольшую информацию можно получить о свойствах одномер- ных моделей, для многомерных моделей годограф Никольса имеет ограни- ченное применение. Команда nichols(sys) строит на экране график годографа Никольса для lti-модели sys. Эта модель может быть непрерывной или дискретной, одно- мерной или многомерной. В случае многомерной модели функция nichols строит множество годографов Никольса для каждого канала входа-выхода. Диапазон частот определяется автоматически по значениям нулей и полю- сов передаточной функции системы. Команда nichols(sys, w) строит годограф Никольса в заданном диапазоне частот. Этот диапазон должен быть задан массивом ячеек w = {wmin, wmax}. Для построения годографа Никольса на заданных частотах создает- ся вектор значений частот w. Для создания логарифмически распределенно- го вектора частот используется команда logspace. Единица измерения часто- ты - рад/с. Команды nichols(sysl, sys2,..., sysN), nichols(sysl, sys2,..., sysN, w) по- зволяют построить годографы Никольса для нескольких lti-моделей на од- ном графике. Все модели должны иметь одинаковое количество входов и выходов, среди них могут быть как непрерывные, так и дискретные. Команда nichols(sysl, *<тип линии 1>', ..., sysN, '<тип линииН>') позво- ляет задать цвет, тип и маркеры линий для годографа каждой модели. Функции [mag, phase, w] = nichols(sys), [mag, phase] = nichols(sys, w) вы- полняют расчет годографов Никольса. Выходные аргументы mag и phase являются трехмерными массивами, последняя размерность которых - часто- та. Единицу измерения амплитуды можно преобразовать в децибелы сле- дующим образом: magdb = 20*logl0(mag); единица измерения фазы - град, единица измерения частоты - рад/с. Пример: Построить годш'раф Никольса и нанести на него диаграмму Никольса. Сравнить с диаграммой Боде. num = [-4 48-18 250 600]; den = [1 30 282 525 60]; Н = tf(num, den) figure(1) nichols(H), ngrid % рис. 38, a figure(2) bode(H) % рис. 38, 6
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Рис. 38 Аргументы: Выходные аргументы mag и phase являются трехмерными массивами размера nu х ny х length(w): • для одномерных моделей массивы mag(l, 1, к) и phase(l, 1, к) определя- ют значения амплитудной и фазовой характеристик на частотах w(k); • для многомерных моделей массивы mag(i, j, к) и phasc(i, j, k) определяют значения амплитудной и фазовой частотных характеристик для переда- точных функций Нц от j-ro входа до i-ro выхода на частотах w(k). Предупреждение: Если lti-модель имеет полюс на мнимой оси в случае непрерывной моде- ли или на окружности единичного радиуса в случае дискретной модели, а вектор w содержит частоту, соответствующую этой точке, то амплитудная характеристика на этой частоте равна бесконечности, и в этом случае выда- ется предупреждающее сообщение: Singularity in freq, response due to jw-axis or unit circle pole. (Неопределенное значе- ние частотной характеристики из-за наличия полюса на оси jw или на единичной окружности.) Сопутствующие функции: LTVIEW, NYQUIST, SIGMA, FREQRESP, EVALFR. INGRID I Построение диаграммы Никольса Синтаксис: ngrid
2. Анализ моделей lti-объектов Описание: Команда ngrid строит линии постоянного уровня амплитуды и фазы, со- ответствующие следующему преобразованию комплексной плоскости Н: IV = . \ + Н Такая координатная сетка и называется диаграммой Никольса. Для од- номерных моделей она связывает точки годографа Никольса для разомкну- той системы с точками годографа для системы, замкнутой единичной отри- цательной обратной связью. Команда ngrid строит сетку координат для модуля в диапазоне от -40 до 40 дБ, для фазы - от -360 до 0 град. Диаграмма Никольса может быть наложена на уже существующий годо- граф Никольса. Пример: Построить диаграмму Никольса: Сопутствующие функции: NICHOLS.
В. С. Медведев, В. Г. Потемкин CONTROL SYSTEM TOOLBOX | NYQUIST | Построение ronoi рафа Найквиста Синтаксис: nyquist(sys) nyquist(sys, w) nyquist(sys1, sys2.sysN) nyquist(sys1, sys2.sysN, w) nyquistfsysl, '<тип_линии1>',.... sysN, '<тип_линииН>') [re, im, w] = nyquist(sys) Описание: Группа команд и функций nyquist предназначена для расчета и построе- ния частотного годографа Найквиста для lti-моделей в координатах Re{H}- Функция nyquist выполняет только расчет характеристик, но графи- ков не выводит. Частотный годограф Найквиста применяется при анализе таких свойств систем регулирования и управления, как запас устойчивости по фазе и амплитуде, коэффициент передачи, ширина полосы пропускания, реакция системы на возмущения. Команда nyquist(sys) строит на экране график годографа Найквиста для lti-модели sys. Эта модель может быть непрерывной или дискретной, одно- мерной или многомерной. В случае многомерной модели функция nyquist строит множество годографов Найквиста для каждого канала входа-выхода. Диапазон частот определяется автоматически по значениям нулей и полю- сов передаточной функции системы. Команда nyquist(sys, w) строит годограф Найквиста в заданном диапазо- не частот. Этот диапазон должен быть задан массивом ячеек w = {wmin, wmax}. Для построения годографа Найквиста на заданных частотах созда- ется вектор значений частот w. Для создания логарифмически распределен- ного вектора частот используется команда logspacc. Единица измерения частоты - рад/с. Команды nyquist(sysl, sys2,..., sysN), nyquist(sysl, sys2,..., sysN, w) по- зволяют построить годографы Найквиста для нескольких lti-моделей на од- ном графике. Все модели должны иметь одинаковое количество входов и выходов, среди них могут быть как непрерывные, так и дискретные. Команда nyquist(sys 1, '<тип_лпнии1>',..., sysN, '<тип линииК;>') позво- ляет задать цвет, тип и маркеры линий для годографа каждой модели. Функции [re, im, w] = nyquist(sys), [re, m] = nyquist(sys, w) выполняют расчет годографов Найквиста. Выходные аргументы ге и im являются трех- мерными массивами, последняя размерность которых - частота. |12б]
2. Анализ моделей lti-объектов Аргументы: Выходные аргументы ге и im являются трехмерными массивами размера nu х пу х length(w): • для одномерных моделей массивы re(l, 1, к) и im (1, 1, к) определяют значения действительной и мнимой частей годографа Найквиста на час- тотах w(k); • для многомерных моделей массивы re(i, j, к) и im (i, j, к) определяют значения действительной и мнимой частей годографа Найквиста для пе- редаточных функций Нц от j-ro входа до i-ro выхода на частотах w(k). Пример: Построить годограф Найквиста для следующей системы второго порядка: H = tf([2 51],[1 2 3]) Transfer function: 2 sA2 + 5 s + 1 Предупреждение: Если lti-модель имеет полюс на мнимой оси в случае непрерывной моде- ли или на окружности единичного радиуса в случае дискретной модели, а вектор w содержит частоту, соответствующую этой точке, то амплитудная
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX характеристика на этой частоте равна бесконечности, и в этом случае выда- ется предупреждающее сообщение: Singularity in freq, response due to jw-axis or unit circle pole. (Неопределенное значе- ние частотной характеристики из-за наличия полюса на ocujw или на единичной окружности.) Сопутствующие функции* LTVIEW, NICHOLS, SIGMA, FREQRESP, EVALFR. I SIGMA I Построение частотной характеристики 1 сингулярных чисел lti-модели Синтаксис: sigma(sys) sigmafsys, w) sigmafsys, w, type) sigmafsysl, sys2,..., sysN) sigmafsysl, sys2,.... sysN, w) sigmafsysl, sys2.sysN, w, type) sigmafsysl, '<тип_линии1>', .... sysN, '<Tnn_nnHHMN>') [sv, w] = sigmafsys) Описание: Группа команд и функций sigma предназначена для расчета и построе- ния частотной характеристики сингулярных чисел для lti-моделей. Функция sigma выполняет только расчет характеристик, но графиков не выводит. Для непрерывной модели с передаточной функцией H(s) функция sigma вычисляет частотную характеристику сингулярных чисел матрицы H(jro) как функции от частоты го. Для дискретной модели с передаточной функци- ей H(z) и периодом дискретности Ts функция sigma вычисляет частотную характеристику сингулярных чисел матрицы H(exp(jroTs)) для диапазона частот от 0 до n/Ts. Частотные характеристики сингулярных чисел являются обобщением понятия логарифмических частотных характеристик для мно- гомерных систем и оказываются весьма полезными при анализе робастно- сти. Для одномерных систем частотные характеристики сингулярных ч.юел являются аналогом логарифмических частотных характеристик. Команда sigma(sys) строит график частотной характеристики сингулярных чисел для lti-модели sys. Эта модель может быть непрерывной или дискретной, одномерной или многомерной. Диапазон частот определяется автоматически по значениям нулей и полюсов передаточной функции системы. Команда sigma(sys, w) строит частотную характеристику сингулярных чисел в заданном диапазоне частот. Этот диапазон должен быть задан мас- сивом ячеек w = {wmin, wmax}. Для построения годографа Найквиста на
2. Анализ моделей lti-объектое заданных частотах создается вектор значений частот w. Для создания лога- рифмически распределенного вектора частот используется команда logspace. Единица измерения частоты - рад/с. Команды sigma(sys, [ ], <.тип>), sigma(sys, w, <.тип>) строят следующие модификации частотной характеристики сингулярных чисел: Тип модификации Частотная характеристика сингулярных чисел 1 Для Н'1 2 Для I + Н 3 Для I + Н1 Эти опции допустимы только для квадратных систем, имеющих одина- ковое число входов и выходов. Команды sigmafsysl, sys2, ..., sysN), sigmafsysl, sys2, ..., sysN, [ ], type), sigmafsysl, sys2, ..., sysN, w) позволяют построить частотные характеристи- ки сингулярных чисел для нескольких lti-моделей на одном графике. Все модели должны иметь одинаковое количество входов и выходов, среди них могут быть как непрерывные, так и дискретные. Команда sigmafsysl, '<тип_линии1>',..., sysN, '<тип_линииМ>') позволя- ет задать цвет, тип и маркеры линий для годографа каждой модели. Функции [sv, w] = sigmafsys), sv = sigmafsys, w) выполняют расчет час- тотной характеристики сингулярных чисел. Для системы с Nu входами и Ny выходами массив sv имеет minfNu, Ny) строк и число столбцов, равное дли- не вектора частот (lengthfw)). Сингулярные числа на частоте wfk) опреде- ляются вектором svf:, к). Пример: Построить частотную характеристику сингулярных чисел для многомер- ной tf-мОдели с матричной передаточной функцией О Н(5) = _s + 5 За- S'2 +S + 10 2 5 + 6 и частотную характеристику сингулярных чисел для матрцы I+H: Н = [0 tf([3 0],{1 1 1O]);tf([1 1],[1 5])tf(2,[1 6])]; subplnt(211), sigma(H) subplot(212), sigma(H,[],2) % рис. 41 Ё29]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Slreu!» vaues Алгоритм: Функция sigma использует функцию svd для расчета сингулярных чисел комплексной матрицы. Сопутствующие функции: LTIVIEW, BODE, NICHOLS, NYQUIST, FREQRESP, EVALFR. Модели в пространстве состояний | SSBAL | Масштабирование ss-моделей Синтаксис: [sysb, Т] = ssbal(sys) [sysb, Т] = ssbalfsys, condT) Описание: Функция ssbal выполняет масштабирование матриц ss-модели, описы- ваемой четверкой {А, В, С, D}, используя преобразование подобия с диаго- нальной матрицей Т и скаляром а такими, что матрица ГАТ1 ТВ/а аСТ"1 О имеет малые числа обусловленности по отношению к задаче на собствен- ные значения.
2. Анализ моделей lti-объектов Функция [sysb, Т] = ssbal(sys) возвращает масштабированную модель sysb, описываемую четверкой {ТАТТ1, ТВ/a, аСТ1, D}, и матрицу преобра- зования Т, такую, что х = Тх, где х - новый вектор состояния модели. Функция [sysb, Т] = ssbal(sys, condT) задает верхнюю границу числа обу- словленности condT для матрицы Т. Поскольку масштабирование при пло- хо обусловленной матрице Т может приводить к росту ошибок округления, задание величины condT дает возможность контроля ошибки округления; по умолчанию condT = 1/eps. Пример: Рассмотрим следующую непрерывную ss-модель с матрицами: 1 104 102 О 100 105 с = [0.1 10 100]. а = [1 1е4 1е2; 0 1е2 1е5; 10 1 0]; Ь = [1; 1; 1]; с = [0.1 10 1е2]; sys = ss(a, b, с, 0); кН = condeig(sys.a) кН = 73.697 73.697 73.005 Выполним масштабирование ss-модели sys sysb = ssbal(sys); кН = condeig(sysb.a) кН = 1.0348 1.0348 1.0351 Результат свидетельствует о том, что погрешность вычисления собст- венных значений уменьшилась в 73 раза. Алгоритм: Функция ssbal использует функцию balance ядра системы MATLAB. Сопутствующие функции: BALREAL, GRAMIAN, SS2SS. ISS2SS I Преобразование ss-моделей при переходе к новому базису Синтаксис: sysT = ss2ss(sys, Т)
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Описание: Для заданной в подклассе ss-модели lti-объекта sys, описываемого сис- темой уравнений 1х = Ах + Ви, |y = Cx + Du ’ команда ss2ss выполняет преобразование вектора состояний lj = Тх и создает эквивалентную модель sysT в подклассе ss, описываемую системой уравнений fe = TAT Л + ТВи, (у = СГ'$ +Du. Функция sysT = ss2ss(sys, T) возвращает преобразованную модель sysT, используя исходную модель sys и матрицу преобразования Т. Модель sys должна быть задана в подклассе ss, а матрица Т должна быть невырожден- ной. Команда ss2ss применима как к непрерывным, так и к дискретным мо- делям систем. Пример: Найти преобразование подобия, позволяющее минимизировать число обу- словленности ss-модели по отношению к задаче на собственные значения. а = [1 1е4 1е2; 0 1е2 1е5; 10 1 0]; Ь = [1;1;1]; с = [0.1 10 1е2]; sys = ss(a, b, с, 0); кН = condeig(sys.a) кН = 73.697 73.697 73.005 [Т, abal] = balance(sys.a); sysb = ss2ss(sys, inv(T)); кН = condeig(sysb.a) кН = 1.0348 1.0348 1.0351 Сопутствующие функции: CANON, SSBAL, DFLREAL. I AUGSTAGeJ Добавление вектора состояния к вектору выхода Синтаксис: asys = augstate(sys)
2. Анализ моделей lti-объектое Описание: Функция asys = augstate(sys) преобразует ss-модель sys, описываемую системой уравнений х = Ах + Ви, y=Cx + Du или ее дискретным аналогом, добавляя к вектору выхода вектор состояния и формируя таким образом ss-модель asys вида х = Ах + Ви, Это позволяет в дальнейшем применить функцию feedback, чтобы сфор- мировать закон управления по полному вектору состояния и = -Кх. Ограничение: Функция augstate применима только для ss-моделей в пространстве со- стояний. Сопутствующие функции: PARALLEL, SERIES, FEEDBACK. |CANON | Построение канонических моделей Синтаксис: csys = canon(sys, 'тип') [csys, T] = canonfsys, 'тип') Описание: Функция canon позволяет сформировать канонические ss-модели для не- прерывных и дискретных систем в пространстве состояний линейной сис- темы с постоянными параметрами. При этом поддерживается две канониче- ские формы. Модальная форма Функция csys = canon(sys, 'modal') возвращает модель системы csys в мо- дальной форме, когда действительные собственные значения расположены на диагонали матрицы А, а паре комплексно сопряженных собственных значений соответствует блок размера 2x2, также расположенный на диаго- нали этой матрицы. Для системы с собственными значениями (А.1; o±jcn, Л,2) модальная матрица А имеет вид
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX X, О О О О ст (о О О -со ст О О О О Х2 Присоединенная форма Функция csys = canon(sys, 'companion') формирует присоединенную ка- ноническую форму системы sys с характеристическим многочленом p(s) = s" -I— + ал_1^ + а„ . Для системы с таким характеристическим многочленом соответствую- щая матрица А присоединенной канонической формы имеет вид О 0 0 О -ап ’ 1 0 0-0 О 1 0 0 — а 2 А= 0-2 О 0 0 0 — а2 О 0 0 - 1 -а. Функция [csys, Т] = canon(sys, 'тип') возвращает, кроме того, матрицу преобразования Т, такую, что новый вектор состояния в канонической фор- ме связан и с исходным вектором состояния соотношением хс = Тх. Матри- ца Т может оказаться пустой [ ], если lti-объект sys не является ss-моделью. Алгоритм: Модели, заданные в подклассах tf и zpk, сначала преобразуются в подкласс ss. Для построения ss-модели в канонической модальной форме использует- ся матрица Р правых собс твенных векторов исходной матрицы А. В этом случае модальная форма имеет вид хс = Р ’АРхс + Р ’’Ви, у = СРхс + Du. Для построения ss-модели в присоединенной канонической форме ис- пользуется преобразование, основанное на матрице управляемости. Ограничения: Для построения модальной канонической формы необходимо, чтобы матрица системы приводилась к диагональному виду. Достаточным услови- ем этого является отсутствие кратных собственных значений. В случае
2. Анализ моделей lti-объектов кратных собственных значений такое преобразование может быть построе- но с помощью пакета JORD [1]. Для построения присоединенной канонической формы требуется выпол- нение условия управляемости по первому входу. Присоединенная канони- ческая форма часто оказывается плохо обусловленной, поскольку связана с вычислением характеристического многочлена, поэтому ее применения следует по возможности избегать. Сопутствующие функции: CTRB, SS2SS. Ссылки: 1. Потемкин В. Г. Пакет программ JORD. М.: МИФИ, 1995. | CTRB ~~| Формирование матрицы управляемости Синтаксис: Со = ctrb(A, В) Со = ctrb(sys) Описание: Функция ctrb формирует матрицу управляемости Со для системы, задан- ной в пространстве состояний. Система является управляемой, если матрица управляемости Со имеет полный ранг. Функция Со = ctrb(A, В) формирует для пары матриц {А, В} размера со- ответственно пхп и nxm матрицу управляемости Со = [В АВ ... Ап -1В], которая имеет п строк и п*т столбцов. Функция Со = ctrb(sys) формирует матрицу управляемости для системы sys, заданной в пространстве состояний. Эта функция эквивалентна функ- ции Со = ctrb(sys.A, sys.B). Пример: Проверить, является ли управляемой пара матриц {А, В}. А = [1 1;4-2]; В = [1 -1; 1 -1]; Со = ctrb(A, В) Со = 1-1 2-2 1-1 2-2 unco = lengthfA) - rank(Co) % Количество неуправляемых мод unco = 1 Ограничения: В процессе вычисления матрицы управляемости Со может проявиться плохая обусловленность этой матрицы по отношению к операции обраще- '3!
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX ния. Эту ситуацию можно проследить на следующем простом примере. Пусть задана такая пара матриц {А, В}: При точных вычислениях эта пара является управляемой, если 8^0; при вычислениях с плавающей точкой, когда существует множество чисел, удовлетворяющих условию 1 + х = 1, и величина eps = max(x) называется машинной точностью, может возникнуть ситуация, когда 8 > eps, но если при этом 82 < eps, то функция ctrb возвратит следующую матрицу управляе- мости: из которой следует, что пара {А, В} является неуправляемой. В случаях, подобных этому, для оценки управляемости рекомендуется использовать функцию ctrbf. Сопутствующие функции: CTRBF, OBSV. I CTRBF I Формирование канонической формы управляемости Синтаксис: [Abac, Bbar, Cbar, Т, k] = ctrbf(A, В, С) [Abar, Bbar, Cbar, T, k] = ctrbf(A, В, C, tol) Описание: Если матрица управляемости для пары {А, В} имеет ранг г < п, где п - порядок матрицы А, то существует преобразование подобия вида А=ТАТт, В=ТВ, С=СТт, где Т - унитарная матрица, при котором преобразованная система имеет блочнО-треугольную форму с неуправляемыми модами, расположенными в левом верхнем углу: а = Га,,с °1 в = Г°1, С = [С„с Сс]. |а21 aJ |_bcJ Такая форма называется канонической формой управляемости. Пара матриц {Ас, Вс} является управляемой, а все моды, соответствующие собст- венным значениям матрицы А1|С, являются неуправляемыми; для управляе- мой подсистемы выполняется следующее соотношение: Cc(sl-Ac)-,Bc=C(sI-A)-,B,
2. Анализ моделей lti-объектов т. е. передатсчная функция всей системы совпадает с передаточной функци- ей ее управляемой части. Функция [Abar, Bbar, Cbar, Т, k] = ctrbf(A, В, С) преобразует ss-модель, описываемую тройкой матриц {А, В, С}, в каноническую форму управляе- мости {Abar, Bbar, Cbar}. Матрица Т описывает преобразование подобия, а элементы вектора к указывают количество управляемых мод, выделенных на каждом шаге расчета матрицы преобразования. Число ненулевых эле- ментов вектора к показывает, сколько итераций потребовалось для расчета матрицы Т, а величина sum(k) указывает число канонических переменных состояния, соответствующих управляемой части матрицы Abar. Функция [Abar, Bbar, Cbar, Т, k] = ctrbf(A, В, C, tol) позволяет задать точность tol отделения управляемого и неуправляемого подпространства системы. Если точность не задана, то по умолчанию она принимается рав- ной 10*n*norm(A, l)*eps. Пример: Построить каноническую форму управляемости для ss-модели, описы- ваемой следующей тройкой матриц {А, В, С}: А =[1 1;4 -2]; В =[1 -1;1 -1]; С =[1 0; 0 1]; [Abar, Bbar, Cbar, Т, k] = ctrbf(A, В, С) Abar = -3.0000 0 -3.0000 2.0000 Bbar = 0.0000 -0.0000 1.4142 -1.4142 Cbar = -0.7071 0.7071 0.7071 0.7071 T = -0.7071 0.7071 0.7071 0.7071 k= 1 0 Из полученных результатов следует, что неуправляемой является устой- чивая мода, соответствующая собственному значению -3, а управляемой является неустойчивая мода, соответствующая собственному значению 2. Сопутствующие функции: CTRB, MINREAL.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX | OBSV | Формирование матрицы наблюдаемости Синтаксис: Ob = obsv(A, С) Ob = obsv(sys) Описание: Функция obsv формирует матрицу наблюдаемости Ob для системы, за- данной в пространстве состояний. Система является наблюдаемой, если матрица наблюдаемости ОЬ имеет полный ранг. Функция Ob = obsv(sys) формирует для пары матриц {А, С} размера соот- ветственно пхп и прхп матрицу наблюдаемости ОЬ = [Ст (СА)Т ... (САп |)т]т, которая имеет п*пр строк и пр столбцов, соответствующих количеству вы- ходов модели. Функция Ob = obsv(sys) формирует матрицу наблюдаемости ОЬ для сис- темы sys, заданной в пространстве состояний. Эта функция эквивалентна функции Ob = obsv(sys.A, sys.C). Пример: Проверить, является ли наблюдаемой пара матриц {А, С}. А = [1 1;4-2); С = [1 0; 0 1]; Ob = obsv(A, С) ОЬ = 1 0 0 1 1 1 4 -2 unob = length(A) - rank(Ob) % Число ненаблюдаемых мод unob = 0 Система является полностью наблюдаемой. Ограничения: В процессе вычисления матрицы наблюдаемости ОЬ может проявиться плохая обусловленность этой матрицы по отношению к операции обраще- ния. В этом случае для оценки наблюдаемости рекомендуется использовать функцию obsvf. Сопутствующие функции: CTRB, OBSVF.
2. Анализ моделей lti-объектов |OBSVF | Синтаксис: [Abar, Bbar, Cbar, Т, k] = obsvf(A, В, С) [Abar, Bbar, Cbar, T, k] = obsvffA, В, C, tol) Описание: Если матрица наблюдаемости для пары {А, С} имеет ранг г < п, где п - порядок матрицы А, то существует преобразование подобия вида А = ТЛТТ, В = ТВ, С = СТТ, где Т - унитарная матрица, при котором преобразованная система имеет блочно-треугольную форму с ненаблюдаемыми модами, расположенными в левом верхнем углу: — Гапо А|2 О А„ Формирование канонической формы наблюдаемости Л- В = в'ю , с = [о со]. - Такая форма называется канонической формой наблюдаемости. Пара матриц {Ао, Со} является наблюдаемой, а все моды, соответствующие соб- ственным значениям матрицы Апо, являются ненаблюдаемыми; для наблю- даемой подсистемы выполняется следующее соотношение: со(я-а0)-1во =С(я-А)_,в , т. е. передаточная функция всей системы совпадает с передаточной функци- ей ее наблюдаемой части. Функция [Abar, Bbar, Cbar, Т, k] = obsvf(A, В, С) преобразует ss-модель, описываемую тройкой матриц {А, В, С}, в каноническую форму наблюдае- мости {Abac, Bbar, Cbar}. Матрица Т описывает преобразование подобия, а элементы вектора к указывают количество наблюдаемых мод, выделенных на каждом шаге расчета матрицы преобразования. Число ненулевых эле- ментов вектора к показывает, сколько итераций потребовалось для расчета матрицы Т, а величина sum(k) указывает число канонических переменных состояния, соответствующих наблюдаемой части матрицы Abar. Функция [Abar, Bbar, Cbar, Т, k] = obsvf(A, В, C, tol) позволяет задать точность tol отделения наблюдаемого и ненаблюдаемого подпространства системы. Если точность не задана, то по умолчанию она принимается рав- ной 10*n*norm(A, l)*eps. Пример: Построить каноническую форму наблюдаемости для ss-модели, описы- ваемой тройкой матриц {А, В, С}.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX А =[1 1;4 -2]; В=[1 -1; 1 -1]; С=[1 0; 0 1]; [Abar, Bbar, Cbar, Т, к] = obsvf(A, В, С) Abar = 1 1 4 -2 Bbar = Cbar = 1 О О 1 Т = 1 О О 1 к = 2 Система является полностью наблюдаемой. Сопутствующие функции: CTRB, MINREAL. I GRAM I Вычисление грамианов управляемости * • и наблюдаемости Синтаксис: We = gramfsys, ‘с‘) Wo = gram(sys, ’o') Описание: Функция gram позволяет вычислить функции Грама для оценки управ- ляемости и наблюдаемости системы, называемые соответственно грамиа- нами управляемости и наблюдаемости. Грамианы применяются для иссле- дования свойств управляемости и наблюдаемости моделей систем, задан- ных в пространстве состояний, а также для построения их минимальных реализаций. Они более удобны для вычислений, чем матрицы управляемо- сти и наблюдаемости. Рассмотрим модель непрерывной системы в пространстве состояний Jx = Ах + Ви, [у = Сх + Du Ее грамиан управляемости определяется интегралом СО «у Х\с = JeArBBTeA Тdr, о а грамиан наблюдаемости интегралом
2. Анализ моделей lti-объектов GO »у Wo = JeA г CTCeArt/r. О Для дискретных моделей аналогами грамианов управляемости и наблю- даемости служат выражения Wc = ХАЛВВТ(АТ)А' , - £(АТ)*СТ СА* к=0 к=О Грамиан управляемости положительно определен тогда и только тогда, когда пара матриц {А, В} является управляемой. Аналогично грамиан на- блюдаемости положительно определен тогда и только тогда, когда пара матриц {А, С} является наблюдаемой. Функция Wc = gram(sys, ‘с’) вычисляет грамиан управляемости для не- прерывной или дискретной ss-модели. Функция Wo = gram(sys, 'о') вычисляет грамиан наблюдаемости для не- прерывной или дискретной ss-модели. Алгоритм: Грамиан управляемости вычисляется путем решения непрерывного уравнения Ляпунова AWC + WCAT + ВВТ = О или его дискретного аналога AWCAT -Wc +ВВТ = 0. Аналогично грамиан наблюдаемости есть решение следующего непре- рывного уравнения Ляпунова: ATWO +WoA + CTC = 0 или его дискретного аналога ATW„A-W0 +СтС = 0. Ограничения. Матрица А должна быть устойчивой, т. е. для непрерывных моделей все собственные значения должны иметь отрицательные вещественные части, для дискретных - быть по модулю строго меньше единицы. Сопутствующие функции: BALREAL, CTRB, OBSV, LYAP, DLYAP.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX | BALREAL | Сбалансированная реализация Синтаксис: sysb = balreal(sys) [sysb, g, T, Ti] = balreal(sys) Описание:. Функция sysb = balreal(sys) строит сбалансированную реализацию sysb для ss-модсли lti-объекта sys, которая имеет равные грамианы управляемо- сти и наблюдаемости. Если lti-объект sys нс является моделью в простран- стве состояний, то он автоматически преобразуется в подкласс ss с помо- щью функции ss. Функция [sysb, g, Т, Ti] = balreal(sys) возвращает также вектор g, содер- жащий диагональные элементы результирующего грамиана, матрицу пре- образования подобия Т, такую, что хь= Тх, а также обратную ей мтрицу Ti. После построения сбалансированной реализации диагональ g результи- рующего грамиана может быть использована для понижения порядка моде- ли. Так как вектор g характеризует степень управляемости и наблюдаемости мод сбалансированной модели, то можно пренебречь теми модами, которым соответствуют малые значения g(i), сохранив наиболее важные динамиче- ские свойства первоначальной системы. Для удаления соответствующих мод предназначена функция modred. Пример: Рассмотрим следующий iti-объект в форме zpk-модели: sys = zpk([-10 -20.01], [-5 -9.9 -20.1], 1) Zero/pole/gain: (s+10) (s+20.01) (s+5) (s+9.9) (s+20.1) и построим для него сбалансированную реализацию (sysb. g] - balreal(sys) 9‘ ans = 0.10062 6.8039е-005 1.0055е-005 Из анализа диагонали результирующего грамиана следует, что послед- ние две переменных состояния слабо связаны со входом и выходом модели. Эти состояния можно удалить с помощью функции sysr = modred(sysb,[2 3],'del'); Результирующая минимальная реализация описывается zpk-моделью следующего вида:
2. Анализ моделей lti-объектов zpk(sysr) Zero/pole/gain: 1.0001 (s+4.97) Сравним логарифмические частотные характеристики исходной модели и модели минимальной реализации: bode(sys,'-', sysr/x1) Алгоритм: Для непрерывной ss-модели Jx = Ах + Ви; [у = Сх + Du с грамианами управляемости и наблюдаемости Wc и Wo преобразование переменных состояния х = Тх позволяет построить эквивалентную модель |х = ТАТ“’х + ТВи; [у = СТ~'х+Du с новыми грамианами управляемости и наблюдаемости Wc = IWtTT , Wo = Т~Т Wf,T"'. Функция balreal дает возможность построить такое преобразование подо- бия, чтобы выполнялось условие Wc = Wo = diag(g) . Ш1
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Ограничения: Модель lti-объекта sys должна быть устойчивой, управляемой и наблю- даемой. Сопутствующие функции: GRAM, MODRED, MINREAL [MINREAL I Минимальная реализация Синтаксис: sysr = minreal(sys) sysr = minreal(sys, tol) Описание: Функция sysr = minreal(sys) строит минимальную реализацию для неко- торой модели lti-объекта. При этом для ss-моделей удаляются неуправляе- мые или ненаблюдаемые переменные состояния, для моделей подклассов tf и ss выполняется сокращение одинаковых нулей и полюсов. Результирую- щая модель sysr имеет минимальный порядок и те же самые частотные ха- рактеристики, как и первоначальная модель системы. Функция sysr = minreal(sys, tol) определяет допуск, используемый для удаления переменной состояния или сокращения нуля и полюса. Это значе- ние по умолчанию равно sqrt(eps), где eps - машинная точность; увеличение допуска может привести к тому, что будет удалена еще одна переменная состояния или сокращен еще один нуль и полюс. Пример: Замкнутый контур управления описывается как соединение следующих моделей: g = zpk([], 1,1); h = tf([2 1]. [1 0]); cloop = inv(1 +g‘h) * g Zero/pole/gain: s(s-1) (s-1) (SA2 + s + 1) Результирующая zpk-модель не является минимальной реализацией и допускает сокращение пары нуль/полюс при s = 1. Таким образом мини- мальная реализация имеет вид cloop = minreal(cloop) Zero/pole/gain: s (sA2 + s + 1)
2. Анализ моделей lti-объектов Алгоритм: При сокращении нуля и полюса непосредственно выполняется поиск одинаковых в пределах допуска полюсов и нулей. Передаточные функции сначала преобразуются в подкласс zpk. Если система задана в пространстве состояний, то используется алго- ритм построения сбалансированной реализации. Сопутствующие функции: BALREAL, MODRED. I MODRED I Понижение порядка модели Синтаксис: rsys = modred(sys, elim) rsys = modred(sys, elim,’ mdc’) rsys = modred(sys, elim, 'del') Описание: Функция modred понижает порядок непрерывной или дискретной ss- модели lti-объекта sys. Эта функция обычно используется совместно с функцией построения сбалансированной реализации balreal. Функции rsys - modred(sys, elim) и rsys = modred(sys, elim, 'mdc') выпол- няют понижение порядка системы rsys при выполнении условия сохранения значения коэффициента передачи. Вектор elim определяет номера перемен- ных вектора состояния, которые должны быть удалены. Результирующая модель rsys имеет число переменных состояния на length(elim) меньше, чем исходная. Этот метод заключается в приравнивании производных удаляе- мых переменных состояния нулю и решении системы уравнений для опре- деления их установившихся значений. Функция rsys = modred(sys, elim, 'del') просто удаляет переменные со- стояния, определяемые вектором elim. Этот способ не гарантирует сохране- ния значения коэффициента передачи, но более точно аппроксимирует пе- реходные процессы в модели. Если модель системы в пространстве состояний sys сбалансирована с помощью функции balreal и ее грамианы имеют малые диагональные эле- менты, можно понизить порядок модели путем удаления соответствующих переменных состояния, применив функцию modred. Пример: Рассмотрим непрерывную tf-модель 4-го порядка. Чтобы понизить ее по- рядок, сначала построим сбалансированную реализацию, используя функ- цию balreal: h = tf([1 11 36 26],[1 14.6 74.96 153.7 99.65]) [hb, g] = balreal(h);
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Transfer function: sA3 + 11 sA2 + 36 s + 26 sA4 + 14.6 sA3 + 74.96 sA2 + 153.7 s + 99.65 g’ ans= 0.13938 0.0095482 0.00062712 7.3245e-006 Будем считать, что последние три диагональных элемента грамиана сба- лансированной реализации имеют малые значения, и применим для их уда- ления функцию modrcd в двух модификациях: в первом случае гарантируем сохранение значения коэффициента передачи, во втором - просто удалим соответствующие переменные состояния: hmdc = modred(hb, 2:4, 'mdc'); hdel = modred(hb, 2:4, 'del'); Обе редуцированные модели hmdc и hdel являются моделями первого порядка. Теперь сравним их частотные характеристики с частотными характери- стиками исходной модели: bode(h,,-,,hmdc,'x'1hdel,'*') Как следует из рис. 43, частотные характеристики редуцированной мо- дели hdel более точно воспроизводят частотную характеристику исходной системы, чем модель с, гарантирующая сохранение коэффициента передачи. Теперь сравним переходные процессы исходной модели и моделей по- ниженного порядка:
2 Анализ моделей lti-объектов step(h,'-’,hmdc,':’.hdel,‘-') Редуцированная модель hdel точнее отслеживает переходный процесс, а модель hmdc обеспечивает точное установившееся значение. Алгоритм: Алгоритм, обеспечивающий совпадение коэффициента передачи, реали- зован следующим образом. Для непрерывных ss-моделей вида х - Ах + Ви; у = Сх + Du вектор состояния делится на две части: сохраняемую Xi и удаляемую х2: X] _ Аи х2. _А21 А]? X! A22jLx2 У = [с, С2]х + Du. Затем производные по переменным вектора х2 приравниваются нулю и результирующее уравнение разрешается относительно х2. Редуцированная модель принимает следующий вид *1 =(А11 ~ А12А22 А21 )Х1 + (®1 ~ А12А22^г)и; у = (С] -C2A22.A21)xi +(С[ -C2A22B2)u. H47j
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Для дискретной системы понижение порядка выполняется аналогично с учетом равенства х2[к+1] = х2[к]. Ограничения: При реализации редукции с сохранением коэффициента передачи для непрерывной модели невырожденной должна быть матрица А22, а для дис- кретной - матрица 1-А22. Сопутствующие функции: BALREAL, MINREAL [ ORD2 | Формирование непрерывных моделей 2-го порядка Синтаксис: [А, В, С, D] = ord2(wn, z) [num, den] = ord2(wn, z) Описание: Функция [А, В, C, D] = ord2(wn, z) формирует модель линейной системы 2-го порядка в пространстве состояний в виде четверки матриц {А, В, С, D} на основе задания собственной частоты wn и коэффициента демпфирования z. Для преобразования четверки матриц в lti-объект следует воспользоваться функцией ss. Функция [num, den] = ord2(wn, z) возвращает числитель и знаменатель передаточной функции, рассчитанной на основе задания собственной часто- ты wn и коэффициента демпфирования z. Для преобразования передаточной функции в lti-объект следует применить команду tf. Пример: Сформировать модель линейной системы 2-го порядка с заданными ко- эффициентом демпфирования Q = 0.4 и собственной частотой со = 2.4. [num,den] = ord2(2.4, 0.4) num = 1 den = 1.0000 1.9200 5.7600 Соответствующий lti-объект может быть сформирован следующим образом: sys = tf(num, den) Transfer function: 1 sA2 + 1.92 s+ 5.76 Сопутствующие функции: RMODEL, RSS, SS, TF.
2. Анализ моделей lti-объектов RMODEL, RSS Формирование устойчивых непрерывных моделей со случайными парамеграми Синтаксис: [num, den] = rmodel(n) [А, В, С, D] = rmodel(n) [А, В, С, D] = rmodel(n, р, т) sys = rss(n) sys = rss(n, p) sys = rss(n, p, m) Описание: Функция [num, den] = rmodel(n) возвращает числитель и знаменатель пе- редаточной функции устойчивой непрерывной модели n-го порядка со слу- чайными параметрами. Функция [А, В, С, D] = rmodel(n) возвращает четверку матриц {А, В, С, D} устойчивой непрерывной модели n-го порядка со случайными парамет- рами с одним входом и одним выходом. Функция [А, В, С, D] = rmodel(n, р, т) формирует устойчивую непре- рывную модель n-го порядка со случайными параметрами в пространстве состояний с m входами и р выходами. Функция sys = rss(n) формирует устойчивую непрерывную ss-модель п- го порядка с одним входом и одним выходом. Функция sys = rss(n, р) формирует устойчивую непрерывную ss-модель n-го порядка с одним входом и р выходами. Функция sys = rss(n, р, m) формирует устойчивую непрерывную ss- модель n-го порядка с m входами и р выходами. Для того чтобы сформировать модели подклассов tf или zpk, следует преобразовать ss-модель sys с помощью функций tf или zpk. Пример: Сформировать непрерывную ss-модель с тремя состояниями, двумя вхо- дами и двумя выходами sys = rss(3,2,2) а = х1 х2 хЗ х1 -0.36837 0.20275 0.14925 х2 -0.23638 -0.64783 0.51501 хЗ 0.086654 -0.52916 -0.59924 Ь = u1 u2 х1 -0.1364 0 х2 0.11393 -0.095648 хЗ 0 -0.83235
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX х1 х2 хЗ у1 0.29441 0 О у2 0 1.6236 0.858 d = u1 u2 у1 1.254 -1.441 у2 0 0.57115 Continuous-time system. Сопутствующие функции: DRMODEL, DRSS, TF, ZPK. DRMODEL, DRSS Формирование устойчивых дискретных моделей со случайными параметрами sys = drss(n) sys = drss(n, p) sys = drss(n, p, m) Синтаксис: [num, den] = drmodel(n) [А, В, C, D] = drmodel(n) [А, В, C, D] = drmodel(n, p, m) Описание: Функция [num, den] = drmodel(n) возвращает числитель и знаменатель передаточной функции устойчивой дискретной модели n-го порядка со слу- чайными параметрами. Функция [А, В, С, D] = drmodel(n) возвращает четверку матриц {А, В, С, D] устойчивой дискретной модели n-го порядка со случайными параметра- ми с одним входом и одним выходом. Функция [А, В, С, D] = drinodel(n, р, т) формирует устойчивую дискрет- ную модель n-го порядка со случайными параметрами в пространстве со- стояний с m входами и р выходами. Функция sys = drss(n) формирует устойчивую дискретную ss-модель п-го порядка с одним входом и одним выходом. Функция sys = drss(n, р) формирует устойчивую дискретную ss-модель п- го порядка с одним входом и р выходами. Функция sys = drss(n, m, р) формирует устойчивую дискретную ss- модель n-го порядка с m входами и р выходами. Для того чтобы сформировать модели подклассов tf или zpk, следует преобразовать ss-модсль sys с помощью функций tf или zpk. Пример: Сформировать дискретную ss-модель с тремя состояниями, двумя вхо- дами и двумя выходами sys = drss(3,2,2) Р5О|
2. Анализ моделей lti-объектов а = х1 х1 -0.048856 х2 0.068186 хЗ 0.46016 Ь = и1 х1 0.35287 х2 0.81317 хЗ .0.0098613 с = х2 хЗ 0.40398 -0.23064 0.35404 0.40811 0.089457 -0.036824 и2 0 0.20277 0.19872 х2 хЗ 0.19881 0.74679 0.015274 0.4451 и2 О 0.84622 х1 у1 0.60379 у2 О d = u1 у1 0.93181 у2 0.46599 Sampling time; unspecified Discrete-time system. Сопутствующие функции: MODEL, RSS, TF, ZPK. Переходные процессы | INITIAL Реакция ня ненулевые начальные условия Синтаксис: initial(sys, хО) initial(sys, xO, t) initial(sys1, sys2,.... sysN, xO) initial(sys1, sys2,.... sysN, xO, t) initial(sys1, 'PlotStylel'sysN, 'PlotStyleN', xO) initial(sys1, 'PlotStyleT......sysN, 'PlotStyleN', xO, t) [y, t, x] = initial(sys, xO) [y, t, x] = initial(sys, xO, t) Описание: Команды и функции initial рассчитывают и строят реакцию на ненулевые начальные условия для модели, заданной в пространстве состояний: Jx = Ax + Bu, х(0) = х0; [У = Сх. Модель системы может быть как непрерывной, так и дискретной. Команда initial(sys, хО) строит графики переходных процессов, вызван- ных ненулевыми начальными условиями хО по переменным состояния для lti-модели sys. Эта модель может быть непрерывной и дискретной, одно-
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX мерной и многомерной. Продолжительность моделирования определяется автоматически так, чтобы отобразить основные особенности процесса. Команда initial(sys, хО, t) позволяет явно указать продолжительность мо- делирования либо в виде момента окончания t = Tfinal в секундах, либо в виде вектора t = O:dt:Tfinal. Для дискретных моделей значение dt должно соответствовать периоду дискретности; для непрерывных моделей значение dt должно быть достаточно малым, чтобы учесть наиболее быстрые измене- ния переходного процесса. Команды initial(sys 1, sys2, ..., sysN, хО), initial(sysl, sys2, ..., sysN, xO, t) позволяют на одном графике построить переходные процессы для несколь- ких lti-моделей sysl,..., sysN. Команды initial(sys 1, 'PlotStyleJ', ..., sysN, 'PlotStyleN', xO), initial(sysl, 'PlotStylel' ,..., sysN, 'PlotStyleN1, xO, t) позволяют разметить переходные процессы для нескольких lti-моделей sysl, ..., sysN на одном графике раз- личными стилями. Функции [у, t, х] = initial(sys, хО), [у, t, х] = initial(sys, хО, t) вычисляют переход- ные процессы по вектору выходов у, вектор моментов времени t, значения переменных состояния х. Графики при этом не строятся. Массив у имеет следующие размеры: число строк равно длине вектора t, а число столбцов равно числу выходов. Аналогично массив х имеет число строк, равное дли- не вектора t, и число столбцов, равное количеству переменных состояния. Пример: Построить реакцию на начальные условия по выходу следующей ss- модели: -0.5572 -0.78141ГХ; 0.7814 0 ][х2 у = [1.9691 6.4493] ' х0 = Х2 1 0 а = [-0.5572 -0.7814; 0.7814 0]; с = [1.9691 6.4493]; хО = [1; 0] sys = ss(a, Д, с, D); initial(sys, хО)
2. Анализ моделей lti-объектов Сопутствующие функции: LTIVIEW, STEP, IMPULSE, LSIM. |STEP | Переходная функция Синтаксис: step(sys) step(sys, t) step(sys1, sys2,.... sysN) step(sys1, sys2..sysN, t) step(sys1, 'PlotStylel',sysN, 'PlotStyleN') step(sys1, 'PlotStylel' sysN, 'PlotStyleN', t) [y. t *1 = step(sys) [y, t, x] = step(sys, t) Описание: Команды и функции step рассчитывают и строят реакцию модели на единичную ступенчатую функцию. Эта реакция называется переходной функцией. Для моделей, заданных в пространстве состояний, начальные условия предполагаются нулевыми. Команда step(sys) строит график переходной функции для lti-модели sys. Эта модель может быть непрерывной и дискретной, одномерной и много- мерной. Для многомерной модели строится набор переходных функций по каждому каналу входа-выхода. Продолжительность моделирования опреде- ляется автоматически так, чтобы отобразить основные особенности пере- ходных процессов.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Команда step(sys, t) позволяет явно указать продолжительность модели- рования либо в виде момента окончания t = Tfmal в секундах, либо в виде вектора t = O;dt:Tfinal. Для дискретных моделей значение dt должно соот- ветствовать периоду дискретности; для непрерывных моделей значение dt должно быть достаточно малым, чтобы учесть наиболее быстрые изменения переходного процесса. Команды step(sysl, sys2, sysN), step(sysl, sys2, ..., sysN, t) позволяют на одном графике построить переходные функции для нескольких lti- моделей sysl, ..., sysN. Все модели должны иметь одинаковое число входов и выходов. Команды step(sysl, 'PlotStylel'........ sysN, 'PlotStyleN'), step(sysl, 'PlotStylel', ..., sysN, 'PlotStyleN', t) позволяют разметить переходные функ- ции для нескольких lti-моделей sysl....sysN на одном графике различными стилями. Функции [у, t, х] = step(sys), [у, t, х] = step(sys, t) вычисляют переходные функции для вектора выходов у, вектор моментов времени t, значения пе- ременных состояния х. Графики при этом не строятся. Для одномерных моделей массив у имеет следующие размеры: число строк равно длине вектора t, а число столбцов - числу выходов. Аналогично массив х имеет число строк, равное длине вектора t, и число столбцов, рав- ное количеству переменных состояния. Для многомерных моделей со многими входами переходные функции для каждого канала размещаются в трехмерном массиве у размера (длина вектора 1)х(число выходов)х(число входов). При этом значение у(:, :, j) со- ответствует переходной функции по j-му входу. Аналогично трехмерный массив х имеет размер (длина вектора 1)х(число переменных состоя- ния)х(число входов). Пример: Построить переходную функцию для ss-модели 2-го порядка а = [-0.5572 -0.7814; 0.7814 0]; Ь = [1 —1; 0 2]; с = [1.9691 6.4493]; sys = ss(a, b, с, 0); step(sys)
2. Анализ моделей lti-объектов Переходные функции Рис. 46 Левый график на рис. 46 соответствует переходной функции по первому входу, а правый - переходной функции по второму входу. Алгоритм: Для непрерывной модели строится эквивалентная дискретная модель с экстраполятором 0-го порядка. Период дискретности выбирается автомати- чески, исходя из динамических свойств модели, за исключением случая, когда задается вектор времени t = O:dt:Tf, в этом случае dt используется как значение периода дискретности. Сопутствующие функции: LTIVIEW, IMPULSE, INITIAL, LSIM. I IMPULSE I Импульсная переходная функция Синтаксис: impulse(sys) impulse(sys, t) impulse(sys1, sys2, ..., sysN) impulse(sys1, sys2, ....sysN, t) impulse(sys1, 'PlotStylel',..., sysN, PlotStyleN') impulse(sys1, 'PlotStylel'.sysN, 'PlotStyleN', t) [y, t, x] = impulse(sys) [y, t, x] = impulse(sys, t)
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Описание: Команды и функции impulse рассчитывают и строят реакцию на им- пульсную функцию Дирака для непрерывной модели или на единичный импульс для дискретной модели. Эта реакция называется импульсной пере- ходной или весовой функцией. Для моделей, заданных в пространстве со- стояний, начальные условия предполагаются нулевыми. Команда impulse(sys) строит график импульсной переходной функции для lti-модели sys. Эта модель может быть непрерывной и дискретной, од- номерной и многомерной. Для многомерной модели строится набор им- пульсных переходных функций по каждому каналу входа-выхода. Продол- жительность моделирования определяется автоматически так, чтобы ото- бразить основные особенности переходных процессов. Команда impulse(sys, t) позволяет явно указать продолжительность мо- делирования либо в виде момента окончания t = Tfinal в секундах, либо в виде вектора t = O:dt:Tfinal. Для дискретных моделей значение dt должно соответствовать периоду дискретности; для непрерывных моделей значение dt должно быть достаточно малым, чтобы учесть наиболее быстрые измене- ния переходного процесса. Команды impulse(sysl, sys2, ..., sysN), impulse(sysl, sys2, ..., sysN, t) по- зволяют на одном графике построить импульсные переходные функции для нескольких lti-моделей sysl,..., sysN. Все модели должны иметь одинаковое число входов и выходов Команды impulse(sysl, 'PlotStylel', ..., sysN, 'PlotStyleN'), impulse(sysl, 'PlotStylel', ..., sysN, 'PlotStyleN', t) позволяют разметить импульсные пере- ходные функции для нескольких lti-моделей sysl,..., sysN на одном графике различными стилями. Функции [у, t, х] = impulse(sys), [у, t, х] = impulse(sys, t) вычисляют им- пульсные переходные функции для вектора выходов у, вектор моментов време- ни t, значения переменных состояния х. Графики при этом не строятся. Для одномерных моделей массив у имеет следующие размеры: число строк равно длине вектора t, а число столбцов - числу выходов. Аналогично массив х имеет число строк, равное длине вектора t, и число столбцов, рав- ное количеству переменных состояния. Для многомерных моделей со многими входами переходные функции для каждого канала размещаются в трехмерном массиве у размера (длина вектора 1)х(число выходов)х(число входов). При этом значение у(:, :, j) со- ответствует переходной функции по j-му входу. Аналогично трехмерный массив х имеет размер (длина вектора 1)х(число переменных состоя- ния)х(число входов).
2. Анализ моделей lti-объектов Пример: Построить импульсную переходную функцию для модели 2-го порядка в пространстве состояний рЯГ-0.5572 -0-781411“^ 1 Г-0.5572 П [x2J L 0.7814 0 J[xJ+[ 0 2Ли2_| у = [1.9691 0.44931 Л| 1*2 J а = [-0.5572 -0.7814;0.7814 0]; b = [1 -1;0 2]; с = [1.9691 6.4493]; sys = ss(a, b, с, 0); impulse(sys) мпульснал переходкал фу нкцил Ст &у.сдп:1Л Ст Левый график на рис. 47 соответствует импульсной переходной функции для первого входа, а правый - для второго входа. Можно сохранить значения импульсной переходной функции в виде многомерного массива [y,t] = impulse(sys) Для модели с двумя входами массив у является трехмерным: size(y) ans =10112 Здесь первые две размерности соответствуют вектору t, а импульсная пе- реходная функция для первого входа определяется сечением у(:,1).
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Алгоритм: Непрерывный lti-объект сначала преобразуется в ss-модель. Импульсная переходная функция для ss-модели с одним входом эквивалентна реакции на начальные условия, задаваемые вектором Ь: х - Ах + bu, х(0) = Ь; У - Сх Для непрерывной модели строится эквивалентная дискретная модель с экстраполятором 0-го порядка. Период дискретности выбирается автомати- чески, исходя из динамических свойств модели, за исключением случая, когда задается вектор времени t = O:dt:Tf, в этом случае dt используется как значение периода дискретности. Ограничения: Импульсная переходная функция непрерывной системы с ненулевой матрицей D равна бесконечности при t=0. Функция impulse игнорирует этот разрыв и возвращает при t = 0 значение СЬ. Сопутствующие функции: LTIVIEW, STEP, INITIAL, LSIM. | GENSIG | Генератор входных сигналов Синтаксис: [u, t] = gensig('<Tnn>', tau) [u, t] = gensig('<Tnn>', tau, Tf, Ts) Описание: Функция [u, t] = gensig('<THn>', tau) генерирует скалярный сигнал u ука- занного типа с периодом tau секунд. Функция gensig возвращает вектор t значений времени и вектор и значений сигнала. Все генерируемые сигналы имеют единичную амплитуду. Возможны следующие типы сигналов: sin Синусоида square Периодический прямоугольный сигнал pulse Периодические импульсы Функция [u, t] = gensig('<THn>', tau, Tf, Ts) позволяет, кроме того, уста- новить продолжительность сигнала Tf и период дискретности Ts для гене- ратора импульсов. Можно включить значение входного сигнала и и время t прямо в команду Isim и моделировать процессы в системе с одним входом при заданном входном сигнале. Так как t однозначно определяется парамет- рами Tf и Ts, можно также генерировать входные воздействия для систем со многими входами путем повторных вызовов команды gensig.
2. Анализ моделей lti-объектов Пример: Сгенерировать тестовые сигналы с периодом 5 с, продолжительностью 30 с и периодом дискретности 0.1 с. [u, t] = gensigCsin', 5, 30, 0.1); subplot(3,1,1), plot(t, и) [и, t] = gensig('square', 5, 30, 0.1); subplot(3,1,2), plot(t, u) [u, t] = gensigfpulse', 5, 30, 0.1); subplot(3,1,3), plot(t, u) Сопутствующие функции: LSIM, SQUARE, SAWTOOTH. ILSIM I Моделирование при произвольных входных I —- I воздействиях Синтаксис: lsim(sys, u, t) lsim(sys, u, t, xO) Isim(sys1, sys2,..., sysN, u, t) Isim(sys1, sys2 sysN, u, t, xO) Isim(sys1, 'PlotStylel'.sysN, 'PlotStyleN', u, t) Isim(sys1, 'PlotStylel'.sysN, 'PlotStyleN', u, t, xO) [y, t, x] = lsim(sys, u, t) [y, t, x] = lsim(sys, u, t, xO) Описание: Команды и функции Isim рассчитывают и моделируют процессы в не- прерывных или дискретных линейных моделях при произвольных входных воздействиях.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Команда lsim(sys, u, t) строит графики процессов для lti-модели sys при входных воздействиях, заданных векторами t, и. Вектор t = OzdtTfinal задает интервал моделирования. Матрица и должна иметь число строк, равное длине интервала моделирования Icngth(t), и число столбцов, равное числу входов. Каждая строка u(i, :) задает значения входного сигнала в момент времени t(i). Модель sys может быть непрерывной и дискретной, одномер- ной и многомерной. В дискретной модели вектор и всегда соответствует вектору t и поэтому последний может быть опущен или заменен пустым массивом. В непрерывной модели интервал между выборками dt использу- ется как период дискретности при преобразовании непрерывной модели в дискретную. Автоматическое изменение этого параметра выполняется в тех случаях, когда значение dt слишком велико и может вызвать скрытые коле- бания. Команда Isim(sys, u, t, хО) позволяет учесть начальные условия по пере- менным состояния и может быть применена только для ss-моделей. Команды lsim(sysl, sys2, ..., sysN, u, t), lsim(sysl, sys2, ..., sysN, u, t, xO) позволяют на одном графике построить процессы для нескольких lti- моделей sysl,..., sysN при одних и тех же значениях векторов t, и. Команды lsim(sysl, 'PlotStylel', ..., sysN, 'PlotStyleN', и, t), lsim(sysl, 'PlotStylel', ..., sysN, 'PlotStyleN, u, t, xO) позволяют разметить процессы для нескольких lti-моделей sysl,..., sysN на одном графике различными стилями. Функции [у, t, х] = lsim(sys, u, t), [у, t, х] = lsim(sys, и, t, хО) вычисляют процессы для вектора выходов у, вектор моментов времени t, значения пе- ременных состояния х. Графики при этом не строятся. Заметим, что воз- вращаемый вектор t может отличаться от вектора t во входных данных, если было реализовано автоматическое уменьшение периода дискретности. Пример: Построить графики процессов для модели 2-го порядка с одним входом и двумя выходами на прямоугольный периодический сигнал с периодом 4 с. Сначала следует сгенерировать входной сигнал, используя функцию gensig. Выборку значений сигнала производить каждые 0.1 с в течение 10 с. [u.t] = gensig('square‘, 4,10, 0.1); Затем выполнить моделирование процессов: Н = [tf([2 5 1],[1 2 3]); tf([1 -1],[1 1 5])]; lsim(H, и, t)
2. Анализ моделей lti-объектов Результаты моделирования Алгоритм: Процессы в дискретных моделях моделируются с помощью встроенной функции Ititr (подкласс ss) или с помощью функции filter (подклассы tf, zpk). Непрерывные модели преобразуются в дискретные с помощью функции c2d, используя экстраполяторы 0-го ('zoh') или 1-го ffoh') порядка. Значение периода дискретности принимается равным dt. Если это значение оказыва- ется недостаточно малым, чтобы выявить поведение процессов между со- седними моментами времени, функция Isim автоматически уменьшает зна- чение dt и повторно выполняет экстраполяцию входных сигналов. В этом случае возвращаемый вектор времени будет отличаться от входного. Чтобы пояснить, почему изменение периода дискретности иногда оказы- вается необходимым, рассмотрим следующую модель системы 2-го поряд- ка. Выполним моделирование этой системы при воздействии прямоугольно- го периодического сигнала длительностью 1 с. w2 = 62.83л2; h = tf(w2, [1 2 w2]); t = 0:01:5; % вектор времени и = (rem(t, 1) >= 0.5); % периодический квадратный импульс lsim(h, и, t) % Рис. 50 |161]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Результаты моделирования Рис. 50 Процесс имеет ярко выраженный колебательный характер. Однако из графика неясно, выполнялось ли автоматическое уменьшение периода дис- кретности. Реализуем процедуру моделирования в явном виде. Сначала по- строим дискретную модель с периодом дискретности 0.1 с и выполним мо- делирование: hd = c2d(h, 0.1) lsim(hd, u, t) % Рис.11.51 ,a Как видно, процесс отличается от изображенного на рис. 50. Чтобы по- яснить различие, построим следующий график (рис. 51,6). Isim(h,’b--', hd,*r-’, и, t) % Рис. 51, б Рис. 51 Ц62]
2. Анализ моделей lti-объектов Как следует из рис. 51,6, в модели при периоде дискретности dt -0.1 с имеют место скрытые колебания, которые могут быть выявлены только при уменьшении этого периода. Сопутствующие функции: LTIVIEW, STEP, IMPULSE, INITIAL, GENSIG. | COVAR—| Вычисление матрицы ковариаций Синтаксис: Р = covar(sys, W) [Р, Q] = covarfsys, W) Описание: Функция covar рассчитывает матрицу ковариаций сигнала на выходе ус- тойчивой линейной модели с постоянными параметрами sys при действии на входах возмущений в виде "белого" шума. Эта функция применима как к непрерывным, так и к дискретным моделям. Модели "белого" шума с ин- тенсивностью W имеют следующий вид: • для непрерывных моделей: M(w(t)w(x)T) = W5(t-r); • для дискретных моделей: M(w[k]w[l]T) = W6ki. Функция Р = covar(sys, W) возвращает установившуюся ковариацион- ную матрицу Р = М(уут) сигнала на выходе устойчивой модели sys при дей- ствии возмущения в виде непрерывного или дискретного "Целого" шума с заданной интенсивностью W. Функция [Р, Q] = covar(sys, W) для модели, заданной в подклассе ss, воз- вращает также матрицу ковариаций Q = М(ххт) для установившихся значе- ний переменных состояния. Пример: Рассчитать установившееся значение ковариации на выходе дискретной модели с передаточной функцией H(z) = (2z+l)/(z2+0.2z+0.5) и периодом дискретности Ts = 0.1 с при действии на входе дискретного "белого" шума w[k] с интенсивностью W = 5. sys = tf([2 1], [1 0.2 0.5], 0.1); р = covar(sys, 5) р= 30.317 Сравним полученное значение с результатом моделирования и расчета коэффициента ковариации: randnfseed', 0); w - sqrt(5)*randn(1, 1000); % генератор "белого” шума 1000 значений у = lsim(sys, w); % Моделирование при действии "белого” шума w
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX psim = sum(y.*y)/length(w) % Расчет значения ковариации сигнала у psim = 32.627 Оценки ковариаций р и psim достаточно близки, но не совпадают ввиду конечного интервала времени моделирования. Алгоритм: Модели, заданные в подклассах tf и zpk, сначала преобразуются в под- класс ss. Для непрерывных ss-моделей ковариационная матрица вычисляет- ся путем решения уравнения Ляпунова АР + РА7 + BWB7 = 0; Q =СРС7 . Ковариационная матрица выходного сигнала ограничена только тогда, когда система устойчива и матрица D = 0. Для дискретных моделей ковариационная матрица установившегося выход- ного сигнала вычисляется путем решения дискретного уравнения Ляпунова АРА7 - Р + BWBr = 0; Q = CPC7 +DWD7. Отметим, что в этом случае матрица Q ограничена для устойчивой мо- дели и в том случае, когда матрица D не равна нулю. Сопутствующие функции: LYAP, DLYAP.
3. СИНТЕЗ КОНТУРОВ УПРАВЛЕНИЯ С ОБРАТНОЙ СВЯЗЬЮ Термин синтез контура управления определяет процедуру выбора пара- метров обратной связи при формировании замкнутого контура управления. Методы синтеза, как правило, являются интерактивными и сочетают выбор параметров с анализом, расчетом и моделированием процессов в динамиче- ских системах. ППП Control System Toolbox предлагает инструменты для поддержки следующих процедур синтеза: • анализа разомкнутого контура управления; • расчета коэффициентов обратных связей на основе методов корневого годографа, заданного расположения полюсов или аналитического конст- руирования регулятора; • моделирования замкнутого контура для оценки результатов синтеза. 3.1. Метод корневого годографа Метод корневого годографа предназначен для расчета и построения тра- екторий полюсов системы при изменении одного из параметров обратной связи. Обычно метод корневого годографа используется для настройки ко- эффициента передачи разомкнутого контура так, чтобы полюсы замкнутого контура имели заданные значения. На рис. 52 показана типовая структурная схема замкнутого контура управления. Здесь P(s), Q(s) - передаточные функции объекта управления и измерительной подсистемы, а к - коэффициент передачи, значение которого должно быть оп- ределено. Полюсами замкнутой системы являются корни выражения q(s) = I + kP(s)Q(s). тшттси
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Метод корневого годографа заключается в построении траекторий по- люсов замкнутого контура на комплексной плоскости при изменении вы- бранного параметра к и выборе такого его значения, которому соответству- ет требуемое расположение полюсов. Для этого в состав ППП Control System Toolbox включены группы ко- манд и функций, специально предназначенные для поддержки метода кор- невого годографа. Группа команд и функций rlocus предназначена для расчета и построе- ния корневого годографа для замкнутых контуров вида, показанного на рис. 52. При обращении к командам и функциям этой группы требуется один входной аргумент - имя lti-модели одномерной разомкнутой системы, за- данной в любом из подклассов ss, tf или zpk. Другая группа функций rlocfind предназначена для указания требуемого расположения полюсов на корневом годографе и определения соответст- вующего коэффициента передачи. Важное вспомогательное значение имеют также команды sgrid и zgrid, которые позволяют нанести на корневой годограф специальные сетки коор- динат, упрощающие выбор желаемого расположения полюсов. Особо следует остановиться на специальном средстве для поддержки процедур проектирования на основе метода корневого годографа. Речь идет о подсистеме Root Locus Design GUI, основанной на графическом интер- фейсе пользователя при построении корневых годографов. Вызов этой под- системы выполняется командой rltool. Кроме построения корневого годо- графа подсистема Root Locus Design GUI позволяет настраивать параметры корректирующего устройства (компенсатора), контролировать другие ди- намические характеристики замкнутой системы (переходную функцию, ло- гарифмические частотные характеристики, годографы Найквиста и Николь- са) путем вызова подсистемы просмотра LTI Viewe, а также обращаться к подсистеме Simulink для моделирования динамики замкнутого контура. В табл. 11 перечислены функции и команды для синтеза корректирую- щих устройств на основе метода корневого годографа. Таблица 11. Функции и команды метода корневого годографа rlocus Расчет и построение корневого годографа rlocfind Интерактивный выбор коэффициента передачи sgrid Координатная сетка для корневого годографа непрерывной системы zgrid Координатная сетка для корневого годографа дискретной системы rltool Вызов подсистемы Root Locus Design GUI |Тбб1
3. Синтез контуров управления с обратной связью 3.2. Метод заданного расположения полюсов системы С расположением полюсов замкнутого контура непосредственно связа- ны такие характеристики переходного процесса, как время достижения пер- вого максимума, время установления переходного процесса, показатели ко- лебательности. Из этого вытекает следующий порядок действия для обеспе- чения требуемых динамических свойств замкнутого контура: • исходя из требований к переходному процессу, выбрать расположение полюсов передаточной функции замкнутой системы на комплексной плоскости; • рассчитать значения коэффициентов обратных связей, при которых та- кое расположение полюсов достигается. Такая процедура синтеза известна как метод заданного расположения полюсов замкнутого контура. Этот метод требует, чтобы была известна ss- модель системы. Для непрерывных систем эта модель имеет вид |х = Ах + Ви; [у = Сх + Du, где и - вектор входов и у - вектор измерений. Процедура синтеза регулятора для этой системы включает два этапа: выбор коэффициентов обратных свя- зей по переменным состояния и синтез наблюдающего устройства для оценки переменных состояния. Выбор коэффициентов обратных связей При наличии обратной связи по переменным состояния и = -Кх динами- ка замкнутого контура задается уравнением х = (А —ВК)х и полюсы замкнутой системы являются собственными значениями матрицы А-ВК. Применяя алгоритмы, реализующие метод заданного расположения полюсов, можно вычислить матрицу коэффициентов обратных связей, ко- торая обеспечит любое желаемое расположение этих полюсов на комплекс- ной плоскости при условии, что система является управляемой. Команды и функции метода ППП Control System Toolbox включает функции и команды для вычис- ления матриц К и L коэффициентов обратных связей, обеспечивающих за- данное расположение полюсов замкнутой системы, а также наблюдателя и динамического компенсатора, представленные в табл. 12.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Таблица 12. Команды и функции метода заданного расположения полюсов acker Заданное расположение полюсов одномерной системы place Заданное расположение полюсов многомерной системы estim Формирование наблюдателя reg Формирование компенсатора Функция acker предназначена для расчета одномерных систем с не- большим числом переменных состояния. Функция place может быть приме- нена как для одномерных, так и для многомерных систем и использует ро- бастный алгоритм, который гарантирует высокую точность вычислений. Следует иметь в виду, что для получения надежных результатов необхо- димо учитывать ряд ограничений на желаемое расположение полюсов; в ча- стности, следует избегать выбора желаемых полюсов, кратных полюсам ис- ходной системы, а также перемещения тех полюсов, которые являются сла- бо управляемыми или слабо наблюдаемыми. В этих случаях требуются значительные по величине коэффициенты обратных связей и замкнутый контур становится весьма чувствительным к возмущениям. В заключение отметим, что при уменьшении количества управляющих входов возрастает вероятность выбора неудачного расположения полюсов. Синтез наблюдающего устройства Реализовать обратные связи по переменным состояния невозможно, если все переменные состояния не могут быть измерены. Однако можно постро- ить специализированное вычислительное устройство, которое будет форми- ровать оценки переменных вектора состояния х по известным векторам входов и измерений, причем такие, что закон управления и = обеспечит требуемое расположение полюсов. Такое устройство называется наблю- дающим устройством или наблюдателем. Это устройство описывается следующим дифференциальным уравнением: 4 = A^ + Bu + L(y-C^-Du). Полюсами наблюдателя являются собственные значения матрицы А - LC, которые могут быть назначены произвольно путем выбора коэффици- ентов обратных связей по переменным вектора состояния наблюдателя т. е. путем задания элементов матрицы L. Как правило, процессы в устройстве наблюдения должны протекать быстрее, чем процессы в управляемой сис- теме, которые определяются собственными значениями матрицы А - ВК. Замена переменных вектора состояния х их оценками £ приводит к зако- ну управления вида и = -К£. В результате получаем уравнения, описываю- щие динамику наблюдателя и закон управления
3. Синтез контуров управления с обратной связью t = [A-LC-(B-LD)K]^ + Ly; Заметим, что уравнения динамики замкнутого контура в новых перемен- ных состояния {х, е} имеют вид А-ВК ВК 1Гх' О A-LCj|_e X ё Из этих уравнений следует, что можно независимо назначать полюсы наблюдателя и замкнутого контура управления, используя соответственно матрицы А - ВК и А - LC. 3.3. Синтез Л КГ -регуляторов В последнее время для проектирования динамических регуляторов ши- роко применяется подход, основанный на построении линейного оптималь- ного управления по квадратичному критерию качества с учетом гауссовых управляющих и возмущающих воздействий. Результатом такого проектиро- вания является так называемый линейный квадратичный гауссовый регуля- тор (ЛКГ-регулятор). Подобно методу заданного расположения полюсов метод синтеза ЛКГ-регулятора применим только к ss-моделям lti-объектов. ЛКГ-регулятор предназначен для удержания выходов системы вблизи нулевого положения. При этом предполагается, что на объект управления воздействуют случайное возмущение w и управление и, а регулятор форми- рует управление на основе поступающих на его вход измерений yv = у + v, возмущенных случайными помехами v. Объект управления и измерительная подсистема описываются уравнениями |х = Ax + Bu + Gw, |у = Сх + Du + Hw + v а оба случайных процесса w и v являются "белыми" шумами (рис. 53).
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Л КГ-регулятор включает оптимальные обратные связи по оценкам пе- ременных состояния и фильтр Калмана для построения этих оценок. Ниже показано, что эти два компонента оптимального закона управления можно рассчитывать независимо. Оптимальный закон управления В ЛКГ-регуляторе эффективность управления оценивается следующим квадратичным критерием качества: J(u) = J(xTQx + xTNu + uTRu)rf/. о Весовые матрицы Q, N, R определяют соотношение между качеством регулирования (как быстро процесс сходится к нулю) и затратами на управ- ление и назначаются пользователем. На первом шаге синтеза вычисляются коэффициенты обратных связей по переменным состояния (элементы мат- рицы К) и находится закон управления и = -Кх, который минимизирует критерий качества J(u). Матрица обратных связей вычисляется как решение алгебраического уравнения Риккати. Этот закон управления называется ли- нейным квадратичным оптимальным управлением (ЛК). Фильтр Калмана Так же, как и в задаче заданного расположения полюсов, невозможно сформировать ЛК-оптимальное управление, если не все переменные со- стояния доступны для измерения. Однако и в этом случае можно построить оценку вектора состояния х такую, что управление и = -К х окажется опти- мальным. Соответствующая оценка вектора состояний рассчитывается с помощью фильтра, называемого фильтром Калмана: х = Ax + Bu+L(yv -Cx-Du), где и - вектор управления, yv - вектор измерений, а корреляционные матри- цы шумов равны соответственно M{ww7)=Q„ M{vv7}=R„ M{wv7} = N„ Матрица коэффициентов обратных связей фильтра Калмана L является решением матричного алгебраического уравнения Риккати, сам фильтр яв- ляется оптимальным устройством оценивания вектора состояния при дейст- вии гауссовых "белых" шумов, и именно такой фильтр минимизирует уста- новившееся значение корреляционной матрицы limM{ (х -х)(х-х)т} . t->00
3. Синтез контуров управления с обратной связью Фильтр Калмана Рис. 54 Л КГ-регулятор Для того чтобы сформировать ЛКГ-регулятор, следует просто объеди- нить фильтр Калмана и ЛК-оптимальный регулятор так, как это показано на рис. 55. Регулятор Рис. 55 Уравнения ЛКГ-регулятора в пространстве состояний имеют'вид i = [A-LC-(B-LD)K]x + Ly, u =-Кх. Функции и команды для синтеза ЛКГ-регуляторов ППП Control System Toolbox включает М-файлы для реализации всех казанных выше трех шагов синтеза ЛКГ-регуляторов. Эти М-файлы обес- ечивают решение задач как для непрерывных, так и для дискретных моде- ей, а также решение задачи синтеза дискретного ЛКГ-рсгулятора для не- рерывных систем. Перечень команд и функций, применяемых для синтеза 1КГ-регуляторов, представлен в табл. 13. Таблица 13. Функции и команды для синтеза ЛКГ-регуляторов kalman Расчет фильтра Калмана kalmd Расчет дискретного фильтра Калмана для непрерывной системы JSL Расчет ЛК-оптимального управления для непрерывных систем dlqr Расчет ЛК-оптимального управления для дискретных систем
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Iqrd Расчет ЛК-оптимального дискретного управления для непрерывного объекта Iqry Расчет ЛК-оптимального управления для функционала относительно выходов qgreg Формирование ЛКГ-регулятора Функции kalman и kalmd предназначены для проектирования непрерыв- ных и дискретных фильтров Калмана. Функции Iqr, dlqr, Iqrd, Iqry предназначены для расчета ЛК-оптимального управления для различных моделей систем и видов функционала качества. Функция Iqgreg формирует результирующий ЛКГ-регулятор. При решении задачи синтеза ЛКГ-регулятора необходимо решение ряда вспомогательных матричных алгебраических уравнений. Функции и коман- ды, включенные в ППП Control System Toolbox для решения этих уравне- ний, приведены в табл. 14. Таблица 14. Функции и команды для решения матричных алгебра- и ческих уравнений саге Решение непрерывного уравнения Риккати dare Решение дискретного уравнения Риккати lyap Решение непрерывного уравнения Ляпунова dlyap Решение дискретного уравнения Ляпунова 3.4. Функции и команды Метод корневого годографа | RLOCUS | Построение корневого годографа Синтаксис: rlocus(sys) rlocus(sys, k) [г, k] = rlocus(sys) г = rlocus(sys, k) Описание: Группа команд и функций rlocus предназначена для расчета и построе- ния корневого годографа по известной lti-модели разомкнутой одномерной системы sys. Корневой годограф рассчитывает траектории полюсов замкну- того контура как функцию коэффициента передачи к в обратной связи в предположении, что обратная связь отрицательная. Траектории корней ис- пользуются для того, чтобы исследовать влияние изменения значения ко- эффициента обратной связи на расположение полюсов замкнутого контура.
3. Синтез контуров управления с обратной связью В свою очередь, расположение полюсов дает информацию относительно динамических свойств системы. Команда rlocus(sys) вызывает расчет и построение корневого годографа замкнутой системы, если задана lti-модель разомкнутой одномерной систе- мы sys. Она применима к любой из структур замкнутого контура, изобра- женных на рис. 56 Если передаточная функция разомкнутой системы sys равна то полюсами замкнутого контура являются корни уравнения d(s) + kn(s) = 0. По команде rlocus автоматически формируется такой набор, положительных значений коэффициента к, чтобы построить гладкий график корневого годо- графа. Команда rlocus(sys, к) позволяет пользователю указать вектор к значе- ний коэффициента передачи для построения корневого годографа. Функции [г, k] = rlocus(sys), г = rlocus(sys, к) возвращают массив г полю- сов замкнутого контура и вектор к соответствующих коэффициентов пере- дачи в виде выходного или входного аргументов. Массив г имеет length(k) столбцов и его j-й столбец содержит все полюсы замкнутой системы, соот- ветствующие значению k(j). Пример: Вычислить и построить корневой годограф, если передаточная функция разомкнутой системы имеет вид h(s) = 2i+5s + \ s2 + 2.s + 1 h = tf([2 5 1],[1 23]); rlocus(h) % Рис. 57 g73]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Сопутствующие функции: RLOCFIND, PZMAP, POLE. I RLOCFIND I Интерактивный съем информации с графика корневого годографа Синтаксис: [k, poles] = rlocfind(sys) [к, poles] = rlocfind(sys, р) Описание: Функция [к, poles] = rlocfind(sys) предназначена для интерактивного съема информации о коэффициенте передачи ему массива полюсов с корне- вого годографа, построенного с помощью команды rlocus. Функция rlocfind формирует перекрестие курсора, которое пользователь перемещает в неко- торую точку графика корневого годографа для того, чтобы выбрать частное положение полюса. Коэффициент передачи, соответствующий этому полю- су, возвращается в виде переменной к, одновременно в векторе poles воз- вращаются значения полюсов замкнутого контура, соответствующие этому коэффициенту передачи. Для успешного применения этой функции корне- вой годограф должен располагаться в текущем графическом окне. Функция [k, poles] = rlocfind(sys, р) позволяет пользователю задать набор полюсов в виде вектора р и затем отыскать на годографе ближайшие по расположению полюсы с указанием соответствующих им коэффициентов передачи. Значение j-ro элемента вектора к соответствует полюсу p(j), а j-й столбец массива полюсов содержит все полюсы замкнутого контура, соот- ветствующие этому коэффициенту передачи. И
3. Синтез контуров управления с обратной связью Пример: Определить значение коэффициента обратной связи, при котором полюсы замкнутой системы соответствуют коэффициенту демпфирования С, = 0.7. h = tf([2 5 1],[1 2 3]); rlocus(h) % Построение корневого годографа sgrid % Построение специальной координатной сетки k = rlocfind(h) % Выбрать полюс с £=.7 графически Далее с помощью мыши следует поместить перекрестие курсора в точку пе- ресечения корневого годографа с линией уровня Q = 0.7 и нажать левую кнопку мыши. На годографе выбранная точка отмечена знаком + (рис. 58) selected_point = -1.0635 + 1.07891 k = 0.19094 Рис. 58 Найдем на годографе полюс, ближайший к указанному, и вычислим со- ответствующий ему коэффициент затухания: (k, р1] = rlocfind(h, [-1.06+1.08!]) к= 0.18987 р1 = -1.0688+ 1.0815! -1.0688- 1.0815! ksi=cos(atan(abs(imag(p1 ))./real(p 1))) ksi = 0.70293 0.70293 [175]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Нетрудно убедиться, что найденные полюсы соответствуют требуемому коэффициенту демпфирования. Сопутствующие функции: RLOCUS. Метод заданного расположения полюсов | ACKER | Желаемое размещение полюсов для одномерных систем Синтаксис: к = аскег(А, Ь, р) Описание: Функция к = аскег(А, Ь, р) предназначена для расчета вектора к коэффи- циентов обратных связей, который для заданной одномерной системы вида X = Ах + bu обеспечивает желаемое расположение полюсов, задаваемое вектором р, ис- пользуя управление вида u = -кх. Расчет выполняется на основе формулы Аккермана [1] таким образом, что собственные значения матрицы замкну- той системы А - bk равны элементам вектора р с точностью до порядка сле- дования. Функция acker может быть также применена для расчета вектора 1 коэф- фициентов обратных связей наблюдателя при оценивании вектора перемен- ных состояния одномерной системы х = Лх + Ьн, у = сх + du после транспонирования матрицы А и замены b на с’: 1 = аскег(а', с', р). Функция применима как к непрерывным, так и к дискретным моделям динамических систем. Ограничения: Функция acker применима только к одномерным системам, причем пара матриц (А, В) должна быть управляемой. Заметим, что этот метод в вычислительном отношении плохо обусловлен и приводит к значительным погрешностям, когда порядок динамической системы становится большим пяти и в случае плохо управляемых систем. Для более точных и надежных вычислений следует рекомендовать функцию place. Сопутствующие функции: PLACE, LQR, RLOCUS, RLOCFIND. Ссылки: 1. Kailath Т. Linear Systems//Prentice-Hall. 1980. P. 201
3. Синтез контуров управления с обратной связью |PLACE Желаемое размещение полюсов системы Синтаксис: К = place(A, В, р) [К, ргес, message] = place(A, В, р) Описание: Для заданных одномерной или многомерной системы и вектора р же- лаемого расположения полюсов замкнутой системы функция place рассчи- тывает матрицу К коэффициентов обратных связей таких, что система в замкнутом состоянии при и=-Кх имеет полюсы, определяемые вектором р. Другими словами, собственные значения матрицы А - ВК замкнутой системы должны быть равны элемен- там вектора р с точностью до порядка следования. Функция К = р!асе(А, В, р) рассчитывает матрицу коэффициентов об- ратных связей К, которая обеспечивает желаемое расположение р полюсов системы, предполагая, что все входы системы являются доступными для управления. При этом длина вектора р должна быть равна числу строк мат- рицы А. Функция place работает с многомерными системами и базируется на ал- горитме, описанном в работе [2]. Этот алгоритм использует дополнитель- ные степени свободы, чтобы найти решение, минимизирующее чувстви- тельность положения полюсов замкнутой системы к возможным возмуще- ниям матриц А и В. Функция [К, ргес, message] = place(A, В, р) также возвращает оценку ргес близости собственных значений найденной замкнутой системы с матрицей А - В*К к их желаемым значениям, определяемым вектором р (ргес опреде- ляет число точных десятичных цифр у полюсов найденной замкнутой сис- темы). Если некоторые ненулевые полюсы замкнутой системы отличаются от желаемых значений более чем на 10 %, выдается предупреждающее со- общение. Функция place может быть также применена для расчета вектора 1 коэф- фициентов обратных связей наблюдателя при оценивании вектора перемен- ных состояния многомерной системы, если при обращении к функции place использовать сопряженную систему {А‘, С’}: 1 = place(A', С, р).' Функция применима как к непрерывным, так и к дискретным моделям ди- намических систем.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Пример. Рассмотрим динамическую систему с одним входом, двумя выходами и тремя переменными состояния, описывающую канал продольного движения самолета [1] и заданную матричной тройкой {а, Ь, с}. Матрицу обратных связей, требуемую для того, чтобы желаемые полюсы замкнутой системы были равны р = [-20 -4+4i -4-4i], можно рассчитать следующим образом: а = [-1.12 0.63 -0.07; -57.48 -1.73 26.9; 0 0 -10]; b = [0 0 10]’; с = [0.63 0 -0.07]; р = [-15—4+41 -4-41]; К - place(a, Ь, р) place: ndigits= 15 К= -2.1304 0.20421 1.015 Алгоритм. Функция place использует алгоритм, описанный в работе [2], который для многомерных систем оптимизирует выбор собственных векторов с це- лью нахождения робастного решения. Функцию place рекомендуется при- менять вместо функции acker и для одномерных систем. При решении задач высокого порядка желаемое размещение полюсов может потребовать очень больших значений коэффициентов обратных свя- зей. Проблемы чувствительности, связанные с большими значениями коэф- фициентов обратных связей, требуют особого внимания при назначении желаемых значений полюсов системы. В работе [3] изложены результаты численного тестирования алгоритма. Сопутствующие функции: LQR, RLOCUS, RLOCFIND. Ссылки: 1. Топчеев Ю. И., Потемкин В. Г., Иваненко В. Г. Системы стабилизации. М.: Машиностроение, 1974, 248 с. 2. Kautsky J., Nichols N. К. Robust Pole Assignment in Linear State Feedback// /Ant. J. Control. 1985. N 41. P 1129-1155. 3. Laub A. J., Wette M. Algorithms and Software for Pole Assignment and Observers, UCRL-15646 Rev. 1, EE Dept., Univ, of Calif., Santa Barbara, CA, Sept. 1984. | ESTIM | Формирование наблюдателя Синтаксис: est = estim(sys, L) est = estim(sys, L, sensors, known) И
3. Синтез контуров управления с обратной связью Описание: Функция est = estim(sys, L) формирует наблюдающее устройство (на- блюдатель) в виде ss-объекта est для оценивания вектора переменных со- стояния модели объекта управления sys и для заданной матрицы коэффици- ентов обратных связей наблюдателя L. Все входы системы sys предполага- ются случайными и не измеряемыми, а все выходы измеряемыми. Наблюдатель est возвращается в форме объекта подкласса ss. Непрерывная система sys описывается уравнениями х = Ах + Ви, у = Сх + Du . Функция est генерирует оценки переменных состояния и выхода объекта управления х и у в соответствии с уравнениями dildt = Ax + L(y —Сх), рШх [xj L1] Наблюдатель для дискретной модели описывается аналогичными урав- нениями. Функция est = estim(sys, L, sensors, known) работает с объектами управ- ления sys более общей структуры, позволяя учитывать известные управле- ния и, случайные неизмеряемые входы w, а также измеряемые выходы у и неизмеряемые выходы г: Индексы векторов sensors и known определяют, какие выходы являются измеряемыми и какие входы известными. Полученный наблюдатель est ис- пользует для вычисления оценок переменных состояния как вектор и, так и вектор у. dx/dt - Ад: + В,w + B,u + L(y - С2х - D22u), i] = [CI2]i+[Do2]u- И
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX ( известно est У’ (датчи к ц) Рис. 59 Функция estim применима как к непрерывным, так и к дискретным мо- делям. Чтобы рассчитать коэффициенты обратных связей наблюдателя, можно использовать функцию place (желаемое размещение полюсов систе- мы) или kalman {фильтр Калмана). Заметим, что для повышения точности оценивания полюса наблюдателя (собственные значения матрицы А - L*C2) должны гарантировать более быстрые процессы в наблюдателе, чем в объ- екте управления (собственные значения матрицы А - В*К). Пример: Рассмотрим модель системы в пространстве состояний sys с семью вы- ходами и четырьма входами. Пусть матрица обратных связей L фильтра Калмана рассчитана для выходов 1,4,7, измеряемых с помощью датчиков, и для известных (детерминированных) входов 1, 3, 4 объекта управления. В этом случае наблюдатель можно сформировать с помощью следующих функций: sensors = [1,4,7]; known = [1,3,4]; est = estim(sys, L, sensors, known) Для непосредственного синтеза фильтра Калмана следует применять функцию kalman. Сопутствующие функции: REG, PLACE, KALMAN. | REG | Формирование регулятора Синтаксис: rsys = reg(sys, К, L) rsys = reg(sys, K, L, sensors, known, controls) Описание: Функция rsys = rcg(sys, K, L) формирует динамический регулятор (компен- сатор) rsys для заданной в пространстве состояний модели объекта управления sys, матрицы коэффициентов обратных связей по переменным состояния К и матрицы L. коэффициентов обратных связей наблюдателя. Матрицы К и L обычно рассчитываются на основе метода желаемого расположения полюсов или метода синтеза ЛКГ-регулятора. Функция reg работает как с непрерывны- ми, так и с дискретными моделями динамических систем. [180
3. Синтез контуров управления с обратной связью Предполагается, что все входы системы sys доступны для управления, а все выходы могут быть измерены. Регулятор rsys образуется путем объеди- нения закона управления с обратными связями по переменным состояния и = - Кх с матрицей К и наблюдателя переменных состояния с матрицей об- ратных связей L. Для объекта управления, описываемого уравнениями |х = Ах + Ви; [у = Cx + Du, получим регулятор х = (А - LC - (В - LD)K)x + Ly, u = -Кх. Этот регулятор должен быть соединен с объектом управления положитель- ной обратной связью. Регулятор Рис. 60 Функция rsys = reg(sys, К, L, sensors, known, controls) решает общую за- дачу регулирования. Входы объекта подразделяются на управляющие и, известные или измеряемые ц^и случайные неизмеряемые w. Также предпо- лагается, что только часть выходов объекта управления измеряема с помо- щью датчиков. Векторы индексов sensors, known и controls определяют у, Uj и и как подмножества выходов и входов системы sys. Результирующий регулятор использует в качестве входа вектор [ud;y], на основе которого генерируется управление и (рис. 61).
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Рёгулятор'гё у s Рис. 61 Пример: Задана непрерывная модель в пространстве состояний sys = ss(A,B,C,D) с семью и четырьмя входами. Требуется рассчитать: • матрицу обратных связей по переменным состояния К, используя входы 1, 2 и 4 объекта управления как управляющие входы; • матрицу L обратных связей наблюдателя для оценки переменных со- стояния, используя выходы объекта управления 4, 7 и 1 как показания датчиков, и вход 3 объекта как известный дополнительный вход. После этого можно объединить наблюдатель и закон управления по пе- ременным состояния в единый динамический регулятор, вводя команды: controls = [1,2,4]; sensors = [4,7,1]; known = [3]; regulator = reg(sys,K,L,sensors,known,controls) Сопутствующие функции: LQGREG, ESTIM, KALMAN, PLACE, LQR, DLQR. Синтез оптимальных регуляторов на основе квадратичного критерия качества | lqr | Синтез оптимального регулятора для непрерывной системы Синтаксис: [К, S, е] = lqr(A, В, Q, R) [К, S, е] = lqr(A, В, Q, R, N) Описание: Функция [К, S, е] = lqr(A, В, Q, R, N) рассчитывает матрицу коэффици- ентов обратных связей К, такую, что закон управления и = -Кх минимизи- рует квадратичный критерий качества J(u) = j (xTQx + uTRu + 2xTNu)Jz 0
3. Синтез контуров управления с обратной связью для непрерывной модели, заданной в пространстве состояний х = Ах + Ви. Если аргумент N опущен, то по умолчанию полагается N = 0. В дополнение к матрице коэффициентов обратных связей К функция lqr возвращает ре- шение S непрерывного уравнения Риккати ATS + SA - (SB + N)R'' (BTS + NT) + Q = 0 и собственные значения матрицы замкнутой системы е = eig(A - В*К). При этом матрица К определяется выражением К = R '(BTS + NT). Ограничения: Исходные данные должны удовлетворять следующим условиям: • пара матриц (А, В) должна быть стабилизируемой', • должны выполняться неравенства R > 0 и Q - NR-INT> 0; • пара матриц (Q - NR 'NT, А - BR ’Вт) не должна иметь ненаблюдаемые моды с собственными значениями на мнимой оси. Сопутствующие функции: DLQR, LQRY, LORD, LQGREG, CARE. [ DLQR | Синтез оптимального регулятора для дискретной системы Синтаксис: [К, S, е] = dlqr(a, b, Q, R) [К, S, е] = dlqr(a, b, Q, R, N) Описание: Функция [К, S, е] = dlqr(a, b, Q, R, N) рассчитывает матрицу коэффици- ентов обратных связей К, такую, что закон управления и = -Кх минимизи- рует квадратичный критерий качества J(u) = х[?г]7 Qx[«] + u[n]2 Ru[?z]+ 2x[n]7 Nu[n] я=| для дискретной модели, заданной в пространстве состояний х[и +1] = Ах[л] + Ви[и]. Если аргумент N опущен, то по умолчанию полагается N = 0. В дополне- ние к матрице коэффициентов обратных связей К функция dlqr возвращает решение S дискретного уравнения Риккати A 'SA-S - (A' SB + N)(BTSB + N)(BTSB + R)-,(BTSB + NT) + Q = 0 и собственные значения матрицы замкнутой системы е = eig(a - Ь*К). При этом матрица К определяется выражением
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX К = (В SB + R) ' (В'SB + NT ). Ограничения: Исходные данные должны удовлетворять следующим условиям: • пара матриц (А, В) должна быть стабилизируемой; • должны выполняться неравенства R > 0 и Q - NR''NT> 0; • пара матриц (Q -NR 'NT, А - BR'Bt) нс должна-иметь ненаблюдаемые моды с собственными значениями на окружности единичного радиуса. Сопутствующие функции: LQR, LQRY, LORD, LQGREG, DARE. I LQRD I Синтез оптимального дискретного регулятора для непрерывной системы Синтаксис: [Kd, S, е] = lqrd(A, В, Q, R, Ts) [Kd, S, е] = lqrd(A, В, Q, R, N, Ts) Описание: Группа функций Iqrd предназначена для расчета дискретных регулято- ров с обратными связями по всем переменным состояния с динамическими характеристиками, аналогичными характеристикам непрерывного ЛК- регулятора, найденного с помощью функции Iqr. Эти функции целесообраз- но использовать при построении цифровой реализации обратных связей по- сле того, как выполнен синтез непрерывного ЛК-регулятора. Функция [Kd, S, е] = lqrd(A, В, Q, R, Ts) рассчитывает дискретный закон управления и[и] = -К^х[п], который минимизирует дискретный критерий качества, эквивалентный не- прерывному критерию со J(u) = J (xTQx + uTRu)t//. о Матрицы А и В определяются из непрерывной модели объекта управления х = Ax + Bu ; Ts - период дискретности регулятора. Функция возвращает матрицу коэффициентов обратных связей Kd, решение дискретного уравне- ния Риккати S и собственные значения матрицы замкнутой дискретной сис- темы е = eig(Ad - Bd*Kd). Функция [Kd, S, е] = lqrd(A, В, Q, R, N, Ts) позволяет решать более об- щую задачу с дополнительным слагаемым в критерии качества
3. Синтез контуров управления с обратной связью J(u) = j(xTQx + uTRu + 2xTNu)rft. о Алгоритм: Эквивалентная матрица обратных связей Kd для дискретного регулятора определяется путем преобразования непрерывной модели объекта управле- ния и непрерывного критерия качества в дискретные с периодом дискретно- сти Ts и с использованием экстраполятора 0-го порядка [1]. Введем следующие обозначения: Ф(т) = еАт, А^=Ф(Т,), Г(т) = рА’ВЛ/, Bj=r(T5). О Дискретная модель объекта управления описывается векторно-матричным уравнением х[п + 1] = А(/х[п] + В(,и[и], а весовые матрицы для эквивалентного дискретного критерия качества имеют вид Qj Nj ТТФ(Г) 01Г Q К|ГФ(г) Г(гЯ Nrf oLr(r) ijR RJL 0 I J Интегралы рассчитываются на основе формулы матричного экспоненциала [2]. Дискретная модель объекта управления строится с помощью функции c2d, а матрица коэффициентов обратных связей рассчитывается с помощью функции dlqr. Ограничения: Исходные данные при решении задачи синтеза дискретного регулятора должны удовлетворять требованиям для функции dlqr. Сопутствующие функции: DLQR, LQR, C2D, KALMD. Ссылки: 1. Franklin G.F., Powell J.D., Workman M.L. Digital Control of Dynamic Systems// Second Edition, Addison-Wesley. 1980. P. 439-440. 2. Van Loan C.F. “Computing Integrals Involving the Matrix Exponential”, IEEE Trans// Automatic Control, AC-15. October 1970.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX | LQRY Синтез оптимального регулятора с ограничением на выходные сигналы Синтаксис: [К, S, е] = lqry(sys, Q, R) [К, S, е] = lqry(sys, Q, R, N) Описание: Для заданного объекта управления х = Ах + Ви, у = Сх + du, или его дискретного аналога функция Iqry рассчитывает матрицу К обрат- ных связей для закона управления и = -Кх, который минимизирует квадратичный критерий качества J(u) - J(yTQy + u1 Ru + 2yTNu)J< 0 с ограничениями на выходные сигналы, определяемые матрицами Q и N. Функция Iqry эквивалентна функциям Iqr или dlqr со следующими весо- выми матрицами: Q 1Ч1_Гст ОТ Q NjC D R ~ D' I N R О N' L Функция [К, S, е] = lqiy(sys, Q, R, N) возвращает матрицу оптимальных коэффициентов обратных связей К, решение уравнения Риккати S и собст- венные значения е = eig(A - В*К) замкнутой системы. Модель sys определя- ет непрерывную или дискретную модель объекта управления в виде чет- верки матриц {А, В, С, D}. По умолчанию, когда матрица N опущена, предполагается, что N = 0. Ограничения: Данные (А, В, Q,R,N ) для решения задачи синтеза должны удовлетво- рять ограничениям, описанным для функций Iqr и dlqr. Сопутствующие функции: LQR, DLQR, KALMAN, LQGREG.
3. Синтез контуров управления с обратной связью | KALMAN | Синтез фильтров Калмана Синтаксис: (kest, L, Р] = kalman(sys, Qn, Rn, Nn) [kest, L, P, M, Z] = kalrnan(sys, Qn, Rn, Nn) % только для дискретных моделей [kest, L, P] = kalman(sys, Qn, Rn, Nn, sensors, known) Определения: Группа функций kalman выполняет синтез фильтров Калмана для оценки переменных состояния объекта управления на основе данных о случайных внешних возмущениях и ошибках измерений. Фильтр Калмана обеспечива- ет оптимальное решение следующих задач оценивания для непрерывных и дискретных моделей. Непрерывный фильтр Калмана Задана непрерывная модель объекта управления ] х = Ах + Bu + Gw (уравнение состояний ) [у v = Сх + Du + Hw + v (уравнение измерений) с известными входами и и возмущениями по входам w и измерениям у, ко- торые являются "белым" шумом со следующими характеристиками: M{w} = M{v} = О, М {w(t)w(r)г} = Q<5(t - т), M{v(t)v(r)T} = RJ(t-r), M{v(t)w(r)T} = N<5(t-r). Требуется выполнить синтез наблюдателя для оценивания вектора пере- менных состояния объекта, который минимизирует установившуюся ошиб- ку оценивания Р = lim М{(х - х)(х - х)7} t—>О0 Оптимальным решением является фильтр Калмана, описываемый уравне- ниями х = Ах + Bu + L(yv - Сх - Du), Уг X D О и + Hw + v где матрица коэффициентов обратных связей L определяет
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX ся на основе решения алгебраического матричного уравнения Риккати. Наблюдатель (рис. 62) объединяет фильтр Калмана и объект управления; он использует известные входы и и результаты измерений yv, искаженные случайными помехами, для того, чтобы вычислить оценки вектора пере- менных состояния х и выходов у. Дискретный фильтр Калмана Задана дискретная модель объекта управления х[и +1] = Ах[л] + Ви[и] + Gw[n] (уравнение У v [«]= Сх[и] + Du[zz] + Hw[n] + v[zz] (уравнение состояний ) измерений ) с известными входами и и возмущениями по входам w и измерениям v, ко- торые являются "белым" шумом со следующими характеристиками: М {w} = М {v} - О, M{w[«]w[™]T} = Q£„m, M{v[„]v[w]T} = R£,,m, M{w[«M™]T} = N£„m . Требуется выполнить синтез наблюдателя для оценивания вектора пере- менных состояния объекта управления, который минимизирует установив- шуюся ошибку оценивания, Р = lim М{(х - х)(х - х)7} ?->оо Оптимальным решением является фильтр Калмана, описываемый урав- нениями
3. Синтез контуров управления с обратной связью, х[и +11 и] = Ах[и | п -1] + Ви[л] + L(yv - Сх[и | и -1] - Du[n]) У,.[« I«] . х[» I «]. С(1-МС) I-мс х[и | п -1] + (I-CM)D СМ -MD М и[п] где матрица коэффициентов обратных связей L и новая матрица коэффици- ентов обратных связей М определяются на основе решения матричного ал- гебраического уравнения Риккати. Наблюдатель объединяет фильтр Калмана и объект управления; он ис- пользует известные входы и [и] и результаты измерений yv[n], искаженные случайными помехами, для того, чтобы вычислить оценки вектора пере- менных состояния х [п|п] и выходов у [п|п]. Обновленная матрица коэффициентов обратных связей М применяется для того, чтобы уточнить предсказание х[л|п-1] на основе измерения у „[и] х[и | и] = х[и | п -1] + M(yv[n] - Сх[м | п -1] - Du[??]). новое уточнение Описание: Функция [kest, L, Р] = kalman(sys, Qn, Rn, Nn) возвращает модель фильт- ра Калмана kest в пространстве состояний для данной модели объекта управления sys и ковариационных матриц случайных возмущений и помех Qn, Rn, Nn. Система sys должна быть представлена моделью в пространстве состояний с матрицами А, [В, G], С, [D,H]. Полученный в результате фильтр Калмана kest имеет входом вектор [и; yv] и выходом - вектор [у; х]. Если матрица N = 0, то последний входной аргумент Nn можно опустить. Функция kalman позволяет выполнять расчеты фильтра Калмана как для непрерывных, так и для дискретных моделей; при этом для непрерывных моделей рассчитывается непрерывный фильтр Калмана, а для дискретных - дискретный. Для непрерывных моделей функция kalman также возвращает матрицу коэффициентов обратных связей L и ковариационную матрицу Р ошибок оценивания. Отметим, что матрица Р является решением соответствующего уравнения Риккати. Для дискретных моделей функция [kest, L, Р. М, Z] = kalman(sys, Qn, Rn, Nn) возвращает матрицу обратных связей L, обновленную матрицу обрат- ных связей М и ковариационные матрицы Р и Z ошибок оценивания в уста- новившемся режиме
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Р = lim М{е[л | и-1]е[л | л-1]г}, е[» | и-1] = х[и | п -1]- х[и | л-1], со Z= НтМ{е[л|л]е[л|л]/}, е[л | л] = х[л | л]-х[и]. w-»co Функции [kest, L, Р] = kalman(sys, Qn, Rn, Nn, sensors, known), [kest, L, P, M, Z] = kahnan(sys, Qn, Rn, Nn, sensors, known) применяются для объектов управления sys более общего вида, в которых могут быть определены из- вестные и случайные неизвестные и не все выходы измеряются. Векторы индексов sensors и known определяют, какие выходы системы sys измеря- ются и какие входы известны; все другие входы предполагаются случайны- ми и неизвестными. Пример: Выполнить синтез фильтра Калмана для системы с передаточной функ- цией //(5)=100/(?+5+100) при воздействии на вход управляющего сигнала и и возмущения w, если измерения выходного сигнала выполняются с ошиб- кой г. Случайные сигналы w и v - "белые" шумы с интенсивностями Q = 1 и R = 0.01 соответственно. sys = ss(tf(1OO,[1 1 100])) % Модель объекта в пространстве состояний % Разделение входного управляющего сигнала и и возмущения w [A.B.C.D] = ssdata(sys); Р = ss(A,[B B],C,[D D]) % Вход [u;w], выход у % Синтез фильтра Калмана Kest = kalman(P, 1,0.01) Р а = х1 х2 х1 -1 -6.25 х2 16 0 Ь = u1 и2 х1 2 2 х2 0 0 с = х1 х2 у1 0 3.125 d = u1 u2 у1 0 0 Continuous-time system. Kest а = х1_е х2_е х1_е -1 -60.215 х2_е 16 -41.556 [190]
3. Синтез контуров управления с обратной связью Ь = и1 у1 х1_е 2 17.269 х2_е 0 13.298 с = х1_е х2_е у1_е О 3.125 х1_е 1 О х2_е О 1 d = u1 у1 у1_е О О х1_е О О х2_е О О Continuous-time system. Выполним моделирование системы совместно с наблюдателем. Для это- го обозначим X] = xl, х2 = х2, х, = хЗ, х2 = х4 и введем матрицы А1 = х1 х2 хЗ X4 х1 -1 -6.25 0 0 х2 16 0 0 0 хЗ 0 53.966 1 -60.215 х4 0 41.556 16 -41.556 В1 = и1 и2 иЗ х1 2 2 0 х2 0 0 0 хЗ 2 0 17.269 х4 0 0 13.298 С1 = х1 х2 хЗ х4 у1 0 3.125 0 0 У2 0 0 0 3.125 D1 = и1 и2 иЗ у1 0 0 0 у2 0 0 0 Входом объединенной системы является вектор и1 = [и; w; v], а выхо- дом вектор у! = [у;у], причем у = 3.125*у2, у = 3.125у4. Выполним моде- лирование: t = 0:0.001:5; u = ones(size(t)); w=randn(size(t))‘ 1000А0.5: v=rfndn(size(t))*10Л0.5; [y1,y4]=lsim(S,ur,t);
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Для анализа результатов построим график точного значения выходного сигнала и его оценки: plot(t,y(:,1),'-b',t„y(:,2),,:b') и график измеренного и точного значений выходного сигнала: plot(t,v(1.:)'+y(:J),':g'. t. y(:,2),'-k', t. zeros(size(t)) Ограничения: Объект управления и случайные воздействия должны удовлетворять следующим условиям: • пара матриц (С, А) должна быть обнаруживаемой [1];
3. Синтез контуров управления с обратной связью • должны выполняться неравенства R > 0 и Q - NR' 'N1 >0 с учетом сле- дующих обозначений: Q = GQGT, R = HN + NTHT т HQH т, N=G(QHT + N); • не должно быть неуправляемых мод с собственными значениями на мнимой оси для непрерывной модели или на единичной окружности для дискретной модели. Сопутствующие функции: KALMD, ESTIM, LQR, LQGREG. Ссылки: 1. Квакернаак X., Сиван Р. Линейные оптимальные системы управления: Пер. с англ. М.: Мир, 197. С. 95-98. I KALMD I Синтез дискретного фильтра Калмана ————4 дЛЯ непрерывной системы Синтаксис: [kest, L, Р, М, Z] = kalmdfsys, Qn, Rn. Ts) Описание: Функция kalmd рассчитывает дискретный фильтр Калмана с динамиче- скими характеристиками, подобными характеристикам непрерывного фильтра, рассчитанного с помощью функции kalman. Фактически эта функ- ция предназначена для проектирования цифровой реализации непрерывного фильтра [1]. Функция [kest, L, Р, М, Z] = kalmd(sys, Qn, Rn, Ts) выполняет расчет дискретного фильтра Калмана kest с периодом дискретности Ts для непре- рывного объекта, описываемого следующими уравнениями: Jx - Ах + Bu + Gw, (уравнение состояния ) [у,, = Сх + Du + Hw + v, (уравнение измерении ) с известными входами и и возмущениями по входу w и измерениям V, опи- сываемыми "белым" шумом со следующими характеристиками: M{w} - M{v} = О, M{w(t)w(r)T} - Q<5(t-r), M{v(t)v(r)T } = R£(t - г), M{v(t)w(r)T} = N<5(t-r). Наблюдатель kest рассчитывается следующим образом. Непрерывная модель объект управления sys сначала преобразуется в дискретную с экстраполятором 0-го порядка и периодом дискретности Ts с помощью
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX функции c2d. Ковариационные матрицы Qn и R„ непрерывных случайных функций заменяются их дискретными эквивалентами Т, Qrf = JeATGQG'eA,dT, R = R„/rs. о Интеграл рассчитывается на основе формул для матричного экспонен- циала [2]. Затем для дискретной модели и случайных дискретных возмуще- ний и ошибок измерений с помощью функции kalman рассчитывается дис- кретный фильтр. Функция kalmd также возвращает матрицы коэффициентов обратных связей L и М, ковариационные матрицы ошибок оценивания дискретного наблюдателя Р и Z. Ограничения: Объект управления и случайные воздействия должны удовлетворять следующим условиям: • пара матриц (С, А) должна быть обнаруживаемой [3]; • должны выполняться неравенства R>0n Q-NR'N' >0 с учетом сле- дующих обозначений: Q-GQG1, R = HN + NTHT+HQHT, N = G(QHT + N); • не должно бьггь неуправляемых мод с собственными значениями на мнимой оси для непрерывной или на единичной окружности для дис- кретной моделей. Сопутствующие функции: LQRD, KALMAN, LQGREG. Ссылки: 1. Franklin G.F., Powell J.D., Workman M.L. Digital Control of Dynamic Systems, Second Edition, Addison-Wesley, 1990. 2. Van Loan C.F. Computing Integrals Involving the Matrix Exponential. IEEE Trans. Automatic Control, AC-15, October 1970. 3. Квакернаак X., Сиван P. Линейные оптимальные системы управления. Пер. с англ. М.: Мир, 1977. С. 95-98. | LQGREG ~~| Формирование ЛКГ-регулятора Синтаксис: rlqg = lqgreg(kest. К) rlqg = lqgreg(kest. К,’ current’) % только для дискретных моделей rlqg = lqgreg(kest, К, controls)
3. Синтез контуров управления с обратной связью Описание: Группа функций Iqgrcg формирует ЛКГ-регулятор путем соединения рассчитанного с помощью функции kalman фильтра Калмана и матрицы ко- эффициентов обратных связей, рассчитанной с помощью функций lqr, dlqr или Iqry. ЛКГ-регулятор является оптимальным и минимизирует некоторый квадратичный критерий качества, который оценивает эффективность регу- лирования и затраты на управление. ЛКГ-регулятор синтезируется как ди- намический объект, обеспечивающий фильтрацию шумов измерений вы- ходных сигналов объекта управления. Для непрерывных систем ЛКГ-регулятор генерирует управление и =Кх, где х - оценка вектора переменных состояния объекта управления, полу- ченная с помощью фильтра Калмана. Уравнения регулятора в пространстве состояний имеют вид i = (A -LC - (В - LD)K)x - Ly v, u = -Ki, здесь yv - вектор измеряемых выходов объекта управления. Структурная схема (рис. 65) иллюстрирует соединение этого динамиче- ского регулятора и объекта управления. ЛКГ-регулятор В случае дискретных моделей ЛКГ-ре1улятор можно формировать, ис- пользуя либо оценку вектора состояния х[л | п -1] на основе предшествую- щего измерения улибо оценку вектора состояния х[л|л) на основе текущего измерения у,, [и].
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX В то время как регулятор на основе предшествующего измерения u = -Ki[n | л -1] может быть реализован в реальном масштабе времени, регулятор на основе текущего измерения u = -Kx[zz | п], во-первых, определен только тогда, когда матрица I-K*M*D невырожден- ная, а, во-вторых, при его практической реализации нужно учесть процес- сорное время, требуемое для вычисления ирг], после того как измерения yv[n] становятся доступными для вычислений (нереальный масштаб време- ни). Функция rlqg = lqgreg(kest, К) возвращает ЛКГ-рсгулятор rlqg в виде ss- модели, если заданы фильтр Калмана kest и матрица обратных связей К. Она применима как для непрерывных, так и для дискретных моделей. Для вычисления kest и К следует использовать соответствующие функ- ции: • в случае непрерывного регулятора для непрерывного объекта управле- ния применяются функции Iqr или Iqry и kalman; • в случае дискретного регулятора для дискретного объекта управления применяются функции dlqr или Iqry и kalman; • в случае дискретного регулятора для непрерывного объекта управления применяются функции Iqrd и kalmd. Для дискретных систем функция Iqgreg рассчитывает регулятор на основе предшествующего измерения. Для расчета регулятора на основе текущего измерения следует ис- пользовать функцию rlqg = lqgreg(kest, k, 'current'). Функция rlqg = lqgreg(kest, k, controls) предназначена для тех случаев, когда используются наблюдатели, которые имеют доступ к известным входам ud. Вектор индексов controls указывает, какие входы наблюдате- ля являются известными управлениями и. Сформированный таким обра- зом ЛКГ-регулятор rlqg имеет входами векторы uf/ и yv (рис. 66). Ц96]
3. Синтез контуров управления с обратной связью ЛКГ-регулятор Рис. 66 Замечание: При соединении ЛКГ-регулятора с объектом управления предполагается использование положительной обратной связи. Пример: Следующий порядок функций решает задачу синтеза оптимального ЛКГ-регулятора: sys = ss(tf(100,[1 1 100])) % Модель объекта в пространстве состояний а = х1 х2 х1 -1 -6.25 х2 16 0 Ь = и1 х1 2 х2 0 с = х1 х2 у1 0 3.125 d = u1 у1 0 Continuous-time system. % Синтез оптимальных коэффициентов обратных связей К = lqry(sys,10,1) % и = -Кх минимизирует J(u) К = 10.274 7.2395 % Разделение управляющего сигнала и и возмущения d [А, В, С, D] = ssdata(sys); Р = ss(A, [В В], С, [D D]); % Вход [u;d], выход у % Синтез фильтра Калмана Kest = kalman(P,1,0.01)
В. С. Медведев, В. Г. Потемкин, CONTROL SYSTEM TOOLBOX х1_е х2_е х1_е -1 -60.215 х2_е 16 -41.556 и1 у1 х1_е 2 17.269 х2_е 0 13.298 х1_е х2_е у1_е 0 3.125 х1_е 1 О х2_е 0 1 и1 у1 у1_е О О х1_е О О х2_е О О Continuous-time system. % Формирование ЛКГ-регулятора F = lqgreg(Kest, К) а = х1_е х2_е х1_е -21.548 -74.693 х2_е 16 -41.556 У1 х1_е 17.269 х2_е 13.298 х1_е х2_е и1 -10.274 -7.2395 d = у1 u1 О Continuous-time system Последняя команда возвращает F-модель ЛКГ-регулятора в пространст- ве состояний. Чтобы проверить результат, следует замкнуть контур обратной связью и сравнить импульсные переходные характеристики разомкнутой и замкнутой систем.
3. Синтез контуров управления с обратной связью % Замыкание системы clsys = feedback(sys, F, +1) % Положительная обратная связь а = ? ? х1_е х2_е ? -1 -6.25 -20.548 -14.479 ? 16 0 0 0 х1_е 0 53.965 -21.548 -74.693 х2_е 0 41.556 16 -41.556 и1 ? 2 ? О х1_е О х2_е О ? ? х1_е х2_е у1 0 3.125 О О d = u1 у1 О Continuous-time system. % Построение импульсных переходных характеристик impulsefsys.’r-'.clsys.'b-') % Рис. 67 Рис. 67 |199|
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Ограничения. Дискретный ЛКГ-регулятор на основе текущих измерений не определен, если матрица I - K*M*D является вырожденной; здесь М - матрица обнов- ленных обратных связей и D - мазрица прямой передачи управления. Сопутствующие функции: KALMAN, KALMD, LQR, DLQR, LQRY, LQRD, REG. Решение матричных уравнений | LYAP | Решение непрерывных уравнений Ляпунова Синтаксис: X = lyap(A, Q) X = 1уар(А, В, С) Описание: Группа функций 1уар предназначена для решения непрерывных матрич- ных уравнений Ляпунова и Сильвестра. Последние уравнения часто назы- вают обобщенными уравнениями Ляпунова. Эти уравнения широко исполь- зуются в теории управления, включая теорию устойчивости, и в анализе по- ведения динамических систем при случайных воздействиях. Функция X = 1уар(А, Q) находит решение для матричного уравнения Ля- пунова вида АХ + ХАz + Q = 0, где А и Q - квадратные матрицы одинаковых размеров. Решение X является симметрической матрицей, если таковой является матрица Q. Функция X = 1уар(А, В, С) находит решение для обобщенного уравнения Ляпунова или уравнения Сильвестра вида АХ + ХВ + С = 0. Матрицы А, В, С должны иметь согласованные размеры, но не обяза- тельно должны быть квадратными. Алгоритм: Функция 1уар преобразует матрицы А и В в комплексную форму Шура и находит решение для треугольных матриц, после чего выполняется обрат- ное преобразование. Ограничение: Непрерывное уравнение Ляпунова имеет единственное решение, если собственные значения аь а2, ... , а„ матрицы А и рь р?, ... , Р„ матрицы В для всех пар (i,f) удовлетворяют условию jzoo1
3. Синтез контуров управления с обратной связью а,- + Р,- 0; если это условие нарушено, выдается сообщение об ошибке: Solution does not exist or is not unique. {Решение не существует или не является единственным.) Сопутствующие функции: DLYAP, COVAR. | DLYAP | Решение дискретного уравнения Ляпунова Синтаксис: X = dlyap(A, Q) Описание: Функция dlyap решает дискретное уравнение Ляпунова A7XA-X + Q = 0, где А и Q - матрицы размера пхл. Решение является симметрическим, когда матрица Q симметрическая, и положительно определенным, когда матрица Q положительно определена, а собственные значения матрицы А расположены внутри окружности еди- ничного радиуса. Ограничение: Дискретное уравнение Ляпунова имеет единственное решение, если соб- ственные значения а,, а2, • ••> о.„ матрицы А для всех пар (г,у) удовлетворя- ют условию a; otj * 1; если это условие нарушено, выдается сообщение об ошибке: Solution does not exist or is not unique. (Решение не существует или не является единственным.) Сопутствующие функции: LYAP, COVAR. | CARE ~~| Решение непрерывных алгебраических уравнений Риккати Синтаксис: [X, L, G, гг] = саге(А, В, Q) [X, L, G, гг] = саге(А, В, Q, R, S, Е) [X, L, G, report] = саге(А, В, Q.'report') [Х1, Х2, L, report] = саге(А, В, Q.'implicit') Описание: Группа функций саге предназначена для нахождения решений двух ти- пов непрерывных алгебраических уравнений Риккати. Используемый для {201]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX отыскания решений алгоритм CARE (Continous-time Algebraic Riccati Equation) описан в работе [1 ]. Функция [X, L, G, rr] = саге(А, В, Q) находит единственное решение ал- гебраического уравнения Риккати Ric(X) = А7 X + ХА - ХВВ7 X + Q = О в виде такой матрицы X, что все собственные значения матрицы замкнутой системы А - ВВ X расположены в левой полуплоскости комплексной пе- ременной s. Для отыскания решения уравнению Риккати ставится в соответ- ствие матрица Гамильтона вида Г А -ВВТ L-Q -Ат _ и выполняется ее спектральное разложение. На основе спектрального раз- ложения находится устойчивое решение алгебраического уравнения Рикка- ти в виде симметрической матрицы X. Кроме того, функция возвращает: • собственные значения L матрицы А - ВВТХ; • матрицу коэффициентов обратных связей G = ВТХ; • относительную невязку, (т. е. погрешности подстановки решения в ис- ходное уравнение) решения гг, определяемую выражением Mr ’ Функция [X, L, G, rr] = care(A, B, Q, R, S, E) решает обобщенное уравне- ние Риккати вида Ric(X) = А7 ХЕ + Е7'ХА - (Er ХВ + S)R“‘ (Вг ХЕ + S7") + Q = 0. Такие уравнения возникают в теории Щ-оптимизации. В этом случае матрица коэффициентов обратных связей равна G = R“'(B7 ХЕ + Sr), а соб- ственные значения L определяются путем решения обобщенной проблемы собственных значений для пучка матриц {А - B*G, Е}. Два дополнительных формата функции саге используются при синтезе Нк-оптимальных законов управления. Функция [X, L, G, report] = саге(А, В, Q, ...,’ report’) возвращает сообще- ние об ошибке, кода решения уравнения Риккати не существует. Выходной аргумент report может принимать следующие значения: -1, когда матричный пучок {Г, Е} имеет собственные значения на мни- мой оси или очень близко к ней; -2, когда матрица Х| вырожденная и не существует конечного решения X =Х2ХГ‘;
3. Синтез контуров управления с обратной связью rr - значение относительной невязки решения. Возможно применение функции в форме [XI, Х2, L, report] = саге(А, В, Q,'implicit'), когда матрица X возвращается в неявной форме в виде пары матриц {Хь Х2}. Заметим, что при таком формате в случае успешного ре- шения возвращается значение report = 0. Пример 1: Дано Г-3 21 Г01 г з а=[] с=[* -‘Ьг=3 Требуется решить обобщенное уравнение Риккати при условии Е = I, S = 0. а = [-3 2;1 1]; b = [0 ; 1]; с = [1 -1]; г= 3; [х, I, д] = саге(а, Ь, с'*с, г) х = 0.58952 1.8216 1.8216 8.8188 1 = -3.5026 -1.437 д= 0.60719 2.9396 Можно проверить, что найденное решение действительно соответствует устойчивой системе, если сравнить собственные значения матрицы и а - b*g: [eig(a) eig(a-b*g)] ans = -3.4495 -3.5026 1.4495 -1.4370 Отметим, что собственные значения eig(a - b*g) совпадают со значением выходной переменной I. Пример 2: Решить уравнение Риккати следующего вида, соответствующее задаче П,с -оптимизации: АГХ + ХА + Х(у-2В,В[ - В2В2)Х + С1 С = 0. Перепишем это уравнение в формате функции сагс: в; в; А'Х + ХА-Х[В, В -у21 0 0 I х+с'с=о. [203
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Теперь можно найти устойчивое решение, положив В = [В1,В2] ml =size(B1,2) m2 = size(B2,2) R = [-gA2*eye(m1) zeros(m1,m2); zeros(m2,m1) eye(m2)] X = care(A, B, C'*C, R) Алгоритм: При реализации функции саге использован алгоритм, описанный в [1]. Этот алгоритм основан на работе с матрицей Гамильтона, когда матрица R хорошо обусловлена и Е = I, и использует матричный пучок {Г, Е} и QZ- алгоритм в других случаях. Ограничения: : Пара матриц (А, В) должна быть стабилизируемой [2]. Кроме того, мат- рица Гамильтона Г или пучок {Г, Е} не должны иметь собственных значе- ний на мнимой оси. Достаточным условием для этого является свойство об- наруживаемости [2] пары матриц (Q, А) при S = 0 и R > 0 или положитель- ная определенность матрицы Сопутствующие функции: DARE, LYAP. Ссылки: 1. Arnold W.F., III, Laub A.J. “Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations” Proc.// IEEE. 1984. N 72. P. 1746-1754. 2. Квакернаак X., Сиван P. Линейные оптимальные системы управления. Пер. с англ. М.: Мир, 1977, 650 с. I DARE I Решение дискретных алгебраических уравнений Риккати Синтаксис: [X, L, G, rr] = dare(A, В, Q, R) [X, L, G. гг] = dare(A, В, Q, R, S, Е) [X, L, G, report] = dare(A, В, Q, .... 'report') [Х1, Х2, L, report] = dare(A, В, Q.'implicit') Описание: Группа функций dare предназначена для нахождения решений двух ти- пов дискретных алгебраических уравнений Риккати. Используемый для отыскания решений алгоритм DARE (Discrete-time Algebraic Riccati Equation) описан в работе [1].
3. Синтез контуров управления с обратной связью Функция [X, L, G, rr] = dare(A, В, Q, R) находит единственное решение алгебраического уравнения Риккати Ric(X) = А7 ХА - X + А7 ХВ(В7 ХВ + R)'1 В7 ХА + Q = О в виде такой матрицы X, что все собственные значения матрицы замкнутой системы Ас= А - В(ВТХВ + R)‘'BTXA расположены внутри единичной ок- ружности комплексной плоскости z. Матрица X симметрическая и является устойчивым решением алгебраического уравнения Риккати. В качестве вы- ходных аргументов также возвращаются: • собственные значения L матрицы А,.; • матрица коэффициентов обратных связей G = (ВТХВ + R)-1BTXA; • относительная невязка решения rr, определяемая выражением _ ||Ric(X)||f rr= ИЯ ’ Функция [X, L, G, rr] = dare(A, В, Q, R, S, E) решает обобщенное уравне- ние Риккати вида А7 ХА - Е7'ХЕ - (АГХВ + S)(B7XB + R)-1 (ВГХА + S7") + Q = 0. В этом случае матрица коэффициентов обратных связей равна G =(ВГХВ + R)_|(B7 XA + Sr), а собственные значения L определяются пу- тем решения обобщенной проблемы собственных значений для пучка мат- риц {A - B*G, Е}. Два дополнительных формата функции dare используются при синтезе 11,^.-оптимальных законов управления. Функция [X, L, G, report] = dare(A, В, Q, ...,' report') возвращает сообщение об ошибке, кода решения уравнения Риккати не существует. Выходной ар- гумент report может принимать следующие значения: -1, когда матричный пучок {Г, Е} имеет собственные значения на мни- мой оси или очень близко к ней; -2, когда матрица Xi вырожденная и не существует конечного решения Х = Х2Х|‘|; rr - значение относительной невязки решения. Возможно применение функции в форме [XI, Х2, L, report] = dare(A, В, Q,..., 'implicit'), когда матрица X возвращается в неявной форме в виде пары матриц {Xi, Х2}. Заметим, что при таком формате в случае успешного ре- шения возвращается значение report = 0.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Алгоритм: При реализации функции dare использован алгоритм, описанный в [1]. Этот алгоритм основан на работе с матрицей Гамильтона, когда матрица R хорошо обусловлена и Е = 1, и использует матричный пучок {Г, Е} и QZ- алгоритм в других случаях. Ограничения: Пара матриц (Л, В) должна быть стабилизируемой [2]. Кроме того, мат- рица Гамильтона Г или пучок {Г, Е} не должны иметь собственных значе- ний на мнимой оси. Достаточным условием для этого является свойство об- наруживаемости [2] пары матриц (Q, А) при S = 0 и R > 0 или положитель- ная определенность матрицы Сопутствующие функции: CARE, DLYAP Ссылки: 1. Arnold W.F., III, Laub A.J. “Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations” Proc.//IEEE. 1984. N 72. P. 1746-1754. 2. Кваксрнаак X., Сиван P. Линейные оптимальные системы управления. Пер. с англ. М.: Мир, 1977, 650 с.
4. ВЫЧИСЛИТЕЛЬНЫЕ ПРОБЛЕМЫ ПРИ РАСЧЕТЕ СИСТЕМ УПРАВЛЕНИЯ При работе с одномерными динамическими моделями невысокого порядка (п < 5) обычно не возникает трудностей. Пользователь в этом случае не сталки- вается с какими-либо проблемами и получает точные ответы независимо от ти- па используемой модели системы или выбранного преобразования. В случае моделей высокого порядка или многомерных систем получение численного ре- зультата может вызвать определенные трудности, поскольку точность вычис- лений ограничена длиной мантиссы при представ-лении чисел в арифметике с плавающей точкой. Для получения на компьютере достаточно точного численного результата необходимо соблюсти выполнение некоторых условий, а именно: • обеспечить хорошую обусловленность задачи; • обеспечить численную устойчивость алгоритма; • выполнить высококачественную реализацию алгоритма в арифметике ко- нечной точности. Задача считается хорошо обусловленный, если малые изменения исходных данных вызывают малые изменения решения. Когда малые изменения исход- ных данных вызывают большие изменения в решении, задача классифицирует- ся как плохо обусловленная. Алгоритм называется численно устойчивым, если полученное на его основе решение зависит от возмущений не в большей мере, чем сама задача, т. е. обусловленность алгоритма не хуже обусловленности ис- ходной задачи. Можно показать, что многие алгоритмы линейной алгебры ус- тойчивы с точки зрения обратного анализа ошибок [2], т. е. найденное с их по- мощью решение совпадает с точным решением при малом возмущении перво- начальной задачи. Устойчивый алгоритм не может обеспечить более точного решения, чем это обусловлено исходными данными, однако неустойчивый ал- горитм может выдать неточное решение даже для хорошо обусловленной ис- ходной задачи [1]. Хотя большинство инструментальных средств ППП Control System Toolbox использует надежные алгоритмы, в некоторых случаях используются неустой- чивые алгоритмы и возникают плохо обусловленные задачи. Такие не вполне надежные средства могут быть применены для решения задач с моделями не- высокого порядка, но могут вызвать серьезные вычислительные проблемы в случае моделей высокого порядка. Тем не менее такие инструментальные сред- ства находят применение в силу следующих причин: wiomroi
___________В, С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX • они эффективны для моделей низкого порядка, которыми описывается зна- чительная доля реальных технических задач; • большое число инженеров-практиков рассуждают в терминах этих инстру- ментальных средств; • в состав инструментального средства, как правило, включается альтерна- тивный и более надежный метод; • такие средства широко применяются для целей обучения. В то же время важно понимать те ограничения, которые возникают при ис- следовании моделей систем управления на ЭВМ. Следуя нескольким главным принципам, можно избежать применения тех методов и моделей, которые мо- гут привести к вычислительным трудностям. Ниже мы рассмотрим те примеры и численные ловушки, которые могут возникать при расчете систем управле- ния, и дадим рекомендации по применению наиболее надежных алгоритмов. 4.1. Обусловленность и численная устойчивость В численном анализе важную роль играют две ключевые концепции - обу- словленность задачи и устойчивость алгоритма. Обусловленность вычислительной проблемы Рассмотрим задачу решения системы линейных алгебраических уравнений Ах = Ь со следующими данными: А =[0.7800 0.5630:0.9130 0.6590]; b = [0.2170;0.2540]; Точное решение для этой системы равно х = [1, -1]', а вычисленное с помощью системы MATLAB х = А\Ь х = 1.0000 -1.0000 Однако изменяя формат вывода результата таким образом, чтобы учесть большее количество значащих цифр, получим format long g, х х = 0.999999999890254 -0.999999999847955 Таким образом, при решении реальных задач никогда нельзя быть уверен- ным, что полученное решение является истинным.
4. Вычислительные проблемы при расчете систем управления К тому же данная задача является плохо обусловленной. В этом можно убе- диться, если возмутить элементы матрицы А в третьем десятичном знаке, до- бавляя матрицу возмущений Е: Е =[0.0010 0.0010; -0.0020 -0.0010]; Теперь найдем решение возмущенной системы уравнений (А + Е)х ~ Ь. хе = (А+Е)\Ь хе = -5.0000 7.3085 Заметьте, что относительно малые возмущения исходных данных вызвали значительные изменения решения, что свидетельствует о плохой обусловлен- ности данной задачи. Одним из способов связать погрешность решения с погрешностью задания исходных данных в задаче отыскания решений системы линейных уравнений является введение коэффициента пропорциональности между этими погрешно- стями, который определяется как к(А) = ||А||||А-!|[ и называется числом обусловленности по отношению к задаче обращения мат- рицы. Число обусловленности характеризует потерю точности, которая возникает из-за погрешностей округления при решении системы уравнений методом ис- ключения Гаусса, и может быть использовано для оценки точности операций обращения матрицы и решения линейных уравнений. Это понятие возникает в теории возмущений Уилкинсона [2], когда сравниваются возмущенное реше- ние (А + E)''b с истинным решением А!Ь. В системе MATLAB для оценки чисел обусловленности предназначена функция cond, которая вычисляет число обусловленности относительно 2- нормы. В этом случае число cond(A) - это отношение наибольшего сингулярно- го числа матрицы А к наименьшему, а значение logl0(cond(A)) определяет ко- личество десятичных знаков, которые могут быть потеряны из-за ошибок ок- ругления компьютера. Для рассмотренного выше примера log10(cond(A)) ans = 6.3411 и количество десятичных знаков, которые могут быть потеряны из-за ошибок округления компьютера, составляет более шести. Согласно IEEE-стандарту числа удвоенной точности имеют приблизительно 16 десятичных разрядов. Таким образом, если матрица имеет число обуслов- ленности порядка 1О10, то можно ожидать, что результат ее обращения будет точным только в пределах шести разрядов. Когда число обусловленности пре-
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX вышает величину l/sqrt(eps), то выдается предупреждение. Для компьютеров, в которых реализован стандарт IEEE-арифметики, машинная точность eps при- близительно равна 2.2x10'16, а величина l/sqrt(eps) = 6.7х 10*. Другой важный аспект проблемы обусловленности заключается в том, что невязки являются достоверными индикаторами точности решения только в том случае, если задача хорошо обусловлена. Поясним это на примере. Вычислим вектор .невязки г = Ах - b для двух возможных вариантов решения х = [0.999 -1.001]' и х = [0.341 -0.087]'. Заметим, что второе, менее точное решение дает меньшую невязку, чем первое. Отсюда можно сделать вывод, что невязки не являются надежными индикаторами точ- ности решения для плохо обусловленных задач. Это необходимо иметь в виду при решении конкретных задач. Рассмотрим проблему обусловленности матриц по отношению к задаче на собственные значения. Примером такой плохо обусловленной матрицы являет- ся матрица размера лхл с единицами на первой наддиагонали: п = 20; А = diag(ones(1, п -1), 1); Собственные значения этой матрицы равны нулю. Введем возмущение по- рядка 2"” в первый элемент последней строки этой матрицы. Возмущенная мат- рица имеет п различных собственных значений Xi,.X2, ..., Xm где X* = 1/2ехр(/2пАУл). А(20,1) = 2Л-20; eig(A) ans = -0.500000000000022 -0.475528258147555 + -0.475528258147555 - -0.404508497187494 + -0.404508497187494 -0.293892626146225 + -0.293892626146225 - -0.154508497187472 + -0.154508497187472 - -1.22957199977236е-014 + -1.22957199977236е-014 - 0.154508497187488 + 0.154508497187488 - 0.29389262614623 + 0.29389262614623 - 0.475528258147586 + 0.475528258147586 - 0.499999999999988 0.404508497187471 + 0.404508497187471 0.1545084971874841 0.154508497187484! 0.293892626146223! 0.293892626146223! 0.404508497187488! 0.404508497187488! 0.475528258147559! 0.475528258147559! 0.500000000000012! 0.500000000000012! 0.475528258147577! 0.475528258147577! 0.404508497187469! 0.404508497187469! 0.154508497187472! 0.154508497187472! 0.293892626146241! 0.293892626146241!
4. Вычислительные проблемы при расчете систем управления Таким образом, видно, что малое возмущение порядка 2" в исходных дан- ных было усилено примерно в 2"раз, что привело к большим возмущениям при решении задачи на собственные значения для матрицы А. Более подробно и обстоятельно эти вопросы рассмотрены в фундаментальной работе Уилкин- сона [2]. Заметим, что матрица может быть плохо обусловлена по отношению к зада- че обращения, но хорошо обусловлена по отношению к задаче на собственные значения, и наоборот. Рассмотрим верхнюю треугольную матрицу, состоящую из единиц: п = 5; А = triu(ones(n)); п = 5; А = triu(ones(n)); max(round(condeig(A))) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 7.320500e-069. ans= 6.8301345536507e+067 round(cond(A)) ans = 7 Эта матрица плохо обусловлена по отношению к задаче на собственные значения, но хорошо обусловлена по отношению к задаче обращения. С другой стороны, матрица при малых <1 хорошо обусловлена по отношению к задаче вычисления собст- венных значений, но плохо обусловлена по отношению к операции обращения. Численная устойчивость Продемонстрировать численную неустойчивость на конкретных вычисли- тельных задачах несколько более сложно, чем плохую обусловленность. Для детального рассмотрения рекомендуем читателю работы [1-3]. Тем не менее обратимся к примеру, который позволит поясните, свойства численной устойчивост и и обусловленности. Известно, что метод исключения Гаусса без выбора главного элемента при решении системы линейных уравне- нии Ах = Ь является численно неустойчивым. Пусть Го.оо! 11 Г11 А L 1 -J’ b=L°J и все вычисления выполняются в десятичной арифметике с тремя значащими цифрами. В этом случае точное значение для вектора а 'Ь равно И
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Используя первую строку матрицы в качестве ведущей строки, умножим ее элементы на 1000 и вычтем из элементов второй строки; получим эквивалент- ную треугольную систему вида 0.001 0 Заметим, что диагональный элемент во второй строке должен быть равным -1001, но ввиду округления до трех значащих цифр он полагается равным - 1000. Поэтому в результате из второго уравнения имеем х2= 1, что является хо- рошей аппроксимацией решения, но после подстановки в первое уравнение 0.001X1=1.000 - (1,000)(1.000) имеем Х| = 0. Это является весьма плохим результатом, что вызвано численной неустойчивостью задачи при выполнении вычислений с конечной разрядно- стью, хотя сама задача является хорошо обусловленной. Безусловно, что в сис- теме MATLAB алгоритм метода исключения Гаусса реализован с выбором главного элемента. 4.2. Выбор lti-моделей Теперь обратимся к применению рассмотренных выше понятий для выбора lti-моделей при автоматизированном расчете систем регулирования и управле- ния. ППП Control System Toolbox использует три типа lti-моделей: • ss-модели в пространстве состояний; • tf-модели в виде передаточных функций; • zpk-модели в виде нулей, полюсов и коэффициента передачи. Следует заметить, и это продемонстрировано в последующих разделах, что ss-модели в пространстве состояний являются наиболее предпочтительными для числовых вычислений. SS-модели Представление динамической системы в пространстве состояний - это наи- более надежная в вычислительном отношении модель линейной системы. Это ‘обстоятельство является одной из причин популярности современной теории управления, использующей динамические модели в пространстве состояний. В ППП Control System Toolbox реализованы хорошо известные устойчивые алго- ритмы для расчета собственных значений, частотнйх характеристик, переход- ных процессов и других характеристик систем, описываемых четверкой матриц {А, В, С, D} [1]. Для среды системы MATLAB ss-модели - это наиболее естест- венный объект для вычислений. Однако получение точных результатов не га- рантируется даже для этих моделей из-за ограниченной разрядности машинно-
4. Вычислительные проблемы при расчете систем управления го слова. Тем не менее если модель хорошо обусловлена, то это хорошая пред- посылка получения точного результата. TF-модели Модели динамических систем в виде передаточной функции, представлен- ные как отношение многочленов, широко распространены в практике проекти- рования систем регулирования и управления. Тем не менее в вычислительном отношении они, как правило, плохо обусловлены. Для моделей, порядок кото- рых больше 10 и имеющих большой разброс значений коэффициентов много- членов, возникают проблемы при использовании функций roots, conv, bode, step, а также при преобразовании в формы ss или zpk моделей. Основная причина этих затруднений - чрезвычайная чувствительность кор- ней многочлена к изменению значений его коэффициентов. Рассмотрим пример из работы [2], который иллюстрирует эту особенность. Для передаточной функции Я(5) = (^ +1)0 + 2)-(5+ 20) = ?» + 21о29 + - + 20! полюсы многочлена известны и распределены в арифметической прогрессии как (-1, -2,..., -20). Представим эту передаточную функцию в виде zpk-модели sys = zpk([], [-1:-1:-20], 1); Преобразуем ее сначала в форму tf-модели, а затем в форму ss-модели, что- бы получить матричное описание в виде масштабированной присоединенной матрицы, у которой элементы на первой поддиагонали не равны единице: sysl = ss(tf(sys)); А = ssdata(sys1); А(1.:) ans = Columns 1 through 7 -210.0000 -80.5273 -38.3560 Columns 8 through 14 -25.4287 -24.9189 -18.7064 -11.0029 -10.2866 -7.7071 -9.2906 Columns 15 through 20 -9.0082 -6.9978 -4.3206 -4.1864 -3.1225 -1.7429 -1.3955 diag(A, -1)' ans = Columns 1 through 3 256 Columns 4 through 6 32 Columns 7 through 9 -0.7483 -0.4745 -0.5276 128 64 32 32 16 Columns 10 through 12 8 16 8 8 8
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Columns 13 through 15 4 4 4 Columns 16 through 18 2 2 1 Column 19 0.25 Вычислим собственные значения этой матрицы eig(A)' ans = Columns 1 through 7 -19.9997 -19.0032 -17.9857 -17.0360 -15.9319 -15.0842 -13.9220 Columns 8 through 14 -13.0565 -11.9725 -11.0107 -9.9972 -9.0005 -7.9999 -7.0000 Columns 15 through 20 -6.0000 -5.0000 -4.0000 -3.0000 -2.0000 -1.0000 Нетрудно видеть, что в силу ограниченной разрядности IEEE-арифметики собственные значения вычислены недостаточно точно. Но трудности на этом нс заканчиваются. Предположим, что коэффициент при в передаточной функции H(s) или, что то же самое, коэффициент А(1, 1) присоединенной матрицы возмущен от значения -210 до -210-2’23 (2'23 = = 1.2х10‘7, что соответствует возмущению в седьмом десятичном знаке): А(1,1) = А(1,1) - 2Л(-23); eig(A)’ ans = Columns 1 through 4 -20.8469 -19.5024 - 1.94031 -19.5024 + 1.9403i -16.7306 - 2.81261 Columns 5 through 8 -16.7306 + 2.8126i -13.9921 - 2.5186i -13.9921 + 2.51861 -11.7933 -1.65141 Columns 9 through 12 -11.7933 + 1.6514i -10.0958 - 0.6418i -10.0958 + 0.64181 -8.9178 Columns 13 through 16 -8.0073 -6.9997 -6.0000 -5.0000 Columns 17 through 20 -4.0000 -3.0000 -2.0000 -1.0000 Столь малое возмущение вызвало значительное изменение собственных значений, некоторые из них стали комплексными, что свидетельствует об очень плохой обусловленности присоединенной матрицы по отношению к задаче на собственные значения. И действительно, максимальное значение спектрального числа обусловленности для этой матрицы равно max(condeig(A)) ans= 5.3553е+013 Разные корни многочлена имеют различную чувствительность к возмуще- ниям его коэффициентов. Например, для рассматриваемого случая спектраль- ные числа обусловленности равны
4. Вычислительные проблемы при расчете систем управления round(condeig(A))' ans = Columns 1 through 6 1.3595e+011 1.3516e+012 6.5994e+012 1.7229e+013 3.8526е+013 5.0469e+013 Columns 7 through 12 5.3553e+013 4.5921e+013 2.6049e+013 1.3419e+013 4,9224e+012 1.4596e+012 Columns 13 through 18 3.328e+011 5.8807e+010 7.8889e+009 7.747e+008 5.314e+007 2.4164e+006 Columns 19 through 20 65006 770 и изменяются в диапазоне от 770 до 1013. Необходимость вычисления всех корней многочлена, или, что эквивалент- но, полюсов передаточной функции, или собственных значений матрицы в управляемой или наблюдаемой канонической форме - частая и естественная за- дача теории управления, но в вычислительном отношении это весьма чувстви- тельная к возмущениям проблема. Для погружения в детали этой сложной вы- числительной проблемы следует обратиться к работе [2]. В заключение перечислим основные трудности при работе с tf-моделями в виде передаточных функций, а следовательно, и вычислений, связанных с мно- гочленами: • высокий порядок и большой разброс значений коэффициентов многочлена приводит к плохо обусловленным задачам на собственные значения; • положение полюсов системы весьма чувствительно к изменению коэффи- циентов знаменателя передаточной функции; • масштабированная присоединенная форма, формируемая командой ss, предпочтительнее, чем каноническая присоединенная форма, которая часто приводит к плохо обусловленным задачам, особенно для моделей высокого порядка. ZPK -модели Третье представление, используемое для lti-моделей в системе MATLAB, - это zpk-модели, описываемые нулями, полюсами и коэффициентом передачи. В некоторых применениях, например в методе корневого годографа, такое описа- ние является крайне удобным, хотя подавляющее большинство подходов к рас- чету систем управления основано на использовании tf и ss моделей. В отличие от tf-представления zpk-представление может оказаться более надежным при выполнении вычислений. Рассмотрим пример из предыдущего раздела. В этом случае преобразование zpk-модели в форму ss-модсли приводит к меньшей потере точности при вы- числении собственных значений:
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Н1 = tf(1, poly(-1:-1:-20)); Hiss = ss(H1); а1 = ssdata(H1); H2 = zpk([], -[1:20], 1); H2ss = ss(H2); a2 = ssdata(H2); round([max(ccndeig(a1)) max(condeig(a2))]) ans = 5.3553e+013 44 Поскольку спектральное число обусловленности для соответствующей матрицы оказывается малым, то преобразование из подкласса zpk в подкласс ss обеспечивает меньшую потерю точности в значениях полюсов, чем в случае tf- модели: format long g, [sort(eig(a1)) sort(eig(a2))] ans = -19.9996542575123 -20 -19.0032271051056 -19 -17.9857299331623 -18 -17.0359534772434 -17 -15.9319313184469 -16 -15.0841505613887 -15 -13.9220402168276 -14 -13.0564925329822 -13 -11.9724598955843 -12 -11.0107249063272 -11 -9.99717055562865 -10 -9.00052590330152 -9 -7.99993252694935 -8 -7.00000797109139 -7 -5.99999864475784 -6 -5.00000021100099 -5 -3.99999998212978 -4 -3.00000000055618 -3 -2.00000000000383 -2 -0.999999999999834 -1 Преобразование модели из пространства состояний в подкласс zpk является устойчивой операцией, хотя обработка бесконечных нулей может иногда при- вести к сложностям, а кратные корни могут вызывать значительные вычисли- тельные проблемы. Общая рекомендация при работе с lti-моделями состоит в том, чтобы избе- гать неоправданных многократных преобразований моделей, поскольку неко- торые преобразования оказываются численно неустойчивыми, и это ведет к по- тере точное™ вычислений.
4. Вычислительные проблемы при расчете систем управления 4.3. Масштабирование Модель динамической системы в пространстве состояний является наибо- лее предпочтительной при проведении вычислительных расчетов. Однако из-за ограничений, связанных с представлением чисел в арифметике с плавающей точкой, точные результаты не могут быть гарантированы даже при использова- нии моделей в пространстве состояний. Основой для получения точного ре- зультата является хорошо обусловленная задача. Одним из способов повышения обусловленности ss-модели, описываемой четверкой матриц {А, В, С, D}, является масштабирование, которое приводит к нормализации соответствующих матриц. Примером плохо масштабированной матрицы может быть матрица динамической системы, для которой две состав- ляющие соответствующего вектора состояния имеют размерности, например, парсеков и миллиметров. В этом случае следует ожидать большой разброс зна- чений элементов матрицы. Такие матрицы часто оказываются плохо обуслов- ленными как относительно операции обращения, так и относительно вычисле- ния собственных значений, поэтому в итоге вычислений можно получить не- точные результаты. Процедура нормализации четверки матриц {А, В, С, D} может бьггь выпол- нена с использованием диагональных масштабирующих матриц Nu, Ny, предназначенных для масштабирования входов и, переменных вектора состоя- ния х и выходов у: u = N„u„, x = Nxx„, y = Nyy„. Новая нормализованная система описывается четверкой матриц {An, Bn, Cn, Dn} d*„/dt = Anx„+B„u„, Уп =C„X„+D„U„> где a^n^'an,, Bn=N~lBN„, c„=n;'cnx, d„=n;'dn„. Выбор масштабирующих матриц определяется некоторой специальной про- цедурой нормализации. Один из возможных подходов заключается в том, чтобы обеспечить максимально возможные значения сигналов по каждому входу, пе- ременным состояния и каждому выходу в некоторых определенных пределах. Этот подход был применен впервые при моделировании на аналоговых ЭВМ, когда диапазон изменения сигналов был ограничен допустимым диапазоном, например в пределах от 0 до 10 В. Второй подход состоит в том, чтобы сформировать такие масштабирующие матрицы, которые обеспечивают близость значений грамианов наблюдаемости и управляемости для преобразованной системы (функция balreal).
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX В состав ППП Control System Toolbox включена функция ssbal, которая вы- полняет масштабирование вектора состояния автоматически. Она минимизиру- ет норму матрицы ’n;'an, n;'b~ CNX О Масштабирование с помощью диагональной матрицы представляет эффектив- ный метод для сокращения диапазона изменения переменных состояния и тем самым улучшения обусловленности решаемой задачи. Описанные выше проблемы связаны с обработкой данных на ЭВМ и отно- сятся к любым ППП, связанным с расчетом систем управления. Система MATLAB включает лучшие из известных алгоритмов, связанных с решением матричных задач. Тем не мене в заключение следует напомнить главные пра- вила, которым необходимо следовать при проектировании систем регулирова- ния и управления: • ss-модели являются наиболее надежными при выполнении вычислений; • масштабирование исходных данных повышает точность расчетов; • численные расчеты - это виртуозное дело и в принципе любая программа может при определенных условиях оказаться неудачной. Ссылки: 1. Laub A. J. “Numerical Linear Algebra Aspects of Control Design Computations”// //IEEE Transactions on Automatic Control, Vol. AC-30, №. 2, February 1985. P. 97-108. 2. Wilkinson J.H. Rounding Errors in Algebraic Processes, Prentice-Hall, 1963. 3. Уилкинсон Дж. X. Алгебраическая проблема собственных значений. М.: Наука, 1970. 564 с.
5. ПРИМЕНЕНИЕ ПРОЦЕДУР АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ В состав ППП The Control System Toolbox включено четыре демонстра- ционных примера, иллюстрирующих применение инструментальных средств ППП для синтеза регуляторов автоматических систем. В примерах рассматривается синтез регуляторов для одномерных и многомерных дис- кретных и непрерывных систем на основе методов корневого годографа, частотных методов и методов оптимального управления. Применение клас- сических частотных методов и метода корневого годографа демонстрирует- ся на примерах расчета контура демпфирования канала рыскания реактив- ного транспортного самолета (М-файл jetdemo) и цифрового контроллера для управления магнитными головками жесткого диска (М-файл diskdemo). Применение методов оптимального управления и фильтрации показано на примере расчета оптимального по квадратичному критерию качества ЛКГ- регулятора для привода системы сжатия валков прокатного стана (М-файл milldcmo), а также расчета стационарного и нестационарного фильтра Калмана. 5.1. Проектирование методом корневого годографа Демонстрационный файл jetdemo.m иллюстрирует возможности ППП The Control System Toolbox на примере использования классических проце- дур проектирования для расчета контура демпфирования канала рыскания реактивного транспортного самолета. Ниже приведен протокол работы с файлом jetdemo. Четверка матриц {А, В, С, D}, описывающая модель динамики лета- тельного аппарата в пространстве состояний, задана для высоты Н = 40000 футов и скорости полета V = 0.8М А = [ -0.0558 -0.9968 0.0802 0.0415 0.5980 -0.1150 -0.0318 0 -3.0500 0.3880 -0.4650 0 0 0.0805 1.0000 0]; ЖОЖЗИ
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX В = [ 0.0729 0.0000 -4.7500 0.00775 1.5300 0.1430 0 0]; С = [ 0 1 00 0 00 1]; D = [ 00 0 0]; Следующие команды создают ss-модель в виде lti-объекта и присваива- ют имена переменным состояния, входов и выходов. states = {’beta' 'yaw1 'roll' 'phi'}; % {'бета', 'рыскание', 'угол крена', 'фи'} inputs = {'rudder1 'aileron'}; % {'руль', 'элерон'} outputs = {'yaw' 'bank angle'}; % {'рыскание', 'угол крена'} sys = ss(A, В, C, D, 'statename', states,'inputname', inputs, 'outputname', outputs) a = beta yaw roll phi beta -0.0558 -0.9968 0.0802 0.0415 yaw 0.598 -0.115 -0.0318 0 roll -3.05 0.388 -0.465 0 phi 0 0.0805 1 0 b = rudder aileron beta 0.0729 0 yaw -4.75 0.00775 roll 1.53 0.143 phi 0 0 c = beta yaw roll phi yaw 0 1 0 0 bank angle 0 0 0 1 d = rudder aileron yaw 0 0 bank angle 0 0 Continuous-time model. Модель имеет два входа и два выхода. Единицы измерения: для угла бо- кового скольжения beta и угла крена phi - рад, для рыскания yaw и угловой скорости крена roll - рад/с; углы отклонения рулей и элеронов измеряются в градусах.
5. Применение процедур автоматизированного проектирования Рассчитать собственные значения для разомкнутого контура и построить их на s-плоскости. damp(sys) Eigenvalue -7.28е-003 -5.63е-001 Damping Freq, (rad/s) 1 .ООе+ООО 7.28е-003 1.00е+000 5.63е-001 -3.29е-002 + 9.47e-001i 3.48е-002 9.47е-001 -3.29е-002 - 9.47e-001i 3.48е-002 9.47е-001 pzmap(sys),sgrid, axis([-0.7 0 -1 1]) % Рис. 68 Real Axis Рис. 68 Эта модель имеет пару слабо демпфированных полюсов, которые соот- ветствуют движению так называемого "голландского шага". Цель проекти- руемого компенсатора увеличить коэффициент демпфирования для этой па- ры полюсов до величины £,>0.35 и чтобы значение собственной частоты удовлетворяло условию со < 1 рад/с. Анализ разомкнутого контура Прежде всего проанализируем некоторые характеристики разомкнутого контура демпфирования, чтобы выработать стратегию выбора коррекции. Начнем с анализа переходных процессов в виде ступенчатой (step) или им- пульной (impulse) переходной функции: impulse(sys)% Рис. 69 [221]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX kn pulse Resporee Ume (sec J Рис. 69 Импульсная реакция подтверждает, что система слабо демпфирована и в первые секунды совершает практически незатухающие колебания. Рассмот- рим импульсную реакцию в течение первых 20 с: impulse(sys, 20)% Рис. 70 kTipuke Resporeе lime (secJ Рис. 70 222
5. Применение процедур автоматизированного проектирования Обратите внимание на график зависимости угла крена (выход 2) от от- клонения элеронов (вход 2). Самолет совершает колебания относительно угла крена, отличного от нулевого значения. Это обстоятельство сущест- венно для последующего анализа. Обычно демпферы в канале рыскания проектируются, исходя из усло- вия, что измеряемым выходом является угловая скорость по углу рыскания, а входом - рули. Соответствующая частотная характеристика от входа 1 к выходу 2 может быть вычислена следующим образом: bode(sys(1,1))% Рис. 71 Из амплитудно-фазовых частотных характеристик (диаграмма Боде) следует, что отклонение руля оказывает существенное влияние на слабо демпфированную составляющую движения "голландского шага" (вблизи частоы со = 1рад/с). Чтобы упростить последующее проектирование, выде- лим только контур по угловой скорости рыскания, т. е. подсистему от входа 1 до выхода 1, и вычислим zpk-модель этой подсистемы: sys11 =sys(1,1); zpk(sysll) Zero/pole/gain from input "rudder' to output "yaw rate": -4.75 (s+0.4981) (sA2 + 0.02379s + 0.2381) (s+0.5627) (s+0.007278) (sA2 + 0.06587s + 0.8972) Корневой годограф Поскольку простейшей формой коррекции является статический коэф- фициент передачи, то естественно воспользоваться для его выбора методом
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX корневого годографа. Построим корневой годограф для контура, описывае- мого моделью sys 11: riocus(sys11) % Рис. 72 Этот корневой годограф построен по умолчанию для отрицательной об- ратной связи и делает систему неустойчивой практически для любого зна- чения коэффициента обратной связи. Объясняется это тем, что коэф- фициент передачи объекта в этом канале отрицательный (см. параметры zpk-модели) и для обеспечения устойчивости контура требуется замыкание положительной обратной связью: riocus(-sys11), sgrid Rtrf Axis Рис. 73
5. Применение процедур автоматизированного проектирования 0.64912i 0.650971 0.65097i Этот годограф более привлекателен. Он показывает, что с помощью простейшей обратной связи можно достичь коэффициента демпфирования порядка Е, = 0.45, и это можно сделать графически, выбирая на годографе соответствующую точку с помощью функции rlocfmd (на рис. 73 она отме- чена знаком +). [k, poles] = rlocfind(-sys11) Select a point in the graphics window selectedpoint = -0.32258 + k = 0.25522 poles = -0.31448 + -0.31448- -0.90874 -0.31041 Для контроля коэффициента демпфирования и собственных частот воспользуемся функцией damp(poles) Eigenvalue Damping Freq, (rad/s) -3.14e-001 + 6.51e-001i ‘ -3.14e-001 -6.51e-001i -9.09e-001 -3.10e-001 Теперь сформируем эффициентс обратной связи. Полюсы этой системы должны совпадать с вы- бранными по годографу: сП 1 = feedback(sys11, -к); damp(cl11) Eigenvalue -3.10е-001 -3.14е-001 +6.51е-00И -3.14е-001 -6.51е-00И -9.09е-001 Построим импульсную переходную функцию для замкнутого контура в интервале от 0 до 20 с: impulse(cl11, 20) 4.35e-001 4.35e-001 1.00e+000 1.00e+000 ss-модель 7.23e-001 7.23e-001 9.09e-001 3.10e-001 замкнутого контура при выбранном ко- Freq, (rad/s) 3.10e-001 7.23e-001 7.23e-001 9.09e-001 Damping 1.00е+000 4.35е-001 4.35e-001 1.00e+000 !2!
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX tnpube Frsporet Рис. 74 Реакция устанавливается достаточно быстро, и слабо демпфированные колебания отсутствуют. Теперь возвратимся к исходной модели и замкнем контур демпфирова- ния от входа 1 к выходу 1 выбранной обратной связью: cloop = feedbackfsys, -k, 1,1); damp(cloop) Eigenvalue Damping -3.10e-001 1.00e+000 -3.14e-001 + 6.51e-00li 4.35e-001 -3.14e-001-6.51e-001i 4.35e-001 -9.09e-001 1.00e+000 Freq, (rad/s) 3.10e-001 7.23e-001 7.23e-001 9.09e-001 Построим импульсные переходные функции для полной многомерной системы: impulse(cloop, 20)
5. Применение процедур автоматизированного проектирования Рис. 75 Обратите внимание на график зависимости угла крена (выход 2) от эле- ронов (вход 1). При перемещении элеронов система переходит в устано- вившееся состояние совсем иначе; ее спиральная составляющая оказывается слишком быстро затухающей за счет большого по модулю показателя экс- поненты. Спиральное движение - это очень медленное движение, которое позволяет самолету совершать полет по крену и повороты без отклонения элеронов. Пилоты пользуются этим свойством при пилотировании и будут выражать неудовлетворение законом коррекции, если он нарушает привыч- ное пилотирование. В данном случае спиральная составляющая затухает быстрее, чем это требуется для пилота. Проектирование нейтрализующего фильтра Для удовлетворения требованиям пилотирования необходимо, чтобы полюс спиральной составляющей не перемещался в левую полуплоскость. Один из способов добиться этого - сформировать нейтрализующий фильтр 5 где Н(л) — Этот фильтр имеет нуль в начале координат, что гарантирует размещение полюса спиральной составляющей вблизи нуля. Зададим значение a = 0.333, что соответствует постоянной времени фильтра, равной 3 с, и воспользуем- ся методом корневого годографа для выбора коэффициента передачи к. Оп-
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX ределим фильтр в виде следующей zpk-модели с коэффициентом передачи, равным единице. Н = zpk(0, -0.333, 1); Выполним последовательное соединение модели объекта sys 11 с фильтром: oloop = Н * sysl 1; и построим корневой годограф: rlocus(-oloop), sgrid Теперь максимальное значение коэффициента демпфирования равно приблизительно £, = 0.25. Определим соответствующий коэффициент пере- дачи графически: [k, poles] = rlocfind(-oloop) Select a point in the graphics window selected_point = -0.18101 + 0.68421i к = 0.24583 poles = -1.3019 -0.17908 + 0.68475i -0.17908- 0.68475i -0.4724 -0.003971 damp(poles)
5. Применение процедур автоматизированного проектирования Eigenvalue -1.30е+000 -1.79е-001 +6.85e-001i -1.79е-001 -6.85e-001i -4.72е-001 -3.97е-003 Damping 1.00е+000 2.53е-001 2.53е-001 1.00е+000 1.00е+000 Freq, (rad/s) 1 .ЗОе+ООО 7.08е-001 7.08е-001 4.72е-001 3.97е-003 Оценим реакцию замкнутой системы при выбранных параметрах фильтра: d11 = feedback(oloop, -k); impulse(cl11,20) Реакция успешно возвращается к установившемуся режиму, но при этом значение коэффициента демпфирования меньше, чем в предыдущем случае. Наконец убедимся, что нейтрализующий фильтр обеспечил решение проблемы, связанной со спиральной составляющей движения. Сначала сформируем сам фильтр: WOF = -к * Н; а затем замкнем контур демпфирования в составе многомерной модели sys и построим импульные переходные функции: cloop = feedback(sys, WOF, 1,1); impulse(cloop, 20) |229|
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX кприВс Ре гроге e Time (iecj Рис. 78 Реакция угла крена (выход 2) на возмущение элерона (вход 2) в интерва- ле времени 20 с имеет нужное поведение и удовлетворяет требованиям пи- лотов к управлению самолетом. 5.2. Проектирование цифрового регулятора Демонстрационный файл diskdemo.m иллюстрирует возможности ППП The Control System Toolbox на примере использования частотных методов для расчета цифрового закона управления для контроллера привода магнит- ной головки жесткого диска. Ниже приведен протокол работы с файлом diskdemo. Схема, поясняющая работу привода, дана на рис. 79 |230|
5. Применение процедур автоматизированного проектирования Дифференциальное уравнение, описывающее динамику движения маг- нитной головки записи-считывания жесткого диска, можно на основе закона Ньютона записать в следующем виде: J^- + C^- + KQ = K,i, dt2 dt где J- момент инерции магнитной головки; С - коэффициент вязкого трения в подшипниках; К - коэффициент жесткости пружины; К, - моментный ко- эффициент двигателя; в - угловое положение головки; i - ток якоря двигате- ля. Применяя к этому уравнению преобразование Лапласа, найдем переда- точную функцию от управляющей переменной i до выходной переменной в в виде H(s) = ~Ki-------------. Js + Cs + К Используя числовые значения ./=0.01 кгм2, С = 0.004 Нм/(рад/с), /С=Нм/рад, /Q=0.05 Нм/А, получим следующее описание передаточной функции: J = .01; С = 0.004; К = 10; Ki = .05; num = Ki; den = [J С К]; H = tf(num, den) Transfer function: 0.05 0.01 sA2 + 0.004 s+ 10 |23l1
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Задача состоит в синтезе цифрового регулятора, обеспечивающего точ- ное позиционирование магнитной головки. Сначала перейдем от непрерыв- ной модели объекта управления к дискретной с периодом дискретности 0.005 с, используя экстраполятор 0-го порядка: Ts = 0.005; Hd = c2d(H, Ts, 'zoh') Transfer function: 6.233e-05 z + 6.229e-05 гЛ2 - 1.973 z + 0.998 Sampling time: 0.005 Сравним логарифмические частотные характеристики для непрерывной и дискретной моделей: bode(H,Hd,':') % Рис. 80 Построим переходную функцию для дискретной системы: step(Hd) % Рис. 81 |232|
5. Применение процедур автоматизированного проектирования Step Response В системе присутствует ярко выраженная колебательность, причиной которой является слабое демпфирование. В этом можно убедиться, вычис- лив полюсы дискретной модели: % Полюсы дискретной модели damp(Hd) Eigenvalue Magnitude Equiv. Damping Equiv. Freq, (rad/s) 9.87e-001 + 1.57e-001i 9.99e-001 6.32e-003 3.16e+001 9.87e-001 - 1.57e-001i 9.99e-001 6.32e-003 3.16e+001 Полюсы расположены вблизи единичной окружности и имеют малое демпфирование. Необходимо рассчитать регулятор, который увеличит демпфирование этих полюсов. Наиболее простой вариант - это коэффици- ент передачи, который можно выбрать с помощью метода корневого годо- графа: rlocus(Hd), zgrid
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Из корневого годографа следует, что с увеличением коэффициента пере- дачи полюсы замкнутой системы быстро выходят за пределы единичной окружности и система становится неустойчивой. Необходимо ввести неко- торую динамическую коррекцию в виде дискретного компенсатора с пере- даточной функцией D(z) = , z + b где а = -0.85 и Ъ = 0. Соответствующая разомкнутая модель контура образуется в результате последовательного соединения компенсатора и объекта, как показано на рис. 83. Компенсатор Объект Рис. 83 D = zpk(0.85, 0,1, Ts); oloop = Hd*D; Определим, как компенсатор модифицирует логарифмическую частот- ную характеристику магнитной головки: bode(Hd,oloop.
5. Применение процедур автоматизированного проектирования Bode Diagrams Frequency (rad/sec) Рис X4 Частотная характеристика магнитной головки показана пунктирной линией, а частотная характеристика контура с компенсатором - сплошной линией. Из анализа характеристик следует, что компенсатор сдвигает фазовую характеристику вверх (вводит опережение) в диапазоне частот от 10 до 1000 рад/с. Построим теперь корневой годограф для контура с компенсатором: rlocus(oloop), zgrid % Рис. 85 Теперь полюсы остаются внутри единичной окружности для большего диапазона значений коэффициента коррекции. Символом Ч показаны полю- сы, выбранные с помощью команды rlocfind.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX [к, poles] = rlocfind(oloop) selected_point = 0.63134 + 0.21053i k= 3929.2 poles - 0.63105 +0.219351 0.63105-0.219351 0.46607 Определим демпфирование замкнутой системы: ddamp(poles,Ts) Eigenvalue Magnitude Eq. Damp Eq. Freq. 0.631+0.219i 0.668 0.770 105 0.631 -0.219i 0.668 0.770 105 0.466 0.466 1.00 153 Чтобы оценить результат синтеза, сформируем замкнутую систему и построим для нее переходную функцию: cloop = feedback(oloop, k); step(cloop) % Рис. 86 Получаем график переходной функции со временем установления пере- ходного процесса около 14 периодов дискретности, т. е. 0.07 с. По совре- менным требованиям к управлению магнитными головками это большая величина, но надо иметь в виду, что динамика головки характеризовалась очень малым демпфированием. Оценим робастность полученной системы. Классическими критериями ро- бастности являются запасы устойчивости по фазе и амплитуде. Д ля того что- бы определить их, воспользуемся функцией margin. Эта функция возвращает значения запасов устойчивости, а также соответствующие им частоты.
5. Применение процедур автоматизированного проектирования Чтобы рассчитать запасы устойчивости, сформируем модель, соединяя компенсатор, модель объекта и коэффициент обратной связи последова- тельно: oik = k * oloop; oloop Затем применим функцию margin к модели разомкнутой системы: [Gm, Pm, Wcg, Wcp] = margin(olk); Margins = [20‘log10(Gm) Wcg Pm Wcp] Margins = 11.983 296.80 43.659 102.73 Можно отобразить запасы устойчивости на графике (рис. 88) с помощью следующей команды margin(olk) Эта система является робастной, поскольку имеет запас устойчивости по амплитуде 12 дБ и запас устойчивости по фазе 43 град.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX 5.3. Проектирование ЛКГ-регулятора Демонстрационный файл milldemo.m иллюстрирует возможности ППП The Control System Toolbox на примере синтеза оптимального ЛКГ- регулятора приводами прокатного стана. Цель управления - обеспечить по- стоянное значение толщины фасонного проката как в горизонтальном, так и в вертикальном направлении. Полная модель - это многомерная система с несколькими входами и выходами, и настоящий пример показывает пре- имущество прямого синтеза ЛКГ-регулятора для многомерной системы по сравнению с синтезом регуляторов для одномерных систем по каждому на- правлению. Ниже приведен протокол работы с файлом milldemo. Синтез ЛКГ-регулятора для оси х В качестве первого приближения пренебрежем перекрестными связями между осями хиуи будем считать каждую ось независимой. Это приводит к расчету ЛКГ-регуляторов для одномерных объектов управления по каж- дой из осей. Целью синтеза регулятора является уменьшение влияния воз- мущений, вызванных эксцентриситетом валков и отклонением размеров за- готовки, на отклонения размеров прокатываемого профиля 6хи б?. Зададим передаточные функции компонентов контура управления по оси х: % Гидравлический привод (вход "и-х") Нх = tf(2.4e8, [1 72 90л2], 'inputname’, ’и-х') % Модель возмущений из-за отклонений толщины и твердости заготовки Fix = tf(1e4, [1 0.05], 'inputn', 'w-ix') % Модель эксцентриситета валков Fex = tf([3e4 0], [1 0.125 6Л2], 'inputn', 'w-ex') % Зависимость величины зазора от усилия дх = 1 е-6; Transfer function from input "u-x" to output: 2.4e008 sA2 + 72 s + 8100 Transfer function from input "w-ix” to output: 10000 s + 0.05 Transfer function from input "w-ex" to output: 30000 s sA2 +0.125 s+ 36 Построим модель разомкнутой системы, приведенной на рис. 87, исполь- зуя функции append и series: |238]
5. Применение процедур автоматизированного проектирования % Структура системы передачи сигналов от входов u, we и wi к выходам 6 и f Рх = append([ss(Hx) Fex], Fix) % Добавление коэффициента передачи от сип fl, f2 к выходам "х-gap" и "x-force” Рх = [-дх дх; 1 1] * Рх % Присвоение имен выходам: set(Px, 'outputn', {'х-дар' "x-force'}) а = X1 х2 ХЗ х4 х1 -72 -15.82 0 0 х2 512 0 0 0 хЗ 0 0 -0.125 -4.5 х4 0 0 8 0 Х5 0 0 0 0 Ь = u-x w-ex w-ix х1 512 0 0 х2 0 0 0 хЗ 0 128 0 х4 0 0 0 х5 0 0 128 с = х1 х2 хЗ х4 х5 у1 0 -.155е-4 -2.3437е-4 0 7.8125е-5 У2 0 915.53 234.38 0 d = u-x w-ex w-ix У1 0 0 0 У2 0 0 0 Continuous-time system. х5 О О О о -0.05 78.125 Для того чтобы получить минимальную реализацию системы в про- странстве состояний, следует преобразовывать tf-модели в ss-модсли перед их объединением. Если сначала объединить tf-модели, а затем преобразо- вать их в ss-модели, можно получить неминимальную реализацию. Переменная Рх теперь содержит модель разомкнутой системы и имена ее входов и выходов: Px.inputname ans = 'u-x' "w-ex" Px.outputname ans = 'x-gap' 'x-force' "w-ix" Вторая выходная переменная 'x-force' - сила нажатия валков. ЛКГ- регулятор использует это измерение для того, чтобы управлять усилием гидравлического привода с целью компенсировать влияние возмущений на толщину проката. |239]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Синтез ЛКГ-регулятора состоит из двух шагов: • расчета коэффициентов обратных связей по всем переменным состояния с целью минимизировать критерий качества (синтез ЛК-регулятора) 7(пл)= J+ . о • синтеза фильтра Калмана для оценивания вектора состояния при усло- вии, что известны измерения силы "x-force'. Критерий качества Ди*) штрафует низкочастотные и высокочастотные составляющие процессов в одинаковой степени. Поскольку низкочастотные составляющие имеют основное значение, удалим высокочастотные состав- ляющие с помощью фильтра Ipf: Ipf = tf(30,[1 30]) % Подсоединение фильтра к выходу системы Рх Pxdes = append(lpf, 1 )*Рх; set(Pxdes, 'outputn', {'x-gap*' 'x-force'}); % Синтез обратных связей по переменным состояния kx = lqry(Pxdes(1,1), 1,1е-4) кх — -375.44 0.10344 0.019897 0.010396 -6.6863е-004-3.4890е-003 При использовании функции Iqry предполагается, что все входы являют- ся управлениями, а все выходы - измерениями. В рассматриваемом примере управлением служит вход 'u-х', а измерением - выход 'x-gap*', которые, в свою очередь, являются соответственно первым входом и первым выходом системы Pxdes. Следовательно, для того чтобы определить соотношение вход-выход между 'u-х' и 'x-gap*', нужно воспользоваться элементом Pxdes(l, 1) подсистемы Pxdes. Используя функцию kalman, рассчитаем фильтр Калмана. В соответст- вии со структурной схемой модели системы случайные возмущения Ы W = I И’- J имеют единичную ковариационную матрицу. Положим ковариационную матрицу ошибок измерений равной 1000, для того чтобы ограничить значе- ние амплитудной частотной характеристики на высоких частотах и при рас- чете наблюдателя учитывать только измеряемый выход 'x-force': estx = kalman(Pxdes(2,:), еуе(2), 1000);
5. Применение процедур автоматизированного проектирования В заключение объединим коэффициенты обратных связей по оценкам переменных состояния и фильтр Калмана в один ЛКГ-регулятор: Regx = lqgreg(estx, kx) а = х1 е -30 х1_е 0 х2_е -0.05444 хЗ_е -0.013938 х4_е 0 х5_е -0.0040209 х6_е х2 е1.9223е+5 -124.96 -26.008 -5.3226 0.34234 1.7863 хЗ_е 0 512 -7.8442е-12 -2.0081 е-12 0 -6.6937е-13 х4_е 0 0 -2706.7 -693.03 -4.5 -230.97 х5_е 0 0 3340.4 863.13 0 285.04 х6_е Ь = 0 0 -3642.6 -932.5 0 -310.88 x-force х1_е5.5467е-005 х2_е7.6714е-016 хЗ_е8.5679е-015 х4_е 2.9564 х5_е -3.6486 х6_е 3.9787 с = х1_е х2_е хЗ_е х4_е х5_е х6_е и-х 375.44 -0.10344 -0.019897 -0.0103960.00066863х 0.003489 d = x-force u-x 0 Continuous-time system. Рассмотрим логарифмические частотные характеристики регулятора в диапазоне частот от 0.1 до 1000 рад/с: bode(Regx, {0.1 1000}) % Рис. 89 Рис. 89 >41
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Фазовой частотной характеристике можно дать интересную физическую интерпретацию. Сначала рассмотрим влияние толщины поступающей заго- товки. Это низкочастотное возмущение влияет как на толщину проката, так и на силу нажатия валков. Поскольку фазовая характеристика регулятора на низких частотах приблизительно равна 0 град, обратная связь в этом случае реагирует адекватно, увеличивая гидравлическую силу при увеличении толщины заготовки. Теперь обратим внимание на эксцентриситет валков. Эксцентриситет вызывает флуктуацию зазора между валками. Когда этот зазор минимален, сила сжатия увеличивается и толщина проката уменьша- ется. Гидравлическая сила, развиваемая приводом, тогда должна быть уменьшена (отрицательная обратная связь по силе), чтобы восстановить же- лаемую толщину. Это именно то, что и выполняет ЛКГ-регулятор, когда его фазовая частотная характеристика приближается к -180 град на частоте, близкой к частоте 6 рад/с, которая соответствует частоте возмущения, обу- словленного эксцентриситетом валков. Сравним частотные характеристики для разомкнутой и замкнутой сис- тем. Для замыкания контура воспользуемся функцией feedback. Для того чтобы правильно обратную связь, обратимся к таблице имен входов и вы- ходов объекта управления Рх и регулятора Regx: Px.inputname ans = 'u-х' "w-ex' 'w-ix' Regx.inputname ans = 'x-force' Px.outputname ans = 'x-gap' ’x-force' Regx.outputname ans = 'u-x' Из таблицы следует, что к регулятору нужно подсоединить первый вход и второй выход подсистемы Рх, используя положительную обратную связь: clx = feedback(Px, Regx, 1,2, +1); Теперь можно сравнить логарифмические частотные характеристики разомкнутой и замкнутой системы от возмущений wxe и и'м до величины зазора 8Х: bode(Px(1,2:3),clx(1,2:3),{0.1 100})
5. Применение процедур автоматизированного проектирования Bode Diagrams Пунктирной линией обозначена частотная характеристика разомкнутой системы. Отмстим, что максимальное значение амплитудной частотной ха- рактеристики, обусловленной влиянием эксцентриситета валков, для замк- нутой системы уменьшается примерно на 20 дБ. Амплитудная частотная характеристика, обусловленная отклонениями толщины заготовки, в низко- частотной части на частотах возмущений также понижается примерно на 20 дБ. Чтобы промоделировать процессы с учетом влияния шумов по входам w-ex и w-ix, применим команду Isim. Выберем величину шага интегрирова- ния dt = 0.01 с в качестве периода дискретности и сформируем вектор дис- кретный "белого" шума wx, эквивалентный непрерывному "белому" шуму для выбранного периода квантования: dt = 0.01; t = 0:dt:50; % time samples % Сформировать дискретный "белый шум" wx = [w-ex; w-ix] с дисперсией 1 /dt wx = sqrt(1/dt)*randn(2, length(t)); lsim(Px(1, 2:3), clx(1, 2:3),wx, t) % Рис. 91
Пунктирная линия на графике соответствует разомкнутой системе; ЛКГ- регулятор уменьшаег отклонение толщины профиля примерно в четыре раза. Следящие системы для стабилизации зазора между валками прокатного стана Прокатный стан предназначен для формирования профилей прямо- угольного сечения из нагретых металлических заготовок - блюмов. Желае- мый профиль обеспечивается с помощью прокатных валков, как показано на рис. 92. валки профиль Рис. 92 Желаемая форма выдавливается из заготовки двумя парами цилиндриче- ских валков (по одной на каждую из геометрических осей), которые пере- мещаются с помощью гидравлических приводов. Расстояние между валка- ми образует зазор.
5. Применение процедур автоматизированного проектирования Схема прокатки по оси х Цель управления - обеспечить постоянство толщины проката по осям х и у в пределах заданных допусков. Отклонения в толщине профиля могут быть вызваны двумя причинами: • вариацией толщины и твердости заготовки; • наличием эксцентриситета прокатных валков. Для того чтобы уменьшить влияние этих возмущений, необходимо ре- гулировать величину зазора за счет введения контура обратной связи. Поскольку зазор между валками измерить сложно, то вместо измерения толщины профиля измеряется сила нажатия валков. Отклонение толщины заготовки от номинальной моделируется воз- мущением в виде "белого" шума wit пропущенного через фильтр низких частот с передаточной функцией Fj(s). Возмущения, связанные с эксцент- риситетом валков, - это функция, близкая к периодической, с частотой, равной частоте вращения валков. Приемлемая модель для такого возму- щения - сигнал на выходе полосового фильтра 2-го порядкас передаточной функцией Fe(s), возмущенный "белым" шумом we. На основе этих допущений можно построить следующую структурную схему для модели процесса прокатки по каждой оси.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Рис. 94 Здесь и - управление, H(s) - передаточная функция гидропривода, S - от- клонение величины зазора от номинального (мм),/- отклонение силы нажа- тия валков от номинальной, gx - коэффициент передачи, we, w, - "белые" шумы, имитирующие возмущения. Модель процесса прокатки по осям х и у Сила нажатия валков - это комбинация силы, развиваемой гидравличе- ским приводом, и возмущений, вызываемых эксцентриситетом валков и от- клонением толщины заготовки от номинальной. Обращаясь к рис. 94, отме- тим следующее: • выходы / и f2 характеризуют отклонения силы нажатия валков от но- минальной; • увеличение силы, развиваемой гидравлическим приводом, или силы, вы- званной эксцентриситетом валков, приводит к уменьшению зазора меж- ду валками; • увеличение толщины заготовки увеличивает этот зазор. Численные данные о парамеграх моделей по каждой оси приведены в следующей таблице. Осьх Ось у Яд(5) = - 2:4 x10s /+72.Ч + 902 Р (4 = _Ю4 . 7 5 + 0.05 F 3xl°4-v -7.8 x10s 52+7Ls + 882 F (S)= 2х104_ '•’ Л 7 5 + 0.05 еЛ> 52 +0.1255 +б2 gx = ю 6 •Л 52 +0.195 + 9.42 Я, =0.5x10-6
5. Применение процедур автоматизированного проектирования Синтез ЛКГ-регулятора для оси у При синтезе ЛКГ-рыулятора толщины профиля проката по оси у выпол- няется та же последовательность действий, что и при синтезе регулятора по оси х. Для синтеза следует ввести следующие операторы: % Установка параметров модели Ну = tf(7.8e8, [1 71 88л2], 'inputn', 'u-y'); Fiy = tf(2e4, [1 0.05], 'inputn', 'w-iy'); Fey = tf([1e5 0], [1 0.19 9.4Л2], 'inputn', 'w-ey'); gy = 0.5e-6; % Формирование разомкнутой модели Ру = append([ss(Hy) Fey], Fiy); Py = l-gygy; 1 i]‘Py: set(Py, 'outputn', {'у-gap' 'y-force'}); % Расчет коэффициентов обратных связей Ipf = tf(30, [1 30]); Pydes = append(lpf, 1 )*Py; % Включение фильтра низких частот set(Pydes, 'outputn', {'у-gap*' 'у-force'}); ky = lqry(Pydes(1, 1), 1,1e-4); % Расчет фильтра Калмана esty = kalman(Pydes(2,:), eye(2), 1e3); % Формирование одномерного ЛКГ-регулятора для оси у Regy = Iqgregfesty, ky); cly = feedback(Py, Regy, 1,2, +1); Сравним процессы в замкнутой и разомкнутой системах при наличии возмущений: dt = 0.01; t = 0:dt:50; wy = sqrt(1/dt)*randn(2,length(t)); lsim(Py(1,2:3),':', cly(1, 2:3),wy, t) % Рис. 95
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Linear Simul^ion Results Рис. 95 Пунктирная линия на графике соответствует разомкнутой системе; ЛКГ- регулятор уменьшает отклонение толщины профиля, как и для оси х, при- мерно в четыре раза. Учет перекрестных связей между осями Стабилизация размеров сечения проката, по своей сути, является много- мерной задачей. Выше были спроектированы регуляторы для каждой оси, а затем замкнуты две одномерные системы. Однако такой подход можно применить только тогда, когда можно пренебречь взаимовлиянием приво- дов по каждой оси. В действительности это не так и необходимо учитывать такое взаимовлияние. Эта взаимосвязь объясняется тем, что увеличение си- лы, развиваемой гидроприводом вдоль оси х при сжатии материала, вызы- вает дополнительную силу сопротивления на гидропривод по оси у. В ре- зультате уменьшается сила нажатия валков и увеличивается размер профиля проката по оси у. Взаимовлияние процессов по осям х и у поясняется структурной схемой (на рис. 96).
5. Применение процедур автоматизированного проектирования между каналами Этой структурной схеме соответствует следующая система уравнений: 1 о 0 gyxgx 0 1 g.ygy 0 О О 1 -gyx О о -gxy 1 матрица перекрестных связей где 8Х, 8у fxfy- зазоры и силы нажатия валков в каналах х и у без учета перекрестных связей. Применим ЛКГ-регулятор, рассчитанный без учета перекрестных связей, к системе с перекрестными связями. Чтобы построить двумерную модель, показанную на рис. 96, объединим модели Рх и Ру: Р ~ append(Px, Ру); Для удобства перенумеруем входы и выходы системы так, чтобы управ- ления и измерения, связанные с размерами профиля, оказались первыми: Р = Р([1 3 2 4],[1 4 2 3 5 6]); Р.outputname |249|
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX ans = 'x-gap‘ 'У-gap' 'x-force' 'y-force' Учтем влияние матрицы перекрестных связей: gxy = 0.1; дух = 0.4; дх = 1е-6; CCmat = [еуе(2) [0 дух*дх; дху*ду 0]; zeros(2) [1 -дух; ^дху 1)]; Pc = CCmat’P; Pc.outputname = P.outputname; Сформируем модель замкнутой системы: feedin = 1 ;2; % первые два входа системы Рс являются управлениями feedout = 3:4; % последние два выхода системы Рс являются измерениями cl = feedback(Pc, append(Regx,Regy),feedin, feedout,+1); Теперь можно промоделировать реакцию разомкнутого и замкнутого контуров на возмущения в виде "белых" шумов wx и wy: wxy = [wx; wy]; lsim(Pc(1:2, 3:6),cl(1:2, 3:6), wxy, t) % Рис. 97 Рис. 97 Из полученных графиков следует, что характеристики регулирования ухудшились, поскольку максимальное отклонение толщины проката приблизительно в четыре раза больше, чем при моделировании без учета перекрестных связей. Следовательно, синтез ЛКГ-регулятора без учета перекрестных связей нельзя признать удовлетворительным при реальном уровне взаимовлияния каналов. Поэтому необходимо выполнить синтез
P.outputname ans = 'x-gap' y-gap' 'x-force' 'y-force' 5. Применение процедур автоматизированного проектирования ЛКГ-регулятора для полной многомерной системы с учетом влияния пе- рекрестных связей. Синтез ЛКГ-регулятора для многомерной системы Начнем с рассмотренной выше двумерной модели Рс. Входами и выхо- дами модели являются Pc.inputname ans = 'u-x' 'u-у' 'w-ex' 'w-ix' 'w_ey' 'w_iy' Как и ранее, чтобы повысить вклад низкочастотных составляющих от- клонений толщины проката в критерий качества, введем низкочастотные фильтры по переменным 'x-gap' и 'y-gap': Pdes = append(lpf, Ipf, eye(2))*Pc; Pdes.outputn = Pc.outputn; Рассчитаем коэффициенты ЛК-рсгулятора и фильтра Калмана с учетом двух управлений и двух измерений: k = lqry(Pdes(1:2, 1:2), еуе(2), 1е-4*еуе(2)), est = kalman(Pdes(3:4,:), еуе(4), 1еЗ*еуе(2)); RegMIMO = lqgreg(est. к); Полученный ЛКГ-регулятор имеет два входа и два выхода: RegMIMO.inputname RegMIMO.outputname ans = ans = 'x-force' 'u-x' 'у-force' ’u-y' Построим логарифмическую частотную характеристику сингулярных чисел ЛКГ-регулятора: sigma(RegMIMO) % Рис. 98 !51
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Построим переходные процессы в разомкнутом и замкнутом контурах управления при воздействии на входах "белых" шумов и используя в обрат- ной связи многомерный ЛКГ-регулятор: cl = feedback(Pc, RegMIMO, 1:2,3:4,+1): lsim(Pc(1:2, 3:6),cl(1:2, 3:6),wxy, t) % Рис. 99 . ’ ' LirieariSitnulatioft Results ‘ •
5. Применение процедур автоматизированного проектирования Многомерный ЛКГ-регулятор по точности работы явно превосходит раздельные регуляторы но каждой оси. Уровень отклонений толщин прока- та теперь сопоставим с отклонениями, полученными для одномерных сис- тем. Этот пример иллюстрирует преимущества прямого синтеза многомер- ных регуляторов. 5.4. Проектирование фильтра Калмана Демонстрационный файл kalmdemo.m иллюстрирует возможности ППП The Control System Toolbox на примерах синтеза стационарного и нестацио- нарного фильтров Калмана. Ниже приведен протокол работы с этим фай- лом. Рассмотрим дискретную модель вида х[л + 1]= Ах[л]+ В(н[и] + ифи]); у[и] = Сх[и] с аддитивным гауссовым шумом w[n] по входу и следующими данными: А =[1.1269 —0.4940 0.1129 1.0000 0 0 0 1.0000 0]; В = [-0.3832 0.5919 0.5191]; С = [ 1 0 0]; Задача заключается в том, чтобы спроектировать фильтр Калмана для оценки вектора выхода у[п] при условии, что известны вход u[n] и измере- ния выхода, замешанные с шумом v[n]: yv[w] = Cx[n] + v[n], где v[n] - вектор последовательностей гауссова "белого" шума. Дискретный фильтр Калмана Уравнения стационарного дискретного фильтра Калмана для этой задачи определяются следующим образом: Х[л | 77 J = х[и | П - 1] + М(у v [7?] - Сх[т? | 77 — 1]) ; х[и +1177 ] = Ах[н | и] + Ви[и]. где Х[77 | 77 — 1] - оценка вектора х[п], полученная на основе измерений до у,[п-1] включительно;
п[и] yv[«] ’ В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX х[/71к] - обновленная оценка, полученная на основе измерений до yv[n] включительно. Данная текущая оценка позволяет предсказать значение состояния для следующей выборки (прогноз на один шаг вперед). Это предсказание затем корректируется новым измерением yv[n-H]. Возникает корректирующая функция, которая учитывает вклад нового измерения и которая определяет- ся как разность У Ди + 1] - Сх[и -4- 11 7?] = С(х[/1 +1] - х[и +11 и]) между измеренным и предсказанным значением вектора выхода у[п+1]. Об- новленная матрица усилений М выбирается так, чтобы минимизировать ус- тановившуюся дисперсию ошибки, зависящую от дисперсий шумов: E(w[n]w[n]T) = Q, £(v[h]v[h]t ) = R . Теперь можно выписать результирующую ss-модель фильтра Калмана: х[и +11 и] = А(1 - МС)х[и | и -1] + [В AM] у[и | и] = С(1-МС)х[л | п -1] + СМ у Ди]. Фильтр Калмана генерирует оптимальную оценку у[и I п\ для вектора выхода у[п]; при этом вектор состояния фильтра определяется вектором х[и | п -1] . Стационарный фильтр Калмана Описанный выше стационарный фильтр Калмана можно спроектиро- вать, используя функцию kalman. Прежде всего зададим модель объекта с учетом воздействия шума х[л +1]= Ах[п] + В(н[л]+ {уравнение состояния) у[н] = Сх[/г] (уравнение измерений) Это можно реализовать с помощью следующего оператора, установив Ts = -1, что означает ввод дискретной модели Plant = ss(A , [В В], С, 0, -1, 'inputname’, {'u' W), 'outputname', 'у'); Полагая Q = 1; R = 1, синтезирум фильтр Калмана, применяя оператор [kalmf, L, Р, М] = kalman(Plant, Q, R); '254'
5. Применение процедур автоматизированного проектирования На выходе оператора получаем ss-модель фильтра Калмана kalmf и обнов- ленную матрицу коэффициентов М: М М = 0.3798 0.081732 -0.25704 Входами фильтра Калмана являются сигналы и и yv, а выходами - вектор выхода ус — у[/7 | п] и оценка вектора состояния х[/1 | и] (рис. 100). Фильтр Калмана Рис. 100 Поскольку интерес представляет только оценка вектора выхода, сохра- ним только первую строку ss-объекта kalmf: kalmf = kalmf(1,:) а = х1_е х1_е 0.7683 х2_е 0.6202 хЗ_е -0.081732 Ь = и х1_е -0.3832 х2_е 0.5919 хЗ_е 0.5191 с = х1_е у_е 0.6202 d = и у_е 0 х2_е хЗ_е -0.494 0.1129 0 0 1 0 У 0.3586 0.3798 0.081732 х2_е хЗ_е 0 0 У 0.3798 Channels) 1 2 I/O groups: Group name I/O Knownlnput I Measurement I OutputEstimate О Sampling time: unspecified Discrete-time model. Для того чтобы убедиться, как функционирует фильтр, необходимо сге- нерировать входные сигналы и шумы и сравнить выход объекта у с выхо-
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX дом фильтра уе. Можно сгенерировать каждую реакцию отдельно либо сге- нерировать их вместе. Для моделирования раздельных реакций следует ис- пользовать функцию Isim для моделирования сначала только объекта, а за- тем объединения объекта и фильтра. Совместное моделирование поясняется структурной схемой (рис. 101). В соответствии с этой структурной схемой можно сформировать ss- модель, используя функции parallel и feedback. Сначала построим модель объекта Р (рис. 102), входами которой являются сигналы u, w, v, а выхода- ми - измерения у и yv: а = А; Ь = [В В 0*В]; с = [С; С]; d = [0 0 0; 0 0 1); Р = ss(a, b, с, d, -1, 'inputname', {'u' 'w' V}, ’outputname’, {'у' 'yv'}); Затем используем функцию parallel, чтобы сформировать следующее па- раллельное соединение объекта и фильтра (рис. 102): Рис. 102 sys = paralleffP, kalmf, 1,1. [ ]. [ ]); Наконец, замкнем контур измерения, соединив выход объекта с одно- именным входом фильтра положительной обратной связью: % Соединить вход #4 с выходом #2 SimModel = feedback(sys, 1,4,2, +1);
5. Применение процедур автоматизированного проектирования % Удалить yv из списка входов-выходов SimModel = SimModel([1 3], [1 2 3]); Результирующая модель имеет входы w, v, и и выходы у, ус: SimModel.inputname SimModel.outputname ans = ans = W У 'V 'ye' ’u’ Теперь можно промоделировать поведение фильтра Калмана. Сгенери- руем входной сигнал u = sin(t/5) и векторы шумов w, v: t = [0:100]'; u = sin(V5); n = length (t) randn('seed’, 0) w = sqrt(Q)*randn(n, 1); v = sqrt(R)‘randn(n, 1); Промоделируем с помощью функции Isim: [out, x] = lsim(SimModel, [w, v, u]); y= out(:, 1); % Выход объекта ye = out(:,2); % Оценка выхода объекта после фильтрации yv = у + v; % Измеренный выход объекта и сравним выходы объекта и фильтра на графике: subplot(211), plot(t, у,t, ye, х!аЬе1СКоличество измерений'), у1аЬе1(’Выход’) subplot(212), plot(t, y-yv,t, y-ye, х1аЬе1('Количество измерений'), у1аЬе1('Ошибка')
В. С. Медведев. В. Г. Потемкин. CONTROL SYSTEM TOOLBOX На первом графике рис. 103 показан выход объекта (пунктирная линия) и выход фильтра (сплошная линия); на втором графике показаны ошибка измерения (пунктирная линия) и ошибка оценки (сплошная линия). Из гра- фиков следует, что уровень шума после фильтрации существенно умень- шился. Это подтверждается и оценкой дисперсий: Meas Err = у - yv; MeasErrCov = sum(MeasErr.*MeasErr)/length(MeasErr) EstErr = у - ye; EstErrCov = sum(EstErr'EstErr)/length(EstErr) MeasErrCov - 1.1138 EstErrCov = 0.27222 Дисперсия ошибки оценки почти в четыре раза меньше погрешности из- мерения. Дискретный нестационарный фильтр Калмана Нестационарный фильтр Калмана является обобщением стационарного фильтра для систем с переменными параметрами или lti-систем с нестацио- нарными возмущениями. Предполагается, что уравнения объекта и измере- ний задаются в виде; х[и+ 1] = Ах[и]+Ви[л]+Gw[n]; (уравнение состояния) у v [и ] = Сх [и ] + v[n ] (уравнение измерений) В этом случае нестационарный дискретный фильтр Калмана определяет- ся следующим образом: х[л | л] = х[л | л-1] + М[л](уу[л]—Сх[л | л —1]); М[л] = Р[и | п - 1]Ст (R[h] + СР[п | п - 1]СТ )-1; Р[л |п] = (1-М[н]С)Р[н |н-1]; Х[л + 1 | и] = Ах[л | л] + Ви[л] ; Р[л +11 п] = АР[н | »]АТ + GQ[h]GT . где х[л|л —1]- оценка вектора х[п], полученная на основе измерений до yv[n-1 ] включительно; х[л | л] - обновленная оценка, полученная на основе измерений до yv[n] включительно;
5. Применение процедур автоматизированного проектирования Q[»] = E(w[n]w[/z]T ), ВД = Е( v[n]v[/z]T ); Р[и | и] = Е({х[н]-х[п | n]} {х[л]-х[л | n]}T ); P[n | n -I] -E({x[n]-x[/z | n-1]}{х[и]-х[п | n-1]}T ). Для лучшего восприятия мы опустили индексы, определяющие зависи- мость от времени матриц в уравнениях состояния. Задавая начальные условия для переменных х[1|0] и Р[1|0], можно начи- нать итерации вышеприведенных уравнений фильтрации. Необходимо от- метить, что обновление вектора состояния х[п|.] и ковариационных матриц Р[п|.] должно выполняться на каждом шаге. Синтез нестационарного фильтра Калмана Хотя в состав ППП Control System Toolbox не включена специальная функция для синтеза фильтра Калмана в нестационарном случае, можно реализовать этот процесс на основе рекурсивной процедуры, описанной ниже. Рассмотрим стационарный объект управления: А = [1.1269 -0.4940 0.1129 1.0000 0 0 0 1.0000 0]; В = [-0.3832 0.5919 0.5191]; С = [ 1 0 0]; и сгенерируем последовательность измерений выхода: t = [0:100]'; u = sin(t/5); n = length (t) randn('seed', 0) w = sqrt(Q)*randn(n, 1); v = sqrt(R)*randn(n, 1); sys = ss(A, В, C, 0, -1); у = lsim(sys, u+w); yv =y + v; При заданных начальных условиях х[1|0] = 0 и Р[110] = BQBT можно вы- полнить синтез нестационарного фильтра с помощью следующего цикла: Р = B*Q*B'; х = zeros(3, 1); ye = zeros(length(t), 1); ycov = zeros(length(t), 1); fori=1:length(t) % Обновление измерений !259]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Мп = P*C'/(C*P*C'+R); х = х + Mn*(yv(i)-C*x); % x[n| n] P = (eye(3)-Mn*C)*P; % P[n|n] ye(i) = C*x; errcov(i) = C*P*C; % Обновление переменных x = A*x + B‘u(i); % x[n+1 |n] p = A*p*A' + B*Q*B'; % P[n+1 |n] end Теперь можно сравнить выходы объекта и фильтра графически: subplot(211), plot(t, у,t, ye,'-') х1аЬе1('Количество измерений'), ylabelf Выход') subplot(212), plot(t, y-yv,t, y-ye,'-') х1аЬе1('Количество измерений'), у1аЬе1('Ошибка') На первом графике рис. 104 показан выход объекта (пунктирная линия) и выход фильтра (сплошная линия); на втором графике показаны ошибка измерения (пунктирная линия) и ошибка оценки (сплошная линия). Алгоритм нестационарного фильтра Калмана позволяет также оценить на каждом шаге стандартное отклонение для ошибки оценки crrcov: plot(t(1:21), errcov(1:21)), у1аЬе!('Стандартное отклонение ошибки’), grid on [260]
5. Применение процедур автоматизированного проектирования Из этого графика нетрудно увидеть, что установившееся значение стандартного отклонения достигается приблизительно за пять шагов; в дальнейшем характеристики нестационарного и стационарного фильтров совпадают. Оценим величину стандартного отклонения по экспериментальным данным: EstErr = у-уе; EstErrCov = sum(EstErr.‘EstErr)/length(EstErr) EstErrCov = 0.2718 Это значение меньше теоретического значения errcov и близко к оценке для стационарного фильтра. Наконец, отметим, что последнее значение матрицы М[п] и установив- шееся значение матрицы обновленных коэффициентов М совпадают: Мп М 0.3798 0.0817 -0.2570 0.3798 0.0817 -0.2570 |261|
6. СРЕДСТВА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ ДЛЯ АНАЛИЗА LTI-СИСТЕМ Для просмотра результатов анализа, расчета- или проектирования Iti- систем в состав ППП Control System Toolbox включено специальное средст- во просмотра LTI-Viewer, реализованное на основе графического интерфей- са пользователя GUI. Возможности средства просмотра LTI-Viewer иллюстрируются на двух примерах. Первый пример связан с анализом трех вариантов расчета систе- мы управления ориентацией спутника для простой одномерной SISO- модели. Второй пример демонстрирует возможности средства LTI-Viewer при анализе многомерной MIMO-модели для системы управления полетом самолета F-8. 6.1. Описание LTI-Viewer Для вызова средства просмотра LTI-Viewer надо ввести команду itiview и на экране терминала появится рабочее поле средства LTI-Viewer (рис. 106), где I - линейка меню для доступа к дополнительным средствам управления; 2 - рабочее пространство для построения графиков; 3 - список lti-объектов в рабочей среде системы MATLAB; 4 - кнопки переключения между рабочими средами системы MATLAB и средства просмотра LTI- Viewer; 5 - линейка состояния; 6 - список lti-объектов в рабочей среде LTI- Viewer; 7 - селектор выбора пар вход-выход; 8 - радиокнопки для изменения конфигурации графика; 9 - дополнительные опции графика; Ю - меню воз- можных графиков; 11 - кнопки изменения масштаба. Средство просмотра LTI-Viewer работает с собственной рабочей средой, которая формируется независимо от рабочей среды системы MATLAB. Набор lti-объектов, используемых для демонстрационных целей в версии Student Edition of MATLAB, размещен в файле данных LTIView.mat. Вы- полним загрузку этого файла в рабочую среду системы MATLAB: load LTIView ЖИОГ41И0И |262;
6. Средства графического интерфейса пользователя Для обмена данными между рабочими средами системы MATLAB и LTI- Viewer предназначено окно просмотра, показанное на рис. 107. Рис. 107 Слева в этом окне показаны все lti-модели, размещенные в рабочей среде системы MATLAB; справа показаны LTI-модели, отобранные для работы в среде LTI-Viewer. Следует отметить, что при добавлении lti-объектов в рабочую среду сис- темы MATLAB окно просмотра автоматически не обновляется. Для обнов- ления окна просмотра следует использовать кнопку Refresh (обновить). Поскольку LTI-Viewer может работать только с lti-объектами, размещенны- ми в собственной рабочей среде, необходимо с помощью кнопки Select пере-
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX местить требуемые lti-объекты в рабочую среду средства LTI-Viewer и тогда они отобразятся в окне просмотра Selected (выбранные модели). / LTIViewei : Fie,. .Tools. Plots Help ~ Step Response Selected + Gcl2 (dashedf ♦ Gcl3 (dash-dol: <Dde?e|P' Pkt | The axes ate being returned Io then onginaSlimits Time (sec.) Displayed I/O Channels •- ":i L .HiSyt wofkspace/dSL Gcri &|. Gcl2 Gcl3 G set vo jj dssFB ssF8 T Рис. 108 PtotType | Ste-p ConliguiaSon PM Upturn _ Г Peak Response Г Settling Типе Г Rise Time Г* Steady State Всякий раз, когда lti-объект вводится в окно Selected, LTI-Viewer авто- матически строит график, указанный в меню Plot Туре, и выводит соответ- ствующие ему опции в область Plot Options. После построения графиков lti- объекты в окне Selected отмечаются знаком +. Первоначальным состоянием любого lti-объекта, помещенного в окно Selected, является "график включен". Если нет необходимости просматри- вать график, связанный с тем или другим lti-объектом, то можно переклю- чить этот объект в состояние "график выключен", используя индикатор Plot. Для этого необходимо выполнить следующие операции: • выделить имя модели в окне Selected, график для которой следует ис- ключить; • выключить отметку в индикаторе Plot. Исключение метки в индикаторе переводит график в состояние "выклю- чен" и исключает его из окна показа до тех пор, пока в индикаторе не будет вновь выставлена метка "включен". Для удаления lti-объекта из области Selected необходимо воспользоваться кнопкой Delete, выделив имена тех моделей, которые следует исключить из рабочей среды LTI-Viewer. |264
6. Средства графического интерфейса пользователя 6.2. Примеры использования средства просмотра LTI-Viewer Анализ одномерной системы Первый пример связан с синтезом регулятора для системы стабилизации углового положения спутника с тремя осями ориентации. Пренебрегая пе- рекрестными связями, рассмотрим систему стабилизации спутника относи- тельно одной оси (рис. 109). Датчик угла ориентации измеряет отклонение углового положения спут- ника 0 от желаемого, а датчик угловой скорости измеряет скорость измене- ния угла отклонения ё. Двигатели создают управляющий момент Т, чтобы скорректировать угловое положение спутника в соответствии с показания- ми датчиков. В результате анализа динамики и задания числовых значений всех физических величин, таких, как момент инерции и др., получаем уп- рощенную модель угловой ориентации спутника: G(s) = У+0-Н+74... s2(s2+0.12s + 9) где G(s) - передаточная функция от управляющего Т-момента до угла поло- жения спутника 0. Введем параметры передаточной функции и сформируем tf-модель: G = tf([1 0.1 7.5], [1 0.12 9 0 0]) Transfer function: sA2 + 0.1 s + 7.5 sA4 + 0.12 sA3 + 9sA2’ |263 '
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Вычислим полюсы, собственную частоту и коэффициент демпфирования для этой tf-модели: damp(G) Eigenvalue Damping Freq, (radfs) 0.00е+000 -1.00е+000 О.ООе+ООО 0.00е+000 -1.00е+000 О.ООе+ООО . -6.00е-002 + 3.00e+000i 2.00е-002 3.00е+000 -6.00е-002 - З.ООе+OOOi 2.00е-002 3.00е+000 Полюсы с собственной частотой 3 рад/с слабо демпфированы и при сту- пенчатом входном воздействии переходный процесс будет очень слабо за- тухать. Можно скорректировать влияние резонансных полюсов, вводя про- порционально-дифференцирующий ПД-регулятор в цепи обратной связи. Предположим, что разработаны три разных регулятора, необходимо вы- брать одну из трех систем с наиболее приемлемыми динамическими свойст- вами. Соответствующие tf-модели этих систем для версии Student Edition of MATLAB размещены в файле данных LTIVicw.mat и имеют имена Gcll, Gcl2, Gcl3. Выполним загрузку этого файла: load LTIView Для каждого ПД-регулятора сформируем tf-модели для замкнутых систем: Gcl1=tf([4 8.4 30.8 60], [1 4.12 17.4 30.8 60]) Transfer function: 4 sA3 + 8.4 sA2 + 30.8 s + 60 sA4 + 4.12 sA3 + 17.4 sA2 + 30.8 s + 60 Gd2=tf([2 1.2 15.1 7.5], [1 2.12 10.2 15.1 7.5]) Transfer function: 2sA3 + 1.2 sA2+15.1 s + 7.5 sA4 + 2.12 sA3 + 10.2 sA2 + 15.1 s + 7.5 Gcl3=tf([1.2 1.12 9.1 7.5], [1 1.32 10.12 9.1 7.5]) Transfer function: 1.2 sA3 + 1.12 sA2 +9.1 s + 7.5 sA4 + 1.32 sA3 + 10.12 sA2 + 9.1 s + 7.5 Теперь, когда tf-модсли загружены в рабочую среду LTl-Viewer, можно выполнить анализ этих моделей. ^ёб!
6. Средства графического интерфейса пользователя Определение динамических характеристик систем Сравнение переходных функций (рис. 108) показывает, что система Gel 1 имеет самое малое перерегулирование и что если бы требование величины перерегулирования было наиболее важным, то следовало бы выбрать регу- лятор, используемый в системе Gel 1, и завершить анализ. Однако при про- ектировании регуляторов следует учитывать и другие параметры, например время переходного процесса. Для выбора соответствующих опций на гра- фике предназначено поле Plot Options (рис. 110). ._ Plot Options —, Г" Peak. Response R? jSettbrigTim^. Г Rise Firnc Г* Steady State Рис. 110 В этом поле можно указать следующие опции графика переходного процесса: максимум переходного процесса (Peak Response), время переход- ного процесса (Settling Time), время нарастания (Rise Time), установивше- еся значение (Steady State). Для активизации поля необходимо в поле Plot Туре выбрать требуемую характеристику, затем в поле Plot Options отметить желаемую опцию. При этом на графиках появятся соответствующие маркеры, и если при положе- нии курсора на маркере нажать левую кнопку мыши, то в ответ будет выве- дено фактическое значение этой опции. Для нашего примера выберем опцию время переходного процесса (рис. 111). По умолчанию LTI-Viewer вычисляет время переходного про- цесса, используя 2 %-ную трубку относительно установившегося значения. Последовательно нажимая левую кнопку "мыши" на трех маркерах време- ни, можно увидеть, что система Gcl2 имеет минимальное время переходно- го процесса, равное 6.9 с.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Изменение типа графика Прежде чем принять решение использовать регулятор, соответствующий системе Gcl2, рассмотрим частотные характеристики систем. Для выбора соответствующей характеристики предназначено ниспадающее меню Plot Туре (рис. 112). - Plot Туре Bode Step Impulse Bode Nyquist Nichols Sigma Pole-Zero Lsim Initial Рис. 112 Для работы с меню Plot Туре необходимо: • нажатием левой клавиши мыши открыть меню; • выбрать из меню желаемый тип графика. 1268
6. Средства графического интерфейса пользователя Для вывода амплитудно-фазовых частотных характеристик выберем оп- цию Bode из меню Plot Туре (рис. 112). При этом изменяется вид выводи- мых 1рафиков, а также опции в области Plot Options (рис. 113). LTI-Viewcr позволяет считывать информацию непосредственно с графи- ков, используя принцип "указать-нажать". Если при нажатой левой клавише мыши удерживать курсор в опреде- ленной точке графика, то будет выдана информация о подсистеме и коор- динатах точки. Если при нажатой правой клавише мыши удерживать кур- сор вблизи какого-либо графика, то появляется информация с указанием пары вход-выход и названия LTl-модсли. На рис. 113 выведена информация, которая появляется при нажатии ле- вой клавиши мыши в точке, соответствующей минимуму пика амплитудной характеристики для модели Gcl2 со значением -20 дБ на частоте 3 рад/с. W Tools riots. Неф Bode Diagrams Рис. 113 Расположение нулей и полюсов Для определения сравнительного расположения полюсов и нулей следу- ет обратиться к карте размещения нулей и полюсов на комплексной плоско- сти. Будем строить такую карту только для полюсов и нулей систем G (ра- зомкнутая) и Gcl2 (замкнутая). Для этого разместим систему G в окне Selected, переведем системы Gel 1 и Gcl3 в положение "график выключен", из меню Plot Туре выберем опцию
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Pole-Zero переместим курсор в один из комплексных нулей и нажмем левую клавишу мыши. После этого рабочее поле средства просмотра LTl-Viewer примет сле- дующий вид (рис. 114). Рис. 114 Теперь для системы Gcl2 построим переходный процесс на единичное ступенчатое воздействие (тип Step меню Plot Туре), определим время пере- ходного процесса (опция Setting Time поля Plot Options). Результат показан на рис. 115. 1270)
6. Средства графического интерфейса пользователя Рис. 115 Изменение масштаба графиков Кнопки масштабирования Zoom, показанные на рис. 11 6 позволяют изме- нять масштаб либо по оси х, либо по оси у,либо по обеим осям х и у одно- временно. Рис. 116 Для того чтобы реализовать масштабирование, следует: • выбрать нужную кнопку масштабирования; • выделить с помощью курсора ту область графика, где требуется выпол- нить масштабирование. Можно вернуться к первоначальному виду графика, если нажать самую правую кнопку с изображением бинокля. Анализ многомерной системы В этом подразделе выполнен анализ динамики многомерной модели са- молета. Задача состоит в синтезе закона управления с обратной связью для l?7l]
В. С. Meceeoee,B. Г. Потемкин. CONTROL SYSTEM TOOLBOX продольного движения самолета F-8 на основе его lti-модели в пространстве состояний. Описание lti-модели самолета размещено в файле LTIView.mat под именами ssF8 и clssF8. Поэтому, загрузив этот файл командой load LTIView, можно получить к данным ss-модсли. Модель разомкнутой системы с двумя входами и двумя выходами имеет вид: ssF8 а = PitchRate Velosity AOA PitchAngle PitchRate -0.7 -0.0458 -12.2 0 Velosity 0 -0.014 -0.2904 -0.562 АОА 1 -0.0057 -1.4 0 PitchAngle 1 0 0 0 b = Elevator Flaperon PitchRate -19.1 -3.1 Velosity -0.0119 -0.0096 AOA -0.14 -0.72 PitchAngle 0 0 c = PitchRate Velocity AOA PitchAngle FlightPath 0 0 -1 1 Accelration 0 0 0.733 0 d = Elevator Flaperon FlightPath 0 0 Accelration 0.0768 0.1134 Continuous-time system. • Входы - Elevator (отклонение руля высоты) и Flaperon (регулятор тяги двигателя); • переменные состояния — PitchRate (скорость изменения угла тангажа), Velocity (скорость движения), АОА (угол атаки), PitchAngle (угол тангажа); • выходы - Velocity (скорость движения) и Acceleration (ускорение) в го- ризонтальном направлении. Допустим, что закон управления уже найден и известна lti-модель замкнуто- го контура системы управления самолетом clssF8. Эта модель имеет вид: clssF8 а = PitchRate PitchRate Velosity АОА PitchAngle -4.6951 0.03002 -1.5325 Velocity 0.01448 -0.01386 0.00443 О АОА 12.257 -0.27637 -1.433 0 PitchAngle -0.1275 -0.5625 -0.03949 0
б. Средства графического интерфейса пользователя Ь = Elevator PitchRate -19.1 Velosity -0.0119 АОА -0.14 PitchAngle 0 с = PitchRate FlightPath 0 Accelration 0 d = Elevator FlightPath 0 Accelration 0.0768 Continuous-time system. Flaperon -3.1 -0.0096 -0.72 0 Velocity 0 0 Flaperon 0 0.1134 AOA PitchAngle -1 1 0.733 0 Откроем новый LTI-Viewer, разместив lti-модели самолета F-8 ssF8 и clssF8 в окне Selected. Рабочее поле средства LTI Viewer примет вид (рис. 117). Titne (sec.) Displayed I/O Charnels [aH| Iu1j IU2J IVl] • * [У2] • • The selected system is being added to the fct _ Plot Options- Г Peak Response i Г Settling Time Г Rise Time Г Steady State | Calculate i 1 I __ Plci Type _. I Step 3 Configisation О Groups! C Group in C Group out <• Array Рис. 117 |273|
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Отметим особенности рабочего поля при анализе многомерных систем: • графики строятся для каждой пары вход-выход; • поле Configuration становится активным; • область Displayed I/O Channels также является активной. Представление графиков Если LTI-Viewer инициализирован для просмотра многомерной lti- модели, то графики строятся в рабочем поле средства LTI-Viewer по тем же правилам, что и при вводе соответствующей функции в системе MATLAB. Однако LTI-Viewer имеет поле Configuration, показанное на рис. 118, в ко- тором имеется четыре опции для представления графиков: Configuration Г' Group all G-Group in C Group out <• Array Рис. 118 • опция Group all предназначена для построения графиков для всех пар вход-выход в одних осях; • опция Group in предназначена для построения графиков всех входов при заданном выходе в одних осях; • опция Group out предназначена для построения графиков всех выходов при заданном входе в одних осях; • опция Array предназначена для построения графиков для всех пар вход- выход в отдельных осях (применяется по умолчанию). Для того чтобы идентифицировать, какой парс вход-выход соответству- ет график, следует указать на него курсором и нажать правую клавишу мы- ши; при этом появится надпись, указывающая принадлежность графика. При появлении идентифицирующей надписи в поле Displayed I/O Channels кнопка, соответствующая данной паре вход-выход, изменяет цвет. Выбор пар вход-выход На рис. 119 показано поле Displayed I/O Channel, предназначенное для указания пар вход-выход, для которых строятся графики.
6. Средства графического интерфейса пользователя г Displayed I/O Channels (alii [u1l [u21 Ijrt] ♦ О 1У2] 0 О Рис. 119 Каждая кнопка соответствует определенной парс вход-выход. Для того чтобы выбрать пары вход-выход, надо выполнить одно из следующих дей- ствий: • выполнить щелчок левой клавишей мыши при указании курсора на одну из кнопок; • удерживая клавишу Control, щелчком левой клавиши мыши выделить несколько кнопок и соответственно пар вход-выход; • если щелчок левой клавиши мыши выполняется в поле заголовка неко- торого входа или выхода, выводятся графики по всем выходам или вхо- дам; • если щелчок левой клавиши мыши выполняется в поле заголовка [all], то выводятся графики для всех пар вход-выход; • при щелчке правой клавишей по одной из активных кнопок на 1рафике появляется идентифицирующая надпись, а кнопка изменяет цвет. На рис. 120 показаны переходные процессы на единичное ступенчатое воздействие для пары вход-выход Flaperon-FlightPath (при нажатой и под- свеченной кнопке ([у 1 ], [и2]) в поле Displayed I/O Channel.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Рис. 120 6.3. Меню средства просмотра LTI-Viewer Линейка меню средства просмотра LTI-Viewer включает четыре меню: File, Tools, Plots, Help. Рассмотрим более подробно каждое из них. Меню File Меню File представлено на рис. 121 и включает пять подменю: New Viewer^ Ctrl+N i Export... Print Response... Ctrl+P - Send Response to Figure... Close Viewer Ctrl+W Рис. 121
6. Средства графического интерфейса пользователя • New Viewer - открыть новое окно для средства LTI-Viewer; • Export - экспорт данных; • Print Response - вывод графика характеристики на печать; • Send Response to Figure - разместить характеристику в окне Figure; • Close Viewer - закрыть LTI-Viewer. Опишем функции каждой опции более подробно. Опция New Viewer инициализирует новое окно для средства просмотра LTI-Viewer. Опция Export позволяет экспортировать lti-модели из рабочей области средства LTI-Viewer в рабочую область системы MATLAB или в mat-файл, размещаемый на жестком диске. При вызове данной опции появляется окно Export LTI Models/Compensators (рис. 122). В этом окне есть кнопка Export to Disk для записи lti-моделей в виде файлов на диске и кнопка Export to Workspace для экспорта в рабочую об- ласть системы MATLAB. Кроме того, имеется меню Show, которое предна- значено для фильтрации данных, указанных в поле Export List, если эти данные отмечены специальными символами. В версии Student Edition of MATLAB в этом меню реализована только опция АП, которая предполагает показ всех данных в поле Export List. Опция Print Response предназначена для вывода на печать характеристик из рабочего окна средства просмотра LTI-Viewer, при этом само окно со всеми полями и средствами управления не отображается; для получения копии экрана следует воспользоваться клавишей Print Screen.
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Опция Send Response to Figure позволяет разместить характеристики из рабочего окна средства просмотра LTI-Viewer в окне Figure для последую- щего графического редактирования. Опция Close Viewer завершает сеанс работы со средством LTI-Viewer. Меню Tools Меню Tools представлено на рис. 123 и включает три подменю: |Й^1.Т1 Viewer Й2Я Tools Е Viewer Controls ., , ’и Ctrl+V Response Preferences Ctrl+R it Linest у lePreferences Ctrl+L У J" ' Рис. 123 • Viewer Controls - управление выводом/удалением с экрана управляющих элементов средства LTI-Viewer; • Response Preferences - управление параметрами графиков характеристик lti-объектов; • Linestyle Preferences - управление спецификациями линий на графиках. Опишем функции каждой опции более подробно. Опция Viewer Controls позволяет руководить выводом на экран управ- ляющих элементов. Если опция выключена, то поле вывода графики может быть развернуто на весь экран, что позволяет более тщательно рассмотреть графики характеристик проектируемой системы. Опция Response Preferences предназначена для указания принадлежно- сти графиков различным системам, входам, выходам или парам вход-выход. Опция Response Preferences позволяет переназначать параметры графи- ков, выводимых в рабочей области LTI-Viewer. При выборе этой опции от- крывается дополнительное окно Response Preferences, показанное на рис. 124, где 1 - кнопки выбора отклика, позволяющие формировать интер- вал времени либо автоматически, либо вручную; 2 - кнопки выбора отклика, позволяющие формировать диапазон по оси Y либо автоматически, либо вручную; 3 - окно для установления опций для вычисления времен установ- ления и нарастания переходного процесса; 4 - окно для установления интер- вала частот при вычислении частотных характеристик; 5 - окно с кнопками выбора для назначения единиц измерения по осям. 78
6. Средства графического интерфейса пользователя Рис. 124 Установка интервала времени Для получения гладких графиков на малых интервалах времени целе- сообразно устанавливать вектор временных отсчетов нс автоматически, а вручную, как это показано на рис. 125. Для задания временного вектора можно использовать один, два или три аргумента, разделенных двоеточием и заключенных в квадратные скобки: • векгор [Tf] задает только конечное время; • вектор [Ti.’Tf] задает начальное и конечное время; • вектор [Ti:dt:Tf] задает начальное и конечное время, а также шаг прира- щения. Установка диапазона по оси Y Для управления масштабом по оси Y можно воспользоваться окном, по- казанным на рис. 126. |279|
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX Y-axis Range <• Generate automatically № Define: [YmnYmax] Рис. 126 Для задания диапазона изменения переменной по оси Y следует сформи- ровать вектор [Ymin Ymax], который определяется минимальным и макси- мальным значениями переменной, отображаемой вдоль оси Y. Задание параметров для вычисления характеристик переходного процесса Секция Plot Option (рис. 127) содержит текстовые окна, в которых можно указать параметры для вычисления времени установления и времени нарас- тания переходного процесса. По умолчанию LTI-Viewer вычисляет время переходного процесса как время, когда переходная функция входит в 2 %- ную трубку отклонения от установившегося значения и остается в ней все оставшееся время. Используя редактируемое окно, можно изменить это зна- чение. Точно так же можно изменить параметры, принятые по умолчанию, для определения времени нарастания переходного процесса. Calculate rise time from Pirc. 127 Plot Option Calculate settling time for Установка интервала изменения частот Для установки интервала изменения частот при вычислении частотных характеристик lti-систем следует использовать окно Frequency vector облас- ти Frequency Domain, показанное на рис. 128. Для задания интервала изменения частот надо использовать следующий формат вектора [dl d2 п], который задает п равноотстоящих в логарифмиче- ском масштабе точек, которые покрывают диапазон от 10dl до 10d2.
6. Средства графического интерфейса пользователя wf , i, Frequency Domain Frequency vector (rad?sec.] (* Generate automatically P Recalculate for each response type C' Define: logspace|d1,d2,N) Рис. 128 В этом окне имеется также панель контроля Recalculate for each response type, которая позволяет управлять режимом перевычисления вектора частот при переходе к новому типу частотной характеристики. Если панель кон- троля не отмечена, то используется ранее заданный вектор частоты. Если панель контроля отмечена, то вектор частоты и частотная характеристика перевычисляются каждый раз, когда происходит переход от одной характе- ристики к другой. Задание единиц измерения В дополнение к окну для задания диапазона частот область Frequency Domain включает окно для задания единиц измерения амплитуды, фазы и частоты, используемых при построении графиков частотных характеристик (рис. 129). Magnitude п Phase in: Frequency in: Decibels C Absolute- C Lpgrithmic C Radians & Degrees Radians/second Рис. 129 По умолчанию LTI-Viewer строит частотные характеристики при усло- вии, что амплитуда измерена в децибелах, фаза - в градусах, частота - в ра- дианах в секунду. Опция Response Preferences позволяет использовать цвет, тип маркера и тип линии для различения графиков, выводимых в рабочей области LTI- Viewer. Это различие может быть связано с принадлежностью графиков к различным системам, различным выходам или входам, а для многомерных систем - к различным парам вход-выход. При выборе этой опции открыва- ется дополнительное окно Lincstyle Preferences, показанное на рис. 130, где 1 - кнопки выбора для различения графиков; 2 - столбцы кнопок для
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX указания типа маркера или типа линии; 3 - порядок следования цвета, типов маркеров или типов линий; 4 - кнопки для управления порядком следования спецификаций цвета. Изменение спецификаций В окне Linestyle Preferences кнопки выбора предназначены для изменения спецификаций с целью различить принадлежность графиков к различным сис- темам, входам, выходам или парам вход-выход (рис. 131). По умолчанию при открытии окна включена кнопка выбора Color (цвет) в строке Systems (систе- мы) и кнопки No Distinction (нет различия) в остальных строках. Все кнопки выбора, кроме кнопок в столбце No Distinction (нет разли- чия), являются взаимоисключающими. Задание порядка следования спецификаций Спецификация графика определяется цветом, типом маркера или типом линии. Порядок следования этих спецификаций, принятый по умолчанию, |282|
6. Средства графического интерфейса пользователя представлен на рис. 130, а на рис. 132 отдельно показана спецификация типа линий и указан порядок их следования, принятый по умолчанию. На приме- ре этой спецификации рассмотрим способ изменения их следования. Linestyle Order dashed dash-dot dotted Рис. 132 Для изменения порядка следования типов линий надо использовать стрелки л и v, расположенные слева от списка типов, которые позволяют переместить требуемый тип линии соответственно вверх или вниз по списку. Меню Plots Меню Plots представлено на рис. 133 и включает одно подменю. [r/-LTI Viewer PI ‘s Grid on I Рис. 133 Опция Grid on позволяет управлять нанесением сетки координат на гра- фик; во включенном состоянии сетка отображается, при выключенном - не выводится. Меню Help Меню Help представлено на рис. 134 и включает три подменю: Рис. 134 1283]
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX • Viewer Controls - справка о назначении управляющих элементов окна LTI Viewer; • Response Preferences - справка об управлении параметрами графиков; • Linestyle Preferences - справка об управлении спецификациями линий. Опция Viewer Controls выводит справочный текст о том, как пользовать- ся средством просмотра LTI Viewer. Опция Response Preferences выводит справочный текст об управлении параметрами графиков характеристик lti-объектов во временной и частот- ной областях. Опция Linestyle Preferences выводит справочный текст об использовании цвета, типов маркеров и типов линий для различения принадлежности гра- фиков к разным системам, входам, выходам или парам вход-выход. Линейка статуса (рис. 135), расположенная в нижней части окна средст- ва LTI Viewer, обеспечивает пользователя инструкциями, подсказками и сообщениями об ошибках в процессе просмотра характеристик lti-систем. Glick and drag along theX:direction of any response axis. AH other axes wil zoom to the same limits Рис. 135 Сообщения могут появляться при успешном завершении функции или попытке выполнить неподдерживаемую функцию, а также при других дей- ствиях, поддержанных справочной системой средства LTI Viewer.
предметный указатель А F ACKER - 176 APPEND 79 AUGSTAGE 132 FEEDBACK • 77 FILT • 57 FREQRESP 116 В G BALREAL • 142 BODE -111 GENSIG - 158 GET - 58 -------------------- GRAM 140 С ------- C2D • 62 CANON - 133 CARE-201 CLASS - 99 CONNECT-81 COVAR -163 CTRANSPOSE, TRANSPOSE - 71 CTRB - 135 CTRBF-136 H HORZCAT, VERTCAT • 71 I IMPULSE • 155 INITIAL -151 INV • 72 ISA - 100 ISCT, ISDT • 101 D ISEMPTY 102 ISPROPER- 102 D2C 64 D2D - 66 DAMP - 105 DARE • 204 DCGAIN - 106 DLQR - 183 DLYAP-201 DRMODEL, DRSS - 150 DSORT - 107 DSS-51 DSSDATA • 60 ISSISO- 103 К KALMAN 187 KALMD 193 L LQGREG - 194 LQR - 182 LQRD 184 E LQRY • 186 LS1M 159 ESORT 108 ESTIM 178 EVALFR- 115 LYAP 200 |285|
В. С. Медведев, В. Г. Потемкин. CONTROL SYSTEM TOOLBOX MARGIN 118 MINREAL 144 MODRED 145 MRD1VIDE, MLDIVIDE 74 MTIMES • 70 N NGRID - 124 NICHOLS • 122 NORM 120 NYQUIST - 126 О OBSV • 138 OBSVF • 139 ORD2 • 148 P PARALLEL - 74 PLACE - 177 PLUS, MINUS 70 POLE, EIG • 103 PZMAP 109 R REG - 180 RLOCFIND 174 RLOCUS • 172 RMODEL, RSS • 149 SERIES 76 SET•48 SGRID, ZGRID 110 SIGMA - 128 SIZE - 103 SS - 49, 67 SS2SS 131 SSBAL 130 SSDATA 59 STAR • 85 STEP - 153 T TF 52, 68 TFDATA • 60 TZERO 104 z ZPK - 55, 69 ZPKDATA • 61
ОГЛАВЛЕНИЕ ПРЕДИСЛОВИЕ...................................................3 ВВЕДЕНИЕ......................................................5 1. МОДЕЛИ ЛИНЕЙНЫХ СИСТЕМ С ПОСТОЯННЫМИ ПАРАМЕТРАМИ...................................................8 1.1. Линейные стационарные объекты (Iti-объекты)...........9 1.2. Свойства lti-объектов................................19 1.3. Операции над lti-объектами...........................28 1.4. Построение дискретных моделей непрерывных систем.....40 1.5. Система Simulink для моделирования lti-систем........45 1.6. Функции создания и преобразования lti-моделей........46 2. АНАЛИЗ МОДЕЛЕЙ LTI-ОБЪЕКТОВ...............................87 2.1. Свойства lti-объектов................................87 2.2. Динамические параметры lti-моделей...................88 2.3. Операторы и функции для анализа систем...............99 3. СИНТЕЗ КОНТУРОВ УПРАВЛЕНИЯ С ОБРАТНОЙ СВЯЗЬЮ...........................................165 3.1. Метод корневого годографа...........................165 3.2. Метод заданного расположения полюсов системы........167 3.3. Синтез ЛКГ-регуляторов..............................169 3.4. Функции и команды...................................172 4. ВЫЧИСЛИТЕЛЬНЫЕ ПРОБЛЕМЫ ПРИ РАСЧЕТЕ СИСТЕМ УПРАВЛЕНИЯ..................................................207 4.1. Обусловленность и численная устойчивость............208 4.2. Выбор lti-моделей...................................212 4.3. Масштабирование.....................................217 5. ПРИМЕНЕНИЕ ПРОЦЕДУР АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ..............................................219 5.1. Проектирование методом корневого годографа..........219 5.2. Проектирование цифрового регулятора.................230 5.3. Проектирование ЛКГ-регулятора.......................238 5.4. Проектирование фильтра Калмана......................253 6. СРЕДСТВА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ ДЛЯ АНАЛИЗА LTI-СИСТЕМ......................................262 6.1. Описание LTl-Viewer.................................262 6.2. Примеры использования средства просмотра LTI-Viewer.265 6.3. Меню средства просмотра LTI-Viewer..................276 4И41ОГ7ИИ0И |287j