Главная » Просмотр файлов » Шестаков В.С. Оптимизация параметров горных машин. Учебное пособие

Шестаков В.С. Оптимизация параметров горных машин. Учебное пособие (811777), страница 10

Файл №811777 Шестаков В.С. Оптимизация параметров горных машин. Учебное пособие (Шестаков В.С. Оптимизация параметров горных машин. Учебное пособие) 10 страницаШестаков В.С. Оптимизация параметров горных машин. Учебное пособие (811777) страница 102020-09-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

Существенным упрощением программы можно добиться включением диалогового режима в процесс оптимизации. Такойподход используется при создании систем управления для выводарабочего процесса, например работы бурового станка, на оптимальный режим. Переменными оптимизации будут осевое усилие нарабочем инструменте и скорость его вращения, а целевой функцией– скорость проходки. Один из возможных вариантов реализациидиалогового режима с помощью формы управления показан на рис.2.15.Рис. 2.15. Вид листа Excel при использовании диалога для оптимизацииПрограмма оптимизации по симплексу для двух переменных будет иметь вид:Option ExplicitConst N = 2Dim iv, A0, A1, A2Dim XH(20) As Single, Xmin(20) As Single, Xmax(20) As Single,Dim dX(20) As Single, Xo(20) As Single, Yo As SingleDim Nc, Nvc, Nvv, NvDim Xo1(100, 3), Xo2(100, 3), Yv(100, 3)51Sub Оптимизация_по_симплексу()‘Основная процедураiv = 14' Первая строка для вывода в таблицу результатовF_upr.B_stop = TrueВвод_симплекс‘Ввод исходных данныхCall Опт_симплекс(2, XH, Xmin, Xmax, dX, Xo, Yo)End SubSub Ввод_симплекс ()‘Ввод исходных данныхWith Worksheets("Симпл")A0 = .Range("G4"): A1 = .Range("G5"): A2 = .Range("G6")Xmin(1) = .Range("F8"): Xmin(2) = .Range("G8")Xmax(1) = .Range("F9"): Xmax(2) = .Range("G9")XH(1) = .Range("F10"): XH(2) = .Range("G10")dX(1) = (Xmax(1) - Xmin(1)) * .Range("F11")dX(2) = (Xmax(2) - Xmin(2)) * .Range("G11")F_upr.dX1 = .Range("F11")F_upr.dX2 = .Range("G11")F_upr.N_симплекса = 1F_upr.N_вершины = 1End WithEnd SubSub Вывод_строки_симлекса(Nc, Nv, X1, X2, Y) ‘Вывод данных на листWorksheets("Симпл ").Cells(iv, 1) = NcWorksheets("Симпл").Cells(iv, 2) = NvWorksheets("Симпл").Cells(iv, 3) = X1Worksheets("Симпл").Cells(iv, 4) = X2Worksheets("Симпл").Cells(iv, 5) = Yiv = iv + 1Worksheets("Симпл").Cells(iv, 5).SelectEnd SubSub Upravlenie() ‘Процедура вызова формы и ввода с нее данныхF_upr.Show‘Вывод на экран формы управленияNvc = Val(F_upr.N_Симплекса) ‘Передача данных из элементовNvv = Val(F_upr.N_вершины) ‘формы в программуdX(1) = (Xmax(1) - Xmin(1)) * Val(F_upr.dX1)dX(2) = (Xmax(2) - Xmin(2)) * Val(F_upr.dX2)End SubFunction Fyp(X) ‘Подпрограмма, реализующая целевую функциюFyp = A0 + (X(1) - A1) ^ 2 + (X(2) - A2) ^ 2End FunctionSub Опт_симплекс (N, XH, Xmin, Xmax, dX, Xo, Yo)' Реализация алгоритма метода оптимизации по симплексу'Входные данные52'''''''''N - число переменных оптимизацииХН – массив с начальными значениями переменныхXmin - массив с минимально-допустимыми значениями переменных;Xmax - массив с максимально-допустимыми значениями переменных;dX – начальные шаг изменения переменных;Выходные данныеXo - массив с начальными значениями переменных;Yo –минимальное значение функцииЦелевую функцию оформить подпрограммой-функцией FY(N,X)Dim Xc1, Xc2, j1, N1, j, I, NminY, NmaxY, C2(3, 2)N1 = N + 1Nc = 1 'N симплекса' Задание коэффициентов для начального симплексаC2(1, 1) = 1:C2(1, 2) = 1 : C2(2, 1) = -1: C2(2, 2) = 0.46For j = 1 To N1' Начальный симплексXo1(Nc, j) = C2(j, 1) * dX(1) + XH(1) 'Xo2(Nc, j) = C2(j, 2) * dX(2) + XH(2) 'Xo(1) = Xo1(Nc, j)Xo(2) = Xo2(Nc, j)Yv(Nc, j) = Fyp(Xo)Call Вывод_строки_симлекса(Nc, j, Xo(1), Xo(2), Yv(Nc, j))Next jNmaxY =Maximum'Выбор вершины с «наихудшим» значением функцииF_upr.N_вершины = NmaxY 'Передача на форму «наихудшей» вершиныUpravlenie‘Вызов подпрограммы работы с формойNc = Nc + 1F_upr.N_Симплекса = NcWhile F_upr.B_stopXc1 = 0 ' Вычисление нового симплексаXc2 = 0For j = 1 To N1If j <> Nvv ThenXc1 = Xc1 + Xo1(Nvc, j) 'Сумма во всех вершинах без наихудшейXc2 = Xc2 + Xo2(Nvc, j)Xo1(Nc, j) = Xo1(Nvc, j) 'Координаты остальных вершинXo2(Nc, j) = Xo2(Nvc, j)Yv(Nc, j) = Yv(Nvc, j)Call Вывод_строки_симплекса(Nc,j,Xo1(Nc,j),Xo2(Nc,j),Yv(Nc, j))End IfNext jXo1(Nc, Nvv) = 2 * Xc1 / N - Xo1(Nvc, Nvv) 'Новая вершинаXo2(Nc, Nvv) = 2 * Xc2 / N - Xo2(Nvc, Nvv)53Xo(1) = Xo1(Nc, Nvv)Xo(2) = Xo2(Nc, Nvv)Nv = NvvYv(Nc, Nvv) = Fyp(Xo)‘Функция в новой вершинеCall Вывод_строки_симлекса (Nc, Nvv, Xo(1), Xo(2), Yv(Nc, Nvv))NmaxY = Maximum 'Выбор наихудшей вершиныF_upr.N_вершины = NmaxY 'Передача наихудшей вершины в формуUpravlenieNc = Nc + 1F_upr.N_Симплекса = NcIf Val(F_upr.dX1) <> Worksheets("Симпл").Range("F11") Then 'ПриNminY = Minimum‘Изменении шагаFor j = 1 To N1Xo1(Nc, j) = C2(j, 1) * dX(1) + Xo1(Nvc, NminY)Xo2(Nc, j) = C2(j, 2) * dX(2) + Xo2(Nvc, NminY)Xo(1) = Xo1(Nc, j)Xo(2) = Xo2(Nc, j)Yv(Nc, j) = Fyp(Xo)Call Вывод_строки_симлекса (Nc, j, Xo(1), Xo(2), Yv(Nc, j))Next jNmaxY = MaximumF_upr.N_вершины = NmaxYF_upr.N_Симплекса = NcWorksheets("Симпл").Range("F11") = F_upr.dX1Worksheets("Симпл").Range("G11") = F_upr.dX2UpravlenieEnd IfWendEnd SubFunction Minimum()‘Выявление наилучшей вершиныDim minY, NminYminY = 10 ^ 4If minY > Yv(Nvc, 1) ThenminY = Yv(Nvc, 1) : NminY = 1End IfIf minY > Yv(Nvc, 2) ThenminY = Yv(Nvc, 2) : NminY = 2End IfIf minY > Yv(Nvc, 3) ThenminY = Yv(Nvc, 3) : NminY = 3End If54Minimum = NminYEnd FunctionFunction Maximum()‘Выявление наихудшей вершиныDim maxY, NmaxYmaxY = -10 ^ 4If maxY < Yv(Nc, 1) ThenmaxY = Yv(Nc, 1)NmaxY = 1End IfIf maxY < Yv(Nc, 2) ThenmaxY = Yv(Nc, 2)NmaxY = 2Программа оптиEnd Ifмизации поиска поIf maxY < Yv(Nc, 3) ThenсимплексуmaxY = Yv(Nc, 3)NmaxY = 3End IfMaximum = NmaxYEnd FunctionPublic B_stop As Boolean‘Процедуры, связанные с формойPrivate Sub CommandButton1_Click() ‘Обработка кнопки «Выполнить»F_upr.Hide‘Удаление формы с экранаEnd SubPrivate Sub CommandButton2_Click() ‘Обработка кнопки «Завершение»B_stop = FalseF_upr.Hide‘Удаление формы с экранаEnd SubПоследовательность действий при работе с программой:а) на лист «Симпл» вводятся значения исходных данных, начального значения и доли пределов изменения переменных;б) выполняется щелчок по расположенной на листе кнопке, после чего на экран выведется изображенная на рис.

