Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод лр АИУС.doc
Скачиваний:
10
Добавлен:
08.05.2019
Размер:
519.17 Кб
Скачать

4. Порядок проведения лабораторной работы

Моделирование шумового воздействия может проводиться с помощью программ разработанных студентами, с использованием электронных таблиц или программы «Модель сл проц.xls» приведенной в электронной версии данного указания.

В программе «Модель сл проц.xls» используется численный метод синтеза шумового воздействия, проводится его спектральный и статистический анализ. Программы выполнены в среде VBA Microsoft Excel.

Запуск программы осуществляется из папки «Лаб работы АИУС» двойным нажатием левой клавиши мышки на названии программы. Окно с именем программы приведено на рис 3.4.

Рис. 3.4. Запуск программы

После появления изображения приведённого на рис. 3.5, следует ввести исходные данные для расчета в соответствующие поля: количество составляющих, высшая частота, низшая частота, минимальное число точек на период.

Рис. 3.5. Ввод данных для моделирования

По формуле (3.1) вычисляется реализация случайного процесса. Характерный вид реализации приведен на рис. 3.6.

Процедура Sub Gener() VBA Microsoft Office Excel по которой вычисляется реализация случайного процесса приведена ниже:

Sub Gener()

'i - сдвиг, аргумент корреляционной функции

'Очистка поля параметров составляющих

i = 0

Do While Sheets("Лист1").Cells(i + 5, 1).Value <> ""

i = i + 1

Loop

Sheets("Лист1").Select

Range("A6", "D55").Select

Selection.ClearContents

Range("A1").Select

Dim Ампл(), Част(), Фаза() As Single

КолСост = Sheets("Лист1").Cells(1, 5).Value

ReDim Ампл(КолСост), Част(КолСост), Фаза(КолСост) As Single

ВысшаяЧастота = Sheets("Лист1").Cells(2, 5).Value

НизшаяЧастота = Sheets("Лист1").Cells(3, 5).Value

'Генерация случайных парметров

Randomize (-8)

'ШагД вводится для более равномерного распределения в диапазоне частот

ШагД = (ВысшаяЧастота - НизшаяЧастота) / КолСост

For i = 0 To КолСост - 1

Ампл(i + 1) = 1

Част(i + 1) = НизшаяЧастота + ШагД * (i + Rnd(1))

Фаза(i + 1) = 3.141593 * (2 * Rnd(1) - 1)

Next i

For i = 1 To КолСост

Sheets("Лист1").Cells(i + 5, 1).Value = i

Sheets("Лист1").Cells(i + 5, 2).Value = Ампл(i)

Sheets("Лист1").Cells(i + 5, 3).Value = Част(i)

Sheets("Лист1").Cells(i + 5, 4).Value = Фаза(i)

Next i

'Очистка листа 2

Sheets("Лист2").Select

Sheets("Лист2").Cells.Select

Selection.ClearContents

Sheets("Лист2").Cells(1, 1).Value = "НомТочкПр"

Sheets("Лист2").Cells(1, 2).Value = "Время"

Sheets("Лист2").Cells(1, 3).Value = "Процесс"

'Вычисление рабочего интервала

ConstPi = Application.Pi()

Sheets("Лист1").Cells(1, 6).Value = ConstPi

'Рабочий интервал в радианной мере - число периодов на 2Пи

ЧислоПериодов = Sheets("Лист1").Cells(3, 9).Value

РабИнтерв = ЧислоПериодов * 2 * ConstPi

Sheets("Лист1").Cells(3, 13).Value = РабИнтерв

'Вычисление шага и числа точек на рабочем интервале

ВысшаяЧастота = Sheets("Лист1").Cells(2, 5).Value

ЧислоТочекНаПериод = Sheets("Лист1").Cells(4, 5).Value

ЧислТочПр = ВысшаяЧастота * ЧислоТочекНаПериод * ЧислоПериодов

Sheets("Лист1").Cells(4, 13).Value = ЧислТочПр

'Шаг в радианной мере

Шаг = РабИнтерв / ЧислТочПр

Sheets("Лист1").Cells(4, 9).Value = Шаг

Рис. 3.6. Реализация шумового воздействия

'Вычисление суммы составляющих на рабочем интервале

ReDim Пр(ЧислТочПр) As Single

For j = 1 To ЧислТочПр

Sheets("Лист2").Cells(j + 1, 1).Value = j

СуммСост = 0

For i = 1 To КолСост

