Создайте интерактивное описание с помощью Live Editor

Ниже приведен пример создания интерактивного описания в 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. Дважды кликните уравнение, чтобы отредактировать его в редакторе уравнений.

Солнечное склонение (δ) - угол Солнца относительно экваториальной плоскости Земли. Солнечное склонение 0 на весеннем и осеннем равноденствиях и повышается до максимума 23.45 в летнее солнцестояние. Вычислите солнечное склонение для данного дня года (d) используя уравнение

δ=sin-1(sin(23.45)sin(360365(d-81)))

Затем используйте склонение (δ), широта (ϕ), и часовой угол (ω) для вычисления повышения Солнца (α) в текущее время. Часовой угол - это количество степеней поворота Земли между текущим солнечным временем и солнечным полуднем.

α=sin-1(sinδsinϕ+cosδcosϕcosω)

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

Вычислите время восхода и захода солнца в Стандартном Времени, используя склонение Солнца и локальную широту.

sunrise=12-cos-1(-tanϕtanδ)15-TC60sunset=12+cos-1(-tanϕtanδ)15-TC60

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=1cos(90-α)+0.5057(6.0799+α)-1.6364.

Затем вычислите солнечное излучение, достигающее Земли (в киловаттах на квадратный метр), используя эмпирическое уравнение

sRad=1.353*0.7AM0.678.

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% солнечного излучения, когда солнце движется по небу. Однако большинство установок солнечных камер имеют панели, установленные на фиксированных азимуте и наклоне. Поэтому фактическое излучение, достигающее панели, также зависит от солнечного азимута. Солнечный азимут (γ) - направление компаса положения солнца в небе. В полдень Солнца в Северном полушарии солнечный азимут180 соответствующий направлению на юг. Вычислите солнечный азимут используя уравнение

γ={cos-1(sinδcosϕ-cosδsinϕcosωcosα)for solar time 12360-cos-1(sinδcosϕ-cosδsinϕcosωcosα)for solar time >12

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

В северном полушарии типичная установка солнечной панели имеет панели, ориентированные в южном направлении с азимутом панели (βиз 180. В северных широтах типичный угол наклона (τявляется 35. Вычислите излучение панели для фиксированных панелей от общего солнечного излучения используя уравнение

pRad=sRad[cos(α)sin(τ)cos(β-γ)+sin(α)cos(τ)].

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')

Figure contains an axes. The axes with title Solar and Panel Radiation for June 01 2019 contains 2 objects of type line. These objects represent Available Solar Radiation, Solar Radiation on Panel.

Генерация степени

Пока что расчеты предполагают, что все излучение, достигающее панели, доступно для выработки степени. Однако солнечные панели не преобразуют 100% доступного солнечного излучения в электричество. Эффективность солнечной панели является частью доступного излучения, которое преобразуется. Эффективность солнечной панели зависит от проекта и материалов камеры.

Как правило, жилая установка включает в себя 20m2 солнечных панелей с эффективностью 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')

Figure contains an axes. The axes with title Yearly Power Generation contains an object of type line.

yearlyPower = sum(dailyPower);
disp(['Expected annual power output = ' num2str(yearlyPower) ' kW-hrs'])
Expected annual power output = 9954.3272 kW-hrs

Наклон панели и широта

Используйте тепловую карту, чтобы определить, как наклон панели влияет на генерацию степени. Тепловая карта ниже показывает, что оптимальный наклон панели для любого местоположения составляет около 5 меньше широты.

load LatitudeVsTilt.mat
heatmap(powerTbl,'Tilt','Latitude',...
    'ColorVariable','Power');
xlabel('Panel Tilt')
ylabel('Latitude')
title('Normalized Power Output')

Figure contains an object of type heatmap. The chart of type heatmap has title Normalized Power Output.

Расширение анализа

Поделитесь своим анализом с коллегами. Предложите им воспроизвести или расширить свой анализ. Работайте совместно с Live Editor.

В действительности истинная выходная степень от солнечной установки существенно зависит от местных погодных условий. Интересным расширением этого анализа было бы увидеть, как облачная оболочка влияет на результаты. В США можно использовать данные с этих правительственных веб-сайтов.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте