ПриложениеА (1035706)
Текст из файла
Приложение А
Листинг программы для расчета первого полуволнового участка в режиме холостого хода.
unit Svob1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
Button1: TButton;
Chart1: TChart;
Chart2: TChart;
Chart3: TChart;
Chart4: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
Series4: TLineSeries;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Label5: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Label6: TLabel;
Label7: TLabel;
Edit8: TEdit;
Edit9: TEdit;
Label8: TLabel;
Label9: TLabel;
Edit10: TEdit;
Label10: TLabel;
Edit11: TEdit;
Label11: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
CONST
Npoint = 1000;
Frez = 22e3;
N =3;
K = 2;
//Ïåðâûé ó÷àñòîê
Vc11 = 5110; Vc12 = 3000;
E11 = 204e9; E12 = 76e9;
l1 = 60e-3;
u0 = -5e-6;
a11 = 40e-3; a12 = 30e-3;
h12 = 2*4e-3;
ro11 = 7810; ro12 = 7600;
//Âòîðîé ó÷àñòîê
Vc2 = Vc11;
E2 = E11;
a2 = a11;
ro2 = ro11;
Type
Matrix1 = array[0..N-1,0..N-1] of real;
Matrix2 = array[0..N-1,0..N-2,0..N-1] of real;
Vector1 = array[0..N-1] of real;
Graf = array[0..2,0..Npoint] of real;
VAR
M:Matrix1;
F1,F2,
alpha1,alpha2,
Vc1,E1,ro1,
l2,h11,h2: real;
procedure MakeMatrix();
var i,j:integer;
begin
for i := 0 to N-1 do
for j :=0 to N-1 do
M[i,j] := 0;
M[0,0] := Cos(alpha1*l1);
M[0,1] := -Cos(alpha2*l1);
M[0,2] := -Sin(alpha2*l1);
M[1,0] := -E1*F1*alpha1*Sin(alpha1*l1);
M[1,1] := E2*F2*alpha2*Sin(alpha2*l1);
M[1,2] := -E2*F2*alpha2*Cos(alpha2*l1);
M[2,1] := -Sin(alpha2*l2);
M[2,2] := Cos(alpha2*l2);
end;
procedure count1(h:real);
begin
h11 := h;
h2 := h11;
F1 := a11*h11+a12*h12;
F2 := a2*h2;
E1 := (a11*h11*E11+a12*h12*E12)/(a11*h11+a12*h12);
ro1 := (a11*h11*ro11+a12*h12*ro12)/(a11*h11+a12*h12); //M/S
Vc1 := sqrt(E1/ro1);
alpha1 := 2*pi*Frez/Vc1;
alpha2 := 2*pi*Frez/Vc2;
end;
function FindC (m:Matrix1;U0:real):Vector1;
var
st:string;
MM:Matrix2;
C:Vector1;
i,j,k,l:integer;
temp:real;
begin
for i := 0 to n-1 do
C[i] := 0;
C[0] := U0;
//îáíóëÿåì ìàòðèöû
for i := 0 to n-3 do
begin
for j :=0 to n-2 do
begin
st := '';
for k := 0 to n-1 do
begin
MM[i,j,k] := 0;
end;
end;
end;
//ïåðåïèñûâàåì èç çàäàíîé
for i := 0 to n-2 do
begin
MM[0,i,0] := -C[0]*m[i,0]/m[i,i+1];
for j := 1 to n-1 do
begin
if (i=(j-1)) then MM[0,i,j] := 0
else MM[0,i,j] := -m[i,j]/m[i,i+1];
end;
end;
for i := 1 to n-2 do
begin
for j := 0 to (n-i-2) do
begin
st := '';
for k := 0 to n-i-1 do
begin
MM[i,j,k] := MM[i-1,j,k] + MM[i-1,n-i-1,k]*MM[i-1,j,n-i];
end;
end;
st:='';
temp := MM[i,n-i-2,n-i-1];
for l := 0 to n-i-2 do
begin
MM[i,n-i-2,l] := MM[i,n-i-2,l]/(1-temp);
end;
end;
for i := 1 to n-1 do
begin
for j :=1 to i-1 do
begin
C[i]:= C[i]+(MM[n-i-1,i-1,j]*C[j]);
end;
C[i]:= C[i]+MM[n-i-1,i-1,0];
end;
FindC:= C;
end;
function Nk(l:real):real;
var cc:Vector1;
begin
l2:=l;
MakeMatrix();
cc:=FindC(M,u0);
Nk:=E2*F2*alpha2*(-cc[1]*Sin(alpha2*l2)+cc[2]*Cos(alpha2*l2));
end;
function Uk():real;
var cc:Vector1;
begin
cc:=FindC(M,u0);
Uk:=cc[1]*Cos(alpha2*l2)+cc[2]*Sin(alpha2*l2);
end;
function FindRez (m:Matrix1;lbeg:real;lenth:real):real;
var i:integer;
accur,xA,xB,x0,tmpdet:real;
begin
i :=0;
accur := 1e-8;
x0:=0;
tmpdet:=2*accur;
xA := lbeg;
xB := lbeg+lenth;
while ((Abs(tmpdet)>accur)and(i<10000)) do
begin
x0 := (xA+xB)/2;
tmpdet := Nk(x0);
if (tmpdet*Nk(xB)<0) then xA := x0
else
begin
xB := x0;
i:=i+1;
end;
end;
FindRez := x0;
end;
function Graf1 (c:Vector1):Graf;
var
rez:Graf;
shag:real;
i:integer;
begin
shag := (l2)/Npoint;
for i := 0 to Npoint do
begin
if(i*shag<=l1) then
begin
rez[0,i]:=F1;
rez[1,i]:=c[0]*Cos(alpha1*i*shag);
rez[2,i]:=-c[0]*E1*F1*alpha1*Sin(alpha1*i*shag);
end;
if ((i*shag>l1)and(i*shag<=l2)) then
begin
rez[0,i]:=F2;
rez[1,i]:=c[1]*Cos(alpha2*i*shag)+c[2]*Sin(alpha2*i*shag);
rez[2,i]:=E2*F2*alpha2*(c[2]*Cos(alpha2*i*shag)-c[1]*Sin(alpha2*i*shag));
end;
end;
Graf1 := rez;
end;
procedure MakeK();
var
h,k1:real;
i:integer;
begin
i:=0;
count1(1.0e-3);
l2 := FindRez(M,l1,100e-3);
k1 := Uk()/u0;
while (abs(abs(k1/K)-1)>0.01)and(i<10000) do
begin
h := h11+0.01e-3;
count1(h);
l2 := FindRez(M,l1,100e-3);
k1 := Uk()/u0;
i:=i+1;
end;
l2 := FindRez(M,l1,100e-3);
end;
procedure plot (rez:Graf);
var
shag,zmax,SigmaMax:real;
i:integer;
begin
zmax:=0;
SigmaMax:=0;
shag := (l2)/Npoint;
for i := 0 to Npoint-1 do
begin
Form1.Chart1.SeriesList[0].AddXY(i*shag,rez[0,i]*1e6);
Form1.Chart2.SeriesList[0].AddXY(i*shag,rez[1,i]*1e6);
Form1.Chart3.SeriesList[0].AddXY(i*shag,rez[2,i]*1e-3);
Form1.Chart4.SeriesList[0].AddXY(i*shag,1e-6*rez[2,i]/rez[0,i]);
if (abs(1e-6*rez[2,i]/rez[0,i])>SigmaMax) then
begin
SigmaMax:= abs(1e-6*rez[2,i]/rez[0,i]);
zmax:=i*shag;
end;
end;
Form1.Edit8.Text:=currtostr(zmax);
Form1.Edit9.Text:=currtostr(SigmaMax);
Form1.Edit10.Text:=currtostr(abs(rez[1,(Npoint-2)]/u0));
end;
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
count1(h11);
MakeK();
plot (Graf1(FindC(M,u0)));
Form1.Edit1.Text:=currtostr(E1);
Form1.Edit2.Text:=currtostr(ro1);
Form1.Edit3.Text:=currtostr(Vc1);
Form1.Edit4.Text:=currtostr(l2);
Form1.Edit5.Text:=currtostr(l2-l1);
Form1.Edit6.Text:=currtostr(F1*1e6);
Form1.Edit7.Text:=currtostr(F2*1e6);
form1.Edit11.Text:=currtostr(h11);
end;
end.
33
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















