✅作者简介:热爱科研的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

⛄ 运行结果

【数学模型】基于ARMR模型模拟风速附matlab完整代码_方差

⛄ 参考文献

[1]杨之俊. 基于Matlab的组合风速建模与仿真[J]. 安徽电气工程职业技术学院学报, 2008, 13(3):4

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料