Программная система расчета параметров, потерь мощности и энергии линий, трансформаторов для составления схем замещения и учета потерь
Основные расчеты электрических сетей. Отличия создаваемой программной системы. Обоснование выбора базовой платформы и языка программирования. Реализация программной системы. Принципы защиты информации. Передача мощных потоков энергии с минимумом потерь.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 18.01.2014 |
Размер файла | 882,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
8. Электрические системы. Математические задачи электроэнергетики. / Веников В. А., Зуев Э. Н., Литкенс И. В. и др.; Под ред. В. А. Веникова. - М.: Высш. шк., 1981.
9. Ю. С. Железко, А. В. Артемьев, О. В. Савченко. Расчет, анализ и нормирование потерь электроэнергии в электрических сетях. Руководство для практических расчетов. - Издательство: Энас, 2005. 277 с.
10. Цукерник Л. В. Об оценке погрешности и чувствительности эквивалентирования схем замещения электроэнергетических систем. - Киев, 1984.
11. Поспелов Г. Е., Шапиро И. З., Фурсанов В. И. Применение вычислительной техники для расчета снижения и планирования технологического расхода электроэнергии в электрических сетях. - Минск, 1987.
12. Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя / Пер. с англ. М.: ДМК, 2000. 432 с.
13. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. - С.-Пб.: Питер, 2001. - 368 с.
14. Рихтер Дж. Программирование на платформе Microsoft .NET Framework. Мастер-класс. / Пер. с англ. - 3-е изд. - М.: Издательско-торговый дом "Русская редакция",; СПб.: Питер, 2005. - 512 с.
15. Джордан Д. Обработка объектных баз данных в С++. Программирование по стандарту ODMG. - М.: Вильямс, 2001. - 384 с.
16. Sceppa, David. Microsoft ADO.NET : core reference / David Sceppa. ISBN 0-7356-1423-7. - 2002 by Microsoft Press.
17. База знаний Microsoft Press Knowledge Base http://microsoft.com/mspress/support
18. Библиотека MSDN http://www.msdn.microsoft.com/net
19. web - сайт Издательского дома «Питер» http://www.piter.com
20. web - сайт издательства Wrox http:// www.wrox.com
21. Хендерсон К. Профессиональное руководство по MS SQL Server: структура и реализация. / Пер. с англ. - М.: Издательский дом "Вильямс", 2006. - 1056 с.
22. Троелсен Э. С# и платформа .NET. Библиотека программиста. / Пер. с англ. - СПб.: Питер, 2006. - 796 с.
23. Джонсон Б., Скибо К., Янг М. Основы Microsoft Visual Studio .NET 2003 / Пер. с англ. - М.: Издательско-торговый дом "Русская редакция", 2003. - 464 с.
24. Разработка Windows-приложений Microsoft Visual Basic .NET и Microsoft Visual C# .NET. Учебный курс MCAD/MCSD. / Пер. с англ. - М.: Издательско-торговый дом "Русская редакция", 2003. - 512 с.
25. web - сайт издательства «Лори» http://www.lory-press.ru
26. Методичні вказівки до виконання економічної частини дипломних робіт для студентів усіх форм навчання спеціальності ПЗАС / Упор. Н.Б.Івченко, А.В.Суботіна - Харків:ХНУРЕ, 2003 - 28с.
27. Интрилигатор М. Математические методы оптимизации и экономическая теория. - М.: Прогресс, 1975. - 605 с.
28. Кобринский Н.Е., Майминас Е.З., Смирнов А.Д. Введение в экономическую кибернетику. - М: Экономика, 1975. - 342 с.
ПРИЛОЖЕНИЕ А
ЛИСТИНГ ПРОГРАММНОГО КОДА
Фрагмент кода модуля расчёта параметров линий.
// Получаем текущее значение строки через свойство
// Position объекта BindingContext
theLine = this.BindingContext[objDataSetLines,"Lines"].Position;
// Присваиваем переменным текущее значение полей строки
network = objDataSetLines.Lines[theLine].Network;
length = objDataSetLines.Lines[theLine].Length;
arrangementWires = objDataSetLines.Lines[theLine].ArrangementWires;
type = objDataSetLines.Lines[theLine].Type;
splitting = objDataSetLines.Lines[theLine].Splitting;
sectionWire = objDataSetLines.Lines[theLine].SectionWire;
diameterWire = objDataSetLines.Lines[theLine].DiameterWire;
// Проверка входных значений
if (length <= 0)
MessageBox.Show(Constants.msgL, "Error");
else if (diameterWire <= 0)
MessageBox.Show(Constants.msgDW, "Error");
else
{
switch(network)
{
case 110:
if ((splitting == 1) && (sectionWire == 70))
{
if ((type == "Aluminium") || (type == "Steel"))
{
if (arrangementWires == "Horizontally")
{
r =
(1 / (Constants.yA * sectionWire * Math.Pow(10, -6.0))) * (length * 1000);
temp1 = (Constants.d110H) / ((diameterWire * 0.001 ) / 2);
temp2 = Math.Log10(temp1);
xx = ((0.144 * temp2) + (12500 * Constants.m)) * length;
z = Math.Sqrt(Math.Pow(r, 2.0) + Math.Pow(xx, 2.0));
g =
((Constants.p110WAV70 * Math.Pow(10, 3.0)) / Math.Pow(110000, 2.0)) * length;
b = (Constants.i / temp2) * length;
y = Math.Sqrt(Math.Pow(g, 2.0) + Math.Pow(b, 2.0));
// Изменение значения поля ActiveResistance
DataRow change110ActiveResistance70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110ActiveResistance70[8] = r;
// Изменение значения поля InductiveReactance
DataRow change110InductiveReactance70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110InductiveReactance70[9] = xx;
// Изменение значения поля FullResistance
DataRow change110FullResistance70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110FullResistance70[10] = z;
// Изменение значения поля ActiveConductivity
DataRow change110ActiveConductivity70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110ActiveConductivity70[11] = g;
// Изменение значения поля JetConductivity
DataRow change110JetConductivity70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110JetConductivity70[12] = b;
// Изменение значения поля FullConductivity
DataRow change110FullConductivity70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110FullConductivity70[13] = y;
}
else if (arrangementWires == "Triangle")
{
r =
(1 / (Constants.yA * sectionWire * Math.Pow(10, -6.0))) * (length * 1000);
temp1 = (Constants.d110T) / ((diameterWire * 0.001 ) / 2);
temp2 = Math.Log10(temp1);
xx = ((0.144 * temp2) + (12500 * Constants.m)) * length;
z = Math.Sqrt(Math.Pow(r, 2.0) + Math.Pow(xx, 2.0));
g =
((Constants.p110WAV70 * Math.Pow(10, 3.0)) / Math.Pow(110000, 2.0)) * length;
b = (Constants.i / temp2) * length;
y = Math.Sqrt(Math.Pow(g, 2.0) + Math.Pow(b, 2.0));
// Изменение значения поля ActiveResistance
DataRow change110ActiveResistance70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110ActiveResistance70[8] = r;
// Изменение значения поля InductiveReactance
DataRow change110InductiveReactance70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110InductiveReactance70[9] = xx;
// Изменение значения поля FullResistance
DataRow change110FullResistance70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110FullResistance70[10] = z;
// Изменение значения поля ActiveConductivity
DataRow change110ActiveConductivity70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110ActiveConductivity70[11] = g;
// Изменение значения поля JetConductivity
DataRow change110JetConductivity70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110JetConductivity70[12] = b;
// Изменение значения поля FullConductivity
DataRow change110FullConductivity70 =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110FullConductivity70[13] = y;
}
else
{
MessageBox.Show(Constants.msgA, "Error");
// Изменение значения поля ActiveResistance
DataRow change110ActiveResistanceAW =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110ActiveResistanceAW[8] = Constants.zero;
// Изменение значения поля InductiveReactance
DataRow change110InductiveReactanceAW =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110InductiveReactanceAW[9] = Constants.zero;
// Изменение значения поля FullResistance
DataRow change110FullResistanceAW =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110FullResistanceAW[10] = Constants.zero;
// Изменение значения поля ActiveConductivity
DataRow change110ActiveConductivityAW =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110ActiveConductivityAW[11] = Constants.zero;
// Изменение значения поля JetConductivity
DataRow change110JetConductivityAW =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110JetConductivityAW[12] = Constants.zero;
// Изменение значения поля FullConductivity
DataRow change110FullConductivityAW =
objDataSetLines.Tables["Lines"].Rows[theLine];
change110FullConductivityAW[13] = Constants.zero;
}
}
Фрагмент кода модуля расчёта параметров трансформаторов.
// Получаем тукущее значение строки через свойство
// Position объекта BindingContext
theTransformer = this.BindingContext[objDataSetTransformers,"Transformers"].Position;
// Присваиваем переменным текущее значение полей строки
type = objDataSetTransformers.Transformers[theTransformer].Type;
fullPowerRating =
objDataSetTransformers.Transformers[theTransformer].FullPowerRating;
powerRatingUV =
objDataSetTransformers.Transformers[theTransformer].PowerRatingUV;
powerRatingMV =
objDataSetTransformers.Transformers[theTransformer].PowerRatingMV;
powerRatingLV =
objDataSetTransformers.Transformers[theTransformer].PowerRatingLV;
ratedUpperVoltage =
objDataSetTransformers.Transformers[theTransformer].RatedUpperVoltage;
ratedMediumVoltage =
objDataSetTransformers.Transformers[theTransformer].RatedMediumVoltage;
ratedLowVoltage =
objDataSetTransformers.Transformers[theTransformer].RatedLowVoltage;
voltageSCuvmv =
objDataSetTransformers.Transformers[theTransformer].VoltageSCuvmv;
voltageSCuvlv =
objDataSetTransformers.Transformers[theTransformer].VoltageSCuvlv;
voltageSCmvlv =
objDataSetTransformers.Transformers[theTransformer].VoltageSCmvlv;
lossesSCmax =
objDataSetTransformers.Transformers[theTransformer].LossesSCmax;
lossesSCuvmv =
objDataSetTransformers.Transformers[theTransformer].LossesSCuvmv;
lossesSCuvlv =
objDataSetTransformers.Transformers[theTransformer].LossesSCuvlv;
lossesSCmvlv =
objDataSetTransformers.Transformers[theTransformer].LossesSCmvlv;
lossesOfIdling =
objDataSetTransformers.Transformers[theTransformer].LossesOfIdling;
excitingCurrent =
objDataSetTransformers.Transformers[theTransformer].ExcitingCurrent;
// Проверка входных значений
switch(type)
{
case "Autotransformer":
if (fullPowerRating <= 0)
MessageBox.Show(Constants.msgFPR, "Error");
else if (powerRatingUV <= 0)
MessageBox.Show(Constants.msgPRUV, "Error");
else if (powerRatingMV <= 0)
MessageBox.Show(Constants.msgPRMV, "Error");
else if (powerRatingLV <= 0)
MessageBox.Show(Constants.msgPRLV, "Error");
else if (ratedUpperVoltage <= 0)
MessageBox.Show(Constants.msgRUV, "Error");
else if (voltageSCuvmv <= 0)
MessageBox.Show(Constants.msgVSCuvmv, "Error");
else if (voltageSCuvlv <= 0)
MessageBox.Show(Constants.msgVSCuvlv, "Error");
else if (voltageSCmvlv <= 0)
MessageBox.Show(Constants.msgVSCmvlv, "Error");
else if (lossesSCuvmv <= 0)
MessageBox.Show(Constants.msgLSCuvmv, "Error");
else if (lossesSCuvlv <= 0)
MessageBox.Show(Constants.msgLSCuvlv, "Error");
else if (lossesSCmvlv <= 0)
MessageBox.Show(Constants.msgLSCmvlv, "Error");
else if (lossesOfIdling <= 0)
MessageBox.Show(Constants.msgLOI, "Error");
else if (excitingCurrent <= 0)
MessageBox.Show(Constants.msgEС, "Error");
else
{
lossesSCuv = 0.5 * (lossesSCuvmv + lossesSCuvlv - lossesSCmvlv);
lossesSCmv = 0.5 * (lossesSCuvmv + lossesSCmvlv - lossesSCuvlv);
lossesSClv = 0.5 * (lossesSCuvlv + lossesSCmvlv - lossesSCuvmv);
prUV = fullPowerRating * (powerRatingUV / 100);
prMV = fullPowerRating * (powerRatingMV / 100);
prLV = fullPowerRating * (powerRatingLV / 100);
rUV = (lossesSCuv * Math.Pow(10, 3.0) * Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0)) / (4 * Math.Pow(prUV, 2.0) * Math.Pow(10, 12.0));
rMV = (lossesSCmv * Math.Pow(10, 3.0) * Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0)) / (4 * Math.Pow(prMV, 2.0) * Math.Pow(10, 12.0));
rLV = (lossesSClv * Math.Pow(10, 3.0) * Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0)) / (4 * Math.Pow(prLV, 2.0) * Math.Pow(10, 12.0));
rUVMV = rUV + rMV;
rUVLV = rUV + rLV;
uUV = 0.5 * (voltageSCuvmv + voltageSCuvlv - voltageSCmvlv);
uMV = 0.5 * (voltageSCuvmv + voltageSCmvlv - voltageSCuvlv);
uLV = 0.5 * (voltageSCuvlv + voltageSCmvlv - voltageSCuvmv);
xUV = (uUV * Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0)) /
(fullPowerRating * Math.Pow(10, 6.0) * 100);
xMV = (uMV * Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0)) /
(fullPowerRating * Math.Pow(10, 6.0) * 100);
xLV = (uLV * Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0)) /
(fullPowerRating * Math.Pow(10, 6.0) * 100);
xUVMV = xUV + xMV;
xUVLV = xUV + xLV;
g =
(lossesOfIdling * Math.Pow(10, 3.0)) / (Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0));
b = (excitingCurrent * fullPowerRating * Math.Pow(10, 6.0)) / (Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0) * 100);
mc = b * Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 3.0);
// Изменение значения поля ActiveResistanceUV
DataRow change1ActiveResistanceUV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1ActiveResistanceUV[18] = rUV;
// Изменение значения поля ActiveResistanceMV
DataRow change1ActiveResistanceMV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1ActiveResistanceMV[19] = rMV;
// Изменение значения поля ActiveResistanceLV
DataRow change1ActiveResistanceLV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1ActiveResistanceLV[20] = rLV;
// Изменение значения поля ActiveResistanceUVMV
DataRow change1ActiveResistanceUVMV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1ActiveResistanceUVMV[21] = rUVMV;
// Изменение значения поля ActiveResistanceUVLV
DataRow change1ActiveResistanceUVLV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1ActiveResistanceUVLV[22] = rUVLV;
// Изменение значения поля InductiveReactanceUV
DataRow change1InductiveReactanceUV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1InductiveReactanceUV[23] = xUV;
// Изменение значения поля InductiveReactanceMV
DataRow change1InductiveReactanceMV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1InductiveReactanceMV[24] = xMV;
// Изменение значения поля InductiveReactanceLV
DataRow change1InductiveReactanceLV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1InductiveReactanceLV[25] = xLV;
// Изменение значения поля InductiveReactanceUVMV
DataRow change1InductiveReactanceUVMV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1InductiveReactanceUVMV[26] = xUVMV;
// Изменение значения поля InductiveReactanceUVLV
DataRow change1InductiveReactanceUVLV =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1InductiveReactanceUVLV[27] = xUVLV;
// Изменение значения поля ActiveConductivity
DataRow change1ActiveConductivity =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1ActiveConductivity[28] = g;
// Изменение значения поля JetConductivity
change1JetConductivity =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1JetConductivity[29] = b;
// Изменение значения поля MagnetizingCapacity
DataRow change1MagnetizingCapacity =
objDataSetTransformers.Tables["Transformers"].Rows[theTransformer];
change1MagnetizingCapacity[30] = mc;
}
break;
Фрагмент кода модуля расчёта потерь в линиях.
// Присваиваем переменным текущее значение полей строки
timeMaximumLosses =
objDataSetLossesLines.LossesInLines[theLine].TimeMaximumLosses;
hoursUseMaximum =
objDataSetLossesLines.LossesInLines[theLine].HoursUseMaximum;
cost1кWh = objDataSetLossesLines.LossesInLines[theLine].Cost1кWh;
// Присваиваем переменным текущее значение полей строки
network = objDataSetLossesLines.Lines[theLine].Network;
length = objDataSetLossesLines.Lines[theLine].Length;
splitting = objDataSetLossesLines.Lines[theLine].Splitting;
sectionWire = objDataSetLossesLines.Lines[theLine].SectionWire;
activeResistance = objDataSetLossesLines.Lines[theLine].ActiveResistance;
inductiveReactance = objDataSetLossesLines.Lines[theLine].InductiveReactance;
jetConductivity = objDataSetLossesLines.Lines[theLine].JetConductivity;
// Проверка входных значений
if (timeMaximumLosses <= 0)
MessageBox.Show(Constants.msgTML, "Error");
else if (hoursUseMaximum <= 0)
MessageBox.Show(Constants.msgHUM, "Error");
else if (cost1кWh <= 0)
MessageBox.Show(Constants.msgC1kWh, "Error");
else if ((network <= 0) || (length <= 0) ||
(splitting <= 0) || (sectionWire <= 0) ||
(activeResistance <= 0) || (inductiveReactance <= 0) ||
(jetConductivity <= 0))
MessageBox.Show(Constants.msgFZL, "Error");
else
{
switch(network)
{
case 110:
if ((splitting == 1) && (sectionWire == 70))
{
n = System.Convert.ToDouble(network);
lossesAC =
(((Math.Pow(activeCapacity, 2.0) * Math.Pow(10, 6.0)) + (Math.Pow(jetCapacity, 2.0) * Math.Pow(10, 6.0))) / (Math.Pow(n, 2.0) * Math.Pow(10, 6.0))) * activeResistance * Math.Pow(10, -3.0);
lossesJC = (((Math.Pow(activeCapacity, 2.0) * Math.Pow(10, 6.0)) + (Math.Pow(jetCapacity, 2.0) * Math.Pow(10, 6.0))) / (Math.Pow(n, 2.0) * Math.Pow(10, 6.0))) * inductiveReactance * Math.Pow(10, -3.0);
chargingC = Math.Sqrt((((Math.Pow(activeCapacity, 2.0) * Math.Pow(10, 6.0)) + (Math.Pow(jetCapacity, 2.0) * Math.Pow(10, 6.0))) / (Math.Pow(n, 2.0) * Math.Pow(10, 6.0))) / 3) * Math.Pow(n, 2.0) * Math.Pow(10, 3.0) *
jetConductivity * Math.Pow(10, -3.0);
coronaLMax =
Constants.p110Max70 * Math.Pow(10, 3.0) * length * Math.Pow(10, -3.0);
coronaLWAV =
Constants.p110WAV70 * Math.Pow(10, 3.0) * length * Math.Pow(10, -3.0);
coronaLMin =
Constants.p110Min70 * Math.Pow(10, 3.0) * length * Math.Pow(10, -3.0);
lossesFC = Math.Sqrt(Math.Pow((lossesAC + coronaLMax), 2.0) + Math.Pow((lossesJC - chargingC), 2.0));
lossesE = lossesAC * timeMaximumLosses;
coronaLE = coronaLWAV * hoursUseMaximum;
costLE = (lossesE + coronaLE) * cost1кWh;
// Изменение значения поля ActiveCapacity
DataRow changeActiveCapacity =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeActiveCapacity[1] = activeCapacity;
// Изменение значения поля JetCapacity
DataRow changeJetCapacity =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeJetCapacity[2] = jetCapacity;
// Изменение значения поля LossesActiveCapacity
DataRow changeLossesActiveCapacity =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeLossesActiveCapacity[6] = lossesAC;
// Изменение значения поля LossesJetCapacity
DataRow changeLossesJetCapacity =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeLossesJetCapacity[7] = lossesJC;
// Изменение значения поля CoronaLossesMax
DataRow changeCoronaLossesMax =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeCoronaLossesMax[8] = coronaLMax;
// Изменение значения поля CoronaLossesWAV
DataRow changeCoronaLossesWAV =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeCoronaLossesWAV[9] = coronaLWAV;
// Изменение значения поля CoronaLossesMin
DataRow changeCoronaLossesMin =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeCoronaLossesMin[10] = coronaLMin;
// Изменение значения поля ChargingCapacity
DataRow changeChargingCapacity =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeChargingCapacity[11] = chargingC;
// Изменение значения поля LossesFullCapacity
DataRow changeLossesFullCapacity =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeLossesFullCapacity[12] = lossesFC;
// Изменение значения поля LossesEnergy
DataRow changeLossesEnergy =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeLossesEnergy[13] = lossesE;
// Изменение значения поля CoronaLossesEnergy
DataRow changeCoronaLossesEnergy =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeCoronaLossesEnergy[14] = coronaLE;
// Изменение значения поля CostLossesEnergy
DataRow changeCostLossesEnergy =
objDataSetLossesLines.Tables["LossesInLines"].Rows[theLine];
changeCostLossesEnergy[15] = costLE;
}
Фрагмент кода модуля расчёта потерь в трансформаторах.
// Присваиваем переменным текущее значение полей строки
timeMaximumLosses =
objDataSetLossesTrans.LossesInTransformers[theTransformer].TimeMaximumLosses;
hoursUseMaximum =
objDataSetLossesTrans.LossesInTransformers[theTransformer].HoursUseMaximum;
cost1кWh =
objDataSetLossesTrans.LossesInTransformers[theTransformer].Cost1кWh;
// Присваиваем переменным текущее значение полей строки
type = objDataSetLossesTrans.Transformers[theTransformer].Type;
fullPowerRating =
objDataSetLossesTrans.Transformers[theTransformer].FullPowerRating;
ratedUpperVoltage =
objDataSetLossesTrans.Transformers[theTransformer].RatedUpperVoltage;
activeResistanceUV =
objDataSetLossesTrans.Transformers[theTransformer].ActiveResistanceUV;
activeResistanceMV =
objDataSetLossesTrans.Transformers[theTransformer].ActiveResistanceMV;
activeResistanceLV =
objDataSetLossesTrans.Transformers[theTransformer].ActiveResistanceLV;
activeResistanceUVLV =
objDataSetLossesTrans.Transformers[theTransformer].ActiveResistanceUVLV;
inductiveReactanceUV =
objDataSetLossesTrans.Transformers[theTransformer].InductiveReactanceUV;
inductiveReactanceMV =
objDataSetLossesTrans.Transformers[theTransformer].InductiveReactanceMV;
inductiveReactanceLV =
objDataSetLossesTrans.Transformers[theTransformer].InductiveReactanceLV;
inductiveReactanceUVLV =
objDataSetLossesTrans.Transformers[theTransformer].InductiveReactanceUVLV;
activeConductivity =
objDataSetLossesTrans.Transformers[theTransformer].ActiveConductivity;
jetConductivity =
objDataSetLossesTrans.Transformers[theTransformer].JetConductivity;
// Проверка входных значений
switch(type)
{
case "Autotransformer":
if (timeMaximumLosses <= 0)
MessageBox.Show(Constants.msgPRMV, "Error");
else if (hoursUseMaximum <= 0)
MessageBox.Show(Constants.msgPRLV, "Error");
else if (cost1кWh <= 0)
MessageBox.Show(Constants.msgRUV, "Error");
else if ((fullPowerRating <= 0) || (ratedUpperVoltage <= 0) ||
(activeResistanceUV <= 0) || (activeResistanceMV <= 0) || (activeResistanceLV <= 0) ||
(inductiveReactanceUV <= 0) || (inductiveReactanceMV > 0) || (inductiveReactanceLV <= 0) ||
(activeConductivity <= 0) || (jetConductivity <= 0))
MessageBox.Show(Constants.msgFZT, "Error");
else
{
lossesCS =
Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 3.0) * activeConductivity;
sMV =
Math.Sqrt(Math.Pow(activeCapacityMV, 2.0) + Math.Pow(jetCapacityMV, 2.0));
sLV =
Math.Sqrt(Math.Pow(activeCapacityLV, 2.0) + Math.Pow(jetCapacityLV, 2.0));
activeCapacityUV = activeCapacityMV + activeCapacityLV;
jetCapacityUV = jetCapacityMV + jetCapacityLV;
sUV =
Math.Sqrt(Math.Pow(activeCapacityUV, 2.0) + Math.Pow(jetCapacityUV, 2.0));
lossesCC =
(1 / (Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0))) * ((Math.Pow(sUV, 2.0) * Math.Pow(10, 6.0) * activeResistanceUV) + (Math.Pow(sMV, 2.0) * Math.Pow(10, 6.0) * activeResistanceMV) + (Math.Pow(sLV, 2.0) * Math.Pow(10, 6.0) * activeResistanceLV)) *
Math.Pow(10, -3.0);
lossesJSC = (1 / (Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 6.0))) * ((Math.Pow(sUV, 2.0) * Math.Pow(10, 6.0) * inductiveReactanceUV) + (Math.Pow(sMV, 2.0) * Math.Pow(10, 6.0) * inductiveReactanceMV) + (Math.Pow(sLV, 2.0) * Math.Pow(10, 6.0) * inductiveReactanceLV)) * Math.Pow(10, -3.0);Console.Write("lossesJSC{0}", lossesJSC);
lossesI =
Math.Pow(ratedUpperVoltage, 2.0) * Math.Pow(10, 3.0) * jetConductivity;
lossesAC = lossesCS + lossesCC;
lossesJC = lossesJSC + lossesI;
lossesE = (lossesCS * hoursUseMaximum) + (lossesCC * timeMaximumLosses);
costLE = lossesE * cost1кWh;
// Изменение значения поля ActiveCapacityUV
DataRow changeActiveCapacityUV =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeActiveCapacityUV[1] = activeCapacityUV;
// Изменение значения поля JetCapacityUV
DataRow changeJetCapacityUV =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeJetCapacityUV[2] = jetCapacityUV;
// Изменение значения поля LossesCapacitySteel
DataRow changeLossesCapacitySteel =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeLossesCapacitySteel[6] = lossesCS;
// Изменение значения поля LossesCapacityCopper
DataRow changeLossesCapacityCopper =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeLossesCapacityCopper[7] = lossesCC;
// Изменение значения поля LossesJetSC
DataRow changeLossesJetSC =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeLossesJetSC[8] = lossesJSC;
// Изменение значения поля LossesOfIdling
DataRow changeLossesOfIdling =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeLossesOfIdling[9] = lossesI;
// Изменение значения поля LossesActiveCapacity
DataRow changeLossesActiveCapacity =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeLossesActiveCapacity[10] = lossesAC;
// Изменение значения поля LossesJetCapacity
DataRow changeLossesJetCapacity =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeLossesJetCapacity[11] = lossesJC;
// Изменение значения поля LossesEnergy
DataRow changeLossesEnergyGroup =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeLossesEnergyGroup[12] = lossesE;
// Изменение значения поля CostLossesEnergy
DataRow changeCostLossesEnergy =
objDataSetLossesTrans.Tables["LossesInTransformers"].Rows[theTransformer];
changeCostLossesEnergy[13] = costLE;
}
break;
Размещено на Allbest.ru
Подобные документы
Выбор аппаратной и программной платформы системы планирования и учета нарядов подразделения. Определение архитектуры создаваемой системы, сравнение существующих технологий программирования. Реализация подсистемы идентификации и авторизации на сайте.
дипломная работа [3,1 M], добавлен 19.01.2017Использование программной системы Mathcad для выполнения, документирования и использования вычислений и инженерных расчетов. Вычисление пределов, суммы ряда. Работа с матрицами, построение трехмерного графика. Решение систем нелинейных уравнений.
отчет по практике [1,5 M], добавлен 11.09.2014Назначение и основные функции КП Компоновщик расчетных схем. Требования, предъявляемые к системам подготовки, отладки и поддержания данных. Пользовательский интерфейс КП Компоновщик расчетных схем в MS DOS. Особенности программирования в Windows.
дипломная работа [316,1 K], добавлен 13.04.2010Программный комплекс для расчета тепловых потерь через печные ограждения. Общие сведения об огнеупорных стенках. Технические характеристики огнеупоров. Разработка программного обеспечения для выполнения расчетов тепловых потерь через многослойную стенку.
дипломная работа [5,3 M], добавлен 10.06.2012Понятие и основные задачи информационной безопасности. Разработка и реализация политики ИБ в компании Microsoft. Виды угроз безопасности. Современные средства физической, аппаратной, программной защиты информации в локальном домашнем и офисном компьютере.
курсовая работа [107,6 K], добавлен 09.04.2014Технологии и языки программирования, используемые при разработке программы. Проектирование и реализация социальной сети. Описание и обоснование выбора организации входных и выходных данных. Алгоритм функционирования программы, таблицы базы данных.
курсовая работа [3,5 M], добавлен 10.06.2014Анализ и постановка задач дисциплины "Компьютерная графика". Разработка структуры, функциональной схемы и программной документации. Руководство программисту и оператору. Выбор и обоснование языка программирования. Описание процедур, функций, оценок.
дипломная работа [3,6 M], добавлен 16.11.2011Обзор существующих систем атоматизированного поиска. Мир электронных денег. Разработка структуры системы автоматизированного поиска отделений и терминалов банков. Обоснование выбора технологии разработки, программной среды и языка программирования.
курсовая работа [1,2 M], добавлен 17.01.2011Концепция построения, назначение и типы компьютерных сетей. Архитектура локальной сети Ethernet. Обзор и анализ сетевого оборудования и операционных систем. Обоснование выбора аппаратно-программной платформы. Принципы и методы проектирования ЛВС Ethernet.
дипломная работа [162,5 K], добавлен 24.06.2010Разработка автоматизированной системы технологического (коммерческого) учета электроэнергии для СНТ "Восточный". Выбор оборудования для контроля технологических параметров, его принцип работы. Расчет снижения потерь за счет внедрения данной системы.
курсовая работа [303,2 K], добавлен 17.06.2017