%********************* 谐波叠加法模拟风速时程 修改1.0(采用Kaimal谱)**************

clc

clear

%************************* 风速时程参数设定 *************************

m=32;         %模拟风速点数

N=2^11;       %频率采样点数

dt=0.25;      %时间间隔

omegaup=3*pi; %上限频率

%************************  设定风速谱参数 *************************

L=514.5;      %斜拉桥跨度

z=45;         %风速测点离地面高度

z0=0.03;      %地面粗糙度

Uz=20;        %平均风速

lambda=10;    %空间相关函数中的衰减系数

K=0.4;        %Kaimal常数=0.4

M=2*N;        %nfft傅里叶变换长度,取采样个数的2倍

%形成风速时程矩阵

v=zeros(m,M*m);    %创建m行,M*m列的时程矩阵

u=zeros(m,M*m);

v1=zeros(M*m,m);   %创建m行,M*m列的时程矩阵

u2=zeros(M*m,m);

t=dt*(0:1:(M*m-1));%创建时程横坐标时间点

domega=(omegaup-0.001)/N;%频率间距

D=zeros(m,m,N);

U1=K*Uz/log(z/z0); %测点位置的摩阻速度

%形成目标谱

omega1=0.01:domega:omegaup;%形成频率列表,初始化频率列表,初始频率为omegaup/N

Sw1=200*U1^2.*z/Uz./(1+50.*omega1.*z./(2*pi*Uz)).^(5/3);%Kaimal谱密度表达式 水平向

Su1=3.36*U1^2.*z/Uz./(1+10.*omega1.*z./(2*pi*Uz)).^(5/3);%L-P谱密度表达式 竖直向

delta=12.9;

%模拟风速测点间的距离(第一个间隔不取为零,否则会出现S不正定的情况)

for j=1:m   %对模拟点风速的循环

rand('state',0);

thet=2*pi*rand(j,N);%生成随机相位

for l=1:N

omega(l)=(l-1)*domega+j/m*domega;

end

Sw=200*U1^2.*z/Uz./(1+50.*omega.*z./(2*pi*Uz)).^(5/3);

Su=3.36*U1^2.*z/Uz./(1+10.*omega.*z./(2*pi*Uz)).^(5/3);

%计算谱数据库矩阵,功率谱计算,Kaimal谱

for j1=1:m

for l=1:m

for k=1:N

Coh(j1,l,k)=(exp(-lambda*omega(k)*delta/(2*pi*Uz)))^(abs(j1-l));%相关系数计算,采用Davenport形式。

S(j1,l,k)=Sw(k)*Coh(j1,l,k);

U(j1,l,k)=Su(k)*Coh(j1,l,k);

end

end

end

%进行Cholesky分解

for i=1:1:N

H(:,:,i)=chol(S(:,:,i));

H(:,:,i)=H(:,:,i)';

Hu(:,:,i)=chol(U(:,:,i));

Hu(:,:,i)=Hu(:,:,i)';

end

%填充谱数据矩阵D

D(:,j,:)=H(:,j,:);

E(:,j,:)=Hu(:,j,:);

i=sqrt(-1);

B1=sqrt(2*domega).*D(j,:,:);

Bu1=sqrt(2*domega).*E(j,:,:);

for ii=1:j

for jj=1:N

B2(ii,jj)=B1(1,ii,jj);

Bu2(ii,jj)=Bu1(1,ii,jj);

end

end

B2=B2.*exp(i.*thet);

Bu2=Bu2.*exp(i.*thet);

for jj=1:j

G(jj,1:M)=fft(B2(jj,:),M);

Gu(jj,1:M)=fft(Bu2(jj,:),M);

for jjj=2:m

G(jj,((jjj-1)*M+1):(jjj*M))=G(jj,1:M);

Gu(jj,((jjj-1)*M+1):(jjj*M))=Gu(jj,1:M);

end

end

%谐波叠加生成模拟点的风速时程

for p=1:M*m

for k=1:j

v(j,p)=v(j,p)+real(G(k,p)*exp(i.*k./m.*domega.*(p-1).*dt));

u(j,p)=u(j,p)+real(Gu(k,p)*exp(i.*k./m.*domega.*(p-1).*dt));

end

end

end %第一个for对应

v1=v';u1=u';

%风速时程绘图

figure(1)

subplot(3,1,1);

plot(t(1:1:4096),v(1,1:1:4096));

xlabel('t(s)');

ylabel('v(t)');

title('Point 1');

subplot(3,1,2);

plot(t(1:1:4096),v(2,1:1:4096));

xlabel('t(s)');

ylabel('v(t)');

title('Point 2');

subplot(3,1,3);

plot(t(1:1:4096),v(m,1:1:4096));

xlabel('t(s)');

ylabel('v(t)');

title('Point 32');

figure(2)

subplot(3,1,1);

plot(t(1:1:4096),u(1,1:1:4096));

xlabel('t(s)');

ylabel('u(t)');

title('Point 1');

subplot(3,1,2);

plot(t(1:1:4096),u(2,1:1:4096));

xlabel('t(s)');

ylabel('u(t)');

title('Point 2');

subplot(3,1,3);

plot(t(1:1:4096),u(m,1:1:4096));

xlabel('t(s)');

ylabel('u(t)');

title('Point 32');

[power1,freq1]=pwelch(v(1,:),hamming(3024),10,M*m,20);

[power2,freq2]=pwelch(v(2,:),hamming(3024),10,M*m,20);

[power5,freq5]=pwelch(v(5,:),hamming(3024),10,M*m,20);

%功率谱检验

figure(3)                                                             %第1点模拟自功率谱和计算自功率谱比较(对数坐标)

semilogx(freq1,freq1.*power1,'r',omega1,omega1.*Sw1,'b')

