Следующее является примером того, как использовать Live Editor, чтобы создать интерактивное описание. Создайте интерактивное описание, чтобы рассказать историю с вычислениями, что вы раньше решали проблему. Этот пример показывает как:
Используйте форматированный текст, чтобы описать ваш подход.
Вывод Show вместе с вашим кодом MATLAB.
Используйте уравнения, чтобы описать базовую математику.
Включайте изображения, чтобы проиллюстрировать важные тезисы.
Обеспечьте гиперссылки на справочный материал.
Позвольте читателю изменить параметры и повторно выполнить анализ.
Включайте графики для визуализации.
Пригласите коллег расширять ваш анализ.
В Live Editor можно включать форматированный текст как часть интерактивного описания. Используйте полужирный, курсивный, и подчеркнутый текст, чтобы подсветить важные слова или идеи. Используйте маркеры или числа к спискам форматов.
В этом примере мы оценим выходную мощность от типичной установки солнечной батареи. Мы будем использовать 12 полудня 1-го июня в Бостоне, чтобы проиллюстрировать, как вычислить следующее:
Солнечное время
Солнечный наклон и солнечное повышение
Масса воздуха и солнечное излучение, достигающее поверхности земли
Излучение на солнечной батарее, учитывая ее положение, наклон и эффективность
Энергия произведена за день и за целый год
Мы будем использовать эти формулы, чтобы построить график солнечный и излучение панели в течение нашего дня в качестве примера, и затем построить график ожидаемого производства электроэнергии панели в течение года. Мы будем использовать две функции MATLAB, созданные для этого анализа, solarCorrection
и hourlyPanelRadiation
, чтобы оптимизировать анализ.
Вывод Show вместе с кодом, который произвел его. Чтобы запустить раздел кода, перейдите к вкладке Live Editor и нажмите кнопку Run Section.
Производство электроэнергии в солнечной батарее зависит от того, сколько солнечного излучения достигает панели, которая в свою очередь зависит от положения солнца относительно панели, когда солнце продвигается по небу.
lambda = -71.06; % Boston longitude phi = 42.36; % Boston latitude UTCoff = -5; % Boston UTC offset TZ = ['UTC' num2str(UTCoff)]; january1 = datetime(2016,1,1,'TimeZone',TZ); % January 1st localTime = datetime(2016,6,1,12,0,0,'TimeZone',TZ) % Noon on June 1
localTime = datetime
01-Jun-2016 12:00:00
Чтобы вычислить положение солнца для данной даты и времени, мы должны использовать солнечное время. Солнечное время двенадцати полудня задано, чтобы быть временем, когда солнце является самым высоким в небе. Чтобы вычислить солнечное время, мы применяем исправление к местному времени. То исправление имеет две части:
Термин, который исправляет для различия между местоположением наблюдателя и локальным меридианом
Орбитальный термин, связанный с эксцентриситетом орбиты земли и ее осевого наклона
Мы будем использовать функцию MATLAB, созданную для этого анализа под названием solarCorrection
. Например, в полдень 1 июня, солнечное время было бы:
d = caldays(between(january1,localTime,'Day')); % Day of year solarCorr = solarCorrection(d,lambda,UTCoff); % Correction to local time solarTime = localTime + minutes(solarCorr)
solarTime = datetime
01-Jun-2016 12:18:06
Включайте уравнения, чтобы описать базовую математику. Создайте уравнения с помощью команд LATEX. Чтобы добавить новое уравнение, перейдите к вкладке Live Editor и нажмите кнопку Equation. Дважды кликните уравнение, чтобы отредактировать его в Редакторе формул.
Наклон солнца () является углом солнца относительно экваториальной плоскости земли. Солнечный наклон
в vernal и осенних равноденствиях и повышается до максимума
в летнем солнцестоянии. В любой данный день года (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.9634 Solar Elevation = 69.2589
Знание наклона солнца и локальной широты позволяет нам вычислять время восхода солнца и заката. Восход солнца и закат вычисляются в Стандартное Время.
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:15:34 Sunset = 19:08:11
Включайте изображения, чтобы проиллюстрировать важные тезисы в вашей истории. Чтобы включать изображение из файла, скопируйте и вставьте изображение из другого источника или перейдите к вкладке Live Editor и кликните по Кнопке с изображением.
Когда свет от солнца проходит через атмосферу земли, часть солнечного излучения будет поглощена. Масса воздуха является функцией солнечного повышения (). Как показано в схеме ниже, это - мера длины пути света через атмосферу (Y) относительно самого короткого пути (X), когда повышение солнца равняется 90
.
Чем больше масса воздуха, тем меньше излучения достигает земли. Масса воздуха может быть вычислена от уравнения
Затем солнечное излучение (в Kw/m^2) достижение земли может быть вычислено от эмпирического уравнения
AM = 1/(cosd(90-alpha) + 0.50572*(6.07955+alpha)^-1.6354); sRad = 1.353*0.7^(AM^0.678); % kW/m^2 disp(['Air Mass = ' num2str(AM) ' Solar Radiation = ' num2str(sRad) ' kW/m^2'])
Air Mass = 1.0688 Solar Radiation = 0.93164 kW/m^2
Используйте гиперссылки на информацию о поддержке ссылки из других источников. Чтобы добавить гиперссылку, перейдите к вкладке Live Editor и кликните по Кнопке гиперссылок.
Панели, установленные с солнечным средством отслеживания, могут переместиться с солнцем и получить 100% излучения солнца, когда солнце продвигается по небу. Однако большинству установок солнечной батареи установили панели в фиксированном азимуте и наклоне. Поэтому фактическое излучение, достигающее панели, будет также зависеть от азимута солнца. Солнечный азимут () является направлением компаса положения солнца в небе. В солнечный полдень в северном полушарии азимут солнца будет 180
(юг). Солнечный азимут вычисляется от этого уравнения:
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.8568
В северном полушарии типичной установке солнечной батареи ориентировали бы панели к югу с азимутом панели ()
. В северных широтах типичный угол наклона (
) был бы 35
. Для фиксированных панелей излучение панели вычисляется от общего солнечного излучения с помощью этого уравнения:
beta = 180; % Panel azimuth tau = 35; % Panel tilt pRad = sRad*max(0,(cosd(alpha)*sind(tau)*cosd(beta-gamma) + sind(alpha)*cosd(tau))); disp(['Panel Radiation = ' num2str(pRad) ' kW/m^2'])
Panel Radiation = 0.8989 kW/m^2
Позвольте читателю изменить значения параметров в анализе, чтобы видеть, как различные значения параметров влияют на результаты.
До сих пор наши вычисления отражают теоретическое максимальное солнечное излучение, доступное для преобразования электроэнергии. Однако солнечные батареи не преобразовывают 100% доступного солнечного излучения в электричество. Эффективность солнечной батареи является частью излучения, достигающего панели, которая преобразована в электричество. Эффективность солнечной батареи зависит от дизайна и материалов ячейки.
Мы будем использовать типичные 20 жилых установок с эффективностью 25%, чтобы вычислить ожидаемую выходную мощность. Можно изменить параметры ниже, чтобы видеть, как эффективность и размер влияют на производство электроэнергии панели.
eff = 0.25; % Panel efficiency pSize = 20; % Panel size in m^2 pElec = eff*pSize*pRad; % Panel electric output in kW disp(['Expected electical output = ' num2str(pElec) ' kW'])
Expected electical output = 4.4945 kW
Создайте графики в Live Editor вместе с кодом, который произвел их. Дважды кликните график открыть его в отдельном окне фигуры.
Мы можем теперь вычислить, сколько энергии панель произведет в любой день года. Чтобы упростить анализ, мы будем использовать функцию под названием hourlyPanelRadiation
, который использует уравнения выше, чтобы вычислить почасовое общее солнечное излучение и излучение панели для данной даты и местоположения. Параметр isFixed
устанавливается на 1 для фиксированных панелей, 0 для отслеживания панелей.
[time, sRad,
pRad] = hourlyPanelRadiation(date, longitude, latitude, UTCoff, panelTilt, panelAzimuth, isFixed)
isFixed = 1; date = datetime(2016,6,1,'TimeZone',TZ); % Try other dates [times, sRad, pRad] = hourlyPanelRadiation(date, lambda, phi, UTCoff, tau, beta, isFixed) ; plot(times,sRad,times,pRad) title(['Solar and Panel Radiation for ' datestr(date,'mmmm dd yyyy')]) xlabel('Hour of Day'); ylabel('Radiation, kW/m^2') legend('Available Solar Radiation','Solar Radiation on Panel', 'Location','South')
Мы можем повторить вычисление, чтобы оценить производство электроэнергии в течение каждого дня года.
date = datetime(2015,1,1:365,'TimeZone',TZ); % Create a vector of days in the year for i = 1:365 [times, sRad, pRad] = hourlyPanelRadiation(date(i), lambda, phi, UTCoff, tau, beta, isFixed) ; radiation = sum(pRad(1:end-1)+pRad(2:end))/2; dailyPower(i) = eff*pSize*radiation; end plot(date,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
Совместно используйте свой анализ с коллегами. Пригласите их воспроизводить или расширять ваш анализ. Работа совместно с помощью Live Editor.
В действительности истинная выходная мощность от солнечной установки будет значительно затронута локальными погодными условиями. Интересное расширение этого анализа должно было бы видеть, как облачный покров влияет на результаты. В США мы можем использовать данные от следующих правительственных веб-сайтов.
Используйте исторические локальные данные о погоде от веб-сайта Национальной метеорологической службы.
Используйте измеренные данные солнечного излучения от Национальной Базы данных Солнечного излучения.