Моделирование работы электродвигателя
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?тераций за которое должен совершиться период колебания, а в итерационный процесс добавлена формула расчета управляющего напряжения 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;