2.15 форма;в) при необходимости в полях ввода формы уточняется номеротражаемой вершины, затем щелчок по кнопке «Выполнить»;г) в случае, если симплекс начнет вращаться, необходимоуменьшить долю изменения переменных в полях на форме;д) для завершения расчетов необходимо щелкнуть по кнопке«Завершение оптимизации».Работа программы:55а) при щелчке по кнопке «Кнопка 1» запускается процедура«Оптимизация_Симплекс», а из нее последовательно вызываетсяпроцедура ввода данных с листа «Ввод_Симплекс» и метода оптимизации «Опт_симплекс»;б) в процедуре «Опт_симплекс» определяются координаты вершин симплекса и значения функции в этих вершинах, полученныезначения выводятся в таблицу на лист, определяется наихудшаявершина для отражения в подпрограмме «Maximum», и ее номервыводится на форму;г) пользователь может согласиться с предлагаемой для отражения вершиной или ввести свое значение;д) пункты б, в, г будут повторяться в программе после щелчка наформе по кнопке «Выполнить»;е) при корректировке доли изменения переменных у последнегосимплекса определяется наилучшая вершина в подпрограмме«Minimum», рассчитывается на этой вершине новый симплекс, т.

е.снова выполняются пункты б, в, г, д.Эта программа может послужить примером применения формVisual Basic с элементами управления для организации ввода данных и управления работой программы.2.2.6. Метод деформируемого многогранника Нелдера и МидаМетод поиска по симплексу склонен к зацикливанию и приводит к определенным трудностям в овражных ситуациях. Устранитьуказанные недостатки позволяет метод Нелдера и Мида, называемый методом деформированного многогранника.Начальный симплекс в этом метода задается так же, как и всимплекс-методе, но на последующих этапах конфигурация симплекса меняется.Алгоритм метода включает следующие этапы:1) устанавливаются координаты вершин начального симплексаи вычисляются в каждой из них значения целевой функции F(x);2) определяется вершина с наилучшим и наихудшим значениями целевой функции;3) вычисляются координаты центральной точки симплекса:1  N 1 iCA x k ,i    x j ,k  x i ,k  ,N  j 156гдеxck ,i- i-я координата центра многогранника;i - номер переменной проектирования;j - номер вершины многогранника;k - номер рассматриваемого симплекса;xAi,k- i-я координата вершины с наихудшим значением целевойфункции;4) отражение: вычисляются координаты отраженной вершины ифункции в этой вершине F(xo)Координаты отраженной вершины вычисляются по выражениюOCCAx k ,i  x k , i  a x k , i  x k ,i ,где а - коэффициент отражения, как правило, а=1;5) если F(xOk,i) > F(xBk,i), то вычисления продолжаются с этапа8, где xBk,i - координаты вершин с наилучшим значением функции;6) растяжение: вычисление координат вершины Хр и значенияцелевой функции в ней F(xp).

Значения координат вершины прирастяжении определяются по выражениюx k ,i  x k ,i    x k ,i  x k ,i PCOCгде γ- коэффициент растяжения, 2.8 < γ < 3.07) принимается PPB x k , i при F ( x k , i )  F ( x k , i )Ax k ,i  x Ok , i при F ( x kP, i )  F ( x kB, i )и осуществляется переход к этапу 10.8) проверка условия F(xо) > F(xBк) для всех вершин за исключением наихудшей.

Характеристики

Тип файла
PDF-файл
Размер
1,72 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее