自己也要用到,改了一天,谐波叠加法可运行程序,大家用到的话就复制过去吧,不谢~~
%谐波叠加法,采用Kaimal谱
clc
clear
close all
%风速时程参数设置
m=10;
N=2^8;
dt=0.5;
omegaup=2*pi;
% 风速谱参数设定
L=1000;
z=50;
z0=0.03; %地面粗糙度
Uz=40; %50m处的平均风速
delta=100; %模拟点间距
lambda=10; %空间相关函数中的系数
K=0.4;
M=2*N;
v=zeros(m,M*m);
t=0.5*(0:1:(M*m-1));
domega=omegaup/N;
D=zeros(m,m,N);
U=K*Uz/log(z/z0); %U为摩擦速度
%形成目标谱
omega1=omegaup/N:omegaup/N:omegaup;
Sw1=200*U^2.*z/Uz./(1+50.*omega1.*z./(2*pi*Uz)).^(5./3);
for j=1:m
rand('state',0);
thet=2*pi*rand(j,N);
for l=1:N %%???
omega(l)=(l-1)*domega+j/m*domeg