Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Crea una narrativa interactiva con el editor en vivo

The following is an example of how to use the Live Editor to create an interactive narrative. Create an interactive narrative to tell a story with computations that you have used to solve a problem. This example shows how to:

  • Use formatted text to describe your approach.

  • Show output together with your MATLAB code.

  • Use equations to describe the underlying mathematics.

  • Include images to illustrate important points.

  • Provide hyperlinks to background material.

  • Let the reader modify parameters and re-run the analysis.

  • Include plots for visualization.

  • Invite colleagues to extend your analysis.

El enfoque general

In the Live Editor, you can include formatted text as part of the interactive narrative. Use bold, italic, and underlined text to highlight important words or ideas. Use bullets or numbers to format lists.

En este ejemplo vamos a estimar el de una instalación de panel solar típica.power output Utilizaremos en Boston para ilustrar cómo calcular lo siguiente:12 noon on June 1st

  • Tiempo solar

  • La declinación solar y la elevación solar

  • La masa de aire y la radiación solar alcanzan la superficie de la tierra

  • Radiación en un panel solar dada su posición, inclinación y eficiencia

  • La energía generada en un día y durante todo el año

Utilizaremos estas fórmulas para trazar la radiación solar y de paneles para nuestro día de ejemplo, y luego trazar la generación de energía del panel esperada en el transcurso de un año. Usaremos dos funciones de MATLAB creadas para este análisis y, para agilizar el análisis.solarCorrectionpanelRadiation

Solar Time

Show output together with the code that produced it. To run a section of code, go to the Live Editor tab and click the Run Section button.

La generación de energía en un panel solar depende de Cuánta radiación solar alcanza el panel, lo que a su vez depende de la posición del sol en relación con el panel a medida que el sol se mueve a través del cielo.

