Ниже приведен пример создания интерактивного описания в Live Editor. Интерактивное описание связывает вместе расчеты, которые вы используете для решения задачи. В этом примере показано, как:
Опишите свой подход с помощью форматированного текста
Отобразите выход вместе с кодом MATLAB.
Опишите базовую математику с помощью уравнений.
Проиллюстрировать важные точки изображениями.
Ссылки на фоновый материал.
Измените параметры и повторно запустите анализ с помощью элементов управления.
Постройте график данных для визуализации.
Предложите коллегам расширить ваш анализ.
Включите форматированный текст в интерактивное описание. Используйте жирный, курсив и подчеркнутый текст, чтобы выделить важные слова. Используйте маркеры или номера для форматирования списков.
Оцените степень выхода от типовой установки солнечной панели в определенную дату, время и местоположение путем вычисления следующего:
Солнечное время
Солнечное склонение и повышение уровня Солнца
Воздушная масса и солнечное излучение, достигающее поверхности Земли
Излучение на панели солнечных батарей с учетом ее положения, наклона и эффективности
Степень, произведенная за день и за весь год
Используйте результаты этих вычислений, чтобы построить график солнечного и панельного излучения для примера дня и местоположения. Затем постройте график ожидаемой панели степени генерации в течение года. Чтобы упростить анализ, используйте две функции MATLAB, созданные для этого примера: solarCorrection
и panelRadiation
.
Показать выход вместе с кодом, который произвел его. Чтобы запустить раздел кода, перейдите на вкладку Live Editor и нажмите кнопку Run Section.
Генерация степени в солнечной панели зависит от того, сколько солнечного излучения достигает панели. Это в свою очередь зависит от положения солнца относительно панели, когда солнце движется через небо. Для примера предположим, что вы хотите вычислить степень выхода для солнечной панели 1 июня в 12 полудня в Бостоне, Массачусетс.
lambda = -71.06; % longitude phi = 42.36; % latitude UTCoff = '-5'; % UTC offset january1 = datetime (2019,1,1); % January 1st localTime = datetime (2019,6,1,12,0,0 )% Noon on June 1
localTime = datetime
01-Jun-2019 12:00:00
Чтобы вычислить положение солнца для заданной даты и времени, используйте солнечное время. Двенадцать полдень солнечного времени - это время, когда солнце самое высокое в небе. Чтобы вычислить солнечное время, примените коррекцию к местному времени. Эта коррекция имеет две части:
Термин, который исправляет различие между местоположением наблюдателя и локальным меридианом.
Орбитальный термин, относящийся к орбитальному эксцентриситету Земли и осевому наклону.
Вычислите солнечное время с помощью solarCorrection
функция.
d = caldays(between(january1,localTime,'Day')); % Day of year solarCorr = solarCorrection(d,lambda,str2double(UTCoff)); % Correction to local time solarTime = localTime + minutes(solarCorr)
solarTime = datetime
01-Jun-2019 12:18:15
Включите уравнения, чтобы описать базовую математику. Создайте уравнения с помощью команд LaTeX. Чтобы добавить новое уравнение, перейдите на вкладку Insert и нажмите кнопку Equation. Дважды кликните уравнение, чтобы отредактировать его в редакторе уравнений.
Солнечное склонение () - угол Солнца относительно экваториальной плоскости Земли. Солнечное склонение на весеннем и осеннем равноденствиях и повышается до максимума в летнее солнцестояние. Вычислите солнечное склонение для данного дня года (d) используя уравнение
Затем используйте склонение (), широта (), и часовой угол () для вычисления повышения Солнца () в текущее время. Часовой угол - это количество степеней поворота Земли между текущим солнечным временем и солнечным полуднем.
delta = asind(sind(23.45)*sind(360*(d - 81)/365)); % Declination omega = 15*(solarTime.Hour + solarTime.Minute/60 - 12); % Hour angle alpha = asind(sind(delta)*sind(phi) + ... % Elevation cosd(delta)*cosd(phi)*cosd(omega)); disp(['Solar Declination = ' num2str(delta) ' Solar Elevation = ' num2str(alpha)])
Solar Declination = 21.8155 Solar Elevation = 69.113
Вычислите время восхода и захода солнца в Стандартном Времени, используя склонение Солнца и локальную широту.
midnight = dateshift(localTime,'start','day'); sr = 12 - acosd(-tand(phi)*tand(delta))/15 - solarCorr/60; sunrise = timeofday(midnight + hours(sr)); ss = 12 + acosd(-tand(phi)*tand(delta))/15 - solarCorr/60; sunset = timeofday(midnight + hours(ss)); disp(['Sunrise = ', datestr(sunrise,'HH:MM:SS'), ' Sunset = ', datestr(sunset,'HH:MM:ss')])
Sunrise = 04:16:06 Sunset = 19:07:22
Включите изображения, чтобы проиллюстрировать важные точки в своей истории. Чтобы включить изображение, скопируйте и вставьте изображение из другого источника или перейдите на вкладку Insert и нажмите кнопку Image.
Когда свет от Солнца проходит через земную атмосферу, часть солнечного излучения поглощается. Воздушная масса - это длина пути света через атмосферу (Y) относительно самого короткого пути (X), когда повышение Солнца составляет 90, как показано на схеме ниже. Является функцией солнечного повышения ().
Чем больше воздушная масса, тем меньше излучения достигает земли. Вычислите воздушную массу используя уравнение
Затем вычислите солнечное излучение, достигающее Земли (в киловаттах на квадратный метр), используя эмпирическое уравнение
AM = 1/(cosd(90-alpha) + 0.50572*(6.07955+alpha)^-1.6354); solarRad = 1.353*0.7^(AM^0.678); % kW/m^2 disp(['Air Mass = ' num2str(AM) ' Solar Radiation = ' num2str(solarRad) ' kW/m^2'])
Air Mass = 1.0698 Solar Radiation = 0.93141 kW/m^2
Используйте гиперссылки для ссылки на вспомогательную информацию из других источников. Чтобы добавить гиперссылку, перейдите на вкладку Insert и нажмите кнопку Hyperlink.
Панели, установленные с солнечным трекером, могут перемещаться с солнцем и получать 100% солнечного излучения, когда солнце движется по небу. Однако большинство установок солнечных камер имеют панели, установленные на фиксированных азимуте и наклоне. Поэтому фактическое излучение, достигающее панели, также зависит от солнечного азимута. Солнечный азимут () - направление компаса положения солнца в небе. В полдень Солнца в Северном полушарии солнечный азимут соответствующий направлению на юг. Вычислите солнечный азимут используя уравнение
gamma = acosd((sind(delta)*cosd(phi) - cosd(delta)*sind(phi)*cosd(omega))/cosd(alpha)); if (hour(solarTime) >= 12) && (omega >= 0) gamma = 360 - gamma; end disp(['Solar Azimuth = ' num2str(gamma)])
Solar Azimuth = 191.7888
В северном полушарии типичная установка солнечной панели имеет панели, ориентированные в южном направлении с азимутом панели (из . В северных широтах типичный угол наклона (является . Вычислите излучение панели для фиксированных панелей от общего солнечного излучения используя уравнение
.
beta = 180; % Panel azimuth tau = 35; % Panel tilt panelRad = solarRad*max(0,(cosd(alpha)*sind(tau)*cosd(beta-gamma) + sind(alpha)*cosd(tau))); disp(['Panel Radiation = ' num2str(panelRad) ' kW/m^2'])
Panel Radiation = 0.89928 kW/m^2
Измените параметры с помощью интерактивных элементов управления. Отображать графики вместе с кодом, который их произвел.
Для заданного дня года вычислите общее солнечное излучение и излучение на панели. Чтобы упростить анализ, используйте panelRadiation
функция. Попробуйте различные даты, чтобы увидеть, как меняется солнечное и панельное излучение в зависимости от времени года.
selectedMonth = 6; selectedDay = 1; selectedDate = datetime (2019, selectedMonth, selectedDay); [time, solarRad, panelRad] = panelRadiation (selectedDate, lambda, phi, UTCoff, tau, beta); график (время, solarRad, время, panelRad) заголовок (['Solar and Panel Radiation for ' datestr (selectedDate,'mmmm dd yyyy')]) xlabel ('Hour of Day'); ylabel ('Radiation, kW/m^2') легенда ('Available Solar Radiation','Solar Radiation on Panel', 'Location','South')
Пока что расчеты предполагают, что все излучение, достигающее панели, доступно для выработки степени. Однако солнечные панели не преобразуют 100% доступного солнечного излучения в электричество. Эффективность солнечной панели является частью доступного излучения, которое преобразуется. Эффективность солнечной панели зависит от проекта и материалов камеры.
Как правило, жилая установка включает в себя 20 солнечных панелей с эффективностью 25%. Измените параметры ниже, чтобы увидеть, как эффективность и размер влияют на генерацию степени на панели.
eff = 0.25; % Panel efficiency pSize = 20; % Panel size in m^2 radiation = sum (panelRad (1: end-1) + panelRad (2: end) )/2; dayPower = eff * pSize * излучение;% Panel electric output in kW disp (['Expected daily electical output for ' datestr (selectedDate )' = ' num2str (dayPower )' kW-hrs'])
Expected daily electical output for 01-Jun-2019 = 33.4223 kW-hrs
Наведите на график для взаимодействия с ним. Взаимодействие с графиком в Live Editor сгенерирует код, который можно затем добавить к скрипту.
Повторите расчет, чтобы оценить генерацию степени для каждого дня года.
yearDates = datetime(2019,1,1:365); % Create a vector of days in the year dailyPower = zeros(1,365); for i = 1:365 [times,solarRad,panelRad] = panelRadiation(yearDates(i),lambda,phi,UTCoff,tau,beta) ; radiation = sum(panelRad(1:end-1)+panelRad(2:end))/2; dailyPower(i) = eff*pSize*radiation; end plot(yearDates,dailyPower) title('Yearly Power Generation') xlabel('Date'); ylabel('Power Generation, kW-hrs')
yearlyPower = sum(dailyPower); disp(['Expected annual power output = ' num2str(yearlyPower) ' kW-hrs'])
Expected annual power output = 9954.3272 kW-hrs
Используйте тепловую карту, чтобы определить, как наклон панели влияет на генерацию степени. Тепловая карта ниже показывает, что оптимальный наклон панели для любого местоположения составляет около меньше широты.
load LatitudeVsTilt.mat heatmap(powerTbl,'Tilt','Latitude',... 'ColorVariable','Power'); xlabel('Panel Tilt') ylabel('Latitude') title('Normalized Power Output')
Поделитесь своим анализом с коллегами. Предложите им воспроизвести или расширить свой анализ. Работайте совместно с Live Editor.
В действительности истинная выходная степень от солнечной установки существенно зависит от местных погодных условий. Интересным расширением этого анализа было бы увидеть, как облачная оболочка влияет на результаты. В США можно использовать данные с этих правительственных веб-сайтов.
Используйте исторические данные о местной погоде с сайта Национальной службы погоды.
Используйте данные измеренного солнечного излучения из Национальной базы данных солнечного излучения.