Ejercicio 2

Velocidad del viento y potencia de un aerogenerador

Contents

Apartado a: Histograma de la velocidad del viento

[NUM TXT RAW]=xlsread('sotaventogaliciaanual.xlsx');
figure('Name','Histograma de la velocidad del viento')
histogram(NUM) %NUM contiene los valores de velocidad del viento
title('Histograma de la velocidad del viento')
grid on
xlim([0 25]) %Límitamos el histograma a valores en el intervalo [0,25]

Apartado b: Distribución de Weibull de la velocidad del viento

x=0.5:1:max(NUM);
A=hist(NUM,x);

k=mean(NUM); %Media aritmética de las velocidades del viento
c=std(NUM); %Desviación estándar de las velocidades del viento
c=c^2;
a0=[k c];
frec=A/sum(A); %Hallamos las frecuencias
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1));
af=nlinfit(x,frec,f,a0);
yweib=f(af,x);

figure('Name','Histograma y ajuste a distribución de Weibur de las velocidades del viento')
bar(x,frec,'c')
xlim([0 25])
hold on
grid on
plot(x,yweib,'r')
title('Distribución de Weibull de la velocidad del viento')

Apartado c: Interpolación de la curva de potencia mediante un polinomio cúbico

[POW TXT RAW]=xlsread('sotavento_curva potencia.xlsx');

figure('Name','Curva de potencia del generador')
plot(POW(:,1),POW(:,2),'*-','DisplayName','Valores de la tabla')
title('Ajuste de la curva de potencia de  un generador')
xlabel('Velocidad del viento (m/s)')
ylabel('Potencia (MW)')
grid on
hold on

x=0:0.01:25;
plot(x,pchip(POW(:,1),POW(:,2),x),'DisplayName','Interpolada')
legend('Location','northwest')
legend show

Apartado d: Potencia media (Obtenida mediante integración)

Pr=1300; x0=3;xr=20;x1=25; %datos de la curva de potencia
k=af(1); c=af(2); %parámetros de ajuste de la función de Weibull
potencia=POW(:,2);
x=0:1:25;
pot=potencia(x>=x0 & x<=xr);
hold on
x=x0:1:xr;
figure('Name','Ajuste de la curva de potencia mediante polyfit')
plot(x,pot,'ro','markersize',3,'markerfacecolor','r')
grid on
hold on
title('Ajuste de la curva de potencia de un aerogenerador');
axis([0 15 -10 1550])
xlabel('velocidad')
ylabel('potencia')
grid on

%Ajuste
p=polyfit(x,pot',3); %Ajuste a un polinomio de tercer grado
yp=polyval(p,x);
plot(x,yp,'k')
hold off
%Cálculo de la potencia media
f=@(x) (k/c)*((x/c).^(k-1)).*exp(-(x/c).^k); %Función de Weibull
h=@(x) f(x).*polyval(p,x);
power=quad(h,x0,xr)+Pr*quad(f,xr,x1);
fprintf('La potencia media es: %3.1f\n',power)
La potencia media es: 203.4