不规则波浪的模拟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不规则波浪的模拟
一、概述
研究海浪及其对工程的作用有三种途径:一是现场观测研究;二是在实验室内进行模拟研究;三是理论分析研究。
由于海浪的复杂多变性,加上现场环境恶劣,进行现场观测需花费大量的人力物力;理论研究目前也有较大的局限性,特别是对于不规则波浪,很多问题有赖于室内的模拟研究。
模拟研究的方法可分为两大类。
开始是在水槽或水池内利用风或造波机进行物理模拟,亦即进行波浪模型试验。
在人们的精心设计下,可以把负责的现象分解为多个简单的模型,然后再把成果综合起来。
过去已取得了大量的研究成果,目前仍是主要的研究方法之一。
随着电子计算机的发展和普及,海浪的数值模拟得到迅速的发展,它具有经济方便等优点,日益受到人们的重视和广泛的应用。
天然海浪是很复杂的,人们对它的认识和研究过程是由简到繁,由浅入深,及即由单向规则波—斜向规则波—单向不规则波—多向不规则波。
二、不规则波浪的数值模拟—模拟频谱
单向不规则波浪的数值模拟方法,大多建立在线性波浪理论的基础上。
2.1 线性波浪叠加法
海浪可看做一平稳随机过程,它可由多个(理论上为无限多个)不同周期和不同随机初位相的余弦波叠加而成:
()()i i i M
i i t x k a t εωη+-=∑=cos 1 (2.1)
式中,()t η为波动水面相对于静水面的瞬时高度; i a 为第i 个组成波的振幅;
i i k ω,为第i 个组成波的波数和圆频率;
i i i i T L k πωπ2,2==
L ,T 分别为波长、周期;
x ,t 分别表示位置和时间,通常固定位置,可取x=0;
i ε为第i 个组成波的初位相,此处取在(0,2π)范围内均布的随
机数。
通过频谱来模拟海浪,设欲模拟的对象谱(靶谱)()ωηηS 的能量绝大部分分布在H L ωω~范围内其余部分可忽略不计。
把频率范围划分为M 个区间,其间距为1--=∆i i i ωωω,取
()()i i i i i i S a ωω
ωωω
ηη∆=+=-ˆ22ˆ1 (2.2)
则将代表M 个区间内波能的M 个余弦波动叠加起来,即得海浪的波面:
()()()i
i M
i i i t S t εωωωηηη+∆=∑=~cos ˆ21 (2.3) 式中,i
ω~为第i 个组成波的代表频率。
用波浪叠加法模拟海浪时应注意以下几点:
<1>谱频范围H L ωω~的选取,取决于所要求的精度。
设在高低频侧各允许略去总能量的μ部分(002.0=μ),对于可积分的谱,易于确定L ω和H ω。
应该看到,在M 一定的情况下,不恰当地增大谱频范围,反而
会使精度下降。
一般取谱峰频率的3~4倍作为H ω已足够。
图2.1 划分波谱的频率区间示意图
<2>划分频率区间的方法,有等分频率和等分能量法。
下面简要介绍下等分频率法。
取()M L H ωωω-=∆(一般取
M =50~100)。
但若采用式(2.2)中的i ω
ˆ作为i 区间的代表频率,则由式(2.3)模拟所得的波浪将以周期ωπ∆2重复出现,除非ω∆值足够小;否则与实际的海浪情况不符。
应在各区间内部随机选取频率作为
该区间的代表频率i ω~。
i
ω~的选取方法对模拟结果有相当的影响。
由于波能集中在谱峰部,如M 值较小;只有少数位于谱峰处的组成波起主要作用,可能产生较大的误差。
<3>随机初位相i ε应在π2~0区间内均布。
如组成波数M 不很大,则由计算机产生的随机数往往不够均布,影响模拟结果。
我们采用人造的比较均匀的随机数,模拟结果较好。
合田采用M =200,由计算机产生随机数(每次不同)进行多次重复计算,对结果进行统计分析,取其特征值。
2.2 线性过滤法
海浪等随机过程由多种不同频率的成分组成,他们可以通过不同的滤波器分离开来。
如图2.2所示,只有高频信号能通过高通滤波器,通过低通滤波器的是低频信号,允许一定频率范围内的信号通过的滤波器称做带通滤波器。
图2.2 滤波原理示意图
具有如图2.3中所示传递函数的滤波器称做成型滤波器。
这些滤波器可以是数字式的,也可以由硬件组成。
线性系统的输入谱()f S xx
*和
输出谱()f S yy *之间存在下列关系:
()()()f S f T f S xx yy *
2
*= (2.4)
白噪声的谱密度为常数,且可等于1,如将它作为输入,通过按靶谱设计的成型滤波器后,即可得到谱形符合靶谱的随机波浪。
因此线性过滤法的关键在于靶谱设计过滤器。
过滤器的选择。
输入白噪声的谱()1*=f S xx
,要模拟的波浪靶谱为
()f S *
ηη
(双侧谱),由上式得过滤器的传递函数为 ()()()2*
f S f S f T ηηηη== (2.5)
在时域,线性系统的输入。
输出函数间有关系即
()()()τττηd h t x t ⎰∞
∞--= (2.6)
()τh 是脉冲响应函数,也是过滤器的权函数,其傅里叶变换即为传递
函数T(f),即
()()df e f T h f i τπτ2⎰∞
∞-= (2.7) 写成离散形式:
()()t
N t t t t j t x a L
L
j j
∆∆∆=∆-=
∑-=,...,2,,0τη (2.8)
图2.3 用过滤法模拟波浪示意图
模拟不规则波浪。
将上式代入可得到所要的波面。
为便于计算,把它改写成
()()j i L j i L L
j j t L x x A x A t -+++=+++=∑10η (2.9)
式中,t L x +相当于()t L t x ∆+,可取L =20~30。
白噪声x(t)可用一系列独立的正态分布的变量,...,21x x 来接近,这些变量的均值为零,方差为1。
可按下式得到:
()L N k n
RAN x n i i k 2,...3,2,13121+=⎥⎦
⎤
⎢⎣⎡-=∑= (2.10) i RAN 为在(0,1)区间内均布的伪随机数,一般计算机可直接产生。
可取n =30~50。
三、程序实现
3.1 程序一:线性波浪叠加法模拟频谱
%% 不规则波浪的数值模拟—模拟频谱 %% 线性波浪叠加法
t=0:0.01:1000; % 时间间隔 x=0; % 初始尾椎
a=abs(randn(1,3)); % 幅值 T=abs(randn(1,3)); % 周期
L=abs(randn(1,3)); % 波长 c=abs(rand(1,3))*2*pi; % 初相位 A=0; for i=1:3
A=A+a(i)*cos(2*pi*x/L(i)-2*pi*t/T(i)+c(i)); end
plot(A);set(gca,'xlim',[0 100000]);set(gca,'ylim',[-5 5]); xlabel('\itTime');ylabel('\itAltitude'); title('\bf 线性叠加法模拟频谱');grid on %% end
图3.1 线性波浪叠加法模拟频谱图(N =3)
图3.2 线性波浪叠加法模拟频谱图(N=10)
图3.3 线性波浪叠加法模拟频谱图(N=50)
图3.4 线性波浪叠加法模拟频谱图(N=200)
图3.5 线性波浪叠加法模拟频谱图(N=1000)3.2 程序二:线性过滤法
%% 随机脉冲函响应数
num=[0,0,25]; den=[1,4,25];
[y,~]=impulse(num,den);
plot(randn(1)*y,'r:','linewidth',1.5);
set(gca,'xlim',[0 127]);
ylabel('\itAmplitude');
title('\bfRandom Impulse Responcse')
grid on
图3.6 生成随机脉冲响应函数图
%% 生成传递函数
T=fft(y,127);
plot(real(T),':','linewidth',1.5);
set(gca,'xlim',[0 127]);
ylabel('\itAmplitude(Real/Imag)');
hold on
plot(imag(T),'r:','linewidth',1.5);
title('\bfTransfer Function');
grid on
图3.7 生成传递函数实部、虚部图
%% A(j)
M=127;dt=1/(127*2);t=0:dt:1000;
F=1/(2*dt);df=F/M;L=20;A=0;
for j=1:L
for i=1:M
A=A+1/M*real(T(i*df))*cos(1*pi*i/M);
B(j)=A;
A=0
end
end
stem(B,'filled');
ylabel('\itAmplitude');
xlabel('\itj');
title('\bfA(j)');
grid on
图3.8 生成A(j)数值图
%% 白噪声的模拟
x=normrnd(0,1,1,167);
plot(x,'linewidth',1.5);
ylabel('\itAmplitude');title('\bfWhite Gaussian Noise');set(gca,'xlim',[0 167]); grid on
图3.9 模拟高斯白噪声图
%% 不规则波浪的模拟
A0=randn(1);
N1=0;N2=0;
for i=1:M
for j=1:L
if (i-j<=0)
N1=N1+A(1)*(x(i+j));
else
N2=N2+A(1)*(x((i+j))+x((i-j)));
end
end
end
N=N1+N2;t1=t+20*0.039;z=round(t1);H=A0*x(z)+N;
for i=1:25400;
if (H(i+1)==H(i))
H(i+1)=H(i);
H(i)=0;
end
end
H=H(H~=0);plot(H,'linewidth',1.5);
ylabel('\itAmplitude');xlabel('\itTime');
title('\bf线性过滤法模拟频谱');set(gca,'xlim',[0 100]);
grid on
%% end
图3.10 线性滤波法模拟频谱图
四、结果分析
利用线性波浪叠加法和线性过滤法都等实现对不规则波浪的数值模拟。
线性叠加法较线性过滤法简洁些,但是产生的波浪的波动性比较大。
线性过滤法相对复杂些,但是可以比较准确的模拟实际海浪。
因此,我们可以利用线性叠加法来进行具体工程问题的简要估计,而用线性过滤法来进行比较准确的数值模拟,使更接近于实际情况。