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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.05.2012
Размер файла 420,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.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.00001;

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.00001;

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.00001;

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.00001;

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.000001666;

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.

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [337,4 K], добавлен 26.02.2012

  • Общие сведения о языке ассемблера. Назначение команды прерывания INT число. Описание логической структуры программы: алгоритм работы, используемые методы, входные и выходные данные. Структура и тестирование программы. Руководство оператора программы.

    курсовая работа [90,0 K], добавлен 01.12.2009

  • Разработка информационно-поисковой системы "Музыкальный магазин". Характеристика языка Delphi 7. Функциональное назначение, область применения, используемые технические средства. Описание логической структуры. Вызов, загрузка, входные и выходные данные.

    курсовая работа [6,4 M], добавлен 07.04.2014

  • Методологическая основа моделирования – диалектико-математический метод познания и научного исследования. Назначение и условия применения программы. Описание задачи и логической структуры программы. Используемые технические средства, вызов и загрузка.

    курсовая работа [311,8 K], добавлен 06.01.2009

  • Функциональное назначение и область применения программы "Локальный сетевой чат"; логическая структура, технические и программные средства. Требования к программе; характеристика, вызов и загрузка, входные и выходные данные, настройка, интерфейс.

    дипломная работа [1,3 M], добавлен 18.10.2013

  • Средства программирования, описание языка С++. Назначение программы, требования к документации. Стадии разработки, виды испытаний. Используемые технические, программные средства. Вызов и загрузка, входные и выходные данные. Программа и методика испытаний.

    контрольная работа [205,3 K], добавлен 23.07.2013

  • Технико-математическое описание задачи. Требования к программе учета книг и читателей библиотеки. Описание языка программирования. Алгоритмы обработки информации. Текст программы. Инструкция на выполнение: вызов и загрузка, входные и выходные данные.

    дипломная работа [1,2 M], добавлен 29.06.2012

  • Функциональное назначение программы "Автоматизация учета выпускаемой продукции"; описание ее логической структуры, необходимых входных и выходных данных, процедур вызова и загрузки. Определение экономического эффекта от внедрения программного продукта.

    дипломная работа [336,0 K], добавлен 14.04.2014

  • Требования к программе, составу и параметрам технических средств. Основные элементы языка программирования. Инструкция на выполнение программы учета клиентов: вызов и загрузка, входные и выходные данные. Расчет себестоимости программного продукта.

    дипломная работа [3,9 M], добавлен 29.06.2012

  • Разработка программы замены столбца с минимальным элементом на последний столбец, написанной на языке С++. Результаты откладки и тестирования программы. Алгоритм, входные и выходные параметры и логика работы программы, ее функциональное назначение.

    курсовая работа [155,2 K], добавлен 25.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.