Следующее является примером того, как создать интерактивное описание в 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. Чтобы добавить новое уравнение, перейдите к вкладке Insert и нажмите кнопку 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.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)); sunrise.Format = 'hh:mm:ss'; sunset.Format = 'hh:mm:ss'; disp('Sunrise = ' + string(sunrise) + ' Sunset = ' + string(sunset))
Sunrise = 04:16:06 Sunset = 19:07:22
Включайте изображения, чтобы проиллюстрировать важные тезисы в вашей истории. Чтобы включать изображение, скопируйте и вставьте изображение из другого источника или перейдите к вкладке Insert и кликните по Кнопке с изображением.
Когда свет от солнца проходит через атмосферу земли, часть солнечного излучения поглощена. Масса воздуха является длиной пути света через атмосферу (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 и кликните по Кнопке гиперссылок.
Панели, установленные с солнечным средством отслеживания, могут переместиться с солнцем и получить 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); [времена, solarRad, panelRad] = panelRadiation (selectedDate, lambda, phi, UTCoff, tau, бета); график (времена, solarRad, времена, panelRad) selectedDate.Format = 'MMMM dd yyyy'; заголовок'Solar and Panel Radiation for ' + представьте (selectedDate) в виде строки), 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 излучение = сумма (panelRad (1:end-1) +panelRad (2:end))/2; dayPower = eff*pSize*radiation; % Panel electric output in kW selectedDate.Format = 'dd-MMM-yyyy'; disp'Expected daily electical output for ' + представьте (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.
В действительности истинная выходная мощность от солнечной установки значительно затронута локальными погодными условиями. Интересное расширение этого анализа состояло бы в том, чтобы видеть, как облачный покров влияет на результаты. В США можно использовать данные из этих правительственных веб-сайтов.
Используйте исторические локальные данные о погоде от веб-сайта Национальной метеорологической службы.
Используйте измеренные данные о солнечном излучении из Национальной Базы данных Солнечного излучения.