xlabel('Frequency w(rad)')

ylabel('Power wS(w)(rad.m2/s)')

title('Point 1')

figure(7)

loglog(freq5,freq5.*power5,'r',omega1,omega1.*Sw1,'b')

xlabel('Frequency w(rad)')

ylabel('Power wS(w)(rad.m2/s)')

title('Point 5')

figure(8)

plot(freq5,freq5.*power5,'r',omega1,omega1.*Sw1,'b')

xlabel('Frequency w(rad)')

ylabel('Power wS(w)(rad.m2/s)')

title('Point 5')

谐波合成法matlab,基于Kaimal谱采用谐波合成法生成脉动风场相关推荐

  1. 二维海浪波数谱的matlab,基于波数谱的风涌分离算法研究

    哈尔滨工程大学 硕士 2018 基于波数谱的风涌分离算法研究 Research on Wind Sea and Swell Separation Algorithm Based on Wave Num ...

  2. Matlab | 基于复赛谱提取地震数据的地震子波

    function w = ExtractWavelet(data, M) % 功能:基于复赛谱提取输入地震数据data的地震子波w % 输入: % x - 地震信号,Nt×Nz % M - 提取地震子 ...

  3. matlab 模拟风,matlab谐波合成法的脉动风模拟

    clc clear m=10;                   %模拟风速个数 N=2^8;                   %频率采样个数 dt=0.5 ;                 ...

  4. 谐波小波matlab,基于MATLAB小波变换在电网谐波检测的仿真与研究

    <工业控制计算机>2012 年第 25 卷第 10 期 谐波分析是当前国内外电能质量检测研究的一个热点,其研究的难点是对突变的. 暂态的. 非平稳扰动信号的检测与分析,只利用传统的傅立叶变 ...

  5. 变压器空载合闸matlab,基于MATLAB的变压器空载合闸时励磁涌流仿真分析

    · 电气与自动化 · 李兴宁,等 ·基于 MATLAB的变压器空载合闸时励磁涌流仿真分析 基于 MATLAB的变压器空载合闸时励磁涌流仿真分析 李兴宁,王书杰 (泰 州职 业技术学 院,江苏 泰州 2 ...

  6. matlab谐波合成法模拟风速时程,基于谐波合成法的输电塔线体系风致响应分析

    0引言塔线的耦合作用使动力风荷载作用下大跨.高柔的输电塔线体系表现出很强的非线性特征,导线与输电塔之间的风动力耦联作用不容忽略[1-2].动力风致响应分析的正确性和精确度将直接影响到输电塔线结构的安全 ...

  7. 使用Matlab软件对NDVI进行最大值合成

    ​教程照片及其他详细信息请关注微信公众号:夫也的笔记 公众号内容包含:ArcGIS.ENVI.MATLAB.Python和R语言教程和实际案例分享 理论知识 最大合成法:最大合成,就是将来多幅相同的栅 ...

  8. 快速谱峭度matlab,一种基于快速谱峭度分析的泵潜在空化故障检测方法与流程

    本发明属于信号处理领域,尤其涉及一种基于快速谱峭度分析泵的实时状态并且检测其潜在空化故障的方法. 背景技术: 高性能离心泵在当今社会上广泛应用和需求巨大.由于工作在高压高速等复杂条件下,离心泵的空化故 ...

  9. 基于matlab的自动识别谱峰的程序设计,基于MATLAB的自动识别谱峰的程序设计

    基于MATLAB的自动识别谱峰的程序设计 (38页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 摘要 1一绪论 21. 1几种常用寻峰方法 ...

最新文章

  1. envoy实现_网络通信与治理,谁更在行?Envoy 和 Nginx 对比 | 本月送书活动来啦
  2. 教你用Python爬取图虫网
  3. 启明去端分享| ESP32-S3如何实现tcp_client和tcp_server9-07
  4. (精)【ACM刷题之路】POJ题目详细多角度分类及推荐题目
  5. Git(11)-cherry-pick、reset、rebase
  6. docker-compose搭建kafka集群
  7. 《2020饿了么蓝骑士报告》:贫困县骑手月入5800元 成脱贫新兴力量
  8. Linux网络:内核中的网络参数(net.xxx.xxx)
  9. ARP监听渗透内网的方法
  10. 201803101101_《函数的原始写法》
  11. SQL 比较全的银行列表、带名称缩写、带银行logo
  12. usb key 开发(一)
  13. signature=71820b070a82d48c44cc938baccfcfc9,基于集成神经网络的离线手写签名鉴别方法
  14. 为女性们点赞!Google 为女性提供更多支持
  15. wgs84 转百度地图坐标
  16. 找出直系亲属 牛客网
  17. c语言bmp位图读入,c语言 bmp位图差分
  18. pytorch的cuda环境搭建(GPU版本安装)
  19. DAB-Deformable-DETR源码学习记录之模型构建(二)
  20. 王道学习笔记,计算机网络

热门文章

  1. IE和Windows系统中的彩蛋
  2. 苹果 M1带起ARM,英特尔 x86 霸主地位遭威胁
  3. 从“石器时代”到“超越时代”,阿里 OTT 大屏前端建设之路
  4. 苹果市值突破2万亿美元;华为推出PC版HMS“擎云生态”;Android11将强制应用使用内置相机 | 极客头条
  5. UCloud发布新一代归档存储产品,存储成本直降80%
  6. 研发的未来在哪里?Serverless 云开发来了!
  7. 卖掉 3000 平房子,50 岁程序员回国写代码,三个月内融资 2000 万美元
  8. Java 堆内存是线程共享的!面试官:你确定吗?
  9. Windows 10 再香,国内超一半用户「死守」停更的 Windows 7
  10. 支付宝也崩溃,中心化支付体系尚能饭否?