Решение задачи параметрической идентификации математической модели объекта управления
Решение задачи многомерной оптимизации различными методами, нахождение оптимального значения постоянной времени и времени запаздывания для указанной кривой разгона. Особенности параметрической идентификации математической модели объекта управления.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 25.04.2022 |
Размер файла | 251,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Магнитогорский государственный технический университет им. Г.И. Носова
Кафедра промышленной кибернетики и систем управления
Контрольная работа
по дисциплине «Моделирование систем»
Решение задачи параметрической идентификации математической модели объекта управления
Выполнил студент: Сайров Александр Михайлович
Проверил преподаватель: Мухина Елена Юрьевна
Магнитогорск 2007
Задание 1
Решить задачу многомерной оптимизации 2-мя методами, найти оптимальное значение постоянной времени и времени запаздывания для указанной кривой разгона.
Рис. 1. Кривая разгона
Целевая функция:
min
0, при t < ф
hT (t) = при t > ф
Задание 2
Решение задач линейного программирования.
Задача 1
Максимизировать функцию
f = x1 + 2x2 max
x1, x2 ? 0;
2x1 + 2x2 ? 10;
x1 + 5x2 ? 20;
x1 - x2 ? 4.
Задача 2
Минимизировать функцию
f = 2x1 + x2 min
x1, x2 ? 0;
3x1 + x2 ? 2;
x1 + 5x2 ? 15
Задание 3
Метод покоординатного спуска (метод Гаусса - Зейделя)
При использовании метода покоординатного спуска для определения экстремума применяют следующий алгоритм - поиск с помощью метода золотого сечения, потому что этот метод позволяет исключать интервалы, вычисляя только одно значение функции на каждом цикле вычислений. в результате двух рассмотренных значений функции определяется интервал, который и должен использоваться в дальнейшем. Этот интервал будет содержать одну их предыдущих точек и следующую точку, помещаемую симметрично ей. Точка делит интервал на две части причем так, что отношение целого к большей части равно отношению большей части к меньшей, т.е. равно золотому сечению.
Основным достоинством метода покоординатного спуска (метод Гаусса - Зейделя) является его простота. Что касается недостатков этого метода, то к ним можно отнести трудности в поиске точки экстремума при наличии ограничений и «оврагов». Также этот метод не обладает высокой точностью.
Программа 1
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
const float e=0.001;
const int S=10;
const int N=3;
const float T=2.75;
const float tau=0.88;
const float k=0.02;
float t[10]={0,1.0,1.5,2.0,2.5,4.0,4.5,6.0,6.5,8.0},
he[10]={0, 0,00192, 0,0045, 0,0087, 0,015, 0,0181, 0,0196, 0,0199, 0,0199, 0,02},
m[N]={0.88,2.75,0.02};
float znach[2];
float fr;
int i;
float ht(float tau,float T,float k,float t)
{
if(t<tau)
return 0;
else
return fr=k*(1-exp(-((t-tau)/T)));
}
void f(float tau,float T,float k)
{
int j;
znach[0]=fabs(pow(he[0]-ht(tau,T,k,t[0]),2));
for(j=1;j<10;j++)
if(fabs(pow(he[j]-ht(tau,T,k,t[j]),2))>znach[0])
{znach[0]=fabs(pow(he[j]-ht(tau,T,k,t[j]),2));
znach[1]=t[j];
}
}
float func(float m,int n)
{switch(n)
{
case 1:f(m,T,k);break;
case 2:f(tau,m,k);break;
case 3:f(tau,T,m);break;
}
return 0;
}
double gold(double a,double b,int i)
{
double x1,x2,y1,y2;
x1=a+(1-tau)*(b-a);
y1=func(x1,i);
x2=a+(tau*(b-a));
y2=func(x2,i);
while(fabs(a-b)>e)
{
if(y1<y2)
{
b=x2;x2=x1;y2=y1;
x1=a+(1-tau)*(b-a);
y1=func(x1,i);
}
else
{ a=x1;
x1=x2;
y1=y2;
x2=a+(tau*(b-a));
y2=func(x2,i);
}
}
return (x1+x2)/2;
}
void min()
{
double x[N];
double h[N]={1.0,2.5,0.02},
m[N]={1.5,4.0,0.02};
int j;
float s,x0;
for(j=0;j<N;j++)
x[j]=(h[j]+m[j])/2;
do
{ s=0;
for(j=0;j<N;j++)
{
x0=gold(h[j],m[j],j++);
s+=pow((m[j]-x0),2);
m[j]=x0;
}
}
while(fabs(sqrt(s)>e));
}
int main()
{
double a[2]={0.5,2.0},b[2]={1.0,4.0},m[2]={0.88,2.75},x0,s;
int j;
clrscr();
do
{
s=0;
for(j=0;j<N;j++)
{
x0=gold(a[j],b[j],j++);
s+=pow((m[j]-x0),2);
m[j]=x0;
}
}
while(fabs(sqrt(s)>0.001));
printf("\n\n\t\t\t**********Metod 1**********\n\n\t\t\t");
printf("tau=%.1f,T=%.0f\n",tau,T);
printf("\min=%.5f\n",znach[0]);
for(j=0;j<10;j++)
{
printf("ht(t)=%.4f\n",ht(tau,T,k,t[j]));
}
getch();
return 0;
}
Результаты выполнения программы 1 заношу в сводную таблицу
Таблица 1
Время |
Экспериментальные значения |
Расчетные значения (метод Гаусса - Зейделя) |
|
t |
he |
ht |
|
0 |
0 |
0 |
|
1 |
0,00192 |
0,0018 |
|
1.5 |
0,0045 |
0,0035 |
|
2 |
0,0087 |
0,0076 |
|
2.5 |
0,015 |
0,012 |
|
4 |
0,0181 |
0,0157 |
|
4.5 |
0,0196 |
0,0178 |
|
6 |
0,0199 |
0,0188 |
|
6.5 |
0,0199 |
0,019 |
|
8 |
0,02 |
0,0192 |
|
Динамические параметры |
|||
фз |
0.88 |
1 |
|
Tоб |
2.75 |
3 |
|
Минимальное значение функции |
0,0082 |
Метод конфигураций (метод Хука - Дживса)
Метод Хука - Дживса или метод конфигураций является методом прямого поиска минимума функции нескольких, т.е. методом, использующим только значения функции. Поиск состоит из последовательности шагов исследующего поиска вокруг базовой точки, за которой в случае успеха следует поиск по образцу. Хоть метод конфигураций и ближе к экспериментальной кривой, но он также как и метод покоординатного спуска, не является точным методом.
параметрическая идентификация математическая модель
Программа 2
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
const float e=0.01;
const int S=10;
const int N=3;
const float T=2.75;
const float tau=0.88;
const float k=0.02;
float t[10]={0,1.0,1.5,2.0,2.5,4.0,4.5,6.0,6.5,8.0},
he[10]={0, 0,00192, 0,0045, 0,0087, 0,015, 0,0181, 0,0196, 0,0199, 0,0199, 0,02};
float znach[2],
bb[N],y[N],p[N],h=1.0;
float ps,bs,kk,fi,fb;
float xx[N]={0.88,2.75,0.02};
float fx;
float ht(float tau,float T,float k,float t)
{
if(t<tau)
return 0;
else
return fx=k*(1-exp(-((t-tau)/T)));
}
void f(float tau,float T,float k)
{
int j;
znach[0]=fabs(pow(he[0]-ht(tau,T,k,t[0]),2));
for(j=1;j<10;j++)
if(fabs(pow(he[j]-ht(tau,T,k,t[j]),2))>znach[0])
{znach[0]=fabs(pow(he[j]-ht(tau,T,k,t[j]),2));
znach[1]=t[j]; }
}
float func(float x,int n)
{switch(n)
{
case 1:f(x,T,k);break;
case 2:f(tau,x,k);break;
case 3:f(tau,T,x);break;
case 4:f(xx[0],xx[1],xx[2]);break;
}
return znach[0];
}
void min(void)
{
int i;
clrscr();
kk=h;
for(i=0;i<N;i++)
{y[i]=xx[i];
p[i]=xx[i];
bb[i]=xx[i];
}
fi=func(0,0.03);
ps=0;
bs=1;
int j=0;
fb=fi;
do
{xx[j]=y[j]+kk;
if(func(0,0.03)<fi) y[j]=xx[j];
else
{xx[j]=y[j]-kk;
if(func(0,0.03)<fi) y[j]=xx[j];
else xx[j]=y[j];
}
fi=func(0,0.03);
if(j!=N)
{j+=1;
continue;
}
if(fi<fb-1e-08)
{for(i=0;i<N;i++)
{p[i]=2*y[i]-bb[i];
bb[i]=y[i];
y[i]=xx[i];}
fb=fi;
ps=1;
bs=0;
fi=func(0,0.03);
j=0;
continue;}
if((ps==1)&&(bs==0))
{for(i=0;i<N;i++)
{ p[i]=bb[i];
y[i]=bb[i];
xx[i]=bb[i];}
bs=1;
ps=0;
fi=func(0,0.03);
fb=func(0,0.03);
j=0;
continue;}
else
{kk=h/10;
if(kk<e)break;
j=1;
continue;
}
}
while(1);
}
int main()
{
int j;
printf("\n\n\t\t\t**********Metod 2**********\n\n\t\t\t");
printf("tau=%.1f,T=%.1f\n",tau,T);
printf("\min=%.5f\n",znach[0]);
for(j=0;j<10;j++)
{
printf("ht(t)=%.4f\n",ht(tau,T,k,t[j]));
}
getch();
return 0;
}
Результаты выполнения программы 2 заношу в сводную таблицу
Таблица 2
Время |
Экспериментальные значения |
Расчетные значения (метод Гаусса - Зейделя) |
|
t |
he |
ht |
|
0 |
0 |
0 |
|
1 |
0,00192 |
0,00182 |
|
1.5 |
0,0045 |
0,0015 |
|
2 |
0,0087 |
0,005 |
|
2.5 |
0,015 |
0,0096 |
|
4 |
0,0181 |
0,0137 |
|
4.5 |
0,0196 |
0,0164 |
|
6 |
0,0199 |
0,0178 |
|
6.5 |
0,0199 |
0,0185 |
|
8 |
0,02 |
0,0189 |
|
Динамические параметры |
|||
фз |
0.88 |
0.9 |
|
Tоб |
2.75 |
2.8 |
|
Минимальное значение функции |
0,0056 |
Таблица 3 Сравнительная таблица
Время |
Экспериментальные значения |
Расчетные значения (метод Гаусса - Зейделя) |
Расчетные значения (метод Хука - Дживса) |
|
t |
he |
ht |
ht |
|
0 |
0 |
0 |
0 |
|
1 |
0.004 |
0,0018 |
0,00182 |
|
1.5 |
0.007 |
0,0035 |
0,0015 |
|
2 |
0.01 |
0,0076 |
0,005 |
|
2.5 |
0.013 |
0,012 |
0,0096 |
|
4 |
0.018 |
0,0157 |
0,0137 |
|
4.5 |
0.019 |
0,0178 |
0,0164 |
|
6 |
0.019 |
0,0188 |
0,0178 |
|
6.5 |
0.02 |
0,019 |
0,0185 |
|
8 |
0.02 |
0,0192 |
0,0189 |
|
Динамические параметры |
||||
фз |
0.88 |
1 88 |
0.9 |
|
Tоб |
2.75 |
3 |
2.8 |
|
Минимальное значение функции |
0,0082 |
0,0056 |
Вывод
В процессе решения задачи многомерной оптимизации были использованы два метода: метод покоординатного спуска (метод Гаусса - Зейделя) и метод конфигураций (метод Хука - Дживса).
Все результаты, как экспериментальные, так и полученные в процессе расчетов, представлены в сравнительной таблице (таблица 3).
В качестве модели можно использовать кривую, полученную методом конфигураций (метод Хука - Дживса), так как эта кривая и её динамические параметры наиболее близки к кривой и динамическим параметрам, полученным экспериментально. Минимальное значение функции, полученное методом конфигураций (метод Хука - Дживса), равно 0,0056, что меньше, чем значение, полученное методом покоординатного спуска (метод Гаусса - Зейделя), которое равно 0,0082. Одним из условий задачи является получение наименьшего значения функции, поэтому метод конфигураций (метод Хука - Дживса) наиболее приемлем для применения в качестве модели.
Задание 2
Задача 1.
f = x1 + 2x2 max
x1, x2 ? 0;
2x1 + 2x2 ? 10;
x1 + 5x2 ? 20;
x1 - x2 ? 4.
f = 0; x1 + 2x2 = 0; 1; 2 /*вектор с координатами x1, x2*/
В точке А находится максимум функции. Для нахождения координат т. А решим систему уравнений:
2x1 + 2x2 = 10; /x(-1)
x1 + 5x2 = 20; /x(2)
-2x1 - 2x2 = -10;
2x1 + 10x2 = 40;
8x2 =30;
x2 = 3.75; x1 = 1.25;
f = 1.25 + 2*3.75 =8.75
Ответ: Линейная целевая функция принимает наибольшее значение в точке А (1.25; 3.75), максимальное значение функции fmax = 8.75.
Задача 2
f = 2x1 + x2 min
x1, x2 ? 0;
3x1 + x2 ? 2;
x1 + 5x2 ? 15
Ответ: ОДР не существует, потому что система неравенств противоречива. Решений нет.
Размещено на Allbest.ru
...Подобные документы
Преобразование формулы и решение ее с помощью Метода Эйлера. Моделирование метода оптимизации с функцией Розенброка. Поиск модели зашумленного сигнала. Нахождение минимума заданной целевой функции методом покоординатного спуска нулевого порядка.
курсовая работа [1,2 M], добавлен 21.12.2013Поведение идентификации термического объекта исследования, компьютерного моделирования объекта по полученной математической модели. Расчет переходных характеристик замкнутой системы автоматического управления, а также анализ ее устойчивости и качества.
дипломная работа [1,8 M], добавлен 17.09.2011Функционирование систем массового обслуживания с разными типами заявок. Построение математической модели. Постановка задачи оптимизации среднего времени ожидания. Решение задачи оптимизации и разработка программного кода для оптимизации системы.
курсовая работа [538,5 K], добавлен 11.08.2017Сущность и назначение основных алгоритмов оптимизации. Линейное программирование. Постановка и аналитический метод решения параметрической транспортной задачи, математическая модель. Метод решения задачи об оптимальных перевозках средствами MS Excel.
курсовая работа [465,6 K], добавлен 24.04.2009Функционирование систем массового обслуживания с разными типами заявок. Построение математической модели, постановка задачи оптимизации среднего времени ожидания. Решение задачи оптимизации системы. Разработка программного кода для оптимизации системы.
дипломная работа [581,7 K], добавлен 27.10.2017Решение задачи линейного программирования симплекс-методом: постановка задачи, построение экономико-математической модели. Решение транспортной задачи методом потенциалов: построение исходного опорного плана, определение его оптимального значения.
контрольная работа [118,5 K], добавлен 11.04.2012Методы решения задач линейного программирования: планирования производства, составления рациона, задачи о раскрое материалов и транспортной. Разработка экономико-математической модели и решение задачи с использованием компьютерного моделирования.
курсовая работа [607,2 K], добавлен 13.03.2015Восстановление математической модели задачи нелинейного программирования. Решение уравнений прямых. Метод линеаризации: понятие, особенности применения при решении задач. Нахождение точки максимума заданной функции. Решение задачи графическим методом.
задача [472,9 K], добавлен 01.06.2013Алгоритм решения задач линейного программирования симплекс-методом. Построение математической модели задачи линейного программирования. Решение задачи линейного программирования в Excel. Нахождение прибыли и оптимального плана выпуска продукции.
курсовая работа [1,1 M], добавлен 21.03.2012Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.
курсовая работа [844,3 K], добавлен 16.06.2011Графическое решение задач. Составление математической модели. Определение максимального значения целевой функции. Решение симплексным методом с искусственным базисом канонической задачи линейного программирования. Проверка оптимальности решения.
контрольная работа [191,1 K], добавлен 05.04.2016Математические основы оптимизации. Постановка задачи оптимизации. Методы оптимизации. Решение задачи классическим симплекс методом. Графический метод. Решение задач с помощью Excel. Коэффициенты целевой функции. Линейное программирование, метод, задачи.
реферат [157,5 K], добавлен 21.08.2008Построения математической модели с целью получения максимальной прибыли предприятия, графическое решение задачи. Решение задачи с помощью надстройки SOLVER. Анализ изменений запасов ресурсов. Определение пределов изменения коэффициентов целевой функции.
курсовая работа [2,4 M], добавлен 17.12.2014Построение математической модели. Выбор, обоснование и описание метода решений прямой задачи линейного программирования симплекс-методом, с использованием симплексной таблицы. Составление и решение двойственной задачи. Анализ модели на чувствительность.
курсовая работа [100,0 K], добавлен 31.10.2014Основные цели и задачи построения систем распознавания. Построение математической модели системы распознавания образов на примере алгоритма идентификации объектов военной техники в автоматизированных телекоммуникационных комплексах систем управления.
дипломная работа [332,2 K], добавлен 30.11.2012Изучение устройства системы автоматического регулирования и метода экстраполяции кривой разгона объекта управления. Определение параметров объекта по экстраполированной кривой. Сравнение параметров экспериментальной и экстраполируемой кривых разгона.
лабораторная работа [807,6 K], добавлен 18.01.2022Нахождение высоты конуса наименьшего объема, описанного около данного шара радиуса. Определение исследуемой функции, зависящей от одной переменной. Составление математической модели задачи. Построение графика заданной функции с помощью MS Excel.
задача [3,2 M], добавлен 15.02.2010Алгоритм симплекс-метода. Задача на определение числа и состава базисных и свободных переменных, построение математической модели. Каноническая задача линейного программирования. Графический метод решения задачи. Разработки математической модели в Excel.
курсовая работа [1,1 M], добавлен 18.05.2013Анализ современного состояния общей проблемы синтеза моделей многофакторного оценивания и подходов к ее решению. Разработка математической модели метода компараторной идентификации модели многофакторного оценивания. Описание генетического алгоритма.
дипломная работа [851,7 K], добавлен 11.09.2012Решение задачи на составление компромиссного списка. Построение математической модели. Цена перемещения элементов. Вывод программы. Закреплении элемента а1 на первом месте, а а4 на пятом. Матрица оценок для задачи. Оптимальное решение в виде списка.
курсовая работа [37,5 K], добавлен 30.01.2016