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

Тип работы:
Отчет
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

ФГБОУ ВПО «Мордовский государственный университет

им. Н.П. ОГАРЕВА"

Факультет математики и информационных технологий

Кафедра систем автоматизированного проектирования

ОТЧЕТ

о прохождении производственной практики

студента 5-го курса

факультета математики и информационных технологий

(спец. прикладная математика и информатика)

группа 503

Шишканова П. В.

Отчет принял

д.т.н., профессор В.Ф. Белов

Саранск 2013

Содержание

Введение

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

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

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

4. Листинг программы

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

Приложение

Введение

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

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

1) Рассмотреть принципиальные электрические схемы;

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

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

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

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

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

(1. 1)

где — транспонированная матрица.

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

,

Матрицу инциденций также удобно разделить на подматрицы:

,

где АC - подматрица инцинденций узлов и ёмкостных ветвей; 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 и по компонентным уравнениям вычисляем Iп. Следовательно получены все численные результаты для выполнения нового (п+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, XL0: array of Double; //матр. ф.п. типа потака

YR, YC, YL, YJ, YC0: 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+XL0[k]; //xl_o — val on (n-1) step

end;

SetLength (temp, mC);

for i: =0 to mC-1 do

temp[i]: =YC[i]-YC0[i];

for k: =0 to mC-1 do //XC: =C (YC-YC0)/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

XL0[i]: =XL[i];

for i: =0 to mC-1 do

YC0[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.

ПоказатьСвернуть
Заполнить форму текущей работой