Создание интерактивного описания с Live Editor

Следующее является примером того, как создать интерактивное описание в Live Editor. Интерактивное описание связывает расчеты, которые вы используете, чтобы решить задачу. В этом примере показано, как к:

  • Опишите свой подход с помощью форматированного текста

  • Выход Show вместе с вашим кодом MATLAB.

  • Опишите базовую математику уравнениями.

  • Проиллюстрируйте важные тезисы с изображениями.

  • Ссылки на справочный материал.

  • Измените параметры и повторно выполните анализ со средствами управления.

  • Отобразите данные на графике для визуализации.

  • Пригласите коллег расширять ваш анализ.

Общий подход

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

Оцените выходную мощность от типичной установки солнечной батареи в определенную дату, время и местоположение путем вычисления следующего:

  • Солнечное время

  • Солнечный наклон и солнечное вертикальное изменение

  • Масса воздуха и солнечное излучение, достигающее поверхности земли

  • Излучение на солнечной батарее, учитывая ее положение, наклон и КПД

  • Энергия произведена за день и за целый год

Используйте результаты этих вычислений построить солнечный и излучение панели в течение дня в качестве примера и местоположения. Затем постройте ожидаемое производство электроэнергии панели в течение года. Чтобы оптимизировать анализ, используйте две функции MATLAB, созданные в этом примере: solarCorrection и panelRadiation.

Солнечное время

Выход Show вместе с кодом, который произвел его. Чтобы запустить раздел кода, перейдите к вкладке 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. Чтобы добавить новое уравнение, перейдите к вкладке Live Editor и нажмите кнопку Equation. Дважды кликните уравнение, чтобы отредактировать его в Редакторе формул.

Солнечный наклон (δ) угол солнца относительно экваториальной плоскости земли. Солнечный наклон 0 в vernal и осенних равноденствиях и повышениях к максимуму 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

Масса воздуха и солнечное излучение

Включайте изображения, чтобы проиллюстрировать важные тезисы в вашей истории. Чтобы включать изображение, скопируйте и вставьте изображение из другого источника или перейдите к вкладке Live Editor и кликните по Кнопке с изображением.

Когда свет от солнца проходит через атмосферу земли, часть солнечного излучения поглощена. Масса воздуха является длиной пути света через атмосферу (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

Солнечное излучение на фиксированных панелях

Используйте гиперссылки на информацию о поддержке ссылки из других источников. Чтобы добавить гиперссылку, перейдите к вкладке Live Editor и кликните по Кнопке гиперссылок.

Панели, установленные с солнечным средством отслеживания, могут переместиться с солнцем и получить 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); 
[времена, solarRad, panelRad] = panelRadiation (selectedDate, lambda, phi, UTCoff, tau, бета);

график (времена, 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% доступного солнечного излучения в электричество. КПД солнечной батареи является частью доступного излучения, которое преобразовано. КПД солнечной батареи зависит от проекта и материалов ячейки.

Как правило, жилая установка включает 20m2 из солнечных батарей с КПД 25%. Измените параметры ниже, чтобы видеть, как КПД и размер влияют на производство электроэнергии панели.

eff = 0.25;                         % Panel efficiency
pSize = 20;                         % Panel size in m^2
излучение = сумма (panelRad (1:end-1) +panelRad (2:end))/2;
dayPower = eff*pSize*radiation;                            % 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
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

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

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

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

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

Совместно используйте свой анализ с коллегами. Пригласите их воспроизводить или расширять ваш анализ. Работа совместно с помощью Live Editor.

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

Похожие темы