Дипломы / Бакалаврская_работа_(Вешкурцев)_2
.pdfЗаключение
Врамках данной бакалаврской работы проводились исследования случайно-неоднородной среды бесконечно малых размеров радио-статистическим методом в условиях полной неопределенности. В качестве среды использовалось жидкое вещество в виде красного сухого вина и воздушная среда.
Врезультате выполнения бакалаврской работы решены следующие задачи:
подтверждена гипотеза о том, что вероятностные характеристики случайного сигнала, полученного в результате прохождения электромагнитного излучения через вещество, однозначно характеризуют интегральный показатель качества вещества;
разработана методика проведения исследований случайно-неоднородной среды;
реализован физический эксперимент со средой;
написана программа для автоматизации обработки экспериментальных данных;
проведен анализ экспериментальных данных;
сформулированы предложения по коммерциализации полученных результатов. Разработанный алгоритм расчета интегрального показателя качества позволяет эффективно
оценить качество вещества. Так при исследовании разных видов красного сухого вина экспериментально установлено, что интегральные показатели качества вин выстроились в соответствии с их стоимостью, что позволяет говорить об адекватности разработанного интегрального показателя качества. Расчет интегрального показателя качества воздушной среды показывает минимум двукратное отличие его от интегрального показателя вещества. Данный результат также подтверждает гипотезу о зависимости вероятностных характеристик сигнала от свойств случайно-неоднородной среды.
Таким образом, первые результаты наших исследований не противоречат известным описаниям физических явлений в среде при взаимодействии с электромагнитным полем и дают надежду на проведение неразрушающего контроля качества вещества радио-статистическим методом в условиях полной неопределенности.
51
Список использованных источников
1 |
ИСО 9000:2005. Системы менеджмента качества. Основные положения и словарь |
|||||||||
2 |
Химия |
[Электронный |
ресурс] |
// |
Аналитическая |
химия. |
||||
URL: http://chemistry.narod.ru/razdeli/Analiticheskaya/analiticheskaya.htm. |
|
|
|
|||||||
3 |
Википедия: свободная |
энциклопедия Электронный |
ресурс |
// Элементный |
анализ. |
|||||
URL: h |
p://ru.w k p d a.or /w k /Элементный_анализ. |
|
|
|
|
|
||||
4 |
Химик: |
сайт |
о |
химии |
[Электронный |
ресурс] |
// |
Хроматография. |
||
URL: http://www.xumuk.ru/encyklopedia/2/5089.html.
5Неразрушающий контроль и диагностика: Справочник / В.В Клюев, Ф.Р. Соснин, В.Н. Филинов и др.; Под ред. В. В. Клюева. М.: Машиностроение, 1995. 488 с., ил.
6Исимару А. Распространение и рассеяние волн в случайно-неоднородных средах. Т. 1, М.: Наука, 1981. 285 с.
7Рытов С. М. Кравцов Ю. А. Татарский В. И. Введение в статистическую радиофизику. М.: Наука, 1978. 463 с.
8Кляцкин В. И. Стохастические уравнения и волны в случайно-неоднородных средах. М.: ФИЗМАТЛИТ, 1990. 334 с.
9Лобова Г. Н. Электродинамика и распространение радиоволн: Учеб. Пособие. Омск: ОмГТУ, 2006. 132 с.
10Зубкович С. Г. Статистические характеристики радиосигналов, отраженных от земной поверхности. М.: Сов. радио, 1968. 224 с.
11Кляцкин В. И. Распространение электромагнитных волн в случайно-неоднородной среде как задача статистической математической физики // Успехи физических наук. 2003. Т. 174,
№2. С. 177-194.
12Wikip d a: Свободная энциклопедия Электронный ресурс // Уравнение Гельмгольца –
URL: http://ru.wikipedia.org/wiki/Уравнение_гельмгольца
13 Wikip d a: Свободная энциклопедия Электронный ресурс / Функция Грина – URL: http:// ru.w k p d a.or /w k /Функция_Грина
14Price R., Green Jr. Measurement of ionospheric pathphase for oblique incidence// Nature 179,
№455. 1957 г.
15Harring C.M., Kirvida L.B. Phase fluctuations of sounol propaqateil in on inhomoqeneous atmosphere//Proc. 3 rd Internat.Corgr.Aconst.Stuttgart, Vol.1.1959
16Меис А.В., Брауде С.Я., Горбач В.И. Экспериментальные исследования фазовых флуктуаций сантиметровых радиоволн над морской поверхностью. Изв. Вузов МВО СССР, сер. Радиофизика, № 6. 1959.
17Редькин Б.А. Флуктуации разности фаз сферической волны, распространяющейся в среде с плавно изменяющимися характеристиками//Труды Томск. института радиоэлектроники и электронной техники, 1964, № 3.
18Smyth J.B. Статистика фазовых флуктуаций//J.Ras.Nat.Bur.Standarts, 1964, № 9, рр.983-
987.
19Гаймет Т.Ф. Измерение быстрых флуктуаций фазы отраженного от ионосферы сигнала//Геомагнетизм и аэрономия, 1966, т.6, № 2.-с.327-333.
52
20Денисов Н.Г., Ерухимов Л.М. Статистические свойства фазовой флуктуации при полном отражении волн от ионосферного слоя// Геомагнетизм и аэрономия, 1966, т.6, № 4.
21Кравцов Ю.А. Флуктуации амплитуды и фазы волны, прошедшей вблизи каустической поверхности. Атмосферная турбулентность и распространение радиоволн. – М.: Наука, 1967.-315с.
22Татарский В.И. Флуктуации при распространении электромагнитных волн в пределах прямой видимости. Атмосферная турбулентность и распространение радиоволн. – М.: Наука,
1967.-315с.
23Бахарова М.Ф. Частотно-пространственная корреляция флуктуаций амплитуд и фаз волн в среде со случайными неоднородностями // Радиотехника и электроника, 1968, т.13, № 3.
24Изюмов А.О. Флуктуации амплитуды и фазы плоской монохроматической волны субмиллиметрового диапазона при распространении в приземном слое турбулентной атмосферы с учетом поглощения в водяном паре// Радиотехника и электроника, 1968, т.13, № 7.
25Изюмов А.О. О корреляции флуктуаций амплитуды и фазы плоской монохроматической волны субмиллиметрового диапазона при распространении в приземном слое турбулентной атмосферы // Радиотехника и электроника, 1969, т.14, № 7.
26Лукин В.П. и др. Флуктуации фазы моделирующего колебания оптической несущей при распространении в турбулентной атмосфере // Радиотехника и электроника, 1973, т.18, № 3.
27Стоцкий А.А. Крупномасштабные флуктуации фазы при распространении радиоволн в турбулентной атмосфере // Радиотехника и электроника, 1973, т.18, № 8.
28Солодовников Г.К., Мигунов В.М., Новожилов В.И. и др. Статистические характеристики флуктуаций частоты и фазы радиоволн от ИСЗ, обусловленные неоднородностями ионосферы Радиотехника и электроника, 1974, т.19, № 6
29Захаренко В. А., Колесникова Т. П., Шкаев А. Г. Расчет и проектирование оптикоэлектронных приборов: Учеб. пособие. Омск: из-во ОмГТУ, 2002. С. 51
30Бондарев Б. В. Курс общей физики. В 3 кн. Кн. 2. Термодинамика. Статистическая физика. Строение вещества: Учеб. пособие. М.: Высш. шк., 2003. 438 с.
31Бондарев Б. В. Курс общей физики. В 3 кн. Кн. 3. Электромагнетизм. Волновая оптика. Квантовая физика: Учеб. пособие. М.: Высш. шк., 2003. 366 с.
32Вешкурцев Н. Д., Вешкурцев Ю. М. Метрологическая аттестация лабораторного стенда // Наука, образование, бизнес: Материалы региональной научно-практической конференции / Институт радиоэлектроники, сервиса и диагностики. Омск: Полиграфический центр КАН, 2011. С. 241
33Левин, Б. Р. Теоретические основы статистической радиотехники – М.: Советское радио, 1966. 728 с.
34Вешкурцев Ю. М. Прикладной анализ характеристической функции случайных процессов. М.: Радио и связь, 2003. 204 с.
35Тихонов В. И. Статистическая радиотехника. М.: Радио и связь, 1982. С. 32
36Бронштейн И. Н., Семендяев К. А. Справочник по математике для инженеров и учащихся втузов. М.: Гос.изд.тех.-теор. литературы, 1956. С. 166
53
Приложение A (справочное)
Листинг программы фильтрации и усреднения
using System;
using System.Windows.Forms; using System.Collections;
namespace Промежуточный_расчет_х.ф
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button_Click(object sender, EventArgs e)
{
Button b = sender as Button; if (b == null) return;
int index = Convert.ToInt32(b.Name.Substring(6));
OpenFileDialog ofd = new OpenFileDialog
{
Filter = @"Текстовые файлы |*.hf2", Title = @"Выберите файл с х. ф. сигнала"
};
if (ofd.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
this.Controls["tb" + index].Text = ofd.FileName;
}
private void button3_Click(object sender, EventArgs e)
{
for(int i = 0; i < Processing.NumberOfFiles; i++) if (!this.Controls["tb" + i].Text.Contains(".hf2"))
{
MessageBox.Show(@"Выберите исходные файлы", @"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Processing.FileList = new ArrayList(Processing.NumberOfFiles);
for (int i = 0; i < Processing.NumberOfFiles; i++) Processing.FileList.Add(this.Controls["tb" + i].Text);
SaveFileDialog sfd = new SaveFileDialog
{
Filter = @"Текстовые файлы |*.hf2",
Title = @"Введите имя файла для сохранения"
};
if (sfd.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
DateTime time = DateTime.Now; Processing.Recount(sfd.FileName);
MessageBox.Show("Пересчет значений завершен \n Прошло " + (DateTime.Now - time).TotalMilliseconds + " милисекунд");
}
54
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
if (numericUpDown1.Value * 2 > Processing.NumberOfFiles)
{
Processing.NumberOfFiles++; TextBox tb = new TextBox();
tb.Name = "tb" + (Processing.NumberOfFiles - 1);
tb.Text = @"Сигнал" + (Processing.NumberOfFiles / 2 + 1); tb.Left = 50;
tb.Top = 20 + Processing.NumberOfFiles * 30; tb.ReadOnly = true;
Controls.Add(tb);
Button bt = new Button();
bt.Name = "button" + (Processing.NumberOfFiles - 1); bt.Text = "...";
bt.Left = 160;
bt.Top = 20 + Processing.NumberOfFiles * 30; bt.Width = 30;
bt.Click += new EventHandler(button_Click); Controls.Add(bt);
Processing.NumberOfFiles++;
tb = new TextBox();
tb.Name = "tb" + (Processing.NumberOfFiles - 1); tb.Text = "Ошибка" + (Processing.NumberOfFiles / 2); tb.Left = 200;
tb.Top = 20 + (Processing.NumberOfFiles - 1) * 30; tb.ReadOnly = true;
this.Controls.Add(tb);
bt = new Button();
bt.Name = "button" + (Processing.NumberOfFiles - 1); bt.Text = "...";
bt.Left = 310;
bt.Top = 20 + (Processing.NumberOfFiles - 1) * 30; bt.Width = 30;
bt.Click += new EventHandler(button_Click); this.Controls.Add(bt);
this.Height = Processing.NumberOfFiles * 40 + 40;
}
else {
Controls["tb" + (Processing.NumberOfFiles - 1)].Dispose(); Controls["tb" + (Processing.NumberOfFiles - 2)].Dispose(); Controls["button" + (Processing.NumberOfFiles - 1)].Dispose(); Controls["button" + (Processing.NumberOfFiles - 2)].Dispose(); Processing.NumberOfFiles -= 2;
Height = Processing.NumberOfFiles * 40 + 40;
}
}
private void Form1_Load(object sender, EventArgs e)
{
Processing.NumberOfFiles = Convert.ToInt32(numericUpDown1.Value) * 2;
for (int i = 0; i < Processing.NumberOfFiles; i++)
{
TextBox tb = new TextBox(); tb.Name = "tb" + i;
tb.Text = "Сигнал" + (i / 2 + 1); tb.Left = 50;
55
tb.Top = 50 + i * 30; tb.ReadOnly = true; this.Controls.Add(tb);
Button bt = new Button(); bt.Name = "button" + i; bt.Text = "...";
bt.Left = 160; bt.Top = 50 + i * 30; bt.Width = 30;
bt.Click += new EventHandler(button_Click); this.Controls.Add(bt);
i++;
tb = new TextBox(); tb.Name = "tb" + i;
tb.Text = "Ошибка" + (i / 2 + 1); tb.Left = 200;
tb.Top = 50 + (i - 1) * 30; tb.ReadOnly = true; this.Controls.Add(tb);
bt = new Button(); bt.Name = "button" + i; bt.Text = "..."; bt.Left = 310;
bt.Top = 50 + (i - 1) * 30; bt.Width = 30;
bt.Click += new EventHandler(button_Click); this.Controls.Add(bt);
}
this.Height = Processing.NumberOfFiles*40 + 40;
}
}
}
static class Processing
{
struct FileData
{
public ArrayList A0; public ArrayList B0; public ArrayList A2;
}
public static ArrayList FileList;
static ArrayList _streamReaderList;
static FileData _result;
static ArrayList _resultList = new ArrayList();
public static int NumberOfFiles { get; set; }
///<summary>
///Функция, считывающая данные из входных файлов и осуществляющая
///пересчет значений х.ф.
///</summary>
///<param name="outputFile">Выходной файл</param>
public static void Recount(string outputFile)
{
_streamReaderList = new ArrayList(NumberOfFiles);
56
_resultList = new ArrayList(NumberOfFiles);
foreach (object t in FileList)
_streamReaderList.Add(new StreamReader(new FileStream(t.ToString(), FileMode.Open, FileAccess.Read)));
FileData fileData = new FileData {A0 = new ArrayList(), B0 = new ArrayList(), A2 = new ArrayList()};
for (int i = 0; i < _streamReaderList.Count; i++) // цикл, перебирающий все входные файлы
{
string s = string.Empty; fileData.A0 = new ArrayList(); fileData.B0 = new ArrayList(); fileData.A2 = new ArrayList();
while (s != null)
{
ArrayList a = new ArrayList();
for (int k = 0; k < 12; k++) ((StreamReader)_streamReaderList[i]).ReadLine();
while (true)
{
s = ((StreamReader)_streamReaderList[i]).ReadLine(); try
{
fileData.A0.Add(Convert.ToDouble(s)); // чтение значений А0, пока не встретится буквенное значение // значит перешли к следующему блоку данных
}
catch
{
break;
}
}
while (true)
{
s = ((StreamReader)_streamReaderList[i]).ReadLine(); try
{
fileData.B0.Add(Convert.ToDouble(s)); // чтение значений B0, пока не встретится буквенное значение // значит перешли к следующему блоку данных
}
catch
{
break;
}
}
if (i % 2 == 0) // если файл имеет четный номер, то это файл сигнала, и из него { // нужно считать данные А2
while (s != null)
{
s = ((StreamReader)_streamReaderList[i]).ReadLine();
try
{
a.Add(Convert.ToDouble(s)); // чтение блока данные А2(х), пока не встретится буквенное значение // это означает переход к следующему блоку А2(х+1)
57
}
catch
{
fileData.A2.Add(a); a = new ArrayList();
}
}
}
else
s = null;
}
_resultList.Add(fileData);
if (_resultList.Count == _streamReaderList.Count) break;
}
for (int i = 0; i < NumberOfFiles; i += 2) // реализация пересчета значений А0 и В0 с учетом помехи
for (int j = 0; j < ((FileData)_resultList[i]).A0.Count; j++)
{
double sR = (double)((FileData)_resultList[i]).A0[j]; double sI = (double)((FileData)_resultList[i]).B0[j]; double eR = (double)((FileData)_resultList[i + 1]).A0[j]; double eI = (double)((FileData)_resultList[i + 1]).B0[j];
((FileData)_resultList[i]).A0[j] = (sR * eR + sI * eI) / (eR * eR + eI * eI); ((FileData)_resultList[i]).B0[j] = (sI * eR - sR * eI) / (eR * eR + eI * eI);
}
for (int i = NumberOfFiles - 1; i >= 1; i -= 2) // удаляем файлы со значениями помехи из массива _resultList.RemoveAt(i); // таким образом остаются только файлы с сигналами для дальнейшего усреднения
Avareging();
WriteFile(outputFile);
foreach (StreamReader sr in _streamReaderList) sr.Close();
}
///<summary>
///Функция осуществляет усреднение всех массивов данных, считанных из файлов
///</summary>
private static void Avareging()
{
_result = new FileData
{
A0 = new ArrayList(((FileData) _resultList[0]).A0), B0 = new ArrayList(((FileData) _resultList[0]).B0), A2 = new ArrayList(((FileData) _resultList[0]).A2) };
_resultList.RemoveAt(0);
foreach (FileData fd in _resultList) // итерирование по списку файлов для усреднения
{
for (int i = 0; i < fd.A0.Count; i++)
{
_result.A0[i] = (double)_result.A0[i] + (double)fd.A0[i]; _result.B0[i] = (double)_result.B0[i] + (double)fd.B0[i];
}
58
for (int k = 0; k < fd.A2.Count; k++)
{
for (int j = 0; j < ((ArrayList)fd.A2[k]).Count; j++) ((ArrayList)_result.A2[k])[j] = (double)((ArrayList)_result.A2[k])[j] + (double)((ArrayList)fd.A2[k])[j];
}
}
for (int i = 0; i < _result.A0.Count; i++)
{
_result.A0[i] = (double)_result.A0[i] / (NumberOfFiles / 2.0); // усреднение массивов А0 и В0 _result.B0[i] = (double)_result.B0[i] / (NumberOfFiles / 2.0);
}
foreach (object t in _result.A2)
for (int j = 0; j < ((ArrayList)t).Count; j++)
((ArrayList)t)[j] = (double)((ArrayList)t)[j] / (NumberOfFiles / 2.0); // усреднение двумерного массива А2
// таким образом, переменная result содержит усредненные массивы данных
}
///<summary>
///Функция, реализующая запись обработанных и усредненных результатов в файл
///</summary>
///<param name="outputFile">Имя файла для записи</param>
private static void WriteFile(string outputFile)
{
StreamWriter sw = new StreamWriter(new FileStream(outputFile, FileMode.Create));
try
{
((StreamReader)_streamReaderList[0]).BaseStream.Seek(0, SeekOrigin.Begin);
for (int i = 0; i < 11; i++)
{
sw.WriteLine(((StreamReader)_streamReaderList[0]).ReadLine());
}
sw.WriteLine("A1"); // запись массива А0 foreach (object t in _result.A0) sw.WriteLine(t);
sw.WriteLine("B1"); // запись массива B0 foreach (object t in _result.B0) sw.WriteLine(t);
for (int i = 0; i < _result.A2.Count; i++) // запись массива А2
{
sw.WriteLine("A2(" + i + ")");
for (int j = 0; j < ((ArrayList)_result.A2[i]).Count; j++) sw.WriteLine(((ArrayList)_result.A2[i])[j]);
}
}
catch
{
MessageBox.Show(@"Ошибка в фармате данных! Проверьте правильность входных файлов");//, MessageBoxIcon.Error,MessageBoxButtons.OK);
}
sw.Close();
}
}
59
Приложение B (обязательное)
Блок-схема алгоритма расчета интегрального показателя качества
Начало
Массивы
значений
оценок х.ф.
A(0) = 1
B(0) = 0
V = 1
Массив А(Vm), содержащий действительную часть х.ф. и B(Vm), содержащий мнимую часть х.ф.
N – число элементов массивов
Значения A(0) = 1и B(0) = 0
определяются из свойств х.ф.
Vm = m V
Вычисление
начальных
моментных функций m1, m2, m3, m4
Вычисление
центральных моментных функций
M1, M2, M3, M4
Расчет сторон
треугольника
Вычисление площади треугольника
Искомая площадь
S
Конец
60
