![]() |
|
|
Разработка системы управления асинхронным двигателем с детальной разработкой программ при различных законах управленияInternational, 1989 Dutton F. Turbo Pascal Toolbox. - SYBEX, 1988 Токарев Б. Ф. Электрические машины. Учеб. пособие для вузов. - М: Энергоатомиздат, 1990: - 642 с.: ил. Цифровые и аналоговые интегральные микросхемы: Справочник / С. В. Якубовский, Л. И. Ниссельсон, В. И. Кулешова и др.; Под ред. С. В. Якубовского. - М.: Радио и связь, 1989. - 496 с.: ил. Полупроводниковые БИС запоминающих устройств. Под ред. А. Ю. Гордонова и Ю. А. Дьякова. - М.: Радио и связь, 1986. - 360 с. Булгаков А. А. Частотное управление асинхронным двигателем - М.: Энергоиздат, 1982. - 216 c. Бойко В.А., Голинько В. И., Фрундин В. Е. Методические указания по выполнению раздела "Охрана труда и окружащей среды" в дипломных проектах студентов специальностей 0303, 0606, 0628 /ДГИ. - Днепропетровск, 1986. - 50 с. Ю.Г.Сибаров, Н.Н.Сколотнев. Охрана труда в вычислительных центрах. - М: Машиностроение, 1985 Липаев В.В., Потапов А. И. Оценка затрат на разработку программных средств. - М.: Финансы и статистика, 1988. - 224 c.: ил. Боэм Б. У. Инженерное проектирование программного обеспечения.: Пер. с англ. - М.: Радио и связь. 1985. - 512 c. Методические указания по составлению экономической части дипломного проекта для студентов специальностей "Автоматика и управление в технических системах" (21.01) и "Электропривод и автоматизация промышленных установок и технологических комплексов" (21.05) / Сост.: В. Д. Тулупий, А. В. Давидайтис, И. В. Шереметьева. - Днепропетровск: ДГИ, 1992. - 52 c. Сандлер А. С., Гусяцкий Ю. М. Тиристорные инверторы с широтно - импульсной модуляцией. - .: Энергия, 1968 - 96 с. Кривицкий С. О., Эпштейн И. И. Динамика частотно - регулируемых электроприводов с автономными инверторами. - М.: Энергия, 1970. - 150 c. ПРИЛОЖЕНИЯ |Обозначение |Наименование |Примечание | | |документация | | | |Текст программы |Текст программы с | | | |комментариями | | |Описание программы |Описание, назначение и| | | |характеристика | | | |программы | | |Руководство оператора | | {ИСХОДНЫЙ ТЕКСТ ПРОГРАММЫ IM_Main.PAS} {$IFDEF CPU87} {$N+} {$ELSE} {$N-} {$ENDIF} { Программа расчета векторной диаграммы асинхронного двигателя } program lw(lw); uses crt,dos,graph,im_tpu; const {Параметры "Г-образной схемы замещения} p=2; {Число полюсов} P2n=75; {Номинальная мощность, кВт} U1n=220; {Номинальное фазное напряжение, В} KPDn=0.925; {Номинальный КПД} Cosn=0.89; {Номинальный Cos(f)} Sn=0.016; {Номинальное относительное скольжение, о.е.} Smax=0.1; {Критическое относительное скольжение, о.е.} J=0.6; {Момент инерции ротора, кг*м^2} X0=4.6; {Сопротивление взаимоиндукции, о.е.} R1=0.037; {Активное сопротивление статора, о.е.} X1=0.1; {Индуктивное сопротивление статора, о.е.} R2=0.017; {Активное сопротивление ротора, о.е.} X2=0.16; {Индуктивное сопротивление ротора, о.е.} R2p=0.036; {Пусковое сопротивление ротора, о.е.} Mn=9550*P2n/(3e3/p*(1-Sn));{Номинальный момент, н*м} Mmin=1*Mn; {Значение минимального момента, н*м} Mmax=2.5*Mn; {Значение критического момента, н*м} type StringSwitche=(ST11,ST12,ST13,ST14,ST15,ST16,ST17,DATA1,DATA2, ST21,ST22,ST23,ST24,ST25,ENDT1,ENDT2); var t,dt,U1a,U1b,M,A1,A2,K1,K2,L11,L21,L1,L2,L0,W1,EndT,SpeedScale, I0a,I0b,I1a,I1b,I21a,I21b,KPD,CosF,I1,I21,W0,Psi1,Psi2,Psi0,s,I0, I1n,X1t,R1t,X0t,R2t,X2t,R2pt,Smin:real; RepeatNumber,CurrentNumber,CurrentRepeat,i,k,Ms,Uss,PsiAlpha,IsAlpha, IsPsirAlpha,PsisRAngle,UssAbsoluteAngle,PsirRAngle,IsRAngle,IrsRAngle, PsioRAngle,Fs:integer; x,f,h,f1,f2,f3,f4:array[1..5] of real; StringKPD,StringPsiAlpha,StringIsAlpha,StringIsPsirAlpha,StringCurrW, StringAlphaRasch,StringIs,StringCosF, VectorString,VectorString0:string; color:word; Result:text; {Пересчет паспортных данных в абсолютные единицы "Т"-образной схемы} procedure ReCalculation; var b:real; begin I1n:=P2n*1e3/(3*U1n*Cosn*KPDn); {Номинальный фазный ток} X1t:=2*X1*X0/(X0+Sqrt(Sqr(X0)+4*X1*X0))*U1n/I1n; R1t:=R1*X1t/X1; {Сопротивления статора, Ом} X0t:=X0*U1n/I1n;{Сопротивление взаимоиндукции, Ом} R2t:=R2*U1n/I1n; X2t:=X2*U1n/I1n;{Сопротивления ротора, Ом} R2pt:=R2p*U1n/I1n; b:=R1/R2*Smax; Smin:=Smax/Mmin*((1+b)*Mmax-b*Mmin+SqRt((1+b)*(Mmax-Mmin)*((1- b)*Mmin+(1+b)*Mmax))); end; { Дифференциальные уравнения АД в двухфазной системе координат (a,b), неподвижной относительно статора } procedure Right_Part; begin if s>smin then A2:=(R2t+(R2pt-R2t)*(S-Smin)/(1-Smin))/L21 else A2:=R2t/L21; U1a:=Uss*cos(W1*t); U1b:=Uss*sin(W1*t); f[1]:=U1a-A1*x[1]+A1*K2*x[3]; f[2]:=U1b-A1*x[2]+A1*K2*x[4]; f[3]:=A2*(K1*x[1]-x[3])-x[5]*x[4]; f[4]:=A2*(K1*x[2]-x[4])+x[5]*x[3]; M:=3/2*p*L0/(L1*L11)*(x[2]*x[3]-x[1]*x[4]); f[5]:=p/J*(M-Ms); S:=(W1-x[5])/W1; end; { Модифицированный метод Рунге-Кутта 4-го порядка } procedure Runge; begin for k:=1 to 5 do h[k]:=x[k]; Right_Part; for k:=1 to 5 do begin f1[k]:=f[k]; x[k]:=h[k]+f1[k]*dt/2; end; Right_Part; for k:=1 to 5 do begin f2[k]:=f[k]; x[k]:=h[k]+f2[k]*dt/2; end; Right_Part; for k:=1 to 5 do begin f3[k]:=f[k]; x[k]:=h[k]+f3[k]*dt; end; Right_Part; for k:=1 to 5 do begin f4[k]:=f[k]; x[k]:=h[k]+(f1[k]+2*f2[k]+2*f3[k]+f4[k])/6*dt; end; end; { Инициализация графики } procedure Init_Graph; var GraphDriver,GraphMode:integer; i:integer; color:word; begin GraphDriver:=0; DetectGraph(GraphDriver,GraphMode); if GraphMode>1 then GraphMode:=1; InitGraph(GraphDriver,GraphMode,'e:\tp\bgi'); color:=GetMaxColor; TextMode(1); Writeln; Writeln(' Graph Initialisate And ',GraphErrorMsg(GraphResult)); Writeln; Writeln(' Use: GraphMode - ',GetModeName(GraphMode)); Writeln(' GraphDriver - ',GetDriverName); Writeln; Writeln(' The Number Of Using Colors :',GetMaxColor); for i:=1 to 4 do Writeln; Writeln(' Параметры АД:'); Writeln; Writeln(' As =',A1:6,' Ar =',A2:6); Writeln(' Ks =',K1:6,' Kr =',K2:6); Writeln(' Ls`=',L11:6,' Lr`=',L21:6); for i:=1 to 7 do Writeln; Writeln(' Press Any Key To Continue'); pausa; SetGraphMode(GraphMode); end; { Процедура подготовки к цифровому моделированию по паспортным данным двигателя } procedure Prepeare; var HelpVariable:integer; begin W1:=2*Pi*Fs;W0:=W1/p; L0:=1.5*X0t/W1;L1:=X1t/W1;L2:=X2t/W1; L1:=L1+L0;L2:=L2+L0; K2:=L0/L2;K1:=L0/L1; L11:=L1-sqr(L0)/L2;L21:=L2-sqr(L0)/L1; A1:=R1t/L11;A2:=R2t/L21; for HelpVariable:=1 to 5 do begin f[HelpVariable]:=0; x[HelpVariable]:=0; end; end; { Процедура расчета угов векторов } procedure AngleDefinition; begin UssAbsoluteAngle:=AbsoluteAngle(U1a,U1b); PsisRAngle:=AbsoluteAngle(x[1],x[2])-UssAbsoluteAngle; if PsisRAngle0 then KPD:=abs(M*Fs*4*Pi/(3*p*Uss*I1)); Str(Uss:5,StringPsiAlpha);Str(IsAlpha,StringIsAlpha); Str(KPD:5:3,StringKPD);Str(IsPsirAlpha,StringIsPsirAlpha); Str(s:6:4,StringAlphaRasch);Str(x[5]/p:5:1,StringCurrW); Str(I1:6:2,StringIs);Str(CosF:4:2,StringCosF); SetViewPort(184,20,240,30,False);ClearViewPort;SetViewPort(304,20,368,30,Fal se);ClearViewPort; SetViewPort(400,20,472,30,False);ClearViewPort;SetViewPort(576,20,638,30,Fal se);ClearViewPort; SetViewPort(184,40,248,50,False);ClearViewPort;SetViewPort(296,40,368,50,Fal se);ClearViewPort; SetViewPort(400,40,472,50,False);ClearViewPort;SetViewPort(576,40,638,50,Fal se);ClearViewPort; SetViewPort(0,0,GetMaxX,GetMaxY,True); OutTextXY(192,20,StringPsiAlpha);OutTextXY(312,20,StringIsAlpha); OutTextXY(408,20,StringKPD);OutTextXY(584,20,StringIsPsirAlpha); OutTextXY(192,40,StringAlphaRasch);OutTextXY(312,40,StringCurrW); OutTextXY(408,40,StringIs);OutTextXY(584,40,StringCosF); PressKeyAnalysis; end; end; { Процедура формирования заголовка файла } procedure FileHead; begin Assign(Result,'lw.res'); Rewrite(Result); Writeln(Result,GetVectorString(ST11));Writeln(Result,GetVectorString(ST12)); Write(Result,GetVectorString(ST13));Writeln(Result,GetVectorString(ST21)); Write(Result,GetVectorString(ST14));Writeln(Result,GetVectorString(ST22)); Write(Result,GetVectorString(ST15));Writeln(Result,GetVectorString(ST23)); Write(Result,GetVectorString(ST16));Writeln(Result,GetVectorString(ST24)); Write(Result,GetVectorString(ST17));Writeln(Result,GetVectorString(ST25)); end; { Основная программа } begin ReCalculation; ClrScr;Writeln; TextColor(10);WriteLn(' Программа расчета и вывода векторной диаграммы А.Д.'); TextColor(12);Writeln(' Для IBM PC/XT/AT/PS-2 с ОЗУ экрана 256/512 Кб'); for i:=0 to 4 do Writeln;TextColor(15); Write('Введите время окончания работы двигателя: ');Readln(EndT); Write('Введите частоту питающей сети (Гц): ');Readln(Fs); t:=0;dt:=1e-4;Ms:=0;Uss:=round(310*Fs/50); FileHead;Prepeare;Init_Graph;TextMode(2); SetActivePage(0);SetVisualPage(0); Scale(1.5*W0,-1.5*W0,EndT,'t,c','W,рад/с'); SetColor(round(GetMaxColor*0.7)); OutTextXY(66,8,'Программа расчета векторной диаграммы и некоторых параметров А.Д.'); SetColor(round(GetMaxColor*0.9)); OutTextXY(112,20,'PsiAlpha:');OutTextXY(240,20,'IsAlpha:'); OutTextXY(368,20,'KPD:');OutTextXY(496,20,'IsPrAlpha:'); OutTextXY(96,40,'RelSkRasch:');OutTextXY(256,40,'CurrW:'); OutTextXY(376,40,'Is:');OutTextXY(536,40,'CosF:'); SetViewPort(0,0,GetMaxX,GetMaxY,True); color:=GetMaxColor;SetColor(color); Model; Quit; end. { ИСХОДНЫЙ ТЕКСТ МОДУЛЯ СЕРВИСНЫХ ПРОЦЕДУР И ФУНКЦИЙ } Unit Im_tpu; Interface uses graph,dos,crt,printer; type string4=string[4]; procedure pausa; procedure Scale(Ymax,Ymin,Tmax:real;XText,YText:string); function AbsoluteAngle(AComponent,BComponent:real):integer; procedure PutVector(Xb,Yb,MVector,AVector,Col:real;Name:string4); function NumberInput(What:string):integer; procedure TextOut(X,Y:integer;Col:real;TextString:string); procedure CopyToPRN; function Sgn(v:real):integer; function DefTime:string; procedure TimeOut; procedure PrintPausa; Implementation { Пауза до первой нажатой клавиши } procedure pausa; begin Repeat Until ReadKey<>#0 end; { Вывод на экран системы координат } procedure Scale(Ymax,Ymin,Tmax:real;XText,YText:string); var Ybeg,Ystep,Tstep,t1:real; ScaleGrad:string; Col:word; SDrawX,SDrawY,HelpVar,GDriver,GMode:integer; begin DetectGraph(GDriver,GMode);GMode:=1; InitGraph(Gdriver,GMode,''); SetBkColor(0);SetColor(GetMaxColor); Col:=GetMaxColor;PutPixel(0,0,Col); LineTo(GetMaxX,0);LineTo(GetMaxX,GetMaxY); LineTo(0,GetMaxY);LineTo(0,0); for SDrawX:=1 to 19 do for SdrawY:=1 to 19 do PutPixel(SdrawX*GetMaxX div 20,SdrawY*GetMaxY div 20,col); SetTextStyle(0,0,1); if Ymin0 then IntAngle:=round(180/Pi*ArcTan(BComponent/AComponent)); if AComponent=0 then begin if BComponent>0 then IntAngle:=90 else IntAngle:=-90; end else if BComponent=0 then begin if AComponent>0 then IntAngle:=0 else IntAngle:=180; end else if ((AComponent>0) and (BComponent>0)) or (AComponent>0) and (BComponent'/') and (InputCharbk1) and (P<>bk2) then Inc(CByte,Bits[Bit]); end; ConstructByte:=CByte; end; { The graphics string output } procedure DoLine; var XPixel :integer; { the current X - position } PrintByte:byte; { the byte, which code 8 pixels } begin if Mode=1 then Write(Lst,#27'L') else Write(Lst,#27'*',chr(mode)); Write(Lst,chr(n1),chr(n2)); for XPixel:=X1 to X2 do begin PrintByte:=ConstructByte(XPixel,ScanLine); if Inverse then PrintByte:=not PrintByte; Write(Lst,chr(PrintByte)); end; Write(Lst,#10); end; label quit; begin SetPoints; mode:=mode mod 7; if mode in [0,5] then mode:=4; Write(Lst,#27'3'#24); n1:=Lo(succ(X2-X1));n2:=Hi(succ(X2-X1)); ScanLine:=Y1; while ScanLine'')); Case c of 'P','p':CopyToPRN else end end; end. АННОТАЦИЯ Данный документ "РАЗРАБОТКА ПРОГРАММЫ" представляет собой описание программного обеспечения моделирования работы асинхронного двигателя. Документ включает в себя такие сведения о программе, как функциональное назначение программы, используемые технические средства, описание алгоритма программы, и т. д. СОДЕРЖАНИЕ Стр. 1. ОБЩИЕ СВЕДЕНИЯ 2. ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ 3. ОПИСАНИЕ УПРАВЛЯЮЩЕГО АЛГОРИТМА 4. ИСПОЛЬЗУЕМЫЕ ТЕХНИЧЕСКИЕ СРЕДСТВА 5. ВЫЗОВ И ЗАГРУЗКА 6. ВХОДНЫЕ ДАННЫЕ 7. ВЫХОДНЫЕ ДАННЫЕ 1. ОБЩИЕ СВЕДЕНИЯ Программное обеспечение поставляется в виде пакета программ “AD”, состоящего из четырех файлов: IM_MAIN.EXE GRAPH.TPU IM_TPU_.TPU EGAVGA.BGI Для функционирования программы необходимо наличие IBM-совместимого компьютера с ОЗУ экрана 512кБ. Программа управления разработана на языке Паскаль и скомпилирована в исполняемый файл с помощью встроенного компилятора. 2. ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ Программа управления предназначена для моделирования работы асинхронного двигателя. Программа позволяет управлять режимами работы двигателя, изменять параметры во время работы и вести статистику работы двигателя путем записи результатов в файл. 3. ОПИСАНИЕ УПРАВЛЯЮЩЕГО АЛГОРИТМА Описание управляющего алгоритма производится в порядке, соответствующем нумерации блоков в управляющей программе. Схема алгоритма управляющей моделирования в приведена на листе графической части. 4. ИСПОЛЬЗУЕМЫЕ ТЕХНИЧЕСКИЕ СРЕДСТВА Для функционирования программы необходимо наличие IBM-совместимого компьютера с видеопамятью не менее 512кБ. Так как программа предполагает вывод данных о моделировании на печать необходимо наличие принтера типа EPSON. 5. ВЫЗОВ И ЗАГРУЗКА Исполняемым файлом в пакете программ “АД” является файл IM-MAIN.EXE. После запуска программа выдает краткую информацию о ее разработчиках и предлагает ввести пользователю рабочую частоту и время моделирования его работы (в секундах). Затем начинается процесс моделирования. На экране появляются оси координат: по оси абсцисс - время (t,c), по оси ординат - угловая скорость (w, рад/c). Во время своей работы программа выводит график зависимости w(t). Моделирование ведется в реальном масштабе времени. В процессе моделирования работы двигателя у пользователя имеется возможность изменять некоторые его параметры, для этого зарезервированы “горячие” клавиши: U - изменить напряжение; М - изменить момент на валу. При нажатии “M” программа предложит ввести значение момента на валу двигателя. При нажатии “U” программа предложит ввести значение напряжения двигателя. При ошибочном вводе любых значений пользователь в любой момент может отменить введенные числа путем нажатия клавиши “ESC”. Также в процессе моделирования пользователю доступны следующие клавиши: W - запись результатов в файл; P - печать результатов моделирования; Q - немедленный выход из программы. При нажатии на клавишу “W” программа сохраняет результаты моделирования в файле TW.RES. При нажатии на клавишу “P” программа инициализирует принтер и начинает выводить графический образ экрана и результаты на бумагу. При помощи клавиши “Q” можно немедленно покинуть программу, при этом результаты работы не будут сохранены. По истечении времени моделирования, заданного пользователем, программа автоматически записывает протокол своей работы в файл TW.RES, если в процессе работы этого не сделал пользователь. Результаты оформлены в виде таблицы. При возникновении затруднений в процессе работы с программой пользователь в любой момент может нажать клавишу “F1” для получения справки. 6. ВХОДНЫЕ ДАННЫЕ Входными данными для программы являются: . рабочая частота; . время моделирования его работы (в секундах). Остальные параметры двигателя жестко оговорены в самой программе и выводятся экран при ее запуске. 7. ВЫХОДНЫЕ ДАННЫЕ Выходными данными программы являются: . график зависимости w(t); . частота вращения вала двигателя; . момент на валу двигателя; . КПД; . коэффициент мощности; . питающее напряжение; . сообщения об ошибках программы. Протокол работы программы IM-MAIN.EXE Параметры АД: Время моделирования: 1 с Частота питающей сети: 50 Гц As = 4.5E+0001 Ar = 2.1E+0001 Ks = 9.9E-0001 Kr = 9.8E-0001 Ls`= 1.3E-0003 Lr`= 1.3E-0003 [pic] Рис.1(а) [pic] Рис. 1(б) [pic] Рис. 1(в) [pic] Рис.2(а) [pic] Рис. 2(б) [pic] Рис. 3(а) [pic] Рис. 3(б) АННОТАЦИЯ Данный программный документ представляет собой описание программного обеспечения моделирования работы асинхронного двигателя. Документ включает в себя такие сведения о программе как функциональное назначение программы, условия выполнения и т. п. СОДЕРЖАНИЕ Стр. 1. НАЗНАЧЕНИЕ ПРОГРАММЫ 2. УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ 3. ВЫПОЛНЕНИЕ ПРОГРАММЫ 4. СООБЩЕНИЯ ОПЕРАТОРУ 1. НАЗНАЧЕНИЕ ПРОГРАММЫ Программа предназначена для моделирования работы асинхронного двигателя. Программа позволяет управлять режимами работы двигателя, изменять параметры во время работы и вести статистику работы двигателя путем записи результатов в файл. 2. УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ Для функционирования программы необходимо наличие IBM-совместимого компьютера не хуже PC AT 286 с видеопамятью не менее 512кБ. Так как программа предполагает вывод данных о моделировании на печать необходимо наличие принтера типа EPSON. 3. ВЫПОЛНЕНИЕ ПРОГРАММЫ После запуска программа выдает краткую информацию о ее разработчиках и предлагает ввести пользователю рабочую частоту и время моделирования его работы (в секундах). Затем начинается процесс моделирования. На экране появляются оси координат: по оси абсцисс - время (t,c), по оси ординат - угловая скорость (w, рад/c). Во время своей работы программа выводит график зависимости w(t). Моделирование ведется в реальном масштабе времени. В процессе моделирования работы двигателя у пользователя имеется возможность изменять некоторые его параметры, для этого зарезервированы “горячие” клавиши: U - изменить напряжение; М - изменить момент на валу. При нажатии “M” программа предложит ввести значение момента на валу двигателя. При нажатии “U” программа предложит ввести значение напряжения двигателя. При ошибочном вводе любых значений пользователь в любой момент может отменить введенные числа путем нажатия клавиши “ESC”. Также в процессе моделирования пользователю доступны следующие клавиши: W - запись результатов в файл; P - печать результатов моделирования; Q - немедленный выход из программы. При нажатии на клавишу “W” программа сохраняет результаты моделирования в файле TW.RES. При нажатии на клавишу “P” программа инициализирует принтер и начинает выводить графический образ экрана и результаты на бумагу. При помощи клавиши “Q” можно немедленно покинуть программу, при этом результаты работы не будут сохранены. По истечении времени моделирования, заданного пользователем, программа автоматически записывает протокол своей работы в файл TW.RES, если в процессе работы этого не сделал пользователь. Результаты оформлены в виде таблицы. При возникновении затруднений в процессе работы с программой пользователь в любой момент может нажать клавишу “F1” для получения справки. 4. СООБЩЕНИЯ ОПЕРАТОРУ Для оперативного контроля за процессом моделирования работы АД предусмотрен вывод графической зависимости w(t) на экран график зависимости w(t), частоты вращения вала двигателя, момента на валу двигателя, КПД, коэффициента мощности, питающего напряжения. Пользователь также получает информацию о неправильно введенных с клавиатуры данных. ----------------------- Значения параметров zFN xMF yMF xn N zn M yn yc F M yMF yMW xMW xMF xc xd W F 2( Д P zn xnPT xn T 2 (6 20 (16 lp=5 lx=5 3 3 14 18 3 2 2 1 1 2 (4.2 2 lp=34 lx=34 35 3 2 2 1 1 (22 2 2 lp=37 lx=37 M5x1 30 2 1 1 2 2 lp=32 lx=32 2 Xc А Xд M W 1 2 3 20 5 Yc Yд 4 А 70 А--А 75 3отв.М5 (45 R60 R45 170 R10 R10 140 А w 170 190 210 220 210 170 140 150 170 Zc Zu 3 4 1 2 2 (42 M5 (22 3отв.М5 Xc zД Страницы: 1, 2, 3, 4, 5, 6, 7, 8 |
|
|||||||||||||||||||||||||||||
![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |