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

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

http: //www. . ru/

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Тульский государственный университет»

Кафедра РТиАП

КУРСОВАЯ РАБОТА

по дисциплине «Микропроцессорные устройства управления роботами»

Тула 2012

1. Постановка задачи

Задача сводиться к моделированию работы электродвигателя входящего состав линейного привода и отображения переходных процессов. Для реализации поставленной задачи можно воспользоваться возможностями готовых программных продуктов таких как MATHCAD или MATLAB. В данной курсовой работе предлагается реализация специализированного по решению поставленной задачи. Варианты реализации в основном будут различаться способом решения системы дифференциальных уравнений описывающий электродвигатель.

2. Общие сведения

Программа modelDPR52 проводит моделирование работы двигателя ДПР52 при различных управляющих напряжениях и выводит результаты моделирования в виде графиков на экран. Программа написана на языке программирования высокого уровня ObjectPascal и соответствует дисциплине программирования.

Для использования данного программного средства дополнительных программных средств не требуется. Программа успешно работает на всех ЭВМ с операционной системой Windows. Для запуска программы выполнить файл modelDPR52. exe.

2.1 Функциональное назначение

Программа modelDPR52 производит численное интегрирование дифферинциальных уравнений, описывающий работу электродвигателя и выводит результаты на экран. Данное программное обеспечение демонстрирует переходный процесс внутри электродвигателя.

Так как при фиксированном возбуждении двигатель имеет две степени свободы, то необходимо иметь для него два исходных дифференциальных уравнения. Первое уравнение может быть получено, если записать второй закон Кирхгофа для цепи якоря:

(1)

Второе уравнение представляет собой закон равновесия моментов на валу двигателя:

(2)

В этих уравнениях Lя и rя -- индуктивность и сопротивление цепи якоря (суммарные), С’е и С’м -- коэффициенты пропорциональности, J -- приведенный к оси двигателя суммарный момент инерции, ?-- угловая скорость двигателя, Ф -- поток возбуждения, М -- момент нагрузки, приведенный к валу двигателя.

Так как поток возбуждения двигателя Ф = const, то можно положить

С’еФ = СЕ и С’мФ = См.

Вводя оператор дифференцирования и решая уравнения (1) и (2) совместно, получаем

Здесь введены две постоянные времени двигателя: электромеханическая постоянная времени:

И постоянная времени якорной цепи:

Коэффициенты пропорциональности СЕ и См могут, быть найдены из соотношений

где Uном и Rя. ном -- номинальные значения напряжения и якорного тока двигателя, Мном и Qxx -- номинальный вращающий момент и скорость идеального холостого хода двигателя.

Учитывая эти соотношения, электромеханическую постоянную времени можно представить в другом виде:

где rH0M = Uном/Iя номноминальное сопротивление якоря двигателя, Мкз -- момент короткого замыкания двигателя (вращающий момент заторможенного двигателя).

2.2 Описание логической структуры

Данное программное обеспечение включает в себя пять основных блоков.

Первым блок является графический интерфейс программного обеспечения. Он представляет собой форму на которой расположены поля для ввода числовых параметров моделирования, а также кнопка инициализирующая процесс моделирования. Также на форме присутствуют четыре области для вывода результатов моделирования в виде графиков изменения управляющего сигнала и изменения скорости вращения вала двигателя соответствующее управлящему сигналу.

Остальные блоки ПО являются функциями осуществляющие расчет параметров системы для различных входных воздействий.

Функция расчета реакции системы на ступенчатое воздействие включает в себя команды задающие начальные параметры системы, производиться расчет числа итерация процесса численного интегрирования системы ДУ, а также команды вывода точек графиков на экран.

Функции расчета реакций на синусоидальный сигнал, линейно-возврастающий и параболически-возрастающий сигналы отличаются наличием команд рассчитывающим входное воздействие. Так линейно возрастающий входной сигнал расчитываеться по следующей формуле:

du=(Uupr*dt)/settime;

где du- приращение управляющего сигнала, dt-постоянная времени интегрирования, Uupr- напряжение питания, которое необходимо получить в момент времени задаваемый в переменной settime. В дополнение итерационный поцесс включена формула: Uupr=Uupr+du, по которой определяется управляющее напряжение на данном шаге итерации. Для расчета управляющего сигнала возрастающего по параболе в итерационный процесс включена формула:

upr: =Uupr*sqr (c*dt/settime);

В данной формуле управляющее воздействие умножается квадрат выражения включающего в себя счетчик итерации время интегрирования и постоянную интегрирования. Это выражение в момент времени равный settime ровняется единице.

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

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

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

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

Приложения

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

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

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

interface

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

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

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type описание формы

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;

t, t0, tmax: real;

h: real;

U: real;

implementation

{$R *. dfm}

Функция возвращающая знак числа

function sign (p: real):integer;

begin

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

end;

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

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

var

st, c, c1: integer;

upr, dt, h: real;

I, W, dI, dW: real;

begin

// нач учловия

dt: =0. 1;

i: =0;

w: =0;

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

c1: =round (time/dt);

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

st: =round (settime/dt);

итерационный цикл

for 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);

var

c, c1: integer;

dU, dt: real;

I, W, dI, dW: real;

begin

// нач учловия

i: =0;

w: =0;

dt: =0. 1;

c1: =round (time/dt);

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

Uupr: =0;

for 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);

var

c, c1: integer;

t1,t, dU, upr, dt: real;

I, W, dI, dW: real;

begin

// нач учловия

i: =0;

w: =0;

dt: =0. 1;

c1: =round (time/dt);

t1: =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);

var

c, c1: integer;

t1,t, dU, upr, dt: real;

I, W, dI, dW: real;

begin

i: =0;

w: =0;

dt: =0. 1;

c1: =round (time/dt);

for 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);

begin

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

h: =0. 0000;

Tm: =0. 017;

Wnom: =11. 93;

Nnom: =4500;

Mnom: =0. 0098;

Inom: =0. 26;

Unom: =27;

Rya: =12. 5;

J: =0. 1 666;

p: =0. 116;

Rya: =Unom/Inom; расчет сопротивления якоря электродвигателя

Ce:= Unom/Wnom; расчет электромагнитной постоянной двигателя

Cm:= Mnom/Inom; расчет механической постоянной двигателя

Lya: =(30*Unom*0. 1)/(p*nnom*Inom);

end;

обработчик нажатия кнопки

procedure TForm1. Button1Click (Sender: TObject);

var

t, v, t1: real;

begin

определение параметров моделирования

t: =strtocurr (edit1. Text);

v: =strtocurr (edit3. Text);

t1: =strtocurr (edit2. Text);

удаление точек графиков

series1. Clear;

series4. Clear;

series3. Clear;

series2. Clear;

series5. Clear;

series6. Clear;

series7. Clear;

series8. Clear;

вызов подпрограмм расчета воздействий

solvestep (t, v,0);

solvelineup (t, v, t1);

solvesinus (t, v, t1);

solveParab (t, v, t1);

end;

end.

ПоказатьСвернуть
Заполнить форму текущей работой