Проектирование электрической цепи
Применения моделирования, методов вычислительной математики, теории оптимизации и средств вычислительной техники при анализе и проектировании электрических цепей. Параметрическая оптимизация электрической цепи. Листинг программы и результаты ее работы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.02.2012 |
Размер файла | 223,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Задание на курсовой проект
- 2. Формирование математической модели
- 3. Поиск периодического решения
- 4. Параметрическая оптимизация электрической цепи
- 5. Результаты работы программы
- Список используемой литературы
- Листинг программы
- математика электрический цепь программа
- Введение
- Цель курсового проектирования состоит в приобретении навыков применения математического моделирования, методов вычислительной математики, теории оптимизации и средств вычислительной техники при анализе и проектировании электрических цепей.
- 1. Задание на курсовой проект
- Исходные данные
- E(t) = E0+ECcos(2рt/T)+ESsin(2рt/T)
- Значения не варьируемых параметров:
- Е0=110В, ЕС=50В, ЕS=50В, R1=R2=R3=1Ом,R4=R5=100Ом, Т=0,01с,
- Диапазоны варьируемых параметров:
- L [10-4; 10-1](Гн), C [10-6; 10-2](Ф).
- Искомая выходная переменная UR5
- Метод интегрирования: трапеций
- Метод оптимизации: координатного спуска
- Определение Кр: непосредственный
- Переменные состояния: IL, UC.
- 2. Формирование математической модели
- Для формирования математической модели заданной электрической цепи воспользуемся методом переменных состояний.
- Математическая модель представляет собой систему двух дифференциальных уравнений первого порядка с постоянными коэффициентами
- где - fi(R) - функции от сопротивлений
- Представим данную систему уравнений в матричной форме:
- или, учитывая характер задающего напряжения:
- где X(t) = [xt(t), x2(t)] = [iL(t), uC(t)] - вектор переменных состояния;
- - квадратная матрица
- второго порядка постоянных коэффициентов при переменных состояния в уравнения модели;
- - векторы внешнего воздействия
- Выражение для определения заданной выходной переменной через переменные состояния имеет вид:
- y = UR5 = f1(R)*iL + f2(R)*uC
- Запишем систему уравнений описываемых схему
- Исходная система уравнений по законам Кирхгофа
- Количество узлов: Nузл = 4
- Количество ветвей: Nв = 6
- Количество ветвей, содержащих только идеальные источники ЭДС: NЕ=1,
- Количество ветвей, содержащих источники тока: NJ=0,
- Переменными состояния являются переменные iL и uC.
- По первому закону Кирхгофа
- N1ур= Nузл -NE -1 = 4 - 1 - 1 = 2
- По второму закону Кирхгофа
- N2ур= Nв -Nузл +1 = 6 - 4 + 1 = 3
- Компонентные соотношения для элементов схемы:
- Найдем iR5
- iR5 = iR3 - iC
- iC = iL - iR2
- Подставим iC и получим iR5 = iR3 - iL + iR2
- С другой стороны iR5 можно найти через соотношение
- iR4 = iR2 + iR3
- iR5 = iR4 - iL
- UR4 = -UR3 - UR5 = -iR3R3 - iR5R5
- (*)
- В уравнении не известно iR3 - найдем его.
- iC = iR3 - iR5
- UR1 = UR2 - UR3 - UC
- Откуда выразим iC
- =>(1)
- В этом уравнении неизвестно iR2
- iR2 = iR3 - iR4
- UR4= -UR5 - UR3 = -iR5R5 - iR3R3
- (2)
- подставим (2) в (1)
- (3)
- подставим (3) в (*)
- Обозначим через Z1
- Обозначим через Z2
- Найдем iC
- iC = iR3 - iR5 =
- Найдем iL
- UL = E - UR4 - UR2 = E + UR3 + UR5 - UR2
- UR4 = - UR3 - UR5
- Обозначим функция от R перед UC как К1 и К2, а перед iL как К3 и К4. Тогда:
- Где
- Представим данную систему уравнений в матричной форме:
- Представим математическую модель в матричной форме
- ,
- или учитывая характер задающего напряжения:
- где -вектор переменных состояния;
- - квадратная матрица второго порядка постоянных коэффициентов при переменных состояния в уравнениях модели;
- - векторы внешнего воздействия.
- Выражение для определения заданной выходной переменной через переменные состояния имеет вид:
- 3. Поиск периодического решения
- При реализации математических моделей электрических цепей проблема стационарных решений систем дифференциальных уравнений одна из центральных. Это объясняется тем, что стационарные решения описывают установившиеся состояния, которые для электрических цепей являются обычными состояниями функционирования.
- Аналитический метод
- Определение периодического решения аналитическим методом производится с помощью процедур procedure Def_An, procedure Def_An_t.
- procedure Def_An_t(t:real);
- var Y:Vector;
- begin
- Y:=Dc;
- Mult_Vect_Sc(n,Y,cos(w*t));
- Add_Vect(n,D0,Y,D);
- Y:=Ds;
- Mult_Vect_Sc(n,Y,sin(w*t));
- Add_Vect(n,D,Y,D);
- end;
- Непосредственный метод
- Для определения периодического решения непосредственным методом применяется процедура procedure Def_Nep.
- Procedure Def_nep(var X:Vector);
- var Z1,Z2:Matrix;
- Y:Vector;
- begin
- y[1]:=0;y[2]:=0;
- for i:=1 to M do
- begin
- t:=i*h;
- Def_B_t(t);
- Rung_Kut_4(A,B,h,X);
- end;
- Det_L(A,Lam,def);
- M_Exp(n,A,TT,Z1);
- Mult_Matr_Sc(n,Z1,-1);
- E_Matr(n,Z2);
- Add_Matr(n,Z1,Z2,Z2);
- Obr_Matr(Z2,Z1);
- Mult_Matr_Vect(n,Z1,Y,X);
- end;
- Метод установления
- Процедура procedure Ust реализует поиск периодического решения методом установления и построение временных зависимостей переменных состояния и выходной переменной в переходном режиме.
- Procedure Ust(P:Vect);
- begin
- Def_A_B(P);
- x[1]:=0;x[2]:=0;
- j:=0;
- repeat
- j:=j+1;
- X1:=X;
- for i:=1 to M do
- begin
- t:=i*h;
- Def_B_t(t);
- Rung_Kut_4(A,B,h,X);
- end;
- def:=true;
- for i:=1 to n do
- if abs(x[i]-x1[i])-delt*abs(x[i]+x1[i])/2>=0 then def:=false;
- until def;
- Init;
- kx:=(GetMaxX-X0-10)/TT/j;
- ky1:=120/50;
- ky2:=120/200;
- ky3:=-100/2;
- x[1]:=0;x[2]:=0;
- init;
- xx1:=X0;y11:=Y01;y21:=Y02;y31:=Y03;
- for k:=0 to j-1 do
- for i:=1 to M do
- begin
- t:=i*h+k*TT;
- Def_B_t(t);
- Rung_Kut_4(A,B,h,X);
- xx:=X0+round(kx*t);
- y1:=Y01-round(ky1*x[1]);
- y2:=Y02-round(ky2*x[2]);
- y3:=Y03-round(ky3*U5(X));
- setcolor(Red);
- line(xx1,y11,xx,y1);
- line(xx1,y21,xx,y2);
- line(xx1,y31,xx,y3);
- xx1:=xx;y11:=y1;y21:=y2;y31:=y3;
- end;
- readln;
- CloseGraph;
- end;
4. Параметрическая оптимизация электрической цепи
Цель параметрического синтеза - определение числовых значений параметров элементов. Синтез носит название оптимизации, если определяются наилучшие в заданном смысле структуры и значения параметров. Задачу выбора оптимальной структуры называют структурной оптимизацией, а расчет оптимальных значений параметров при заданной структуре - параметрической оптимизацией.
В общем случае решение задачи параметрической оптимизации осуществляется путем перебора определенным образом выбираемых вариантов значений параметров, сравнения их между собой и выбора наилучшего варианта. Алгоритм выбора очередного варианта значений параметров носит название стратегии поиска.
Чаще всего решение задачи параметрической оптимизации проводится в несколько этапов. На первом этапе выделяют области параметров, в которых целевая функция является унимодальной, на втором - уточняют положения точек локального минимума в областях унимодальности, а затем среди точек локального минимума выбирают точку глобального минимума. При этом наиболее сложным и не поддающимся строгой алгоритмизации и формализации является первый этап. Для реализации второго этапа применяют специальные итерационные численные методы поиска экстремумов унимодальных функций.
Параметрическая оптимизация осуществляется в пространстве двух варьируемых параметров методом координатного спуска в соответствии с алгоритмом:
Procedure Koord(var Pmin:Vect; var Kpmin:real);
var i:byte;
P,PL:Vect;
def:boolean;
begin
for i:=1 to s do
p[i]:=(pl[i]+pp[i])/2;
repeat
PL:=P;
for i:=1 to s do
begin
p[i]:=Gold(P,i);
end;
def:=true;
for i:=1 to s do
if abs(p[i]-pl[i])-delt*abs(p[i]+pl[i])/2>=0 then def:=false;
until def;
for i:=1 to s do
pmin[i]:=(p[i]+pl[i])/2;
Kpmin:=Kp_nep(Pmin);
end;
5. Результаты работы программы
Список используемой литературы
Четвергов К.В. Информатика. Часть 3. Учебное пособие для студентов специальности "Промышленная электроника" дистанционной формы обучения. - Томск: ТУСУР 1998. - 55с.
Листинг программы
program kurs;
Uses Crt, Graph;
Const N=2; E0=110;Ec=50;Es=50; L=0.0001; C=0.000001; R1=1; R2=1; R3=R2; R4=100;R5=R4;delt=0.01;TT=0.01;w=2*pi/TT;M=100;h=TT/M;s=2; Pl:array[1..s] of real=(1e-4,1e-6);
Pp:array[1..s] of real=(1e-1,1e-2); Type Matrix=array[1..N,1..N] of real;
Vector=array[1..N] of real;Vect=array[1..s] of real;
Var A:Matrix;
B0,Bc,Bs,B,D0,Dc,Ds,D,Lam,X,X1:Vector;
P:Vect;
t,kpmax,Z1,Z2,K1,K2,K3,K4:real;
grdr,grmd,i,j,k:integer; X0,Y01,Y02,Y03,xx,xx1,y1,y11,y2,y21,y3,y31,y4,y41,y5,y51,y6,y61:integer; kx,ky1,ky2,ky3:real;
def:boolean;
{********************Процедура сложения двух матриц A_sum=A1+A2}
Procedure Add_Matr(n:byte;A1,A2:Matrix; var A_rez:Matrix);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to n do
a_rez[i,j]:=a1[i,j]+a2[i,j]
end;
{******************Процедура сложения двух векторов B_sum=B1+B2} Procedure Add_Vect(n:byte;B1,B2:Vector; var B_rez:Vector);
var i:byte;
begin
for i:=1 to n do
b_rez[i]:=b1[i]+b2[i]
end;
{*******************Процедура умножения двух матриц A_rez=A1*A2} Procedure Mult_Matr_Matr(n:byte;A1,A2:Matrix; var A_rez:Matrix);
var i,j,k:byte;
begin
for i:=1 to n do
for j:=1 to n do
begin
a_rez[i,j]:=0;
for k:=1 to n do a_rez[i,j]:=a_rez[i,j]+a1[i,k]*a2[k,j];
end;
end;
{*******************Процедура умножения матрицы на вектор Y=A*X} Procedure Mult_Matr_Vect(n:byte;A:Matrix; X:Vector; var Y:Vector);
var i,j:byte;
begin
for i:=1 to n do
begin
y[i]:=0;
for j:=1 to n do
y[i]:=y[i]+a[i,j]*x[j];
end;
end;
{******Процедура умножения матрицы на вещественное число A:=A*c} Procedure Mult_Matr_Sc(n:byte; var A:Matrix; Sc:real);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to n do
a[i,j]:=Sc*a[i,j];
end;
{******Процедура умножения вектора на вещественное число B:=B*c} Procedure Mult_Vect_Sc(n:byte; var B:Vector; Sc:real);
var i:byte;
begin
for i:=1 to n do b[i]:=Sc*b[i];
end;
{************* Формирование матриц А,B0,Bc,Bs математической модели }
Procedure Def_A_B(P:Vect);
begin
Z1:=1+R1*R3/(R4*R1+R4*R3-R2*R4-R3*R2);
Z2:=R4*R1+R4*R3-R2*R4-R3*R2; K1:=r4/z2*r3/z1*r1*r3/z2-r3*r4/z2+r4/z2*r3*r5/z1-r3/z2*(r4+r3)/z1*r1/z2+(r4+r3)/z2-r5/z2*r3/(r4+r5)*1/z1; K3:=r4/z1*r1*r3/z2+r4/(r4+r5)*r5/z1+r1/z2*(r3+r4)/z1+r5/(r4+r5)*1/z1; K2:=r4/z2*r3/z1*r1/z2-r4/z2-r4/z2*r3/(r4+r5)*1/z1;
K4:=r4/z1*r1/z2-r4/(r4+r5)*1/z1;
a[1,1]:=-k3/p[1];
a[1,2]:=k1/p[1];
a[2,1]:=-k4/p[2];
a[2,2]:=k2/p[2];
b0[1]:=1/p[1];b0[2]:=0;
bc[1]:=1/p[1];bc[2]:=0;
bs[1]:=1/p[1];bs[2]:=0;
end;
{******Процедура формирования вектора B(t)=B0+Bc*cos(wt)+Bs*sin(wt)**}
Procedure Def_B_t(t:real);
begin
b[1]:=b0[1]+bc[1]*cos(w*t)+bs[1]*sin(w*t);
b[2]:=b0[2]+bc[2]*cos(w*t)+bs[2]*sin(w*t);
end;
{****** Функция определения выходной переменной***************}
function U5(X:Vector):real;
begin
U5:=-r4/(r4+r5)*r5/z1*x[1]+r4/z2*r3/(r4+r5)*r5/z1*x[2];
end;
{********Процедура вычисления обратной матрицы второго порядка }
Procedure Obr_Matr(A:Matrix; var A_obr:Matrix);
var det:real;
begin
det:=a[1,1]*a[2,2]-a[1,2]*a[2,1];
A_obr[1,1]:=a[2,2]/det;
A_obr[1,2]:=-a[1,2]/det;
A_obr[2,1]:=-a[2,1]/det;
A_obr[2,2]:=a[1,1]/det;
end;
{********************Процедура формирования единичной матрицы E}
Procedure E_Matr(n:byte; var E:Matrix);
var i,j:byte;
begin
for i:=1 to n do
begin
for j:=1 to n do
e[i,j]:=0;
e[i,i]:=1;
end;
end;
{Процедура вычисления собственных чисел матрицы А второго порядка }
Procedure Det_L(A:Matrix; var L:Vector; var comp:boolean);
var p0,p1,D:real;
begin
p1:=-(a[1,1]+a[2,2]);
p0:=a[1,1]*a[2,2]-a[1,2]*a[2,1];
D:=p1*p1-4*p0;
if D>=0 then
begin
comp:=false;
l[1]:=(-p1+sqrt(D))/2;
l[2]:=(-p1-sqrt(D))/2;
end
else begin
Comp:=true;
l[1]:=-p1/2;
l[2]:=sqrt(-D)/2;
end
end;
{**определение векторов D0,Dc,Ds для аналитического метода***} procedure Def_An;
var Z1,Z2:Matrix;
Y1,Y2:Vector;
begin
Obr_Matr(A,Z1);
Mult_Matr_Vect(n,Z1,B0,D0);
Mult_Vect_Sc(n,D0,-1);
Mult_Matr_Matr(n,A,A,Z1);
E_Matr(n,Z2);
Mult_Matr_Sc(n,Z2,4*pi*pi/TT/TT);
Add_Matr(n,Z1,Z2,Z2);
Obr_Matr(Z2,Z1);
Mult_Matr_Vect(n,A,Bc,Y1);
Y2:=Bs;
Mult_Vect_Sc(n,Y2,w);
Add_Vect(n,Y1,Y2,Y1);
Mult_Matr_Vect(n,Z1,Y1,Dc);
Mult_Vect_Sc(n,Dc,-1);
Y1:=Bc;
Mult_Vect_Sc(n,Y1,w);
Mult_Matr_Vect(n,A,Bs,Y2);
Mult_Vect_Sc(n,Y2,-1);
Add_Vect(n,Y1,Y2,Y1);
Mult_Matr_Vect(n,Z1,Y1,Ds);
end;
{**определение аналитического решения D9t)=D0+Dc*cos(wt)+Ds*sin(wt)***} procedure Def_An_t(t:real);
varY:Vector;
begin
Y:=Dc;
Mult_Vect_Sc(n,Y,cos(w*t));
Add_Vect(n,D0,Y,D);
Y:=Ds;
Mult_Vect_Sc(n,Y,sin(w*t));
Add_Vect(n,D,Y,D);
end;
{******************** Численная схема трапеции }
Procedure Trapec(n:integer; A:Matrix; B:Vector; h:real; var X:Vector);
var Z1,Z2,Z3:Matrix;
Y1,Y2:Vector;
begin
E_Matr(n,Z1);
Mult_Matr_Sc(n,Z1,2);
Z2:=A;
Mult_Matr_Sc(n,Z2,h);
Add_Matr(n,Z1,Z2,Z3);
Mult_Matr_Vect(n,Z3,X,Y1);
Y2:=B;
Mult_Vect_Sc(n,Y2,2*h);
Add_Vect(n,Y1,Y2,Y1);
Mult_Matr_Sc(n,Z2,-1);
Add_Matr(n,Z1,Z2,Z3);
Obr_Matr(Z3,Z1);
Mult_Matr_Vect(n,Z1,Y1,X);
end;
{*******инициализация графического режима******** }
Procedure Init;
begin
grdr:=VGA;
grmd:=VGAHi; {инициализация графического режима} InitGraph(grdr,grmd,'d:\bp\bgi');
X0:=15;
Y01:=150;
Y02:=300;
Y03:=450;
line(X0,5,X0,GetMaxY-5);
line(X0-5,Y01,GetMaxX-5,Y01);
line(X0-5,Y02,GetMaxX-5,Y02);
line(X0-5,Y03,GetMaxX-5,Y03);
outtextxy(X0+5,5,'x1');
outtextxy(X0+5,Y01+10,'x2');
outtextxy(X0+5,Y02+10,'U4');
outtextxy(GetMaxX-10,Y01+5,'t');
outtextxy(GetMaxX-10,Y02+5,'t');
outtextxy(GetMaxX-10,Y03+5,'t');
end;
{*******Вычисление нормы матрицы************************** }
function Norm(n:byte; A:Matrix):real;
var
i,j:byte;
max,sum:real;
begin
max:=abs(a[1,1]);
for j:=1 to n do
begin
sum:=0;
for i:=1 to n do
sum:=sum+abs(a[i,j]);
if sum>max then max:=sum;
end;
Norm:=max;
end;
{****************Процедура вычисления экспоненциальной матрицы } Procedure M_Exp(n:byte; A:Matrix; t:real; var Exp_M:Matrix);
var
i,s:byte;
Z1,Z2,Z3:Matrix;
ss:real;
begin
ss:=Norm(n,A);
s:=round(ln(10*t*ss)/ln(2));
E_Matr(n,Z1);
Z2:=Z1;Z3:=Z2;
for i:=1 to s do
begin
Mult_Matr_Matr(n,A,Z2,Z3); Mult_Matr_Sc(n,Z3,t/exp(s*ln(2))/i); Add_Matr(n,Z1,Z3,Z1);
Z2:=Z3;
end;
for i:=1 to s do
begin
Mult_Matr_Matr(n,Z1,Z1,Z2);
Z1:=Z2;
end;
Exp_M:=Z1;
end;
{*Определение периодического решения непосредственным методом********} Procedure Def_nep(var X:Vector);
var Z1,Z2:Matrix;
Y:Vector;
begin
y[1]:=0;y[2]:=0;
for i:=1 to M do
begin
t:=i*h;
Def_B_t(t);
Trapec(n,A,B,h,X);
end;
Det_L(A,Lam,def);
M_Exp(n,A,TT,Z1);
Mult_Matr_Sc(n,Z1,-1);
E_Matr(n,Z2);
Add_Matr(n,Z1,Z2,Z2);
Obr_Matr(Z2,Z1);
Mult_Matr_Vect(n,Z1,Y,X);
end;
{***********Построение графика периодического решения ****************} Procedure Per_Solve(P:Vect);
begin
Def_A_B(P);
Def_An;
Def_nep(X);
Init;
kx:=(GetMaxX-X0-10)/TT;
ky1:=120/50;
ky2:=120/200;
ky3:=-100/2;
Def_An_t(0);
xx1:=X0;
y11:=Y01-round(ky1*x[1]);
y21:=Y02-round(ky2*x[2]);
y31:=Y01-round(ky1*d[1]);
y41:=Y02-round(ky2*d[2]);
y51:=Y03-round(ky3*U5(X));
y61:=Y03-round(ky3*U5(D));
for i:=1 to M do
begin
t:=i*h;
Def_An_t(t);
Def_B_t(t);
Trapec(n,A,B,h,X);
xx:=X0+round(kx*t);
y1:=Y01-round(ky1*x[1]);
y2:=Y02-round(ky2*x[2]);
y3:=Y01-round(ky1*d[1]);
y4:=Y02-round(ky2*d[2]);
y5:=Y03-round(ky3*U5(X));
y6:=Y03-round(ky3*U5(D));
setcolor(Red);
line(xx1,y11,xx,y1);
line(xx1,y21,xx,y2);
line(xx1,y51,xx,y5);
setcolor(Green);
line(xx1,y31,xx,y3);
line(xx1,y41,xx,y4);
line(xx1,y61,xx,y6); xx1:=xx;y11:=y1;y21:=y2;y31:=y3;y41:=y4;y51:=y5;y61:=y6;
end;
readln;
CloseGraph;
end;
{****************************Метод установления****************}
Procedure Ust(P:Vect);
begin
Def_A_B(P);
x[1]:=0;x[2]:=0;
j:=0;
repeat
j:=j+1;
X1:=X;
for i:=1 to M do
begin
t:=i*h;
Def_B_t(t);
trapec(n,A,B,h,X);
end;
def:=true;
for i:=1 to n do
if abs(x[i]-x1[i])-delt*abs(x[i]+x1[i])/2>=0 then def:=false; until def;
Init;
kx:=(GetMaxX-X0-10)/TT/j;
ky1:=120/50;
ky2:=120/200;
ky3:=-100/2;
x[1]:=0;x[2]:=0;
init;
xx1:=X0;y11:=Y01;y21:=Y02;y31:=Y03;
for k:=0 to j-1 do
for i:=1 to M do
begin
t:=i*h+k*TT;
Def_B_t(t);
trapec(n,A,B,h,X);
xx:=X0+round(kx*t);
y1:=Y01-round(ky1*x[1]);
y2:=Y02-round(ky2*x[2]);
y3:=Y03-round(ky3*U5(X));
setcolor(Red);
line(xx1,y11,xx,y1);
line(xx1,y21,xx,y2);
line(xx1,y31,xx,y3);
xx1:=xx;y11:=y1;y21:=y2;y31:=y3;
end;
readln;
CloseGraph;
end;
{*Определение коэффициента пульсаций по решению непосредственным методом} function Kp_nep(P:Vect):real;
var Usr,Umax,Umin:real;
begin
Def_A_B(P);
Def_nep(X);
Usr:=0;Umin:=U5(X);Umax:=Umin;
for i:=1 to M do
begin
t:=i*h;
Def_B_t(t);
trapec(n,A,B,h,X);
Usr:=Usr+U5(X);
if U5(X)>Umax then Umax:=U5(X);
if U5(X)<Umin then Umin:=U5(X); end;
Kp_nep:=(Umax-Umin)*M/Usr/2;
end;
{***************Метод золотого сечения }
function Gold(P:Vect;i:byte):real;
const g=0.618034;
var r,xl,xp:real;
X1,X2:Vect;
begin
xp:=pp[i];xl:=pl[i];X1:=P;X2:=P;
repeat r:=g*(xp-xl);x1[i]:=xl+r;x2[i]:=xp-r;
if kp_nep(X1)<kp_nep(X2) then xp:=x1[i] else xl:=x2[i]
until abs(xp-xl)-delt*abs(xp+xl)/2<0;
Gold:=(xp+xl)/2;
end;
{*************** Метод координатного спуска } Procedure Koord(var Pmin:Vect; var Kpmin:real);
var i:byte;
P,PL:Vect;
def:boolean;
begin
for i:=1 to s do
p[i]:=(pl[i]+pp[i])/2;
repeat
PL:=P;
for i:=1 to s do
begin
p[i]:=Gold(P,i);
end;
def:=true;
for i:=1 to s do
if abs(p[i]-pl[i])-delt*abs(p[i]+pl[i])/2>=0 then def:=false; until def;
for i:=1 to s do
pmin[i]:=(p[i]+pl[i])/2;
Kpmin:=Kp_nep(Pmin);
end;
{************************ Управляющая программа *********** }
Begin
ClrScr;
Koord(P,kpmax);{оптимизация методом координатного спуска} Def_A_B(P);{формирование матриц А,В математической модели} Det_L(A,Lam,def);{определение собственных чисел}
writeln('Оптимальная точка:'); writeln('p[1]=',p[1],'p[2]=',p[2],'kpmax=',kpmax); writeln('Собственные числа:'); {вывод собственных чисел на экран} if not def then
begin
writeln('l[1]=',lam[1]);writeln('l[2]=',lam[2]); writeln('Постоянные времени:'); writeln('tau1=',1/abs(lam[1]));writeln('tau2',1/abs(lam[2])); end
else
begin
writeln('l[1]=',lam[1],'+j',lam[2]);writeln('l[1]=',lam[1],'-j',lam[2]); writeln('Постоянная времени: tau=',1/abs(lam[1]));
writeln('Собственная частота: fc=',lam[2]/2/pi);
end;
readln;
Ust(P);{определение периодического решения методом установления} Per_Solve(P);{определение периодического решения непосредственным методом}
End.
Размещено на Allbest.ru
Подобные документы
Программная реализация методов вычислительной математики и их применения к расчету и оптимизации электрической схемы. Сущность первого и второго законов Кирхгофа. Компоненты, использованные для реализации интерфейса программы. Листинг программного кода.
курсовая работа [1,3 M], добавлен 14.01.2014Разработка информационно-аналитической системы анализа и оптимизации конфигурации вычислительной техники. Структура автоматизированного управления средствами вычислительной техники. Программное обеспечение, обоснование экономической эффективности проекта.
дипломная работа [831,1 K], добавлен 20.05.2013Законы электрических цепей, порядок и методы их расчета. Разработка программы на языке программирования Borland C++ Builder 5.0 для анализа разветвленных электрических цепей с использованием матричного метода. Алгоритм решения задачи и описание его работы
курсовая работа [211,5 K], добавлен 08.10.2012Простейшие электрические цепи первого порядка. Характеристика электрических цепей второго порядка, их параметры. Элементы нелинейных цепей. Основные этапы моделирования схем с помощью программы схемотехнического проектирования и моделирования Micro-Cap.
контрольная работа [196,6 K], добавлен 17.03.2011Обзор программных средств компьютерного моделирования. Изучение реакции электрической цепи на внешнее воздействие средствами MathCad: расчет значения функций u(t), построение графика зависимости напряжения по времени, нахождение аппроксимирующей функции.
курсовая работа [269,9 K], добавлен 07.03.2013Преимущества и недостатки моделирования электрических цепей на компьютерах. Создание упрощенной кинематической схемы магнитофона в программной среде AutoCAD путем построения примитивов. Проектирование электрической схемы, ее оптимизация и спецификация.
курсовая работа [1,2 M], добавлен 06.07.2011Математическое моделирование электрической схемы, ее расчет и оптимизация. Расчет сопротивления элементов и ветвей. Решение системы уравнений методом Халецкого. Метод многомерной оптимизации – метод покоординатного спуска. Система линейных уравнений.
курсовая работа [626,2 K], добавлен 17.12.2011Применение комплексного математического моделирования в проектировании. Обзор численных методов в моделировании. Решение дифференциальных уравнений в MathCAD. Анализ исходных и результирующих данных. Описание реализации базовой модели в MathCAD.
курсовая работа [240,5 K], добавлен 18.12.2011Аппаратные средства вычислительной техники. Центральный процессор. Память как составляющая компьютера, ее типичная иерархическая структура. Устройства ввода-вывода, шины. История развития средств вычислительной техники. Характеристика систем на основе Р6.
реферат [251,3 K], добавлен 08.02.2014Защита электрооборудования и сетей от тока короткого замыкания и перегрузок. Разработка программного обеспечения для расчета номинала предохранителя в электрической цепи. Выбор языка программирования. Требования к составу и параметрам технических средств.
курсовая работа [233,2 K], добавлен 31.03.2018