lambda = -71.06;                              % longitude phi = 42.36;                                 % latitude UTCoff = '-5';                              % UTC offset  TZ = ['UTC' 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

Para calcular la posición del sol para una fecha y hora determinada necesitamos usar.solar time Doce de mediodía la hora solar se define como el tiempo cuando el sol es más alto en el cielo. Para calcular la hora solar, aplicamos una corrección a la hora local. Esta corrección tiene dos partes:

  • Un término que corrige la diferencia entre la ubicación del observador y el meridiano local

  • Un término orbital relacionado con la excentricidad de la órbita terrestre y su inclinación axial

Usaremos una función de MATLAB creada para este análisis llamado.solarCorrection Por ejemplo, al mediodía del 1 de junio, la hora solar sería:

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-2016 12:18:06

Declinación solar y elevación

Include equations to describe the underlying mathematics. Create equations using LaTeX commands. To add a new equation, go to the Live Editor tab and click the Equation button. Double-click an equation to edit it in the Equation Editor.

La declinación del sol (

<math display="block">
<mrow>
<mi>δ</mi>
</mrow>
</math>
) es el ángulo del sol en relación con el plano ecuatorial de la tierra. La declinación solar es
<math display="block">
<mrow>
<msup>
<mrow>
<mn>0</mn>
</mrow>
<mrow>
<mo></mo>
</mrow>
</msup>
</mrow>
</math>
en los equinoccios Vernal y otoñal y se eleva a un máximo de
<math display="block">
<mrow>
<mn>2</mn>
<mn>3</mn>
<mo>.</mo>
<mn>4</mn>
<msup>
<mrow>
<mn>5</mn>
</mrow>
<mrow>
<mo></mo>
</mrow>
</msup>
</mrow>
</math>
en el solsticio de verano. En cualquier día del año (), la declinación se puede calcular a partir de la siguiente fórmula:d

<math display="block">
<mrow>
<mi>δ</mi>
<mo>=</mo>
<msup>
<mrow>
<mi mathvariant="normal">sin</mi>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mrow>
<mo>(</mo>
<mi mathvariant="normal">sin</mi>
<mo stretchy="false">(</mo>
<mn>2</mn>
<mn>3</mn>
<mo>.</mo>
<mn>4</mn>
<mn>5</mn>
<mo stretchy="false">)</mo>
<mi mathvariant="normal">sin</mi>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mn>3</mn>
<mn>6</mn>
<mn>0</mn>
</mrow>
<mrow>
<mn>3</mn>
<mn>6</mn>
<mn>5</mn>
</mrow>
</mfrac>
<mo stretchy="false">(</mo>
<mi>d</mi>
<mo>-</mo>
<mn>8</mn>
<mn>1</mn>
<mo stretchy="false">)</mo>
<mo>)</mo>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
</math>

Desde la declinación (

<math display="block">
<mrow>
<mi>δ</mi>
</mrow>
</math>
) y la latitud (
<math display="block">
<mrow>
<mi>ϕ</mi>
</mrow>
</math>
) podemos calcular la elevación del sol (
<math display="block">
<mrow>
<mi>α</mi>
</mrow>
</math>
) en el momento actual.

<math display="block">
<mrow>
<mi>α</mi>
<mo>=</mo>
<msup>
<mrow>
<mi mathvariant="normal">sin</mi>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mrow>
<mo>(</mo>
<mi mathvariant="normal">sin</mi>
<mi>δ</mi>
<mi mathvariant="normal">sin</mi>
<mi>ϕ</mi>
<mo>+</mo>
<mi mathvariant="normal">cos</mi>
<mi>δ</mi>
<mi mathvariant="normal">cos</mi>
<mi>ϕ</mi>
<mi mathvariant="normal">cos</mi>
<mi>ω</mi>
<mo>)</mo>
</mrow>
</mrow>
</math>

Aquí

<math display="block">
<mrow>
<mi>ω</mi>
</mrow>
</math>
es el número de grados de rotación de la tierra entre la hora solar actual y el mediodía solar.hour angle,

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 

Conocer la declinación del sol y la latitud local nos permite calcular el tiempo de salida y puesta del sol. El amanecer y el atardecer se calculan en la hora estándar.

<math display="block">
<mrow>
<mi>s</mi>
<mi>u</mi>
<mi>n</mi>
<mi>r</mi>
<mi>i</mi>
<mi>s</mi>
<mi>e</mi>
<mo>=</mo>
<mn>1</mn>
<mn>2</mn>
<mo>-</mo>
<mfrac>
<mrow>
<msup>
<mrow>
<mi mathvariant="normal">cos</mi>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mrow>
<mo>(</mo>
<mo>-</mo>
<mi mathvariant="normal">tan</mi>
<mi>ϕ</mi>
<mi mathvariant="normal">tan</mi>
<mi>δ</mi>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mn>1</mn>
<msup>
<mrow>
<mn>5</mn>
</mrow>
<mrow>
<mo></mo>
</mrow>
</msup>
</mrow>
</mfrac>
<mo>-</mo>
<mfrac>
<mrow>
<mi>T</mi>
<mi>C</mi>
</mrow>
<mrow>
<mn>6</mn>
<mn>0</mn>
</mrow>
</mfrac>
<mspace width="2em"></mspace>
<mspace width="2em"></mspace>
<mi>s</mi>
<mi>u</mi>
<mi>n</mi>
<mi>s</mi>
<mi>e</mi>
<mi>t</mi>
<mo>=</mo>
<mn>1</mn>
<mn>2</mn>
<mo>+</mo>
<mfrac>
<mrow>
<msup>
<mrow>
<mi mathvariant="normal">cos</mi>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mrow>
<mo>(</mo>
<mo>-</mo>
<mi mathvariant="normal">tan</mi>
<mi>ϕ</mi>
<mi mathvariant="normal">tan</mi>
<mi>δ</mi>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mn>1</mn>
<msup>
<mrow>
<mn>5</mn>
</mrow>
<mrow>
<mo></mo>
</mrow>
</msup>
</mrow>
</mfrac>
<mo>-</mo>
<mfrac>
<mrow>
<mi>T</mi>
<mi>C</mi>
</mrow>
<mrow>
<mn>6</mn>
<mn>0</mn>
</mrow>
</mfrac>
</mrow>
</math>

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 

La masa de aire y la radiación solar

Include images to illustrate important points in your story. To include an image from a file, copy and paste an image from another source or go to the Live Editor tab and click the Image button.

A medida que la luz del sol atraviesa la atmósfera terrestre, parte de la radiación solar será absorbida. La masa de aire es una función de elevación solar (

<math display="block">
<mrow>
<mi>α</mi>
</mrow>
</math>
). Como se muestra en el siguiente diagrama, es una medida de la longitud del camino de la luz a través de la atmósfera (Y) en relación con el camino más corto posible (X) cuando la elevación del sol es de 90
<math display="block">
<mrow>
<msup>
<mrow></mrow>
<mrow>
<mo></mo>
</mrow>
</msup>
</mrow>
</math>
.

Cuanto mayor es la masa de aire, menos radiación llega al suelo. La masa de aire se puede calcular a partir de la ecuación

<math display="block">
<mrow>
<mi>A</mi>
<mi>M</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mn>1</mn>
</mrow>
<mrow>
<mi mathvariant="normal">cos</mi>
<mo stretchy="false">(</mo>
<mn>9</mn>
<mn>0</mn>
<mo>-</mo>
<mi>α</mi>
<mo stretchy="false">)</mo>
<mo>+</mo>
<mn>0</mn>
<mo>.</mo>
<mn>5</mn>
<mn>0</mn>
<mn>5</mn>
<mn>7</mn>
<mo stretchy="false">(</mo>
<mn>6</mn>
<mo>.</mo>
<mn>0</mn>
<mn>7</mn>
<mn>9</mn>
<mn>9</mn>
<mo>+</mo>
<mi>α</mi>
<msup>
<mrow>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
<mo>.</mo>
<mn>6</mn>
<mn>3</mn>
<mn>6</mn>
<mn>4</mn>
</mrow>
</msup>
<mo>.</mo>
</mrow>
</mfrac>
</mrow>
</math>

A continuación, la radiación solar (en kW/m ^ 2) que alcanza el suelo se puede calcular a partir de la ecuación empírica

<math display="block">
<mrow>
<mi>s</mi>
<mi>R</mi>
<mi>a</mi>
<mi>d</mi>
<mo>=</mo>
<mn>1</mn>
<mo>.</mo>
<mn>3</mn>
<mn>5</mn>
<mn>3</mn>
<mo>*</mo>
<mn>0</mn>
<mo>.</mo>
<msup>
<mrow>
<mn>7</mn>
</mrow>
<mrow>
<mi>A</mi>
<msup>
<mrow>
<mi>M</mi>
</mrow>
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>6</mn>
<mn>7</mn>
<mn>8</mn>
</mrow>
</msup>
</mrow>
</msup>
<mo>.</mo>
</mrow>
</math>

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 

La radiación solar en paneles fijos

Use hyperlinks to reference supporting information from other sources. To add a hyperlink, go to the Live Editor tab and click the Hyperlink button.

Los paneles instalados con un rastreador solar pueden moverse con el sol y recibir el 100% de la radiación del sol a medida que el sol se mueve a través del cielo. Sin embargo, la mayoría de las instalaciones de células solares tienen paneles fijados en un acimut y una inclinación fija. Por lo tanto, la radiación real que llega al panel dependerá también del acimut del sol. El acimut solar (

<math display="block">
<mrow>
<mi>γ</mi>
</mrow>
</math>
) es la dirección de la brújula de la posición del sol en el cielo. Al mediodía solar en el hemisferio norte el acimut del sol será de 180
<math display="block">
<mrow>
<msup>
<mrow></mrow>
<mrow>
<mo></mo>
</mrow>
</msup>
</mrow>
</math>
(sur). El acimut solar se calcula a partir de esta ecuación:

<math display="inline">
<mrow>
<mtext>\gamma</mtext>
<mtext>=</mtext>
<mtext>ł</mtext>
<mtext>eft</mtext>
<mtext>{</mtext>
<mtext>\begin</mtext>
<mtext>array</mtext>
<mtext>ll</mtext>
<mtext>\cos</mtext>
<mtext>^</mtext>
<mtext>-</mtext>
<mtext>1</mtext>
<mtext>ł</mtext>
<mtext>eft(</mtext>
<mtext>\frac</mtext>
<mtext>\sin</mtext>
<mtext>\delta</mtext>
<mtext>\cos</mtext>
<mtext>\phi</mtext>
<mtext>-</mtext>
<mtext>\cos</mtext>
<mtext>\delta</mtext>
<mtext>\sin</mtext>
<mtext>\phi</mtext>
<mtext>\cos</mtext>
<mtext>ø</mtext>
<mtext>mega</mtext>
<mtext>\cos</mtext>
<mtext>\alpha</mtext>
<mtext>\right</mtext>
<mtext>) & </mtext>
<mtext>\mbox</mtext>
<mtext>for solar time </mtext>
<mo></mo>
<mn>1</mn>
<mn>2</mn>
</mrow>
</math>

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 

En el hemisferio norte, una instalación de panel solar típica tendría paneles orientados hacia el sur con un Azimut de panel (

<math display="block">
<mrow>
<mi>β</mi>
</mrow>
</math>
) de
<math display="block">
<mrow>
<mn>1</mn>
<mn>8</mn>
<msup>
<mrow>
<mn>0</mn>
</mrow>
<mrow>
<mo></mo>
</mrow>
</msup>
</mrow>
</math>
. En las latitudes septentrionales un ángulo de inclinación típico (
<math display="block">
<mrow>
<mi>τ</mi>
</mrow>
</math>
) sería 35
<math display="block">
<mrow>
<msup>
<mrow></mrow>
<mrow>
<mo></mo>
</mrow>
</msup>
</mrow>
</math>
. Para los paneles fijos, la radiación del panel se calcula a partir de la radiación solar total utilizando esta ecuación:

<math display="block">
<mrow>
<mi>p</mi>
<mi>R</mi>
<mi>a</mi>
<mi>d</mi>
<mo>=</mo>
<mi>s</mi>
<mi>R</mi>
<mi>a</mi>
<mi>d</mi>
<mrow>
<mo>[</mo>
<mi mathvariant="normal">cos</mi>
<mo stretchy="false">(</mo>
<mi>α</mi>
<mo stretchy="false">)</mo>
<mi mathvariant="normal">sin</mi>
<mo stretchy="false">(</mo>
<mi>τ</mi>
<mo stretchy="false">)</mo>
<mi mathvariant="normal">cos</mi>
<mo stretchy="false">(</mo>
<mi>β</mi>
<mo>-</mo>
<mi>γ</mi>
<mo stretchy="false">)</mo>
<mo>+</mo>
<mi mathvariant="normal">sin</mi>
<mo stretchy="false">(</mo>
<mi>α</mi>
<mo stretchy="false">)</mo>
<mi mathvariant="normal">cos</mi>
<mo stretchy="false">(</mo>
<mi>τ</mi>
<mo stretchy="false">)</mo>
<mrow>
<mo>]</mo>
</mrow>
</mrow>
</mrow>
</math>

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 

Tamaño y eficiencia del panel

Let the reader change the values of parameters in the analysis to see how different parameter values affect the results.

Hasta ahora, nuestros cálculos reflejan la máxima radiación solar teórica disponible para la conversión de energía. Sin embargo, los paneles solares no convierten el 100% de la radiación solar disponible en electricidad. La eficiencia de un panel solar es la fracción de la radiación que llega al panel que se convierte en electricidad. La eficiencia de un panel solar depende del diseño y los materiales de la célula.

Típicamente, una instalación residencial incluye 20

<math display="block">
<mrow>
<msup>
<mrow>
<mi>m</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</math>
de paneles solares con una eficiencia del 25%. Puede modificar los parámetros siguientes para ver cómo la eficiencia y el tamaño afectan a la generación de energía del panel.

eff = 0.36;                          % Panel efficiency pSize = 25;                          % Panel size in m^2 pElec = eff*pSize*pRad;                                     % Panel electric output in kW disp(['Expected electical output = ' num2str(pElec) ' kW'])
Expected electical output = 8.0901 kW 

Generación de energía con el tiempo

Create plots in the Live Editor together with the code that produced them. Double-click a plot to open it in a separate figure window.

Ahora podemos calcular cuánta energía generará un panel en cualquier día del año. Para simplificar el análisis, usaremos una función llamada p que utiliza las ecuaciones anteriores para calcular la radiación solar total por hora y la radiación de panel para una fecha y ubicación determinada.anelRadiation El parámetro se establece en 1 para los paneles fijos, 0 para los paneles de seguimiento.isFixed Pruebe diferentes fechas para ver cómo cambia la radiación solar y de panel en función de la época del año.

[time, sRad, pRad] = panelRadiation(date, longitude, latitude, UTCoff, panelTilt, panelAzimuth, isFixed)

isFixed = 1; selectedYear = 2016; selectedMonth = 1; selectedDay = 1; date = datetime(selectedYear,selectedMonth,selectedDay,'TimeZone',TZ);                       [times, sRad, pRad] = panelRadiation(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')

Podemos repetir el cálculo para estimar la generación de energía para cada día del año.

date = datetime(2015,1,1:365,'TimeZone',TZ);        % Create a vector of days in the year for i = 1:365     [times, sRad, pRad] = panelRadiation(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 = 17917.7889 kW-hrs 

Extender el análisis

Share your analysis with colleagues. Invite them to reproduce or extend your analysis. Work collaboratively using the Live Editor.

En realidad, la verdadera potencia de salida de una instalación solar se verá significativamente afectada por las condiciones meteorológicas locales. Una extensión interesante de este análisis sería ver cómo la cobertura de nubes afecta a los resultados. En los Estados Unidos, podemos utilizar los datos de los siguientes sitios web del gobierno.

Temas relacionados