Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

В режиме прямых вычислений



Решение нелинейных систем уравнений, как правило, выполняется численными методами. B среде MatLAB для этих целей предлагается более двух десятков различных функций, которые содержатся в подкаталоге "optim". Они условно разделяются на шесть основных групп:

· функции для поиска минимума в условиях ограничений (fminbnd, fmin-con, fminsearch, fminunc, fsemirif);

· вычислительные процедуры для решения минимаксных задач (fminitnax, fgoalattain);

· функции для решения задач методом наименьших квадратов (lsqlin, lsqnonneg);

· вычислительные процедуры, базирующиеся на нелинейном методе наименьших квадратов (lsqcurvefit, lsqnonlin);

· функции для нахождения нулей нелинейных уравнений tfzero, fsolve);

· вычислительные процедуры для решения задач линейного и квадратич­ного программирования (linprog, quadprog).

Практическое использование каждой функции для решения задач высокой размерности требует соблюдения определенных условий и со­ставления вспомогательного файла, к которому совершаются обращения из основного файла в процессе вычислений. Вспомогательный файл принято называть файл-функцией.

C помощью приведенных выше функций может решаться большой класс задач оценивания параметров моделей объектов и систем управления по экспериментальным данным. Расчеты могут выполняться без составления скрипт-файлов и файлов-функций, т.е. производиться в режиме пря­мых вычислений.

Остановимся на случае статики (одношаговом процессе). Предполо­жим, что нелинейная модель измерителя можно представить уравнением

(1.64)

где – уi - i - oeизмерение,

x - (n Ч 1) - вектор параметров,

h(x) - нелинейная скалярная функция, соответствующая i - му измерению состояния,

vi - ошибка измерения с нулевым средним и дисперсией .

Имея в наличии т измерений и n переменных состояния и переопре­деленную систему (m > n), мы можем для оптимальной оценки предложить метод наименьших квадратов со взвешиванием измерений. Заметим, что в общем случае, когда необходимо оценивать x в условиях ограничений, процедура оценки может быть сформулирована в терминах задачи матема­тического программирования.

Введем критерий качества

и предположим, что выбор x необходимо произвести при соблюдении ог­раничений в форме равенств и неравенств

(1.65)

которые отвечают технологическим условиям работы судовых систем управления. Тогда оценка состояния может быть выполнена в результате решения следующей задачи математического программирования:

минимизировать (1.66)

при ограничениях (1.65).

Поиск оптимального решения (1.66) при соответствующих ограничениях - непростая техническая задача, относящаяся к среднеквадратич­ным проблемам с нелинейными ограничениями и решаемая обычно только численными методами [42]. B отличие от полиномиальных функций, решение для которых может быть найдено не всегда даже численными методами, квадратичные формы обладают свойствами унимодальности. Поэтому в классе решаемых задач оценивания мы можем найти единственное x, отве­чающее условиям минимума.

Для получения оптимальной оценки вектора состояния мы рекомен­дуем использовать функцию "lqcurvefit" содержащуюся в пакете MatLAB. He останавливаясь на ее описании, приведем последовательность опера­ций, необходимых для использования "lsqcurvefit". Рассмотрим следующий пример. Допустим, что

(1.67)

где bet - вектор, представляющий угол (в радианах) и соответствующий вектору alf = [0 30 60 90 120 150].

C помощью формулы (1.67) рассчитаем f(bet), которые образуют вектop y размерности (1Ч6). Будем полагать, что в формуле (1.64) ошибкой из­мерения можно пренебречь, т.е. измерения практически совпадают с элемен­тами y, определенными по формуле (1.64). Задача состоит в получении наи­лучшей оценки амплитуды гармонического сигнала y(alf) и его аргумента по вектору измерений. Приведем ее решение в режиме прямых вычислений:

>> alf=0:30:150;

>> bet=alf.*(pi/180);

>> y=5*sin(bet+28*(pi/180));

>> xdata=bet; ydata=y;

>> fun=inline('x(l)*sin((xdata)+x(2))','x','xdata');

>> x=lsqcurvefit(fun,[2 O.3],xdata,ydata)

Optimization terminated successfully:

Relative function value changing by less than OPTIONS. TolFun

x=5.000 0.4887

>> Xalf=x(2)*180/pi

Xalf=28.000

>>

B качестве комментария к полученному решению следует отметить, что мы использовали для формирования функции "fun" объект класса "inline". Объекты этого класса - функции, заданные в символьном виде, что позволяет обращаться к ним как к математическим объектам. Каталог класса "inline" можно отнести к объектно-ориентированному программи­рованию. Аргумент приведенной функции здесь определяется автоматиче­ски, путем поиска в составе выражения одноместных символов. B нашей задаче в качестве аргумента функции используется символ 'x', состоящий из элементов х (l) и x (2).





Дата публикования: 2014-11-03; Прочитано: 305 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...