Разработка программного комплекса для расчёта напряжения и потерь мощности на тяговой подстанции постоянного тока
Разработка программы, математическая формулировка задания. Описание языка программирования, программного комплекса delfi. Расчет напряжения холостого хода подстанции и внутреннего сопротивления тяговой подстанции, определение потерь мощности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 05.03.2009 |
Размер файла | 511,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
3
Министерство Транспорта Российской Федерации
Кафедра ”ЭЖТ”
Курсовой проект
по дисциплине “Программные комплексы для расчета систем электроснабжения”
«Разработка программного комплекса для расчёта напряжения и потерь мощности на тяговой подстанции постоянного тока»
Выполнил:
Студент гр.ЭНС-04-2
Энгиноев Р.Р.
Проверил:
Герасимов Л.Н.
Иркутск
2008
Содержание
Реферат
1.Разработка программы
2.Математическая формулировка задания
3.Описание языка программирования
4. Программный комплекс. Внешний вид. Описание
5.Пример расчета с использованием ЭВМ
6.Решение задачи без использования ЭВМ
Список литературы
Реферат
В данном курсовом проекте с помощью программы Delfi был разработан программный комплекс для расчета напряжения и потерь мощности на тяговой подстанции постоянного тока.
На основании исходных данных рассчитаны напряжение холостого хода подстанции и внутреннее сопротивление тяговой подстанции, напряжение на шинах подстанции, определена потеря мощности в трансформаторах подстанции.
1. Разработка программы
Создание программы - довольно трудоемкий процесс. При разработке программы программисту приходится преодолевать несколько этапов, называемых этапами решения задачи на ЭВМ.
К этим этапам относят:
1. Постановка задачи.
2. Математическая формулировка и выбор метода решения.
3. Разработка Алгоритма решения.
4. Составление программы для ЭВМ.
5. Отладка и тестирование программы.
6. Решение задачи (счет) на ЭВМ.
Алгоритмом называется система формальных правил преобразования данных, однозначно приводящих к решению задачи.
Алгоритм, программа, план решения - это в сущности одно и тоже. Первое слово принято употреблять, когда речь идет об описании плана решения на обычном языке - с помощью текста и формул. Второе - используется для описаний, предназначенных для ввода в ЭВМ, то есть составленных в виде последовательности команд машины или на специальном языке программирования.
Хороший алгоритм должен обладать следующими свойствами:
1. Дискретность.
2. Детерминированность.
3. Массовость.
4. Результативность.
В данном курсовом проекте применено структурное программирование . В нем наибольшее внимание уделяется этапу проектирования программы, при выполнении которого придерживаются следующих основных принципов( называемых принципами структурного программирования ): модульность, низходящая разработка программы, простая структура программы.
В частности, принцип простой структуры программы означает, что всякая программа должна содержать три основных элемента простой структуры:
· Следование ( когда все действия выполняются последовательно,
одно за другим);
· Ветвление (когда нужно выполнить одно из двух возможных действий или групп действий в зависимости от некоторого условия; при этом допускается, что одна ветвь может быть пустой., то есть не содержать каких-либо действий);
· Цикл (когда выполнение одного или нескольких действий может повторяться более одного раза).
Каждому элементу простой структуры соответствует блок-схема, то есть условное изображение элемента структуры в виде определенных геометрических фигур, соединенных стрелками:
Следование Ветвление Цикл
Рисунок№1
В каждой программе присутствует хотя бы один из этих элементов
(в курсовом проекте используется первый элемент ввиду простоты и линейности алгоритма расчёта). На основе блок-схем элементов простых структур строятся блок-схемы программ.
Любая блок схема должна содержать блоки “Начало” и “Конец”
Рисунок№2
Кроме того, в блок-схеме должны быть предусмотрены ввод данных и вывод результатов:
Рисунок№3
На следующем рисунке №4 приведена блок-схема программы
Рисунок№4
2.Математическая формулировка задания
На основании исходных данных производится расчет напряжения и потерь мощности на тяговой подстанции постоянного тока.
Методика расчёта:
1. Состав исходных данных:
1.1 Мощность понизительного трансформатора;
1.2 Мощность тягового трансформатора;
1.3 Выпрямленный ток;
1.4 Мощность кроткого замыкания;
2. Последовательность расчёта:
2.1 Напряжение холостого хода подстанции.
Uн
U0 = ;
UКТ UКП NT SНT SНТ NT
1 - А + +
100 100 NП SНП SКЗ
Где
А = 0,5 - коэффициент относительного наклона внешней характеристики преобразовательного агрегата для нулевой и мостовой схем выпрямления;
UН = 3,3 кВ - номинальное выпрямленное напряжение на шинах подстанции;
UКТ, UКП - напряжение короткого замыкания трансформаторов тягового и понизительного, %;
Nп, Nт - количество понизительных и тяговых трансформаторов параллельно работающих;
SНП SНT - номинальная мощность понизительного и тягового трансформатора, кВА;
SКЗ - мощность короткого замыкания на первичных шинах подстанции.
Рассчитать напряжение холостого хода своего варианта.
2.2.Внутреннее сопротивление тяговой подстанции
UКТ UКП 1
т = Хс + Хпт + Хтт =АU0 2 + + ,
100 Nт Sнп 100 Nп Sнп SКЗ
где Хс -сопротивление сети внешнего электроснабжения; Хп, Хт - сопротивление понизительного и тягового трансформатора. Сопротивления приведены к выпрямленному напряжению холостого хода.
2.3.Напряжение на шинах подстанции
Uш = Uо - Id т,
где Id - заданный выпрямленный ток подстанции.
3.Описание языка программирования
Программный комплекс написан в системе Delphi.
Delphi- это современная система программирования. Назначение Delphi- быстрая разработка приложений. С ее помощью можно быстро и качественно создавать любые программы: от простейшего калькулятора до многоуровневой системы управления предприятием. Для кого предназначена Delphi.
· Для новичков. По большому счету, можно ничего не знать о программировании для Windows и при этом создавать работоспособные и современные программы.
· Для приверженцев Паскаля вообще. Delphi построена на Object Pascal, который в свою очередь порожден из Паскаля. При этом существует 100% совместимость с прежними программами.
· Для программистов в базах данных. Они получают полномасштабное средство разработки для почти всех известных баз данных, совместимое со стандартами ODBC, IDAPI и к тому же компактные и легко переносимые исполнимые файлы. Программы на Delphi не тепличные цветы, распускающиеся лишь в специально созданной обстановке. Вы берете сгенерированный ЕХЕ-файл и запускаете там, где нужно. И все.
· Для прикладных программистов. Конечно, Delphi сама не выполнит за вас двумерного преобразования Фурье и не решит уравнений Навье-Стокса. Но она совместима со всем, что вы до сих пор написали на Паскале. Если вы работали на другом языке, подключение возможно путем создания специальных библиотек. Если вы увидели за вашей моделью некий объект, опишите его в виде совокупности свойств и реакций на внешние события. Получите новый компонент, который, может быть, будет полезен не только вам. Создать на закуску для вашей прикладной задачи отточенный интерфейс со всеми современными атрибутами -- дело буквально пяти минут
4. Программный комплекс. Внешний вид. Описание
Форма программного комплекса (рис№6) обладает рядом преимуществ по сравнению с ПК использующими файловый ввод исходной информации.
Рисунок№6
4.1 Описание функциональных кнопок на панели ПК
1. Кнопка “Расчёт”- запускает программу вычисления ;
2. Кнопка “Сброс”-вызывает процедуру очистки окон ввода и вывода данных ;
3. Кнопка “Копировать в буфер” -помещает результаты расчета программы в “Буфер обмена” для дальнейшего использования их пользователем;
4. Кнопка “Вывод отчета” -создает документ Word и помещает результаты расчета программы;
5. Вкладка “Выход” в меню “файл”- выход из программного комплекса.
4.2 Текст программы (Исходный код)
Все пояснения к коду программы идут после знака” //”, поэтому излишние комментарии не требуются.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Mask, Spin, ComCtrls, Buttons, Menus,UnitParm,
DBCtrls,Word2000,OleServer, ComObj, jpeg;
type
TForm1 = class(TForm)
StaticText1: TStaticText;
ComboBoxEx1: TComboBoxEx;
ComboBoxEx2: TComboBoxEx;
StaticText2: TStaticText;
StaticText4: TStaticText;
ComboBoxEx4: TComboBoxEx;
StaticText5: TStaticText;
Edit1: TEdit;
StaticText6: TStaticText;
Edit2: TEdit;
Memo1: TMemo;
Calk: TButton;
Clear: TButton;
Button3: TButton;
Copy: TButton;
StaticText3: TStaticText;
Edit3: TEdit;
StaticText9: TStaticText;
Edit4: TEdit;
OpenIniFile: TOpenDialog;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
About1: TMenuItem;
Label1: TLabel;
N4: TMenuItem;
Image1: TImage;
Image2: TImage;
procedure CopyClick(Sender: TObject);
procedure ClearClick(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure CalkClick(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure Edit4Exit(Sender: TObject);
procedure ComboBoxEx1Select(Sender: TObject);
procedure ComboBoxEx2Select(Sender: TObject);
procedure ComboBoxEx4Select(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
IniParm : TIniParam ; // параметры настройки
function CoCon ( Value : string ; Ddef : double) : double ;
procedure ToControl;
procedure ToInif;
end;
var
Form1: TForm1;
PathAppl: string;
implementation
uses UnitAbout;
{$R *.dfm}
var
SComboBoxEx1: array[0..2] of integer = (16000, 25000, 40000) ;
SComboBoxEx2: array[0..2] of integer = (6000, 12500, 16000) ;
SComboBoxEx4: array[0..1] of integer = (4, 2) ;
sysDecimalSeparator : Char ; // сохранение системного параметра- разделитель
//дробной части
Sp, //мощьность понизиельного трансформатора
St, //мощьность тягового трансформатора
Q:integer; //схема выпрямления
Id, // выпрямленный ток
Skz, // мощьность кз
Un, // номинальное напряжение на шинах подстанции
U0, // напряжение ХХ
Ukz1, //напряжение короткого замыкания понизительного трансформатора
Ukz2, //напряжение короткого замыкания тягового трансформатора
Rv, // внутреннее сопротивление подстанции
Ush, // напряжение на шинах подстанции
I1,
Rtp,
Rtt,
P1:double;
IniFileName,
OpenIniFile: string;
function TForm1.CoCon ( Value : string ; Ddef : double ) : double ;
var Dat : double ;
begin
Result := Ddef ; // предварительно присвоим значение по умолчанию
Try
if Value = '' then Exit else // проверка - нет данных - выход
Result := StrToFloat(Value) ; // преобразование
Except
ShowMessage(Format('Ошибка ввода: %s ',[Value]));
end;
end;
procedure TForm1.ToControl;
begin
with IniParm.PwSt do begin
Edit1.Text:=FloatToStr(Id);
Edit2.Text:=FloatToStr(Skz);
Edit3.Text:=FloatToStr(Ukz1);
Edit4.Text:=FloatToStr(Ukz2);
end ;
end;
procedure TForm1.ToInif;
begin
with IniParm.PwSt do begin
Id:=StrToFloat(Edit1.Text);
Skz:=StrToFloat(Edit2.Text);
Ukz1:=StrToFloat(Edit3.Text);
Ukz2:=StrToFloat(Edit4.Text);
end ;
end;
procedure TForm1.ComboBoxEx1Select(Sender: TObject);
var Index : integer ;
begin
// - индекс в массиве
Index := ComboBoxEx1.ItemIndex ;
if Index >= 0 then Sp:= SComboBoxEx1[Index] ;
end;
procedure TForm1.ComboBoxEx2Select(Sender: TObject);
var Index : integer ;
begin
// - индекс в массиве
Index := ComboBoxEx2.ItemIndex ;
if Index >= 0 then St := SComboBoxEx2[Index] ;
end;
procedure TForm1.ComboBoxEx4Select(Sender: TObject);
var Index : integer ;
begin
// - индекс в массиве
Index := ComboBoxEx4.ItemIndex ;
if Index >= 0 then Q:= SComboBoxEx4[Index] ;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
// Ввод выпрямленного тока
Id:= CoCon(Edit1.text,0);
end;
procedure TForm1.Edit2Exit(Sender: TObject);
begin
// Ввод уст мощности 1 потр
Skz:= CoCon(Edit2.text,0);
end;
procedure TForm1.Edit3Exit(Sender: TObject);
begin
// Ввод выпрямленного тока
Ukz1:= CoCon(Edit3.text,0);
end;
procedure TForm1.Edit4Exit(Sender: TObject);
begin
Ukz2:= CoCon(Edit4.text,0);
end;
function Rashet ( aSp, aSt, aQ, aId, aSkz, aUkz1, aUkz2: double ;
var aU0, aRv, aUsh, aI1, aRtt, aRtp, aP1: double ) : boolean ;
begin
Rashet := true ;
Try
aU0:=3300/(1-0.5*( aUkz2/100+(aUkz1*aSt)/(100*aSp)+aSt/(aSkz*1000))); //напряжение ХХ
aRv:=(0.5*(aU0*aU0)*(aUkz1/100*aSp*+aUkz2/aSt+1/aSkz*1000))/1000000000; // внутренее сопротивление
aUsh:=aU0-aRv*aId; // напряжение на шинах подстанции
if aQ=4 then aI1:=(sqrt(2/3)* aId)/aQ else aI1:=aId/aQ*sqrt(6);
aRtt:=0.24*(aUkz2*aUkz2/aSt*aSt);
aRtp:=0.074*(aUkz1*aUkz1/aSp*aSp);
aP1:=aSp+aSt+((aI1*aI1)*(aRtt+aRtp));
Except
ShowMessage('Ошибка вычислений ');
Rashet := false ;
End ;
end ;
procedure TForm1.CalkClick(Sender: TObject);
begin
if Rashet (Sp, St, Q, Id, Skz, Ukz1, Ukz2, U0, Rv, Ush, I1, P1, Rtt, Rtp)
then // если нет ошибок
with Memo1.Lines do begin // то вывод в MemOut
Add('__________Задано_________') ; // Add - добавить строку
Add(' ');
Add(' Мощность понизительного тр-ра: '+FloatToStr(Sp)+' кВA') ;
Add(' Мощность тягового тр-ра: '+FloatToStr(St)+' кВА') ;
Add(' Выпрямленный ток: '+FloatToStr(Id)+' А') ;
Add(' Мощность кз: '+FloatToStr(Skz)+' МВАр' ) ;
Add(' ');
Add('__________Расчёт__________') ;
Add(' ');
Add(' Напряжение холостого хода: '+FloatToStr(U0)+' В') ;
Add(' Внутреннее сопротивление тяговой подстанции: '+FloatToStr(Rv)+' кОм') ;
Add(' Напряжение на шинах подстанции: '+FloatToStr(Ush)+' В') ;
Add(' Первичный ток обмотки: '+FloatToStr(I1)+' A') ;
Add(' Потери мощьности: '+FloatToStr(P1)+' кВт') ;
Add(' ');
Add(' ');
end;
end;
procedure TForm1.CopyClick(Sender: TObject);
begin
with Memo1 do begin
SelectAll; // Выделить всё
CopyToClipboard; // Копировать в буфер обмена
end;
end;
procedure TForm1.ClearClick(Sender: TObject);
begin
// очистим поле вывода и поля редакторов:
Memo1.Clear ;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
close
end;
procedure TForm1.About1Click(Sender: TObject);
begin
Form2.Show; // Show - показать форму
end;
procedure TForm1.N2Click(Sender: TObject);
var NewIniFile: string;
begin
PathAppl := ExtractFilePath(ParamStr(0)); // из строки параметра извлекаем
IniFileName := PathAppl+'tmp.ini';//полный путь к ини-файлу
if FileExists(IniFileName) then // файл существует?
IniParm := TIniParam.Create(IniFileName); //создаём объект и загружаем
if OpenIniFile.Execute then begin // если в диалоге был выбран файл
NewIniFile := OpenIniFile.FileName; // то берём его полный путь
if FileExists(NewIniFile) then begin // файл существует? тогда копируем
CopyFile(PChar(NewIniFile), PChar(IniFileName), false); // его в рабочий
if IniParm <> NIL then IniParm.Free; // удаляем прежний объект
IniParm := TIniParam.Create(IniFileName); // создаём объект и загружаем
ChDir(PathAppl);
end; end;
ToControl;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
ToInif;
IniParm.WriteIniData(IniFileName); // запись без контроля
end;
procedure TForm1.Button3Click(Sender: TObject);
const esrc= #10#13 ;
var fileName,fnProtocol: string;
Word:variant;
ix:integer;
begin
fileName:=ExtractFilePath(Application.ExeName)+ fnProtocol ;
Try
//Создаем объект интерфейса для доступа к серверу COM
Word := CreateOleObject('Word.Application');
Except
ShowMessage('ErrQuit') ;
End ;
Word.application.documents.add;
ix := 0 ;
With Memo1 do
while ix < Lines.Count do begin
Word.application.activedocument.Range.InsertAfter(Lines[ix]+esrc);
Inc(ix) ; end ;
Word.application.Visible:=true;
Try
Word.application.activedocument.SaveAs(fileName);
Except
ShowMessage('Файл отчёта не сохранен') ;
End ;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
sysDecimalSeparator:=DecimalSeparator;
DecimalSeparator:='.';
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DecimalSeparator:=sysDecimalSeparator;
end;
end.
5. Пример расчета номинальной мощности трансформатора ЭВМ
5.1 После ввода исходной информации Окно программы имеет вид:
Рисунок№7
5.2. Вид окна после нажатия кнопки “Расчёт “
Рисунок№8
5.3 Вывод результатов расчета через “БУФЕР ОБМЕНА”
__________Задано_________
Мощность понизительного тр-ра: 25000 кВA
Мощность тягового тр-ра: 12500 кВА
Выпрямленный ток: 3000 А
Мощность кз: 300 МВАр
__________Расчёт__________
Напряжение холостого хода: 3604.91579426491 В
Внутреннее сопротивление тяговой подстанции: 0.03189292138968 кОм
Напряжение на шинах подстанции: 3509.23703009587 В
Первичный ток обмотки: 612.372435695794 A
Потери мощьности: 13.5 кВт
6. Решение задачи без использования ЭВМ
Понизительный трансформатор: ТДТН-25000
Тяговый трансформатор: ТМРУ-12500
Схема выпрямления: мостовая
Id = 3000 A ; Sкз = 300 МВА
6.1.Расчет напряжения холостого хода тяговой подстанции
6.2. Расчет внутреннего сопротивления тяговой подстанции
6.3. Расчет напряжения на шинах тяговой подстанции и потери мощности. Напряжение на шинах подстанции определяется по следующей формуле:
6.4.Потери мощности:
Потери мощности:
Список литературы:
1. Бей Ю.М., Мамошин Р.Р., Пупынин В.Н., Шалимов М.Г. Тяговые подстанции/Учебник для вузов ж.-д.транспорта .-М.:
Транспорт, 1986-319с.
2. Егорушкин .И.О Информатика. Алгоритмические языки. Основы программирования на алгоритмическом языке Turbo Pascal: Учебное пособие/ Красноярский гос. Аграр.ун.-т.- Красноярск,2000.-121с.
3. Методические указания по выполнению лабораторных работ по дисциплине” Компьютерные технологии на Ж.Д. транспорте”.
Подобные документы
Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
курсовая работа [782,4 K], добавлен 26.05.2014Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.
дипломная работа [1,7 M], добавлен 14.03.2013Проектирование программного комплекса на языке С++ с использованием принципов объектно-ориентированного программирования. Разработка разных меню, помогающих пользователю работать с программой. Описание процесса формирования статистики по памятникам.
курсовая работа [799,9 K], добавлен 01.12.2016Алгоритмизация вычислительных процессов. Разработка интерфейса пользователя программы. Создание программного кода, анимации, справочной системы. Разработка программы для вычисления коэффициента мощности выпрямителя. Вывод графического изображения.
курсовая работа [1,9 M], добавлен 28.04.2014Анализ методов реализации интеллектуальных игр в системе человек-робот. Разработка архитектуры программного комплекса, выбор языка программирования. Алгоритм преобразования данных. Тестирование программного комплекса, редактирование и исправление ошибок.
дипломная работа [2,6 M], добавлен 27.10.2017Анализ возможностей утечки информации, неавторизованного и несанкционированного доступа к ресурсам ЛВС сельскохозяйственного комплекса. Ознакомление с антивирусными программы и брандмауэрами. Разработка программного комплекса для защиты информации.
дипломная работа [3,6 M], добавлен 17.04.2010Структура и основные операции коммерческого банка. Использование языка программирования Visual Basic for Application, математическая формулировка задачи. Разработка модуля программы расчёта кредитов и депозитов. Схема алгоритма выполнения программы.
курсовая работа [2,9 M], добавлен 09.04.2012Разработка программы, осуществляющей контроль за своевременностью обновления программного обеспечения с помощью рассылки электронных писем. Анализ требований к системе; выбор метода решения, алгоритма, выбор языка программирования, описание программы.
дипломная работа [5,6 M], добавлен 29.06.2011Математическая модель радиолокационной обстановки. Разработка структуры программного комплекса и алгоритмов работы программного комплекса. Анализ опасных и вредных производственных факторов. Сетевое планирование и смета затрат на проведение работ.
дипломная работа [1,3 M], добавлен 26.03.2009Разработка структурной схемы и интерфейса программного комплекса управления сайтом. Выбор языка программирования. Принципы тестирования программы. Разработка руководства оператора и системного программиста. Расчет сметы затрат на программный продукт.
дипломная работа [4,1 M], добавлен 11.06.2012