Моделирование работы электродвигателя

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?тераций за которое должен совершиться период колебания, а в итерационный процесс добавлена формула расчета управляющего напряжения upr:=Uupr*sin(2*pi*c/t1).

Листинг ПО представлен в приложении 2.

 

 

3. Вызов и загрузка

 

Вызов программы modelDPR52 осуществляется при помощи запуска файла modelDPR52.exe. Загрузка modelDPR52 и включение ее вычислительный процесс осуществляется при помощи штатных средств операционной системы Windows.

Входные и выходные данные.

Входными параметрами для ПО являются: модель электродвигателя и его конструктивные параметры (был выбран двигатель ДПР52), время моделирования (от 0 до 10 секунд) , а также вид и параметры управляющего напряжения(были выбраны следующие виды управляющих напряжений:1-линейновозрастающее напряжение (задается время к которому входное напряжение будет равно напряжению питания) , 2-синусоидальный сигнал (период от 0.001 с до 10 секунд), 3-ступенчатое воздействие и 4 - напряжение возрастающее по параболе (задается время к которому входное напряжение будет равно напряжению питания)). Напряжение питание задается в диапазоне от 0 до 60 вольт.

Двигатель ДПР52Н1 имеет следующие конструктивные параметры:

Электромеханическая постоянная времени - 0.017 с.

Номинальная частота вращения - 4500 об/мин.

Номинальный крутящий момент - 0.0098 кг.с.

Номинальный ток якоря - 0.26 А.

Номинальное напряжение питания - 27 В.

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

 

программа электродвигатель данные листинг

Список использованной литературы

 

1. Delphi7. Учебный курс / С.И. Бобровский. - СПБ.: Питер, 2004 - 736с.

. Delphi в задачах и примерах. /Н.Б. Культин. - СПБ.: БХВ-Питербург, 2003.-288 с.:ил.

. Теория систем автоматического регулирования / В.А. Бесекерсикй. - Москва: Наука, 1975 - 768с.

. Микроэлектродвигатели для систем автоматики. Технический справочник под редакцией Э.А. Лодочникова.- Москва: Энергия, 1969г-272с.

 

 

Приложения

 

Приложение 1. Результаты моделирования.

 

 

 

Приложение 2.- Листинг программы

 

unit Unit1; объявление модуля

interface

uses объявление используемых модулей

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;описание формы

TForm1 = class(TForm)

Button1: TButton;

Chart1: TChart;

Series1: TLineSeries;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Edit3: TEdit;

Label3: TLabel;

Chart2: TChart;

Chart3: TChart;

Chart4: TChart;

Series2: TLineSeries;

Series3: TLineSeries;

Series4: TLineSeries;

Series5: TLineSeries;

Series6: TLineSeries;

Series7: TLineSeries;

Series8: TLineSeries;

Объявление процедур используемых в програме

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

end;

procedure solvestep(time,Uupr,settime:real);

procedure solvelineup(time,Uupr,settime:real);

procedure solveparab(time,Uupr,settime:real);

procedure solvesinus(time,Uupr,period:real);

function sign(p:real):integer;

объявление глобпльных переменных

var

Form1: TForm1;

Tm: real; // электромеханическая постоянная времени двигла

Wnom: real; // номинальная частота вращения

Mnom: real; // номенальный момент

Inom:real; // номинальный ток

Rya: real; // сомротивление якоря

Unom: real; // напряжение питания

J:real; // момент нерции

Ce,Cm:real; // конструкционные параметры

M:real; // Момент

Lya:real; // индукция якоря

Nnom:integer; // номинальная мощность

p:real;,t0,tmax: real;:real;:real;

{$R *.dfm}

Функция возвращающая знак числаsign(p:real):integer;

if p<0 then result:=-1 else result:=1;;

расчет реакции на ступенчатое воздейстыие

procedure solvestep(time,Uupr,settime:real);,c,c1:integer;,dt,h:real;,W,dI,dW:real;

// нач учловия:=0.00001;:=0;:=0;

число итераций

c1:=round(time/dt);

момент переключения сигнала с низкого уровня на высокий

st:=round(settime/dt);

итерационный циклc:=0 to c1 do

begin

// система //

Проверка условия переключения

if c<st then upr:=0 else upr:=Uupr;

dI:= dt*((((upr-Ce*W)/Rya)-I)/(Lya/Rya)); рвсчет прирощения тока

I:=I+dI; расчет тока

M:= Cm*I; расчет момента сопротивления

dW:= dt*((M-h*sign(W))/J); расчет прирощения частоты вращения

W:=W+dW; расчет частоты вращения

// ------- //

form1.Series1.AddXY(c*dt,w*ce); вывод точки графика частоты вращения

form1.Series5.AddXY(c*dt,upr); выврд точки графика управляющего сигнала

end;

end;

расчет рекции на линейно возрастающий сигнал

procedure solvelineup(time,Uupr,settime:real);,c1:integer; ,dt:real;,W,dI,dW:real;

// нач учловия:=0;:=0;:=0.00001;:=round(time/dt);:=(Uupr*dt)/settime; расчет приращения управляющего напряжения

Uupr:=0;c:=0 to c1 do

begin

Uupr:=Uupr+du; расчет управляющего напряжения

dI:= dt*((((Uupr-Ce*W)/Rya)-I)/(Lya/Rya));

I:=I+dI;

M:= Cm*I;

dW:= dt*((M-h*sign(W))/J);

W:=W+dW;

// ------- //

form1.Series2.AddXY(c*dt,w*ce);

form1.Series6.AddXY(c*dt,Uupr);

end;

end;

расчет реакции на синусоидальный входной сигнал

procedure solvesinus(time,Uupr,period:real);,c1:integer;,t,dU,upr,dt:real;,W,dI,dW:real;

// нач учловия:=0;:=0;:=0.00001;:=round(time/dt);1:=period/dt; расчет периода колебаний

for c:=0 to c1 do

begin

// система //

upr:=Uupr*sin(2*pi*c/t1); расчет управляющего сигнала

dI:= dt*((((upr-Ce*W)/Rya)-I)/(Lya/Rya));

I:=I+dI;

M:= Cm*I;

dW:= dt*((M-h*sign(W))/J);

W:=W+dW;

// ------- //

form1.Series3.AddXY(c*dt,w*ce);

form1.Series8.AddXY(c*dt,upr);

end;

end;

расчет реакции на параболически возрастающий сигнал

procedure solveparab(time,Uupr,settime:real);,c1:integer;,t,dU,upr,dt:real;,W,dI,dW:real;:=0;:=0;:=0.00001;:=round(time/dt);c:=0 to c1 do

begin

upr:=Uupr*sqr((c*dt/settime)); расчет управляющего сигнала

dI:= dt*((((upr-Ce*W)/Rya)-I)/(Lya/Rya));

I:=I+dI;

M:= Cm*I;

dW:= dt*((M-h*sign(W))/J);

W:=W+dW;

// ------- //

form1.Series4.AddXY(c*dt,w*ce);//*6.28*60);

form1.Series7.AddXY(c*dt,upr);

end;

end;

обработчик действий при создании формы

procedure TForm1.FormCreate(Sender: TObject);

указание параметров двигателя

h:=0.0000;