Сост = Ампл(i) * Sin(j * Шаг * Част(i) + Фаза(i))

СуммСост = СуммСост + Сост

Next i

Пр(j) = СуммСост

Sheets("Лист2").Cells(j + 1, 2).Value = j

Sheets("Лист2").Cells(j + 1, 3).Value = СуммСост

Next j

Результаты статистического анализа реализации процесса приведены на рис. . Расчет статистических характеристик проводится по известным формулам статистического оценивания с использованием ниже приведенной процедуры VBA Microsoft Office Excel :

'Статистические характеристики процесса

'Вычисление математического ожидания, минимального и максимального значений

Sum1 = 0

Мин = 0

Макс = 0

For i = 1 To ЧислТочПр

If Пр(i) <= Мин Then Мин = Пр(i)

If Пр(i) >= Макс Then Макс = Пр(i)

Sum1 = Sum1 + Пр(i)

Next i

m1 = Sum1 / ЧислТочПр

Sheets("Лист1").Cells(8, 9).Value = m1

Sheets("Лист1").Cells(8, 12).Value = Мин

Sheets("Лист1").Cells(8, 14).Value = Макс

'Вычисление центральных моментов

Sum2 = 0

Sum3 = 0

Sum4 = 0

For i = 1 To ЧислТочПр

П2 = Пр(i) * Пр(i)

П3 = П2 * Пр(i)

П4 = П3 * Пр(i)

Sum2 = Sum2 + П2

Sum3 = Sum3 + П3

Sum4 = Sum4 + П4

Next i

M2 = Sum2 / ЧислТочПр

Sheets("Лист1").Cells(9, 8).Value = M2

Скв = Sqr(M2)

Sheets ("Лист1").Cells(9, 12).Value = Скв

M3 = Sum3 / ЧислТочПр

Sheets("Лист1").Cells(10, 8).Value = M3

Асимм = M3 / (Скв * Скв * Скв)

Sheets("Лист1").Cells(10, 12).Value = Асимм

M4 = Sum4 / ЧислТочПр

Sheets("Лист1").Cells(11, 8).Value = M4

Эксцесс = M4 / (Скв * Скв * Скв * Скв)

Sheets("Лист1").Cells(11, 12).Value = Эксцесс

'Построение статистического распределения

ЧислоКлИнт = 40

ReDim n(ЧислоКлИнт), p(ЧислоКлИнт), wp(ЧислоКлИнт) As Single

МинР = Мин - 0.00002

МаксР = Макс + 0.00002

РазмКлИнт = (МаксР - МинР) / ЧислоКлИнт

'Определение числа попаданий в классовый интевал

For i = 1 To ЧислТочПр

Norm = (Пр(i) - МинР) / РазмКлИнт

НомКлИнт = Int(Norm + 0.9999)

n(НомКлИнт) = n(НомКлИнт) + 1

Next i

'Вычисление вероятности и плотности вероятности

For i = 1 To ЧислоКлИнт

p(i) = n(i) / ЧислТочПр

wp(i) = p(i) / РазмКлИнт

Next i

For i = 1 To ЧислоКлИнт

Sheets("Лист4").Cells(i + 1, 1).Value = i

'Середина классового интервала

СередКлИнт = Мин + i * РазмКлИнт

Sheets("Лист4").Cells(i + 1, 2).Value = СередКлИнт

Sheets("Лист4").Cells(i + 1, 3).Value = n(i)

Sheets("Лист4").Cells(i + 1, 4).Value = p(i)

Sheets("Лист4").Cells(i + 1, 5).Value = wp(i)

Next i

Результаты расчетов статистических характеристик дисперсии, асимметрии, эксцесса приведены на рис. 3.7.

Рис. 3.7. Результат расчета статистических

характеристик процесса

Рис. 3.8. Статистическое распределение амплитуд.

Спектральный анализ проводится по формулам (2.1 – 2.8) используемым в лабораторной работе №2

Автокорреляционная функция может быть вычислена по приведенной ниже процедуре VBA Microsoft Office Excel

Рис. 3.9. Результат спектрального анализа процесса

Sub Корр()

Dim c(ЧислТочПр) As Double

Dim СлПр(ЧислТочПр) As Double

For i = 0 To 200

c(i) = 0

For j = 0 To 200 - i

c(i) = c(i) + СлПр(j + 2) * СлПр(j + 2 + i)

Next j

Sheets("Лист7").Cells(i + 2, 1).Value = c(i) / c(0)

Next i

End Sub