✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
在风力发电的模拟系统中,风速模拟是一个重要的环节,正确的风速模型不仅能够很好的反应实际风速变化情况,而且能够给风力发电系统研究提供正确的源参数.本文用Matlab建立了风速组合数学模型,该模型将风速分为基本风速,阵风,渐变风速和噪声风速4部分,仿真结果表明该模型能够理想的反应实际风速.
⛄ 完整代码
%用ARMA模型仿真风速模型
clc;clear;close all;
%初始化
I=0.16;%湍流强度
L=600;%湍流尺度
average_v=8.11850232757234;%平均风速
Ts=1;%采样时间
T=720;%模拟时间
n=T/Ts;%采样个数
sigma_u=3.48648820169842;%风速序列的标准差
sigma_noise=0.2;%白噪声的方差
% u=yyx_noice_n(0,sigma_noise,n);%产生n个序列的白噪声,均值为0,方差为1;
u=normrnd(0,sigma_noise,n);
v=zeros(1,n);
S=zeros(1,n);
wind=zeros(2,n);
df=1/T;%频率分辨率
f=(0:n-1)*df;
length_f=length(f);
for i=1:length_f
S(i)=4*(sigma_u)^2*L/average_v/(1+70.8*(f(i)*L/average_v)^2)^(5/6);%Von Karman谱功率密度函数
end
R=real(ifft(S));%自相关与功率谱密度是傅立叶变换关系,求自相关
%求解AR模型参数
a(1)=R(2)/R(1);
a(2)=R(3)/R(1)-R(2)*R(2)/R(1)/R(1);
%求解MA模型参数
Ry=(-a(1)+a(2)*a(1))*R(1)+(1+a(1)^2+a(2)^2)*R(2)+(-a(1)+a(1)*a(2))*R(3)+(-a(2))*R(4);
b=Ry/sigma_noise;%beta=Ry/白噪声的方差
%脉动风速
v(1)=u(1);
v(2)=a(1)*v(1)+u(2)+b*u(1);
for k=3:n
v(k)=a(1)*v(k-1)+a(2)*v(k-2)+u(k)+b*u(k-1);%ARMA模型
end
%风速
for k=1:n
x(k)=average_v+v(k);
end
subplot(2,1,2);
S1=abs(S);
plot(f,10*log10(S));%Von Karman型功率谱
axis([0,2,-20,30]);
title('Von Karman功率谱密度');
xlabel('f/Hz');
ylabel('S/dB');
subplot(2,1,1);
Pxx=10*log10(abs(fft(x).^2)/n);
plot(f,Pxx);
axis([0,2,-30,50]);
title('ARMA模型产生的风速序列的功率谱密度');
xlabel('f/Hz');
ylabel('S/dB');
figure(2);
t=Ts:Ts:T;
plot(t,x);hold on;
axis([0,T,0,16]);
title('风速');
xlabel('时间/s');
ylabel('速度/ms-1');
%输出风速序列
for k=1:n
wind(1,k)=t(k);
wind(2,k)=x(k);
end
⛄ 运行结果
⛄ 参考文献
[1]杨之俊. 基于Matlab的组合风速建模与仿真[J]. 安徽电气工程职业技术学院学报, 2008, 13(3):4