Разработка системы управления асинхронным двигателем с детальной разработкой программ при различных законах управления
Рефераты >> Технология >> Разработка системы управления асинхронным двигателем с детальной разработкой программ при различных законах управления

Xp:=Xeh-Xp;Yp:=Yeh+Yp;

Line(Xeh,Yeh,Xp,Yp);

Xp:=round(LengthPoint*Kx*Cos(Pi/180*(AVAngle-10)));

Yp:=round(LengthPoint*Sin(Pi/180*(AVAngle-10)));

Xp:=Xeh-Xp;Yp:=Yeh+Yp;

Line(Xeh,Yeh,Xp,Yp);

OutTextXY(Xeh+4,Yeh,Name);

end;

{ Функция ввода числа с клавиатуры в графическом режиме }

function NumberInput(What:string):integer;

var InputChar:char;

number:integer;

begin

SetActivePage(1);SetVisualPage(1);

SetColor(round(GetMaxColor*0.8));What:=What+' :';

OutTextXY(0,GetMaxY-80,What);Number:=0;MoveTo(120,GetMaxY-80);

Repeat

InputChar:=ReadKey;

if (InputChar>'/') and (InputChar<':') then

begin

Number:=Number*10-48+ord(InputChar);

OutText(InputChar);

end;

Until ord(InputChar)=13;

SetColor(GetMaxColor);SetBkColor(0);

SetViewPort(0,GetMaxY-80,300,GetMaxY-72,True);

ClearViewPort;NumberInput:=Number;

SetViewPort(0,0,GetMaxX,GetMaxY,True);

SetActivePage(0);

end;

{ Процедура вывода на экран в заданную позицию (X,Y)

заданного текста (TextString) заданным цветом (Col) }

procedure TextOut(X,Y:integer;Col:real;TextString:string);

begin

SetColor(round(Col*GetMaxColor));

OutTextXY(X,Y,TextString);

end;

{ Процедура графической копии экрана }

procedure CopyToPRN;

var x1,x2,y1,y2:integer;

Bk1,Bk2,Mode:Byte;

Inverse:Boolean;

procedure SetPoints;

begin

x1:=0;x2:=GetMaxX;

y1:=0;y2:=GetMaxY;

Bk1:=0;Bk2:=0;

Inverse:=False;

Mode:=1;

end;

{ X1,Y1,X2,Y2 - the size of output screen }

{ Bk1,Bk2 - the colours of the both backgrounds }

{ Inverse - normal (false) or invert (true) colour of the printing copy }

{ Mode: 1 - double density 120 points/inch }

{ 2 - high speed 120 points/inch }

{ 3 - high density 240 points/inch }

{ 0, 4, 5 - 80 points/inch }

{ 6 - 90 points/inch }

{ For nonFX EPSON - printers Mode = 1 }

var ScanLine:integer;{ current printing string }

n1,n2 :Byte; { special data for printer }

{ The construction of the byte for the printing graphics }

function ConstructByte(x,y:integer):byte;

const bits:array[0 7] of byte=(128,64,32,16,8,4,2,1);

var p :word; { the colour of the pixel }

CByte,Bit:byte; { byte and the bites number }

YY :integer; { the state of the current pixel }

begin

CByte:=0;

for Bit:=0 to 7 do

begin

YY:=Y+Bit;

P:=GetPixel(X,YY);

if (YY<=Y2) and (P<>bk1) 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<Y2 do

begin

if KeyPressed and (ReadKey=#27) then Goto Quit;

DoLine;

Inc(ScanLine,8);

end;

quit:Write(Lst,#27#2);

end;

{ Определение знака выражения }

function Sgn(v:real):integer;

begin

if v<0 then Sgn:=-1

else

Sgn:=1;

if v=0 then Sgn:=0;

end;

{ Функция расчета времени счета }

function DefTime:string;

var cw,mw,sw,sdw:word;

cs,ms,ss,sds:string;

begin

GetTime(cw,mw,sw,sdw);

str(cw,cs);str(mw,ms);str(sw,ss);str(sdw,sds);

DefTime:=cs+':'+ms+':'+ss+'.'+sds;

end;

{ Процедура вывода на экран времени счета }

procedure TimeOut;

var ST:string;

begin

ST:=' Время счета : '+DefTime;

GoToXY(10,10);

Write(ST);

end;

procedure PrintPausa;

var c:char;

begin

Repeat c:=ReadKey

Until ((c='P') or (c='p') or (c<>''));

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” программа предложит ввести значение напряжения двигателя.


Страница: