Методические указания к курсовой работе для студентов специальности «Управление и информатика в технических системах»

СОДЕРЖАНИЕ: Реализация алгоритмов решения задач при проектировании сау с использованием объектно-ориентированного языка программирования C++

Московский государственный университет путей сообщения (МИИТ)

Кафедра «Управление и информатика в технических системах»

В.Г. Сидоренко

Реализация алгоритмов решения задач при проектировании САУ с использованием объектно-ориентированного языка программирования C ++

Рекомендовано редакционно-издательским советом университета в качестве методических указаний

для студентов специальности

«УПРАВЛЕНИЕ И ИНФОРМАТИКА В ТЕХНИЧЕСКИХ СИСТЕМАХ»

Москва - 2008


Московский государственный университет путей сообщения (МИИТ)

Кафедра «Управление и информатика в технических системах»

В.Г. Сидоренко

Реализация алгоритмов решения задач при проектировании САУ с использованием объектно-ориентированного языка программирования C ++

Методические указания к курсовой работе

для студентов специальности

«Управление и информатика в технических системах»

Москва - 2008

УДК 378:656.2:681.3

C-34

Сидоренко В.Г. Методические указания к курсовой работе «Реализация алгоритмов решения задач при проектировании САУ с использованием объектно-ориентированного языка программирования C++» для студентов специальности «Управление и информатика в технических системах». – М.: МИИТ. 2008. – 38 с.

В методических указаниях излагаются задания, структура и основные этапы выполнения курсовой работы по дисциплинам «Алгоритмы решения задач при проектировании САУ» и «Вычислительные алгоритмы при исследовании систем управления» для специальности 210100 «Управление и информатика в технических системах».

© Московский государственный

университет путей сообщения

(МИИТ), 2008


Введение

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

1 ЦЕЛЬ КУРСОВОЙ РАБОТЫ

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

2 Методы одномерной оптимизации

Постановка задачи:

Задана непрерывная унимодальная целевая функция , определенная в интервале . Найти минимальное значение целевой функции.

Рассмотрим следующие методы одномерной оптимизации [1, 3, 6-9, 14]:

– метод равномерного поиска или перебора;

– половинного деления;

– поразрядного поиска;

– золотого сечения;

– Фибоначчи;

– метод средней точки;

– метод Ньютона.

Два последних из перечисленных методов являются методами первого порядка. Их преимущество состоит в том, что они не требуют проведения трудоемких и объемных вычислений. Недостатком является требование задания целевой функции в аналитическом виде, унимодальности целевой функции в заданном интервале изменения переменной, дифференцируемости целевой функции.

2.1 Метод равномерного поиска

1. Задать допустимую погрешность вычислений точки экстремума .

2. Определить число итераций (циклов вычисления):

.

3. Вычислить значения независимой переменной в пробных точках:

.

4. Найти значения целевой функции в пробных точках .

5. Определить минимальное значение целевой функции путем сравнения значений функции в пробных точках

Метод равномерного поиска требует выполнения большого числа вычислений.

2.2 Метод дихотомии (половинного деления)

1. Задать численные значения и , где – достаточно малое число, характеризующее отступление от точки половины интервала и составляющее 5%-10% от его величины.

2. Определить значения пробных точек и по формулам:

, .

3. Вычислить значения и .

4. Сравнить и . Если , то необходимо перейти к интервалу , положив ; иначе перейти к интервалу , положив .

5. Определить полученную (достигнутую) погрешность по формуле:

,

где – число итераций.

6. Если , то перейти к следующей итерации вернувшись к п. 2. Если , то завершить поиск и перейти к п.7.

7. Положить

, .

2.3 Метод поразрядного поиска

1. Задать допустимую погрешность определения точки экстремума .

2. Выбрать начальный шаг:

.

3. Положить начальную пробную точку , вычислить значение функции .

4. Положить следующую пробную точку и вычислить .

5. Сравнить и .

6. Если , то перейти к п.7 иначе к п.8.

7. Положить и , проверить условие , если это условие выполняется, то перейти к п.4, иначе к п.8.

8. Проверка окончания поиска: если , то решение найдено, , а , иначе – переход к п.9.

9. Изменить направление и шаг поиска положив ; ; и перейти к п.4.

2.4 Метод Фибоначчи

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

1. Задать .

2. Найти n – количество вычислений функции из следующих соображений:

,

где n –й член последовательности чисел Фибоначчи, определенной следующим образом:

.

3. Положить число итераций .

4. Определить значения пробных точек и по формулам:

, .

5. Вычислить значения и .

6. Установить, какое соотношение существует между и , и по нему определить направление перемещение границы:

если , то необходимо перейти к интервалу , положив ; иначе перейти к интервалу , положив .

7. Если , т.е. , то осуществляется переход к п.8, иначе – к п. 9.

8. Положить число итераций . Перейти к п. 4.

9. Процесс заканчивается, , .

3.5 Метод золотого сечения

Метод «золотого сечения» почти столь же эффективен, как и метод Фибоначчи, однако при этом не требуется знать n - количество вычислений функции, определяемое вначале. Название «золотое сечение» определяется тем, что заданный отрезок делится на две части так, что отношение целого к большей части равно отношению большей части к меньшей. Метод гарантирует нахождение минимума в самых неблагоприятных условиях, однако он обладает медленной сходимостью. Алгоритм вычислений по методу золотого сечения следующий.

1.Задать .

2.Выбрать две внутренние точки и , отстоящие от границ интервала на величину , где , т. е.

;

3.Вычислить значения и .

4.Установить, какое соотношение существует между и , и по нему определить направление перемещение границы:

если , то необходимо перейти к интервалу , положив ; иначе перейти к интервалу , положив .

5.Определить величину .

6.Если , то осуществляется переход к п.2, иначе – к п. 7.

7.Процесс заканчивается, за минимальное значение функции принимается наименьшее из и .

2.6 Метод средней точки

(с использованием первой производной

оптимизируемой функции)

1.Задать значение погрешности нахождения точки минимума функции .

2.Взять пробную точку, равную ; вычислить .

3.Осуществить проверку на окончание поиска. Если , то поиск прекратить, полагая , и завершить решение задачи, найдя минимум целевой функции в этой точке, иначе перейти к п. 4.

4.Сравнить с нулем. Если , то продолжить поиск в интервале , положив при этом , иначе принять интервал и перейти к п.2.

2.7 Метод Ньютона

(с использованием второй производной

оптимизируемой функции)

Данный метод применяется, если функция имеет первую и вторую производную, причем вторая производная функции в заданном диапазоне больше нуля.

Алгоритм вычислений по методу Ньютона следующий:

1. Задать погрешность определения точки минимума .

2. В качестве первой пробной точки взять .

3. Осуществить проверку на окончание поиска. Если , то перейти к п. 5, иначе – к п. 4.

4. Определить новую пробную точку: ; перейти к п. 3.

5. Принять последнюю пробную точку за точку минимума и вычислить минимум целевой функции в этой точке.

3 Методы многомерной оптимизации

3.1 Метод многомерной оптимизации Гаусса – Зейделя (метод покоординатного спуска)

1. Задать погрешность определения местоположения точки минимума (величина определяется содержанием решаемой задачи).

2. Принять одну из переменных () за переменную, по которой будет осуществляться минимизация. При этом всем другим переменным на первом шаге оптимизации присвоить некоторые фиксированные
значения (фиксированные значения переменных обычно заданы в виде начальной пробной точки), на последующих шагах другим переменным присвоить значения, найденные в процессе решения задачи (значения, полученные на предыдущих шагах). После присвоения переменным константных значений минимизируемая функция превратится в функцию одной переменной:

.

