Ниже приведен пример создания интерактивного повествования в интерактивном редакторе. Интерактивное описание связывает вычисления, используемые для решения проблемы. В этом примере показано, как:
описывать подход с использованием форматированного текста;
Отображение выходных данных вместе с кодом 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. Чтобы добавить новое уравнение, перейдите на вкладку «Вставка» и нажмите кнопку «Уравнение». Дважды щелкните уравнение, чтобы отредактировать его в редакторе уравнений.
Солнечное склонение () - угол Солнца относительно экваториальной плоскости Земли. Солнечное склонение на весеннем и осеннем равноденствиях, а на летнем солнцестоянии поднимается максимум до 23.45∘. Расчет солнечного склонения для данного дня года (d) с использованием уравнения
d-81)))
Затем для вычисления отметки Солнца (α) в текущее время используйте склонение (δ), широту (λ) и часовой угол (λ). Часовой угол - это число градусов вращения Земли между текущим солнечным временем и солнечным полуднем.
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
Вычислите время восхода и захода солнца в стандартном времени, используя склонение солнца и локальную широту.
∘-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
Включите изображения, чтобы проиллюстрировать важные моменты вашей истории. Чтобы включить изображение, скопируйте и вставьте его из другого источника или перейдите на вкладку «Вставка» и нажмите кнопку «Изображение».
Когда свет от солнца проходит через земную атмосферу, часть солнечной радиации поглощается. Воздушная масса - это длина пути света через атмосферу (Y) относительно кратчайшего возможного пути (X), когда высота солнца как показано на диаграмме ниже. Является функцией солнечного возвышения ().

Чем больше воздушная масса, тем меньше радиации достигает земли. Расчет массы воздуха с помощью уравнения
-1,6364.
Затем рассчитайте солнечное излучение, достигающее земли (в киловаттах на квадратный метр), используя эмпирическое уравнение
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
Используйте гиперссылки для ссылки на вспомогательную информацию из других источников. Чтобы добавить гиперссылку, перейдите на вкладку «Вставка» и нажмите кнопку «Гиперссылка».
Панели, установленные с солнечным трекером, могут перемещаться вместе с солнцем и получать 100% солнечного излучения при движении солнца по небу. Однако большинство установок солнечных батарей имеют панели, установленные по фиксированному азимуту и наклону. Следовательно, фактическое излучение, достигающее панели, также зависит от солнечного азимута. Солнечный азимут () - направление компаса положения Солнца на небе. В солнечный полдень в северном полушарии солнечный азимут, соответствующий направлению на юг.
времени > 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
В северном полушарии типичная установка солнечных панелей имеет панели, ориентированные к югу с азимутом панели () . В северных широтах типичный угол наклона (start). Расчет излучения панели для фиксированных панелей по общему солнечному излучению с помощью уравнения
(
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); [times,solarRad,panelRad] = panelRadiation(selectedDate,lambda,phi,UTCoff,tau,beta) ; plot(times,solarRad,times,panelRad) title(['Solar and Panel Radiation for ' datestr(selectedDate,'mmmm dd yyyy')]) xlabel('Hour of Day'); ylabel('Radiation, kW/m^2') legend('Available Solar Radiation','Solar Radiation on Panel', 'Location','South')

Пока расчеты предполагают, что все излучение, достигающее панели, доступно для выработки энергии. Однако солнечные батареи не преобразуют 100% имеющейся солнечной радиации в электричество. Эффективность солнечной панели - это доля доступного излучения, которая преобразуется. Эффективность солнечной панели зависит от конструкции и материалов элемента.
Обычно жилая установка включает в себя солнечных батарей с КПД 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*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
Наведите курсор на график для взаимодействия с ним. При взаимодействии с графиком в интерактивном редакторе создается код, который затем можно добавить в сценарий.
Повторите расчет для оценки выработки электроэнергии за каждый день года.
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.
В действительности на истинную мощность солнечной установки существенно влияют местные погодные условия. Интересным расширением этого анализа было бы изучение влияния облачности на результаты. В США можно использовать данные с этих государственных веб-сайтов.
Воспользуйтесь историческими местными данными погоды на сайте Национальной службы погоды.
Использовать данные измеренного солнечного излучения из Национальной базы данных солнечного излучения.