潮汐调和分析的分析方法

潮汐调和分析的分析方法,第1张

分析有多种亏坦方法:有调和分析、潮高线性组合滤波、最小二乘法及响应分析等,其中以潮汐调和分析最为常见。也叫谐波分析,是傅里叶分析的一种具体应用。傅氏分析是指把任意周期函数展开成富利叶级数,而把任意非周期函数表示为富氏积分的一整套数学方法。经典的潮汐分析方法,在引用这一分析原理时,首先把实测潮位记录中的各清洞分潮(如太阴分潮系、太阳分潮系等)分离出来,再进行调和分析。求出每一分潮的振幅和位相角,再经天文因素订正后,即得该分潮的调和常数。用潮汐调和分析可推算一定期间内的销正桐潮汐变化和分析该区的潮汐性质。长期观测得知,潮汐是由一系列谐和振动组成的,每一谐和振动,称为一个分潮,分潮的周期同引潮力各分场的周期一一对应。

首先,需要说明两点。

第一,本案例使用的是单月潮汐观测数据,处理方法则是基于长期观测资料的调和分析来进行处理。中期观测资料的分析需要分别求主要分潮、随从分潮,短期观测资料分析则还需要计算不同观测颤亩序列的权重,但是核心算法与长期观测资料分析是一致的,都是建立矛盾方程,然后使用最小二乘法建立法方程,求出法方程系数,再求出矩阵X、Y。

第二,本文主要介绍方法步骤,所用代码大多为关键步骤实现,仅供参考。如需完整代码,请关注博主的另一篇资源。

下面开始介绍本案例的处理,从理论上讲,首先,我们需要选取分潮,确立我们所要分析的天文分潮,本案例用8个主要分潮——M2、S2、N2、K2、K1、O1、P1、Q1,四个半日潮,四个全日潮(其实去看潮汐相关研究的文献就会发现,基本都是以这八个分潮为主的)。相邻数据时间间隔为一小时,以所有数敬芦据的中间数对应时刻作为时间原点,然后对观测记录数据进行排序。

从实际出发,在matlab中,首先清理空间、准备环境(这是一个良好习惯),然后需要导入数据,对分潮进行排序。

%%导入数亮洞带据

clear allclose allclc

data=importdata('C:\Users\STAR\Desktop\TideData_01.txt')

%%分潮排序(八个)

M2=1

S2=2

N2=3

K2=4

K1=5

O1=6

P1=7

Q1=8

登录后复制

常量的准备,输入杜德森数,以及天文元素随时间的变化速度。

%%杜德森数(八个分潮各有七个杜德森数)

miu{M2}=[2,0,0,0,0,0,0]

miu{S2}=[2,2,-2,0,0,0,0]

miu{N2}=[2,-1,0,1,0,0,0]

miu{K2}=[2,2,0,0,0,0,0]

miu{K1}=[1,1,0,0,0,0,1]

miu{O1}=[1,-1,0,0,0,0,-1]

miu{P1}=[1,1,-2,0,0,0,-1]

miu{Q1}=[1,-2,0,1,0,0,-1]

%%天文元素随时间的变化速度

rateOfChange=[14.49205211,0.54901653,0.04106864,0.00464183,0.00220641,0.00000196]

登录后复制

然后需要计算时间原点。个人习惯将代码模块化,本处使用自编函数TimeCalculation。

year=2003

month=3

day=1

hour=0

[year,month,day,hour]=TimeCalculation(2003,3,1,0,360)

登录后复制

计算分潮角速度

for i=M2:Q1

sigma(i)=AngularVelocity(miu{i},rateOfChange)

end

sigma=deg2rad(sigma) %注意,这里涉及到一个角度转弧度的 *** 作

登录后复制

然后是计算各天文元素

[tao,ss,hhh,pp,NNN,ppp]=AstronomicalElements(year,month,day,hour)

tao=deg2rad(tao)

ss=deg2rad(ss)

hhh=deg2rad(hhh)

pp=deg2rad(pp)

NNN=deg2rad(NNN)

ppp=deg2rad(ppp)

astronomicalElements=[tao,ss,hhh,pp,NNN,ppp]

登录后复制

计算分潮初始位相,同样使用自编函数

for i=M2:Q1

v0(i)=InitialPhase(miu{i},astronomicalElements)

end

v0(2) = 6.2832%由于S2分潮的特殊性,直接赋值

登录后复制

计算交点因子及订正角

deltaMiu4{M2}=[0,0,0,2,2]

deltaMiu5{M2}=[-2,-1,0,0,1]

rho{M2}=[0.0005,-0.0373,1,0.0006,0.0002]

deltaMiu4{K2}=[0,0,0,0]

deltaMiu5{K2}=[-1,0,1,2]

rho{K2}=[-0.0128,1,0.2980,0.0324]

deltaMiu4{K1}=[-2,0,0,0,0,0]

deltaMiu5{K1}=[-1,-2,-1,0,1,2]

rho{K1}=[0.0002,0.0001,-0.0198,1,0.1356,-0.0029]

deltaMiu4{P1}=[0,0,0,2,2]

deltaMiu5{P1}=[-2,-1,0,0,1]

rho{P1}=[0.0008,-0.0112,1,-0.0015,-0.0003]

deltaMiu4{O1}=[0,0,0,2,2,2]

deltaMiu5{O1}=[-2,-1,0,-1,0,1]

rho{O1}=[-0.0058,0.1885,1,0.0002,-0.0064,-0.0010]

for i=[M2,K2,K1,P1,O1]

[f(i),u(i)]=IntersectionFactorAndCorrectionAngle(deltaMiu4{i},deltaMiu5{i},rho{i},pp,NNN)

end

f(Q1)=f(O1)

u(Q1)=u(O1)

f(N2)=f(M2)

u(N2)=u(M2)

f(S2)=1

u(S2)=0

登录后复制

建立法方程并求x和y

deltaT=1

N=data(end,1)

NN=(N-1)/2

A(0+1,0+1)=N

for i=M2:Q1

A(0+1,i+1)=(sin(N*sigma(i)*deltaT/2))/(sin(sigma(i)*deltaT/2))

A(i+1,0+1)=(sin(N*sigma(i)*deltaT/2))/(sin(sigma(i)*deltaT/2))

A(i+1,i+1)=(N+(sin(N*sigma(i)*deltaT)/sin(sigma(i)*deltaT)))/2

B(i,i)=(N-(sin(N*sigma(i)*deltaT)/sin(sigma(i)*deltaT)))/2

end

for i=M2:Q1

for j=M2:Q1

if ~(i==j)

A(i+1,j+1)=(((sin(N/2*(sigma(i)-sigma(j))*deltaT))/(sin(1/2*(sigma(i)-sigma(j))*deltaT)))+(sin(N/2*(sigma(i)+sigma(j))*deltaT))/(sin(1/2*(sigma(i)+sigma(j))*deltaT)))/2

B(i,j)=(((sin(N/2*(sigma(i)-sigma(j))*deltaT))/(sin(1/2*(sigma(i)-sigma(j))*deltaT)))-(sin(N/2*(sigma(i)+sigma(j))*deltaT))/(sin(1/2*(sigma(i)+sigma(j))*deltaT)))/2

end

end

end

F1(0+1)=sum(data(:,2))

for i=M2:Q1

F1(i+1)=sum(data(:,2).*cos((data(:,1)-361)*sigma(i)*deltaT))

F2(i)=sum(data(:,2).*sin((data(:,1)-361)*sigma(i)*deltaT))

end

X=F1/A(:,1:end)

Y=F2/B(:,1:end)

登录后复制

计算准调和振幅R和位相theta

R=(X(2:end).^2+Y.^2).^0.5

for i=M2:Q1

theta(i)=CalculatedPhase(R(i),X(i+1),Y(i))

end

登录后复制

计算分潮的调和常数

H=R./f

g=theta+v0+u

for i=M2:Q1

g(i)=rad2pi(g(i))

end

登录后复制

潮汐预报、计算自报余差

S0=X(0+1)

for i=1:721

h(i)=S0+sum(f.*H.*cos(sigma*(i-361)+v0+u-g))

end

r=data(1:end,2)'-h(1:end)

delta=sum(r.^2)^0.5/data(end,1)

登录后复制

计算预报潮位

starttime=(31-1+30+1)*24+1

endtime=starttime+31*24+1

forecastTime=1:31*24+1+1

for i=starttime:endtime

forecastTide(i-starttime+1)=S0+sum(f.*H.*cos(sigma*(i-361)+v0+u-g))

end

登录后复制

绘制预报图

figure(2)

plot(forecastTime,forecastTide)

title("Forecast(May 1 to June 1)")

xlabel("Serial number")

ylabel("Stage")

legend("Forecast",'Location','Best')

登录后复制

写在文末,潮汐体现的是海洋动力及水文要素的变化规律和控制机制,从古至今,关于潮汐的研究从未停止,远有沈括著作《梦溪笔谈》,近有牛顿平衡潮理论之广泛应用,希望本文能为有需要的人提供一点思路及方法。

1 最小二乘法事实上是一种长期数据的拟合算法,通过分潮的叠加来拟合潮位,最小二乘法调和分析的过程就是利用实测数据分离出用于拟合潮位的分潮芹让的基本特征(即调和常数) 2 实测数据长度越长,能够分离的分潮的数量就越多歼首告,一般来说一年3(369天)就足够分离出足够多的分潮了. 3 实测数据的时间间隔越小对于分离分潮越有利,国内目前的数据多为1小氏明时. 4 因此如果数据足够长,选取三五百个分潮进行调和分析对于算法来说没有问题.只是计算量不同罢了.,如果数据太少,则要用短期调和分析法. 够专业


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12291473.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存