3. Задаться с некоторым шагом (величина шага обычно берется в интервале значениями пробных точек переменной , и по значениям минимизируемой функции в этих точках определить направление изменения значений , обеспечивающее убывание функции. Значение , при котором функция имеет минимальное значение, принять за опорную точку, в окрестностях которой будет осуществляться дальнейший поиск. Если не существует такого направления перейти к п. 2, если ни по одной из переменных нет такого направления, закончить поиск, перейдя к п. 5.

4. С заданной величиной погрешности в окрестностях найденной по п. 3 опорной точки менять значения переменной до тех пор, пока происходит убывание минимизируемой функции. Значение, обеспечивающее наименьшее значение функции, принять за фиксированное значение переменной и перейти к п. 2. После нахождения фиксированных значений всех переменных попробовать улучшить решение, выполняя заново п.п. 2-4. Если улучшить решение невозможно, то перейти к пункту 5.

5. За точку минимума принять точку, имеющую последние фиксированные значения всех переменных, минимум функции найдется как ее значение в этой точке.

3.2 Метод Хука – Дживса

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

Описание этой процедуры представлено ниже:

1.Задать погрешность определения местоположения точки минимума (величина определяется содержанием решаемой задачи).

2.Задать значение базисной точки .

3.Задать величину начального шага для каждой переменной .

4.Вычислить в базисной точки .

5.Каждая переменная по очереди изменяется прибавлением длины шага .

Таким образом, мы вычисляем значение функции , где – единичный вектор в направлении оси . Если это приводит к уменьшению значения функции, то заменяется на . В противном случае вычисляется значение функции , и если ее значение уменьшилось, то заменяем на . Если ни один из проделанных шагов не приводит к уменьшению значения функции, то точка остается неизменной и рассматриваются изменения в направлении оси , т.е. находится значение функции и т.д. Когда будут рассмотрены все n переменные, мы будем иметь новую базисную точку .

6.Если , т.е. уменьшение функции не было достигнуто, то исследование повторяется вокруг той же базисной точки , но с уменьшенной длиной шага. На практике удовлетворительным является уменьшение шага (шагов) в десять раз от начальной длины.

7.Если , то производится поиск по образцу. При этом используется информация, полученная в процессе исследования, и минимизация функции завершается поиском в направлении, заданном образцом. Эта процедура производится следующим образом:

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

.

В общем случае

.

8.Затем исследование следует продолжать вокруг точки , как описано в п. 5.

9.Если наименьшее значение в п.8 меньше значения в базисной точке (в общем случае ), то получают новую базисную точку (), после чего следует перейти к п. 7. В противном случае не производить поиск по образцу из точки () а продолжить исследования в точке () – переход к п.5.

10. Завершить этот процесс, когда длина шага (длины шагов) будет уменьшена до заданного малого значения.

3.3 Метод полного перебора (метод сеток)

Многомерные задачи, естественно, являются более сложными и трудоемкими, чем одномерные, причем обычно трудности при их решении возрастают при увеличении размерности. Для того чтобы вы лучше почувствовали это, возьмем самый простой по своей идее приближенный метод поиска наименьшего значения функции. Покроем рассматриваемую область сеткой G с шагом h и определим значения функции в ее узлах. Сравнивая полученные числа между собой, найдем среди них наименьшее и примем его приближенно за наименьшее значение функции для всей области.

3.4 Градиентный метод.

1. Задать значение погрешности вычисления экстремума функции .

2. Задать значение начальной пробной точки .

3. Задать величину начального шага

4. Вычислить значения частных производных функции в пробной точке:

5. Проверить условие достижения заданной точности:

Если это условие выполняется по всем переменным, то поиск завершается и за точку минимума принимается точка , для которой подсчитывается минимальное значение функции, иначе перейти к п.6.

6. Определить значение координат новой пробной точки по формуле:

7. Вычислить значение функции в последней пробной точке , проверить условие . Если соотношение выполняется, то за очередную пробную точку взять и перейти к п.4, иначе пробная точка остается прежней и перейти к п.8.

8. Положить и перейти к п. 6.

3.5 Метод наискорейшего спуска многомерной функции

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

1. Задать значение погрешности определения местоположения минимума функции .

2. Задать значение начальной пробной точки .

3. Вычислить значение частных производных функции в рассматриваемой пробной точке:

4. Проверить условие достижения заданной точности:

5. Если это условие выполняется по всем переменным, то переход к п. 8, иначе перейти к п. 6.

6. Определить наилучшие значения шага по каждой координате. Определение значения шага осуществляется по следующим формулам:

.

Из этих формул находится .

Если , то .

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

7. Вычислить значение каждой координаты новой пробной точки:

.

Переход к п. 3.

8. За точку минимума принимается точка .

Вследствие конечности шагов поиска градиентные методы также, как и ме­тоды покоординатного поиска, могут привести к ложному оптимуму, особенно при наличии «оврагов» и «гребней».

3.6 Метод Ньютона

Метод Ньютона использует квадратичную аппроксимацию функции с помощью ряда Тейлора, ограниченного членами со вторыми про­изводными:

.

где – градиент второго порядка, представляющий квадратичную матрицу Гессе типа:

Оптимизируя по , можно показать, что максимальное приращение целевой функции для задачи миними­зации достигается при

т. е. и направление, и значения шага определяются одновременно.

Для квадратичных функций достаточно сделать один такой шаг, чтобы най­ти оптимум.

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

3.7 Метод сопряженных направлений

К другому классу методов, улучшающих градиентный поиск, относятся методы сопряженных направлений. При определении направления поиска на k -м шаге они учитывают предыдущее направление, т. е.:

,

где

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


3.8 Методы случайных направлений

Эти методы позволяют выбрать направле­ния поиска случайным образом с помощью программ выработки случайных чисел. Простейшие из них возникли при включении элементов случайности в детерминированные методы направленного поиска. Например, при покоординат­ном поиске последовательность варьируемых переменных может устанавливать­ся случайно. Или в градиентных методах градиент можно опре­делять по выражению:

,

где – единичные векторы случайных направлений, а – соответствующие приращения целевой функции.

Статистический градиент определяется проще по сравнению с точным – при заданном l не зависит от числа переменных, но в то же время мо­жет служить лишь математическим ожиданием градиента, вычисленным с вероятностью, зависящей от l .

Более развитые случайные методы полностью исключают определенность при выборе направлений поиска. Если принять, что

,

где – первый случайный вектор, определенный в точке , и обеспечивающий улучшение , то можно построить многошаговый процесс поиска, сходящийся к локальному оптимуму. В каждой точке перебираются случайные направления до тех пор, пока не будет найден . В более общем случае можно рассматривать несколько удачных случайных направлений и выбирать то, которое доставляет наибольшее приращение . Для преодоления «оврагов» и «хребтов» можно учитывать предыдущие направления поиска, т. е. принимать:

.

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

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

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

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

На основе рассмотренных способов выбора случайных направлений построен ряд эффективных алгоритмов поиска.

3.9 Метод Нелдера – Мида

Метод Нелдера — Мида (называется также поиском по деформируемому многограннику) является развитием симплексного метода Спендли, Хекста и Химсворта. Эта конфигурация рассматривается в методе Спендли, Хекста и Химсворта. Идея метода состоит в сравнении значений функции в вершинах симплекса и перемещении симплекса в направлении оптимальной точки с помощью итерационной процедуры. В симплексном методе, предложенном первоначально, регулярный симплекс использовался на каждом этапе. Нелдер и Мид предложили несколько модификаций этого метода, допускающих, чтобы симплексы были неправильными. В результате получился очень надежный метод прямого поиска, являющийся одним из самых эффективных, если .

В методе Спендли, Хекста и Химсворта симплекс перемещается с помощью трех основных операций: отражения, растяжения и сжатия. Смысл этих операций станет понятным при рассмотрении шагов процедуры.

1. Найдем значения функции , , ..., в вершинах симплекса.

2. Найдем наибольшее значение функции , следующее за наибольшим значением функции , наименьшее значение функции и соответствующие им точки , , .

3. Найдем центр тяжести всех точек, за исключением точки :

.

и вычислим .

4. Удобнее всего начать перемещение от точки . Отразив точку относительно точки , получим точку и найдем . Если – коэффициент отражения, то положение точки определяется следующим образом:

,

т.е.

,

.

5. Сравним значения функций и .

Если , то мы получили наименьшее значение функции. Направление из точки в точку наиболее удобно для перемещения. Таким образом, мы производим растяжение в этом направлении и находим точку и значение функции .

Коэффициент растяжения можно найти из следующих соотношений:

,

т.е.

,

.

6. Если , то заменяем точку на точку и проверяем -ю точку симплекса на сходимость к минимуму (см. п. 2). Если сходимость достигнута, то процесс останавливается; в противном случае возвращаемся к п. 2.

7. Если , то отбрасываем точку . Очевидно, мы переместились слишком далеко от точки к точке . Поэтому следует заменить точку на точку , в которой было получено улучшение (шаг 5), проверить сходимость и, если она не достигнута, вернуться к п. 2.

8. Если , но , то является лучшей точкой по сравнению с другими двумя точками симплекса и мы заменяем точку на точку и, если сходимость не достигнута, возвращаемся к п. 2.

9. Если и , перейдем к п.10.

10. Сравним значения функции и .

Если , то переходим непосредственно к шагу сжатия в п. 11.

Если , то заменяем точку на точку и значение функции на значение функции . Запоминаем значение из п 8. Затем переходим к п. 11.

11. В этом случае , поэтому ясно, что мы переместились слишком далеко от точки к точке . Попытаемся исправить это, найдя точку (а затем ) с помощью шага сжатия. Если , то сразу переходим к шагу сжатия и находим точку из соотношения:

,

где – коэффициент сжатия.

Тогда

.

Если , то сначала заменим точку на точку , а затем произведем сжатие. Тогда точку найдем из соотношения

,

т.е.

.

12. Сравним значения функции и .

Если , то заменяем точку на точку и если сходимость не достигнута, то возвращаемся к п.2.

Если , то очевидно, что все наши попытки найти значение меньшее закончились неудачей, поэтому мы переходим к п. 13.

13. На этом шаге мы уменьшаем размерность симплекса делением пополам расстояния от каждой точки симплекса до – точки, определяющей наименьшее значение функции.

Таким образом, точка заменяется на точку , т.е. заменяем точку точкой .

Затем вычисляем для , проверяем сходимость и, если она не достигнута, возвращаемся к п. 3.

14. Проверка сходимости основана на том, чтобы стандартное отклонение -го значения функции было меньше некоторого заданного малого значения . В этом случае вычисляется:

,

где .

Если , то все значения функции очень близки друг к другу, и поэтому они, возможно, лежат вблизи точки минимума функции . Исходя из этого, такой критерий сходимости является разумным, хотя Бокс, Дэвис и Свенн предлагают то, что они считают более безопасной проверкой.

Коэффициенты в приведенной процедуре являются соответственно коэффициентами отражения, сжатия и растяжения. Нелдер и Мид рекомендуют брать . Рекомендация основана на результатах экспериментов с различными комбинациями значений. Эти значения параметров позволяют методу быть эффективным, но работать в различных сложных ситуациях.

Начальный симплекс выбирается на наше усмотрение. В данном случае точка является начальной точкой, затем формируются точки:

,

,

…,

.

где – произвольная длина шага, a – единичный вектор.

4 ЗАДАНИЯ К КУРСОВОЙ РАБОТЕ

I. Создать программную реализацию процедуры вывода на экран координатной плоскости с возможностью выбора пользователем обозначения откладываемых величин, минимального и максимального отображаемых значений (они могут быть одного знака), а также шага оцифровки по каждой из осей.

II. Организовать дружественный для пользователя интерфейс ввода исходных данных и выбора процедуры исследования функций.

III. Организовать проверку корректности ввода числовых данных с клавиатуры.

IV. Создать программную реализацию следующих процедур исследования функции одной переменной:

1. Отображение графика исследуемой функции при заданных пользователем параметрах.

2. Изменение отображения графика исследуемой функции заданным образом в соответствии с командами, задаваемыми с клавиатуры. При нажатии на клавиатуре одной из заданных клавиш исследуемый параметр увеличивается на величину заданного шага, а при нажатии на клавиатуре другой – уменьшается на величину заданного шага.

3. Поиск экстремума функции заданным методом оптимизации на заданном пользователем интервале изменения независимой переменной. Отображение на экране процесса приближения к экстремуму. Подсчет количества шагов в процессе оптимизации.

4. Организация вывода на экран и печати в табличном виде, сохранения в файл и чтения из него определенных номером варианта данных. Организация выбора имени файла при сохранении и чтении данных. Проверка правильности задания имени файла.

V. Исследование функции двух переменных.

1. Отображение исследуемой функции при заданных пользователем параметрах на плоскости заданным способом. Линии уровня или характеристики должны отображаться разными цветами.

2. Поиск экстремума функции заданным методом оптимизации на заданных пользователем интервалах изменения независимых переменных. Отображение на экране процесса приближения к экстремуму. Подсчет количества шагов в процессе оптимизации.

VI. Описать функционирование устройства, описываемого заданной функцией, использованные методы оптимизации, провести их сравнение с другими.

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

1.Создание приложения заданного типа с диалоговым окном и набором элементов управления в соответствии с заданием на курсовую работу для ввода данных, выбора типа решаемой задачи и ее решения.

2.Решение задачи на поиск условного экстремума в задаче линейного программирования.

3.Выбор начального приближения при решении задач поиска экстремума путем нажатия на левую кнопку манипулятора типа «мышь» на точке графика функции.

4.Изменение размера окна.

5.Набор функции из заданных элементов для функции нескольких переменных.

6.Создание электронной таблицы с данными.

7.Организация вывода на печать из приложения графического изображения.

8.Создание сетевого приложения. С автоматизированного рабочего места (АРМ) преподавателя передается задача. Студент решает ее вручную и передает ответ преподавателю, тот – студенту оценку.

9.Создание элементов ActiveX или процедур в составе DLL на основе разработанного в п.п.I-VII программного обеспечения и организация их вызова из другой программы.

VIII. Оформить курсовую работу в соответствии с требованиями, сформулированными в [2]. Курсовая работа должна включать в себя:

– таблицы соответствия входных, выходных, справочных, промежуточных переменных;

№№

п/п

Наименование в тексте задания, алгоритме или математическом методе

Наиме-нование в програм-ме

Тип

пере-мен-ной

Тип данных

(входных, вы-ходных, спра-вочных, про-межуточных)

– описание математических методов решения задач;

– схемы алгоритмов и их описание;

– текст созданных программ в приложении к курсовой работе;

– тестовый пример;

– результат программного решения тестового примера.

IX. Программное обеспечение должно быть разработано на объектно-ориентированном языке программирования С++ [4, 5, 10-13]. Каждая из созданных программ должна быть представлена в виде исполняемого файла (*.exe ).

При выполнении п.IV задания к курсовой работе по номеру варианта определяются:

– исследуемая функция;

– изменяемый параметр;

– шаг изменения параметра;

– способ изменения изображения;

– клавиши, нажатие на которые отслеживается

– метод поиска экстремума;

– данные, записываемые в файл.

Варианты исследуемых функций.

1. Квадратичная парабола

,

где – коэффициенты.

2. Характеристика «вход-выход» магнитного усилителя (МУ) – зависимость тока в рабочей обмотке от тока в обмотке управления :

,

где – коэффициент.

3. ,

где – коэффициенты.

4. Зависимость момента, развиваемого трехфазным асинхронным двигателем , от коэффициента скольжения (тип экстремума - максимум):

где – максимальный момент, развиваемый двигателем, ;

– критическое скольжение.

5. Зависимость ускорения нагрузки от передаточного числа редуктора (тип экстремума – максимум):

где – момент инерции двигателя, ;

– момент инерции нагрузки, ;

– момент, развиваемый двигателем, ;

– момент сопротивления нагрузки, ;

– к.п.д., .

6. Зависимость мощности , отдаваемой любым реальным источником питания, от сопротивления нагрузки (тип экстремума - максимум):

,

где – э.д.с.;

– внутренне сопротивление источника.

7. Функциональная зависимость вращающегося трансформатора от угла поворота ротора :

,

где – э.д.с. синусной обмотки;

– коэффициент трансформации вращающегося трансформатора;

– э.д.с. взаимоиндукции обмотки возбуждения (60-115 В).

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

,

где – коэффициент, зависящий от параметров вращающегося трансформатора и нагрузки ().

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

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

11. Зависимость к.п.д. трансформатора от коэффициента нагрузки :

,

где – полная номинальная мощность трансформатора;

– потери в магнитопроводе на вихревые токи и гистерезис;

– электрические потери в номинальном режиме;

– сдвиг по фазе между напряжением и током во вторичной обмотке.

Варианты способов изменения изображения на экране компьютера при вводе команды на изменение параметра:

1. стирается отображенный график функции и отображается график исследуемой функции, построенный для нового значения изменяемого параметра; отображение ведется одним цветом;

2. отображается график исследуемой функции, построенный для нового значения изменяемого параметра, график функции, построенный для предыдущих значений параметров, стирается при смене направления изменения параметра, если он был построен ранее;

3. отображается график исследуемой функции, построенный для нового значения изменяемого параметра; каждый новый график отображается другим цветом;

4. отображается график исследуемой функции, построенный для нового значения изменяемого параметра; каждый новый график отображается линией другого типа (сплошной, пунктирной, точечной и т.д.);

5. стирается отображенный график функции и отображается график исследуемой функции, построенный для нового значения изменяемого параметра; с возрастанием модуля параметра толщина линий возрастает.

Варианты данных, записываемых в файл.

1. Значения функции при изменении независимой переменной с заданным шагом при выбранном пользователем значении параметра.

2. Значения функции при изменении параметра с заданным шагом при выбранном пользователем значении независимой переменной.

3. Значения функции в точках пересечения с осями координат при изменении параметра с заданным шагом.

4. Значения аргумента и функции в точке экстремума при изменении параметра с заданным шагом.

При выполнении п. V задания к курсовой работе по номеру варианта определяются:

– исследуемая функция;

– способ отображения функции на плоскости;

– метод поиска экстремума.

Варианты исследуемых функций.

1. Эллиптический параболоид:

,

где – коэффициенты.

2.Зависимость амплитуды силы тока от значений емкости и индуктивности в цепи переменного электрического тока при последовательном соединении активного сопротивления , емкости , индуктивности и заданной частоте переменного тока :

.

3. Зависимость амплитуды напряжения на индуктивности от значений емкости и индуктивности в цепи переменного электрического тока при последовательном соединении активного сопротивления, емкости, индуктивности и заданной частоте переменного тока:

.

4. Зависимость амплитуды напряжения на емкости от значений емкости и индуктивности в цепи переменного электрического тока при последовательном соединении активного сопротивления, емкости, индуктивности и заданной частоте переменного тока:

.

5. Зависимость амплитуды напряжения на активном сопротивлении от значений емкости и индуктивности в цепи переменного электрического тока при последовательном соединении активного сопротивления, емкости, индуктивности и заданной частоте переменного тока:

6.Функция Розенброка

,

где – коэффициенты.

7.Функция Пауэлла

.

8.Двумерная экспоненциальная функция

,

где – коэффициент.


СПИСОК ЛИТЕРАТУРЫ

1. Аветисян Дж. А. И др. Оптимальное проектирование электрических машин на ЭВМ. – М.: Энергия, 1976. – 208 с.

2. Баранов Л.А., Максимов В.М. Методические указания к дипломному проектированию. – М.: МИИТ, 2005. – 36 с.

3. Волков Е. А. Численные методы. Учебное пособие. – М.: Наука, 1982.

4. Грегори К. Использование Visual C ++ 6. – М.; СПб.; К.: Издательский дом «Вильямс», 2000. – 864 с.

5. Дейтел Х., Дейтел П. Как программировать на С++. – М.: ЗАО «Издательство БИНОМ», 1999. – 1024с.

6. Калиткин Н. Н. Численные методы. – М.: Наука, 1978.

7. Коршунов Ю.М. Математические основы кибернетики. – М.: Энергия, 1980.

8. Моисеев Н.Н., Иванилов Ю.П., Столярова Е.М. Методы оптимизации. – М.: НАУКА, 1978.

9. Норенков И.П., Маничев В.Б. Системы автоматизированного проектирования электронной и вычислительной аппаратуры. – М.: Высшая школа, 1983.

10.Павловская Т.А. C/C ++. Программирование на языке высокого уровня. Учебник для ВУЗов. – Питер, 2006.

11.Павловская Т.А. C ++. Объектно-ориентированное программирование. Практикум. – Питер, 2005.

12.Страуструп Б. Язык программирования C ++. Специальное издание. – Бином, 2001. 1099с.

13.Шлее М. Qt . Профессиональное программирование на С ++. – BHV-СПб, 2005. 544с.

14. http://www.intuit.ru/department/mathematics/mathprog.


Приложение 1. Набор символов ASCII

0

1

2

3

4

5

6

7

8

9

0

nul

soh

stx

etx

eot

enq

ack

bel

bs

ht

1

nl

vt

ff

cr

so

si

dle

dc1

dc2

dc3

2

dc4

nak

syn

etb

can

em

sub

esc

fs

gs

3

rs

us

sp

!

#

$

%

4

(

)

*

+

,

.

/

0

1

5

2

3

4

5

6

7

8

9

:

;

6

=

?

@

A

В

C

D

E

7

F

G

H

I

J

К

L

M

N

O

8

P

Q

R

S

T

U

V

W

X

Y

9

Z

[

\

]

^

_

a

b

C

10

d

e

f

g

h

i

j

k

l

M

11

n

o

p

q

r

s

t

u

v

W

12

x

y

z

{

|

}

-

del

Цифры слева от таблицы являются первыми цифрами десятичного эквивалента кода символа (0-127), а цифры вверху таблицы представляют собой последнюю цифру кода символа. Например, код символа F равен 70, а код символа - 38.


СОДЕРЖАНИЕ

Введение

3

1. Цель работы

4

2. Методы одномерной оптимизации.

4

3. Методы многомерной оптимизации.

10

4. Задание к курсовой работе

26

Список литературы

36

Приложение 1. Набор символов ASCII

37

Учебно-методическое издание

Сидоренко Валентина Геннадьевна

Методические указания к курсовой работе «Реализация алгоритмов решения задач при проектировании САУ с использованием объектно-ориентированного языка программирования C++» для студентов специальности «Управление и информатика в технических системах»

Подписано в печать

Усл. печ. л.

Формат 60х84/16

Заказ

Тираж 100 экз.

Изд. №

Цена

127994, Москва, ул. Образцова, 15

Типография МИИТа

Скачать архив с текстом документа