Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 8.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.28 Mб
Скачать

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 включает функции и операторы для решения задач условной и безусловной оптимизации. Обмен данными с ППП Opti­mization 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 предполагает:

  1. Инициализацию параметров системы Simulink, определяемых значениями эле­ ментов вектора х (входные аргументы, передаваемые fun функцией оптимиза­ ции).

  2. Выполнение процесса моделирования с помощью функции s im, присваивая значения массивов состояний, входных и выходных данных заданным перемен­ ным, размещенным в рабочей области.

  3. Выполнение функции и возвращение выходного аргумента 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. Можно выделить:

  1. ППП анализа и синтеза систем управления: Control System Toolbox (Системы управления), Linear Matrix Inequality Control Toolbox (Синтез систем управле­ ния на основе матричных неравенств), Nonlinear Control Design (Проектирова­ ние нелинейных систем).

  2. ППП идентификации систем управления: System Identification Toolbox (Иденти­ фикация параметров), Frequency Domain System Identification Toolbox (Иденти­ фикация в частотной области).

  3. Математические ППП: Fuzzy Logic (Нечеткая логика), Neural Network Toolbox (Нейронные сети).

  4. Пакеты моделирования с использованием системы 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. Литература

  1. Optimization Toolbox User's Guide, Version 2, Natick, MA, The Math Works, Inc., 2000.

  2. Khalil, Hassan K., Nonlinear Systems, 2nd ed., Upper Saddle River, NJ, Prentice Hall, 1996.

  3. Ogata, Katsuhiko, Modern Control Engineering, Englewood Cliffs, NJ, Prentice Hall, 1990.

  4. Ogata, Katsuhiko, Designing Linear Control Systems with MATLAB, Englewood Cliffs, NJ, Prentice Hall, 1993, pp. 50-67.

  5. Shahian, Bahram, and Hassul, Michael, Control System Design Using MATLAB, Englewood Cliffs, NJ, Prentice Hall, 1993.

  6. Scheinerman, Edward C, Invitation to Dynamical Systems, Upper Saddle River, NJ, Prentice Hall, 1996, p. 134.

  7. Vidyasagar, M., Nonlinear Systems Analysis, 2nd ed., Englewood Cliffs, NJ, Prentice Hall, 1993.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]