Разработка алгоритма программы анализа электрических схем узловым методом - Отчет по практике

бесплатно 0
4.5 139
Обозначения и термины, характерные для электрических систем при изложении узлового метода. Создание математической модели данного метода в виде системы алгебраических и трансцендентных уравнений. Структура и листинг программы анализа электрических схем.


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

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

Введение

Объектом исследования являются варианты алгоритма узлового метода, используемые для расчета электрических схем.

Цель практики: разработка алгоритма программы анализа электрических схем узловым методом. Для этого поставлены следующие задачи: 1) Рассмотреть принципиальные электрические схемы;

2) Разработать эквивалентные представления для элементов принципиальных электрических схем;

3) Разработать программу анализа электрической схемы узловым методом;

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

Для получения математических моделей систем в ряде областей техники наиболее известным является узловой метод. Будем излагать узловой метод на примере электрической системы. Введем некоторые обозначения и термины характерные для электрических систем.

I, U, ? - векторы-столбцы токов, напряжений и узловых потенциалов соответственно. Напряжение ветви есть разность потенциалов инцидентных ей узлов, поэтому связь между U и ? дается через матрицу инциденций: (1.1) где - транспонированная матрица.

Разделим ветви эквивалентной схемы на группы емкостных, резисторных. индуктивных ветвей и ветвей источников тока, в зависимости от характера соответствующего ветви компонентного уравнения. Будем представлять эти группы векторами токов IC, IR, IL, Ij и векторами напряжений UC, UR, UL, Uj соответственно, т.е.

, Матрицу инциденций также удобно разделить на подматрицы: , где АС - подматрица инцинденций узлов и емкостных ветвей; AR - подматрица инцинденций узлов и резистивных ветвей, и т.д.

Будем использовать диагональные матрицы емкостей С, сопротивлений R, и индуктивностей L - их диагональные элементы равны соответствующим внутренним параметра.

; ; ;

2. Изложение узлового метода в применении к электрическим системам

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

2.Исходным топологическим уравнением является уравнение равновесия токов в узлах. Это уравнение в матричной форме: AI=0, или ACIC ARIR ALIL AUIU (2.1)

Компонентные уравнения в матричной форме: (2.2)

(2.3)

(2.4)

Подстановка (2.2) - (2.4) в (2.1) дает: (2.5) где IU в общем случае есть функция ?, , t, т.е. .

Система (2.5) неудобна для численного решения. В случае линейных уравнений ее сводят к системе линейных алгебраических уравнений с помощью преобразований Фурье или Лапласса. В общем случае система (2.5) преобразуется в систему алгебраических и трансцендентных уравнений путем замены производных отношениями конечных разностей:

где h-шаг дискретизации по оси времени (шаг интегрирования), индекс n или п-1 у вектора ? относит значение ? к n-му или к (n-1)-му шагу интегрирования, другими словами, такая замена осуществляется на каждом шаге численного решения. В соответствии с изложенным, аппроксимируем компонентные уравнения (2.2) и (2.4): ’ (2.6) и подставим в (1.9) значения токов, относящиеся к п- му шагу. Тогда . и окончательно с учетом (1.8): (2.7)

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

Следует отметить, что и к началу n-го шага уже вычислены. Решение системы (2.7) дает ?, далее по (1.8) получаем Un и по компонентным уравнениям вычисляем Іп. Следовательно получены все численные результаты для выполнения нового (п 1) -го шага. При п=1 значения и известны- это начальные условия.

3. Структура программы

Модуль, реализующий вычисления.

4. Листинг программы электрический узловой математический листинг unit Unit1;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, EXTCTRLS, Buttons, Grids, Menus, TOOLWIN, COMCTRLS,Unit3, VALEDIT,Unit4,Unit5,Unit6, TEEPROCS, TEENGINE, Chart, Series,SHELLAPI,COMOBJ;

type

TSET=set of "A".."X";

TREC=record image:TIMAGE;

lab:TLABEL;

val:real;

end;

TFORM1 = class(TFORM)

Image1: TIMAGE;

Image2: TIMAGE;

STRINGGRID1: TSTRINGGRID;

Label3: TLABEL;

COLORDIALOG1: TCOLORDIALOG;

MAINMENU1: TMAINMENU;

N1: TMENUITEM;

Edit1: TMENUITEM;

POPUPMENU1: TPOPUPMENU;

rotation: TMENUITEM;

SETVALUE1: TMENUITEM;

TOOLBAR1: TTOOLBAR;

SPEEDBUTTON1: TSPEEDBUTTON;

SPEEDBUTTON2: TSPEEDBUTTON;

SPEEDBUTTON3: TSPEEDBUTTON;

SPEEDBUTTON7: TSPEEDBUTTON;

SPEEDBUTTON5: TSPEEDBUTTON;

STRINGGRID3: TSTRINGGRID;

Shape1: TSHAPE;

SPEEDBUTTON4: TSPEEDBUTTON;

STRINGGRID4: TSTRINGGRID;

Delete2: TMENUITEM;

Analaze1: TMENUITEM;

Matrix1: TMENUITEM;

name1: TMENUITEM;

N2: TMENUITEM;

N3: TMENUITEM;

N4: TMENUITEM;

N5: TMENUITEM;

Label1: TLABEL;

Button1: TBUTTON;

Button2: TBUTTON;

Button9: TBUTTON;

OPENDIALOG1: TOPENDIALOG;

N6: TMENUITEM;

N7: TMENUITEM;

SAVEDIALOG1: TSAVEDIALOG;

Button3: TBUTTON;

Edit2: TEDIT;

Label2: TLABEL;

Edit3: TEDIT;

Label4: TLABEL;

procedure FORMCREATE(Sender: TOBJECT);

procedure SPEEDBUTTON2Click(Sender: TOBJECT);

procedure Image1MOUSEDOWN(Sender: TOBJECT; Button: TMOUSEBUTTON;

Shift: TSHIFTSTATE; X, Y: Integer);

procedure Image1MOUSEMOVE(Sender: TOBJECT; Shift: TSHIFTSTATE; X, Y: Integer);

procedure Image2MOUSEDOWN(Sender: TOBJECT; Button: TMOUSEBUTTON;

Shift: TSHIFTSTATE; X, Y: Integer);

procedure ROTATIONCLICK(Sender: TOBJECT);

procedure SETVALUE1Click(Sender: TOBJECT);

procedure Image2MOUSEMOVE(Sender: TOBJECT; Shift: TSHIFTSTATE; X, Y: Integer);

procedure Delete2Click(Sender: TOBJECT);

procedure Image1MOUSEUP(Sender: TOBJECT; Button: TMOUSEBUTTON;

Shift: TSHIFTSTATE; X, Y: Integer);

procedure Matrix1Click(Sender: TOBJECT);

procedure N2Click(Sender: TOBJECT);

procedure N3Click(Sender: TOBJECT);

procedure N4Click(Sender: TOBJECT);

procedure N5Click(Sender: TOBJECT);

procedure FORMSHOW(Sender: TOBJECT);

procedure FORMACTIVATE(Sender: TOBJECT);

procedure Button1Click(Sender: TOBJECT);

procedure Button2Click(Sender: TOBJECT);

procedure Button9Click(Sender: TOBJECT);

procedure N7Click(Sender: TOBJECT);

procedure Button3Click(Sender: TOBJECT);

private

{ Private declarations } public procedure REPAINTIMAGE(value:string;del:boolean;change:boolean);

function Snap(P:TPOINT):TPOINT;

function Con(k:integer):integer;

procedure Link;

procedure INSERTTOMATRIX;

procedure Rotate(P:TPOINT);

procedure SETVAL(P:TPOINT);

procedure REFRESHLIST;

procedure Del(P:TPOINT);

procedure REFKNOT;

procedure Paste(P:Tpoint;move:boolean);

procedure Gen_main_Matr;

procedure Gen_matr_bb(var h:real);

procedure Gen_matr_B(var h:real);

function Pos(P:TPOINT):string;

function Gauss:boolean;

procedure Calculate(var h:real);

procedure CALCPROC;

function Check:boolean;

procedure Chart(var j:real);

procedure CREATSERIES;

procedure REFRESHMATR1;

procedure Disable;

function SAVEASEXCELFILE(STRINGGRID: TSTRINGGRID; FILENAME: string): Boolean;

end;

var

Form1: TFORM1;

R_el:array [1..10] of TREC; //матр. элементов

L_el:array [1..10] of TREC;

C_el:array [1..10] of TREC;

J_el:array [1..10] of TREC;

P_el:array [1..100] of TSHAPE;

Point_matr:array [1..100] of byte; // матр. кол. узлов

Clr_matr:array [1..100] of TCOLOR; //матр. цвета узла

//***********************************************************

Matrix:array of array of integer; //матрици инцеденций

PR:array of array of Double; //параметр. матр. элементов

PC:array of array of Double;

PL:array of array of Double;

AR:array of array of integer; //подматрицы, матрици инцеденций

AC:array of array of integer;

AL:array of array of integer;

AJ:array of array of integer;

B:array of array of Double; //матр. левой части bb:array of Double;

XR,XC,XL,XJ,XL_0:array of Double; //матр. ф.п. типа потака

YR,YC,YL,YJ,YC_0:array of Double; //подматр. ф.п. типа потенц.

Y:array of Double; // матр. ф.п. типа потенц. step:real;

dim_n,dim_m:integer; //размер матрици В

MR,MC,ML,MJ:integer; //колво элементов R,C...

Clicks : byte; //колво кликов на схеме

//нужна для сохранения денных

//************************************************************

FLAGR,FLAGC,FLAGL,FLAGP,FLAGJ,flag_l1,flag_l2:Boolean;

flag_move:boolean;

COUNTR,COUNTL,COUNTC,COUNTJ,COUNTP:Byte;

temp_label,temp_el:string;

temp_value:real;

Start,Stop:TPOINT;

point_count:integer;

Matr1:array [0..39,0..39] of string; // основ. матрица связий

Matr2:array [0..39,0..39] of integer; //матрица расчета пути

MYSET:TSET;

link_color:TCOLOR;

Mouse_pos:TPOINT;

implementation

{$R *.dfm}

{$R file.res file.rc}

//***************************БЛОК 1************************* procedure TFORM1.CREATSERIES; //процедура создания серий графиков var i,k:integer;

Ser1,Ser2:TCHARTSERIES;

begin for i:=0 to MR-1 do begin

Ser1:=TLINESERIES.Create(form4);

Ser2:=TLINESERIES.Create(form4);

Form4.Chart1.ADDSERIES(Ser1);

Form4.Chart2.ADDSERIES(Ser2);

Ser1.Title:=R_el[i 1].lab.Caption;

Ser2.Title:=R_el[i 1].lab.Caption;

Ser1.Marks.Style:=SMSXVALUE;

Ser2.Marks.Style:=SMSXVALUE;

end;

k:=0;

for i:=MR to (MR MC-1) do begin

Ser1:=TLINESERIES.Create(form4);

Ser2:=TLINESERIES.Create(form4);

Form4.Chart1.ADDSERIES(Ser1);

Form4.Chart2.ADDSERIES(Ser2);

Ser1.Title:=C_el[k 1].lab.Caption;

Ser2.Title:=C_el[k 1].lab.Caption;

Ser1.Marks.Style:=SMSXVALUE;

Ser2.Marks.Style:=SMSXVALUE;

inc(k);

end;

k:=0;

for i:=(MR MC) to (MR MC ML-1) do begin

Ser1:=TLINESERIES.Create(form4);

Ser2:=TLINESERIES.Create(form4);

Form4.Chart1.ADDSERIES(Ser1);

Form4.Chart2.ADDSERIES(Ser2);

Ser1.Title:=L_el[k 1].lab.Caption;

Ser2.Title:=L_el[k 1].lab.Caption;

Ser1.Marks.Style:=SMSXVALUE;

Ser2.Marks.Style:=SMSXVALUE;

inc(k);

end;

k:=0;

for i:=(MR MC ML) to (MR MC ML MJ-1) do begin

Ser1:=TLINESERIES.Create(form4);

Ser2:=TLINESERIES.Create(form4);

Form4.Chart1.ADDSERIES(Ser1);

Form4.Chart2.ADDSERIES(Ser2);

Ser1.Title:=J_el[k 1].lab.Caption;

Ser2.Title:=J_el[k 1].lab.Caption;

Ser1.Marks.Style:=SMSXVALUE;

Ser2.Marks.Style:=SMSXVALUE;

inc(k);

end;

end;

//****************************БЛОК 4************************ procedure TFORM1.Calculate(var h:real); //процедура вычисл. матр. Y var i,j,k:integer; //h-шаг решения temp:array of Double;

begin for k:=0 to dim_m-1 do begin for i:=0 to dim_n-1 do

Y[k]:=Y[k] Matrix[i,k]*bb[i]; //Transponir Y=-A(trans)*Fi

Y[k]:=-Y[k];

end;

//******************************************* for i:=0 to MR-1 do

YR[i]:=Y[i];

k:=0;

for i:=MR to (MR MC-1) do begin

YC[k]:=Y[i];

inc(k);

end;

k:=0;

for i:=(MR MC) to (MR MC ML-1) do begin

YL[k]:=Y[i];

inc(k);

end;

k:=0;

for i:=(MR MC ML) to (MR MC ML MJ-1) do begin

YJ[k]:=Y[i];

inc(k);

end;

//***************************************** for k:=0 to MR-1 do //XR:=R(-1)*YR for j:=0 to MR-1 do if PR[k,j]0 then XR[k]:=XR[k] 1/PR[k,j]*YR[j] else XR[k]:=XR[k];

for k:=0 to ML-1 do //XL:=L(-1)*YL begin for j:=0 to ML-1 do if PL[k,j]0 then XL[k]:=XL[k] 1/PL[k,j]*YL[j] else XL[k]:=XL[k];

XL[k]:=XL[k]*h XL_0[k]; //xl_o - val on (n-1) step end;

SETLENGTH(temp,MC);

for i:=0 to MC-1 do temp[i]:=YC[i]-YC_0[i];

for k:=0 to MC-1 do //XC:=C(YC-YC_0)/h begin for j:=0 to MC-1 do

XC[k]:=XC[k] PC[k,j]*temp[j];

XC[k]:=XC[k]/h;

end;

//********************************************************** for i:=0 to ML-1 do

XL_0[i]:=XL[i];

for i:=0 to MC-1 do

YC_0[i]:=YC[i];

//*********************************************************** end;

//***************************БЛОК 5************************* function TFORM1.Gauss:boolean; //Метод Гаусса с выбором главного элемента по всей матрице (схема полного выбора). var i,j,k,m:integer;

ved_el:double;

Temp:array of array of double;

temp1:array of byte;

max,bufer:double;

col,row:integer;

usl:boolean;

begin usl:=true;

SETLENGTH(Temp,dim_n,dim_n 1);

SETLENGTH(temp1,dim_n);

for i:=0 to dim_n-1 do begin for j:=0 to dim_n-1 do

Temp[i,j]:=B[i,j];

Temp[i,dim_n]:=bb[i];

end;

//******************************** for k:=0 to dim_n-1 do begin

//************ for m:=0 to dim_n-1 do if temp1[m]=0 then max:=Temp[m,m];//find first max el

//************ for i:=0 to dim_n-1 do for j:=0 to dim_n-1 do if (temp1[i]=0) or (temp1[j]=0) then //check rows if Temp[i,j]>=max then begin max:=Temp[i,j];

col:=j;

row:=i;

end;

// change rows temp1[col]:=1;

for j:=0 to dim_n do begin bufer:=Temp[row,j];

Temp[row,j]:=Temp[col,j];

Temp[col,j]:=bufer;

end;

//********** end;

for k:=0 to dim_n-1 do if Temp[k,k]=0 then usl:=false;

if usl=true then begin

//Gauss programm ved_el :=Temp[0,0];

for j:=0 to dim_n do

Temp[0,j]:=Temp[0,j]/ved_el;

for k:=1 to dim_n-1 do begin for j:=0 to k-1 do begin ved_el:=Temp[k,j];

for m:=0 to dim_n do

Temp[k,m]:=Temp[k,m]-Temp[j,m]*ved_el;

end;

ved_el:=Temp[k,k];

for m:=0 to dim_n do

Temp[k,m]:=Temp[k,m]/ved_el;

for i:=k-1 downto 0 do begin ved_el:=Temp[i,k];

for m:=0 to dim_n do

Temp[i,m]:=Temp[i,m]-Temp[k,m]*ved_el;

end;

end;

//************************* for i:=0 to dim_n-1 do bb[i]:=Temp[i,dim_n];

end;

Gauss:=usl;

end;

//**************************БЛОК 7*************************** procedure TFORM1.Gen_matr_B(var h:real); //процедура вычисления левой части, h-шаг var i,j,k:integer;

B1,B2,B3,B4,B5,B6:array of array of real; //temp matrix begin

SETLENGTH(B,dim_n,dim_n);

SETLENGTH(B2,dim_n,dim_n);

SETLENGTH(B4,dim_n,dim_n);

SETLENGTH(B6,dim_n,dim_n);

SETLENGTH(B1,dim_n,MC);

SETLENGTH(B3,dim_n,MR);

SETLENGTH(B5,dim_n,ML);

//************************************************ for k:=0 to dim_n-1 do //Ac*C for j:=0 to MC-1 do for i:=0 to MC-1 do

B1[k,j]:=B1[k,j] AC[k,i]*PC[i,j];

for k:=0 to dim_n-1 do //B2:=(Ac*C)*trans(Ac) for j:=0 to dim_n-1 do begin for i:=0 to MC-1 do

B2[k,j]:=B2[k,j] B1[k,i]*AC[j,i]; // AC[j,i] т.к транспонир

B2[k,j]:=B2[k,j]/h; //B2/h end;

//********************** for k:=0 to dim_n-1 do //Ar*R(-1) for j:=0 to MR-1 do for i:=0 to MR-1 do if PR[i,j]0 then B3[k,j]:=B3[k,j] AR[k,i]*(1/PR[i,j]); //R(-1) for k:=0 to dim_n-1 do //B4:=(Ar*R(-1))*trans(Ar) for j:=0 to dim_n-1 do for i:=0 to MR-1 do

B4[k,j]:=B4[k,j] B3[k,i]*AR[j,i];

//*************************** for k:=0 to dim_n-1 do //Al*L(-1) for j:=0 to ML-1 do for i:=0 to ML-1 do if PL[i,j]0 then B5[k,j]:=B5[k,j] AL[k,i]*(1/PL[i,j]);

for k:=0 to dim_n-1 do //B6:=(Al*L(-1))*trans(AL) for j:=0 to dim_n-1 do begin for i:=0 to ML-1 do

B6[k,j]:=B6[k,j] B5[k,i]*AL[j,i];

B6[k,j]:=B6[k,j]/h;

end;

//**************************** for i:=0 to dim_n-1 do for j:=0 to dim_n-1 do

B[i,j]:=B2[i,j] B4[i,j] B6[i,j];

end;

//*************************БЛОК 15*************************** procedure TFORM1.Disable;

begin

TOOLBAR1.Enabled:=false;

MAINMENU1.Items[2].Items[0].Enabled:=false;

Image1.Enabled:=false;

Button1.Enabled:=true;

end;

//**************************БЛОК 16************************* procedure TFORM1.SETVAL(P:TPOINT); //процедура установки значения эл. var ch:char;

str2:string;

val1,v,code:integer;

val2:real;

begin if Pos(P)="right" then begin ch:=Matr1[P.Y,P.X 1][1];

val1:=STRTOINT(Copy(Matr1[P.Y,P.X 1],2,length(Matr1[P.Y,P.X 1])-1));

end else if Pos(P)="left" then begin ch:=Matr1[P.Y,P.X-1][1];

val1:=STRTOINT(Copy(Matr1[P.Y,P.X-1],2,length(Matr1[P.Y,P.X-1])-1));

end else if Pos(P)="up" then begin ch:=Matr1[P.Y-1,P.X][1];

val1:=STRTOINT(Copy(Matr1[P.Y-1,P.X],2,length(Matr1[P.Y-1,P.X])-1));

end else if Pos(P)="down" then begin ch:=Matr1[P.Y 1,P.X][1];

val1:=STRTOINT(Copy(Matr1[P.Y 1,P.X],2,length(Matr1[P.Y 1,P.X])-1));

end;

case ch of

"R":begin str2:=R_el[val1].lab.Caption;

val2:=R_el[val1].val;

end;

"C":begin str2:=C_el[val1].lab.Caption;

val2:=C_el[val1].val;

end;

"L":begin str2:=L_el[val1].lab.Caption;

val2:=L_el[val1].val;

end;

"J":begin str2:=J_el[val1].lab.Caption;

val2:=J_el[val1].val;

end;

end;

Form3.Edit1.Text:=str2;

Form3.Edit2.Text:=FLOATTOSTR(val2);

Form3.SHOWMODAL;

str2:=Form3.Edit1.Text;

val2:=STRTOFLOAT(Form3.Edit2.Text);

case ch of

"R":begin

R_el[val1].lab.Caption:=str2;

R_el[val1].val:=val2;

STRINGGRID4.Cells[0,val1]:=str2;

STRINGGRID4.Cells[1,val1]:=FLOATTOSTR(val2);

end;

"C":begin

C_el[val1].lab.Caption:=str2;

C_el[val1].val:=val2;

STRINGGRID4.Cells[2,val1]:=str2;

STRINGGRID4.Cells[3,val1]:=FLOATTOSTR(val2);

end;

"L":begin

L_el[val1].lab.Caption:=str2;

L_el[val1].val:=val2;

STRINGGRID4.Cells[4,val1]:=str2;

STRINGGRID4.Cells[5,val1]:=FLOATTOSTR(val2);

end;

"J":begin

J_el[val1].lab.Caption:=str2;

J_el[val1].val:=val2;

STRINGGRID4.Cells[6,val1]:=str2;

STRINGGRID4.Cells[7,val1]:=FLOATTOSTR(val2);

end;

end;

end;

unit Unit4;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, TEENGINE, Series, EXTCTRLS, TEEPROCS, Chart, STDCTRLS, Menus;

type

TFORM4 = class(TFORM)

Chart1: TCHART;

COMBOBOX1: TCOMBOBOX;

Chart2: TCHART;

COMBOBOX2: TCOMBOBOX;

MAINMENU1: TMAINMENU;

N1: TMENUITEM;

N2: TMENUITEM;

SAVEDIALOG1: TSAVEDIALOG;

N21: TMENUITEM;

Label1: TLABEL;

Label2: TLABEL;

Button1: TBUTTON;

Button2: TBUTTON;

procedure COMBOBOX1Change(Sender: TOBJECT);

procedure FORMACTIVATE(Sender: TOBJECT);

procedure COMBOBOX2Change(Sender: TOBJECT);

procedure N2Click(Sender: TOBJECT);

procedure N21Click(Sender: TOBJECT);

procedure Button1Click(Sender: TOBJECT);

procedure Button2Click(Sender: TOBJECT);

procedure FORMCLOSE(Sender: TOBJECT; var Action: TCLOSEACTION);

private

{ Private declarations } public

{ Public declarations } end;

var

Form4: TFORM4;

PROGSTOP:boolean;

implementation

{$R *.dfm} procedure TFORM4.COMBOBOX1Change(Sender: TOBJECT);

var i:integer;

begin for i:=0 to Chart1.SERIESCOUNT-1 do if i=COMBOBOX1.ITEMINDEX then Chart1.Series[i].Active:=true else Chart1.Series[i].Active:=false;

Button1.Enabled:=true;

end;

procedure TFORM4.FORMACTIVATE(Sender: TOBJECT);

var i:integer;

begin for i:=0 to Chart1.SERIESCOUNT-1 do begin

COMBOBOX1.Items.Add(Chart1.Series[i].Title);

COMBOBOX2.Items.Add(Chart2.Series[i].Title);

end;

end;

procedure TFORM4.COMBOBOX2Change(Sender: TOBJECT);

var i:integer;

begin for i:=0 to Chart2.SERIESCOUNT-1 do if i=COMBOBOX2.ITEMINDEX then Chart2.Series[i].Active:=true else Chart2.Series[i].Active:=false;

Button2.Enabled:=true;

end;

procedure TFORM4.N2Click(Sender: TOBJECT);

begin if SAVEDIALOG1.Execute then Chart1.SAVETOBITMAPFILE(SAVEDIALOG1.Files.Strings[0] ".bmp");

end;

procedure TFORM4.N21Click(Sender: TOBJECT);

begin if SAVEDIALOG1.Execute then Chart2.SAVETOBITMAPFILE(SAVEDIALOG1.Files.Strings[0] ".bmp");

end;

procedure TFORM4.Button1Click(Sender: TOBJECT);

begin if Chart1.Series[COMBOBOX1.ITEMINDEX].Marks.Visible=true then begin

Chart1.Series[COMBOBOX1.ITEMINDEX].Marks.Visible:=false;

Button1.Caption:="Показать вершины";

end else begin

Chart1.Series[COMBOBOX1.ITEMINDEX].Marks.Visible:=true;

Button1.Caption:="Скрыть вершины";

end;

end;

procedure TFORM4.Button2Click(Sender: TOBJECT);

begin if Chart2.Series[COMBOBOX2.ITEMINDEX].Marks.Visible=true then begin

Chart2.Series[COMBOBOX2.ITEMINDEX].Marks.Visible:=false;

Button2.Caption:="Показать вершины";

end else begin

Chart2.Series[COMBOBOX2.ITEMINDEX].Marks.Visible:=true;

Button2.Caption:="Скрыть вершины";

end;

end;

procedure TFORM4.FORMCLOSE(Sender: TOBJECT; var Action: TCLOSEACTION);

begin

PROGSTOP:=true;

end;

end.

Список использованных источников

1. Норенков И.П. «Введение в автоматизированное проектирование технических устройств и систем» М.: Высшая школа, 1980

2. Алексеев О.В. «Автоматизация проектирования радиоэлектронных средств» М.: Высшая школа, 2000

3. Белов В.Ф. «Автоматизация проектирования электромагнитной совместимости автономных преобразовательных систем», Саранск, Мордовский университет, 1993

Приложение

Рисунок 1 - эквивалентная схема.

Рисунок 2.1 - матрица инциденций.

-1 -1 -1

1 -1 -1 1

-1 -1 -1

1 1 1 1

Рисунок 2.2 - сохраненная матрица инциденций (экспортируется в excel-файл)

Рисунок 3 - параметры элементов.

Рисунок 4.1 - расчетные данные.

Рисунок 4.2 - расчетные данные, если используется «Авто-расчет».

Результат работы программы:

Рисунок 5 - R1_X от t.

Рисунок 6 - R1_Y от t.

Рисунок 7 - R2_X от t.

Рисунок 8 - R2_Y от t.

Рисунок 9 - R3_X от t.

Рисунок 10 - R3_Y от t.

Рисунок 11 - R4_X от t.

Рисунок 12 - R4_Y от t.

Рисунок 13 - C1_X от t.

Рисунок 14 - C1_Y от t.

Рисунок 15 - C2_X от t.

Рисунок 16 - C2_Y от t.

Рисунок 17 - C3_X от t.

Рисунок 18 - C3_Y от t.

Рисунок 19 - J1_X от t.

Рисунок 20 - J1_Y от t.

Размещено на
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?