- •Глава 8
- •8.1. Введение
- •8.2.2. Использование команды model
- •Описание
- •8.3.1. Использование команды sim для моделирования
- •8 .3.2. Задание дополнительных параметров моделирования с помощью функции simset
- •8.3.3. Извлечение значений дополнительных параметров моделирования с помощью функции sim get
- •8 .4. Средства линеаризации
- •8.4.1. Линеаризация
- •8.4.2. Команды линеаризации системы Simuliak
- •8 .5. Использование команды Trim для вычисления состояний равновесия
8 .5. Использование команды Trim для вычисления состояний равновесия
В ряде случаев необходимо находить положения равновесия систем. Как было показано в примере 8.6, в состоянии равновесия автономной системы все производные переменных состояния должны быть равны нулю. Например, распространенным способом анализа устойчивости автономных нелинейных систем является линеаризация в окрестности точки равновесия для оценки устойчивости положения равновесия нелинейной системы. Оценка устойчивости точек равновесия и вида особых траекторий для нелинейных систем также связана с характером устойчивости данных систем.
Команда и функция trim системы Simulink находит состояния равновесия и состояния частичного равновесия, где выделенные компоненты вектора производных переменных состояния равны 0, другие производные вектора состояния могут быть отличны от нуля. Функция trim вычисляет состояние равновесия с помощью разностной схемы, то есть находит такую точку (для переменных х, и, у), в которой абсолютное значение производной состояния принимает минимальное значение.
Если компоненты вектора состояния х, входной переменной и или выходной переменной у заданы константами, эти значения вводятся как ограничения, которые учитываются на этапе расчета. Функция
[x,u,y,dx] = trim(model,xO,uO,yO,ix,iu,iy,dxO,idx,options, t)
решает задачу минимизации с ограничениями на производные переменных состояния системы и переменные системы. Все аргументы являются необязательными за исключением параметра model. Описание параметров приводится в таблице 8.5.
Таблица
8.5. Параметры команды
trim
П араметр Описание
х Значение вектора состояния в точке равновесия. Если выходные параметры не задают-
ся, то trim возвращает значение х
и Значение вектора входной переменной, соответствующее точке равновесия. Параметру
и присваивается значение пустого вектора [ ], если модель не имеет блоков In. Блоки Sources не рассматриваются как входные блоки системы
у Значение вектора выходной переменной, соответствующее точке равновесия. Если мо-
дель не содержит блоков Out, параметру у присваивается значение пустого вектора [ ]
dx Значение вектора производных состояния системы в точке равновесия
1 mode 1' Имя модели (имя файла модели) системы Simulink, заключенное в верхние кавычки, без расширения. Например, если модель сохраняется в файле с именем s_examp.mdl, входной аргумент задается в виде 's_examp'. Это обязательный аргумент
хО Начальное приближение (значение) вектора состояния системы. Данное значение зада-
ется на первом шаге итерационного процесса поиска точки равновесия. Значения отдельных элементов вектора могут быть заданы в переменной ix. Параметр хО является вектором-столбцом, например [ 0; 1; 0; 0 ]
иО Начальное приближение для вектора входной переменной. Значения отдельных эле-
ментов вектора иО могут задаваться с использованием аргумента iu
уО Начальное приближение для вектора выходной переменной. Значения отдельных эле-
ментов вектора у 0 могут задаваться с использованием аргумента iy
ix Вектор, указывающий какие элементы вектора состояния заданы в виде констант (дол-
жны обрабатываться как ограничения). Например, если второй и четвертый компоненты вектора состояния устанавливаются в значения, заданные в хО, следует задать оператор [2,4]
iu Вектор, указывающий какие элементы вектора входной переменной задаются в виде
констант (должны обрабатываться как ограничения). Например, если второй и четвертый компоненты вектора иО обрабатываются как ограничения, iu задается как оператор [2,4]
iy Вектор, указывающий какие элементы вектора выходной переменной заданы в виде
констант (должны обрабатываться как ограничения). Например, если второй и четвертый компоненты вектора у0 обрабатываются как ограничения, iy задается как оператор [2,4]
dxO Вектор производных переменных состояния системы в точке частичного равновесия.
Вектор dxO используется в операции логического умножения с вектором idx для указания элементов вектора производных переменных состояния системы Вектор, указывающий какие элементы вектора производных переменных состояния должны быть зафиксированы в значениях, заданных в dxO. Например, если третий компонент вектора производных переменных состояния должен быть задан как значение dxO (3), вектор idx формируется в виде оператора [3]. Остальные элементы вектора dxO являются переменными
options Вектор дополнительных параметров оптимизации, которые передаются в функцию оптимизации. Дополнительную информацию можно получить из справочной системы по разделу FOPTIONS. Этот параметр обычно не задается или задается как пустой вектор [ ]. Если функция trim, используя заданное начальное приближение, строит итерационный процесс, который не сходится, следует корректировать параметры оптимизации
t Время, требуемое для нахождения положения равновесия. Этот входной параметр не-
обходим в случае, если производные переменных состояния являются функциями времени
Пример 8.10. Нахождение состояния равновесия
Рассмотрим нелинейную систему, описываемую уравнениями
X] = Х{ + х\ ~4,
х2 = 2х1 -х2-
Найдем состояния равновесия системы и определим характер устойчивости системы и устойчивость точек равновесия. Модель системы Simulink изображена на рис. 8.24. На рис. 8.25 показан фазовый портрет, построенный с использованием модифицированного М-файла, приведенного на рис. 8.11. При рассмотрении графика поля направлений (рис. 8.25) видно, что имеются две точки равновесия с координатами приблизительно равными (-1, -2) и (1, 2), причем первая точка равновесия устойчива, а вторая точка равновесия — неустойчива. Для оценки устойчивости точек равновесия следует применить функцию trim, далее, с помощью функции 1 inmod линеаризовать систему в окрестности каждой из найденных точек равновесия и затем, используя функцию eig системы MATLAB, вычислить собственные значения линеаризованной системы для каждой из точек равновесия. М-файл (рис. 8.26) вычисляет указанные выше параметры (рис. 8.27). Из рисунка можно видеть, что точка равновесия имеет координаты (-0.89, -1.79). Собственные значения имеют отрицательные действительные части, поэтому точка равновесия асимптотически устойчива (устойчивый фокус). Модель, которая получена линеаризацией нелинейной системы в окрестности точки равновесия с координатами (0.89,1.79), имеет одно собственное значение вещественное и положительное, другое является вещественным и отрицательным. В этом случае система является неустойчивой (точка равновесия называется седлом).
Пример 8.11. Модель крутящегося маятника
Рассмотрим механическую систему в виде крутящегося маятника (рис. 8.28). Вращающий момент, создаваемый двигателем, приложен непосредственно к маятнику, который представляет собой материальную точку массой т, ось маятника находится в точке О и длина линии подвеса равна /. Введем обозначения: 1т—момент инерции маховика, х — вращающий момент двигателя, 9—угол отклонения маятника, ф—угол поворота, ф—угловая скорость и g—ускорение свободного падения. Силами трения и аэродинамическим сопротивлением пренебрегаем.
Рис. 8.28
Крутящийся маятник
Запишем систему дифференциальных уравнений относительно неизвестных функций 8 и ф в виде:
где переменная 6 является входной переменной. Требуется найти угловую скорость ф,
при которой обеспечивается установившееся состояние переменной 0, равное 0.5 рад. На рис. 8.29 показана модель системы Simulink.
Для моделирования уравнений движения используем два функциональных блока. М-файл, показанный на рис. 8.30, задает входные параметры модели и проверяет, что указанные элементы вектора состояния соответствуют установленным в блоках Out.
Отклонение маятника в требуемое установившееся положение, равное 0.5 рад, происходит при угловой скорости двигателя отличной от 0, так что начальный вектор состояния задается как:
Система является автономной, поэтому можно предположить, что точке равновесия соответствует нулевая входная переменная:
и0=0;
Вектор выходной переменной совпадает с вектором состояния системы, поэтому имеем:
Будем считать, что значения вектора выходной переменной и вектор состояния являются переменными величинами, однако, выходная переменная, соответствующая углу отклонения маятника, задается равной 0.5 рад. Зададим ix и iu как пустые массивы [] и запишем:
iy=l;
Значение производной угла поворота вокруг оси двигателя, который является третьим компонентом вектора состояния, отлично от 0 в точке равновесия, и производные других компонентов вектора состояния будут равны 0, поэтому можно записать:
На рис. 8.31 приведена программа на языке MATLAB, включающая функцию trim с параметрами, которые обсуждались выше. Четвертый компонент вектора-столбца х является угловой скоростью двигателя в состоянии равновесии и величина ее равна 6.1011 рад/с. Можно проверить данный результат путем подстановки в уравнения крутящегося маятника.
8 .6. Пакет прикладных программ Optimization Toolbox и система Simulink
Теория оптимизации находит применение при проектировании систем управления, ее используют для максимизации или минимизации некоторой скалярной функции нескольких переменных, на которые наложены дополнительные ограничения. Пакет прикладных программ (ППП) Optimization Toolbox включает функции и операторы для решения задач условной и безусловной оптимизации. Обмен данными с ППП Optimization Toolbox выполняется с использованием рабочей области системы MATLAB. Рекомендуется использовать функцию fminunc, реализующую метод безусловной минимизации и функцию f mi neon, использующую формулы минимизации при наличии ограничений.
Функция x=fminunc (fun, xO, options,pl,p2,...) реализует метод безусловной минимизации, fun — строка, содержащая имя целевой функции, хО — вектор начальных приближений [1]. Функция x=fmincon (fun, xO, a, b,...) использует формулы минимизации при помощи ограничений, fun — имя целевой функции, хО — вектор начальных приближений [1]. Здесь не приводится описание параметров функции, информацию можно получить из справочной системы MATLAB.
Рассмотрим описание целевой функции. Задача отыскания минимума обычно формулируется следующим образом: найти вектор решения, обеспечивающий минимум целевой функции (при ограничениях типа равенств, или неравенств, или их отсутствии). Целевая функция задается М-файлом со строкой определения функции в
Использование целевой функции для моделей системы Simulink предполагает:
Инициализацию параметров системы Simulink, определяемых значениями эле ментов вектора х (входные аргументы, передаваемые fun функцией оптимиза ции).
Выполнение процесса моделирования с помощью функции s im, присваивая значения массивов состояний, входных и выходных данных заданным перемен ным, размещенным в рабочей области.
Выполнение функции и возвращение выходного аргумента f (скалярная пере менная). Переменная f зачастую является определенным интегралом функции переменных состояния, входных или выходных переменных на заданном отрез ке времени, может являться некоторым параметром траекторий или условием для конечной точки.
В записи выражения для функции sim следует задать значение ' current' для опций SrcWorkspace и DstWorkspace (см. таблицу 8.3). В этом случае значения параметра, передаваемые в функцию fun, будут использоваться вместо значений, хранимых в рабочей области, которые присвоены переменной с тем же именем. Если значение упомянутых опций установлено как ' current', все переменные рабочей области, которые используются для конфигурирования блоков системы Simulink, должны в виде параметров передаваться в целевую функцию. Для использования набора параметров в рабочей области системы MATLAB или в М-файле, которые вызывают функцию оптимизации, для передачи параметров используются параметры (pi, р2,..., рп).
Функция оптимизации может вызываться из командной строки системы MATLAB или из М-файла. Рекомендуется задавать начальные приближения вблизи искомого решения, тогда, при выполнении определенных условий, метод имеет быструю сходимость.
Следует иметь в виду, что функции оптимизации реализуют итерационный процесс, который обеспечивает сходимость к локальному минимуму, если нет дополнительной информации о решаемой задаче (результаты физических экспериментов, испытаний реальных систем управления и др.). Не гарантируется, что точка решения соответствует глобальному минимуму. В функциях оптимизации процесс заканчивается при достижении заданной погрешности решения, таким образом, задание различных начальных приближений может привести к разным приближенным результатам даже вблизи одного и того же минимума.
Пример 8.12. Задача минимизации заданной целевой функции
Рассмотрим практическое использование ППП Optimization Toolbox на примере зату-хающих.колебаний маятника (рис. 8.32). Пусть задана целевая функция
с начальным значением 8 = л/3 рад. Уравнение движения маятника запишем в виде
где значения т = 1 кг, / = 1 м.
Рассмотрим задачу минимизации заданной целевой функции и нахождения коэффициента с, удовлетворяющего приведенным соотношениям. Модель системы Simulink показана на рис. 8.33.
На рис. 8.34 приведена М-функция, вычисляющая значения целевой функции при заданном значении коэффициента с. На рис. 8.35 приведена функция fminunc поиска решения (значения коэффициента с) задачи оптимизации. Начальное приближение для коэффициента с задано равным 5.
8.7. Пакеты прикладных программ, используемые совместно с системой Simulink
Ряд программных продуктов, входящих в семейство продуктов MATLAB, таких как базовые программные средства и пакеты прикладных программ (ППП), позволяют пользователю применить предлагаемые разработчиками ППП подходы, а также набор функций и команд, и создавать блоки системы Simulink с целью расширения функциональных возможностей системы Simulink. Можно выделить:
ППП анализа и синтеза систем управления: Control System Toolbox (Системы управления), Linear Matrix Inequality Control Toolbox (Синтез систем управле ния на основе матричных неравенств), Nonlinear Control Design (Проектирова ние нелинейных систем).
ППП идентификации систем управления: System Identification Toolbox (Иденти фикация параметров), Frequency Domain System Identification Toolbox (Иденти фикация в частотной области).
Математические ППП: Fuzzy Logic (Нечеткая логика), Neural Network Toolbox (Нейронные сети).
Пакеты моделирования с использованием системы Simulink: ППП Digital Signal Processing Blockset (Обработка цифровых сигналов), Fixed-Point Blockset (Вы числения в формате с фиксированной точкой).
Список программных продуктов семейства MATLAB постоянно расширяется, охватывая новые предметные области. Для получения информации по данному вопросу следует обратиться к материалам WWW-сервера фирмы The Math Works, Inc., no адресу www.mathworks.com.
8.8. Заключение
В главе рассматривались средства анализа системы Simulink, включающие определение параметров вектора состояния моделируемой системы. Затем были описаны способы выполнения процесса моделирования с использованием функции s im, и показано, как получить линейную модель для нелинейного дифференциального уравнения и найти состояния равновесия. В заключительной части рассматривался ППП Optimization Toolbox, был приведен пример решения задачи безусловной минимизации в системе Simulink.
8.9. Литература
Optimization Toolbox User's Guide, Version 2, Natick, MA, The Math Works, Inc., 2000.
Khalil, Hassan K., Nonlinear Systems, 2nd ed., Upper Saddle River, NJ, Prentice Hall, 1996.
Ogata, Katsuhiko, Modern Control Engineering, Englewood Cliffs, NJ, Prentice Hall, 1990.
Ogata, Katsuhiko, Designing Linear Control Systems with MATLAB, Englewood Cliffs, NJ, Prentice Hall, 1993, pp. 50-67.
Shahian, Bahram, and Hassul, Michael, Control System Design Using MATLAB, Englewood Cliffs, NJ, Prentice Hall, 1993.
Scheinerman, Edward C, Invitation to Dynamical Systems, Upper Saddle River, NJ, Prentice Hall, 1996, p. 134.
Vidyasagar, M., Nonlinear Systems Analysis, 2nd ed., Englewood Cliffs, NJ, Prentice Hall, 1993.
