
1ЛР / laba1
.docx
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
|
«Московский государственный технический университет имени Н.Э. Баумана» (МГТУ им. Н.Э. Баумана) |
Факультет: ИУ «Информатики и систем управления»
Кафедра: ИУ10 «Защиты информации»
Методические указания к выполнению лабораторных работ в рамках курса «Введение в анализ больших информационных массивов»
Москва, 2023 г.
Лабораторная 1. Визуализация и обработка больших массивов данных в MATLAB
Цель
Найти оптимальное положение ветровой турбины, при котором коэффициент полезного действия был бы максимальный.
Решение
Для этого смоделируем (сам процесс моделирования описан ниже), что в трех точках на высоте 80 метров было установлено по три датчика скорости ветра, это делается для усреднения данных, и один датчик температуры.
Р
исунок
1. Моделирование данных
Моделируем данные в Excel или другой программе. Для этого создаем 5 столбцов: 1я колонка - время, 2-4 колонки – скорость ветра, измеренные в одной точке тремя различными датчиками. 5я колонка – температура. Далее, данные записываются в файле с расширением txt (можно переместить таблицу в блокнот). Начинать следует с 00.00.00, заканчивать – 24.00.00, с шагом в 1 минуту.
Импорт данных в python заключается в создании csv файла путем копирования данных из Excel. В результате должно получиться следующее:
Р
исунок
2. Моделирование данных
В качестве разделителей между столбцами используем “;” и не забываем дать название для каждого столбца в первой строке файла.
Теперь, когда работа с данными завершена, можно перейти к написанию кода на python.
Первым делом создаем virtual environment:
Открываем консоль (cmd для Windows) и переходим в папку, в которой будем выполнять лабораторные работы
python -m venv venv
venv\Scripts\activate
pip install -r req.txt
Далее создаем файл, в котором будет выполняться ЛР.
Импортируем библиотеки:
import numpy as np # Модуль с «более продвинутой математикой»
import pandas # Модуль, с помощью которого мы прочитаем csv
import matplotlib.pyplot as plt # Модуль работы с графиками
Далее приступаем к написанию основной функции. Назовем ее main(). Начнем с того, что обозначим типы данных для столбцов в считываемом файле csv:
def main():
df = pandas.read_csv('data.csv', sep=';') # Считываем файл data.csv с разделителем ;
df['V1'].astype(float) # Явно указываем тип данных на float
df['V2'].astype(float) # Явно указываем тип данных на float
df['V3'].astype(float) # Явно указываем тип данных на float
df['Temp'].astype(float) # Явно указываем тип данных на float
Построим график зависимости для параметров Time и Temp:
plt.plot(df['Time'], df['Temp'])
Удаляем столбцы Time и Temp, оставляя только V и вычисляем среднее значение от оставшихся V1, V2, V3:
mV = df.drop('Time', axis=1).drop("Temp", axis=1).mean(axis=1)
Приступаем к построению графиков:
iT = df['Temp'] < 2 #Фильтруем значения температуры (<2).
iV = mV < 1 #Фильтруем среднее значение скорости (<1).
i = df[iT | iV] #Выбираем строки, в которых есть подходящая средняя
#скорость или температура.
time = i['Time'] # Создаем переменную time, содержащую одноименный столбец
temp = i['Temp'] # Создаем переменную temp, содержащую одноименный столбец
plt.plot(time, temp, 'r*') #Строим график температуры от времени
plt.grid(True) # Включаем сетку на графике (аналогично grid on в Matlab)
plt.show() # Отображаем график
Чтобы функция запустилась, необходимо написать:
if __name__ == '__main__':
main() # Вызов функции main
КПД (коэффициент полезного действия) – безразмерная величина, характеризующая эффективность работы. Работа есть сила, влияющая на процесс в течение некоторого времени. На действие силы затрачивается энергия. Энергия вкладывается в силу, сила вкладывается в работу, работа характеризуется результативностью. Значит, мы должны построить график зависимости средней скорости ветра при минимальной температуре от времени. Чем меньше температура и выше скорость ветра – тем больше КПД турбины.
Контрольные вопросы
Для каких целей используется усреднение данных, и каким образом оно осуществляется?
Откуда берется искажающая результаты анализа информация? Как от нее избавится?
Что такое критический диапазон?
Какой командой показываются значения, удовлетворяющие условию?
Сформулируйте определение КПД.