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

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

个人主页:Matlab科研工作室

个人信条:格物致知。

更多Matlab仿真内容点击

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

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

⛄ 完整代码

%用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张图片

⛄ 参考文献

[1]陆琴. 基于MATLAB的风力发电系统风速模型的研究[J]. 工业控制计算机, 2016(7):3.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

你可能感兴趣的:(matlab,开发语言)