我试图将近岸潮汐信号(点A )与长模型边界的3个点相关联(点B C D )。我想在 B C D 之间建立一种关系,我们可以将 A 预测转换为 B C 和 D 。目前我正在做一个单相移,一个高于零的电平的幅度比,一个低于零的电平的幅度比和一个平均电平转换。
这会在峰值退潮和峰值洪水中的潮汐信号中产生扭结,导致模型超过预测落潮电流。我想知道是否有人知道这种转变的关系更为复杂?
我想要捕捉的一件事是高水位和低水位之间的相移差异(例如,对于不同的点,正数与负数期间的时间比例可能不同)。
当前流程的示例算法。
A = vector (size n x 1 ) units meters
time_A = vector (size n x 1 )
ph_B = phase shift for AvsB.
pos_amp_B = positive amplitude ration.
neg_amp_B = negative amplitude ration.
B_mean = long term mean of B.
A_mean = long term mean of A.
for i = 1:n
a = A(i) - A_mean
if a > 0
B(i) = a*pos_amp_B
else
B(i) = a*neg_amp_B
end
time_B(i) = time_A(i) = ph_B
B(i) = B(i) + B_mean
end
BTW:这种关系基于大约6个月的数据。
编辑1: 那么,首先只考虑两个正弦信号(即幅度,相移),但不是规则的,因此例如周期是12.5小时但是正半部和负半部的斜率和周期并不完全相同。您不需要任何上下文知识。我只是在寻找转换算法。
编辑2:
这是时间序列和fft比较的图片(fft专注于高能量频率(12.5小时(半日)),只是为了说明不是所有的频率都很好地缩放)。黑色是零绿色的A.绿色。
答案 0 :(得分:2)
如果没有更详细的域名知识,很难为您提供明确的答案。我将在此假设您的潮汐行为是linear time invariant(LTI)系统。根据您在问题中显示的数据,这看起来是一个合理的假设。
现在,您可以通过对信号A应用幅度和相位调整来创建B,C和D信号。有几种方法可以做到这一点。下面我通过将A乘以一个复数来完成它。调整复数的幅度和相位以得到您需要的结果。这是一个用Matlab代码编写的例子:
% Create an example signal at location 'A'
t = 0:0.1:10;
A = 0.35.*sin(2.*pi.*0.5.*t) + 1.*sin(2.*pi.*0.5175.*t) + 0.3.*sin(0.5255.*t);
% We want a complex version of A, so let's apply a Hilbert transform to it
A = hilbert(A);
% Now we can create the other signals by transforming the amplitude and
% phase. Exactly what amplitude and phase to apply needs to be determined.
B = 0.9*exp(j*0.1).*A;
C = 0.8*exp(j*0.4).*A;
D = 0.7*exp(j*0.6).*A;
% Plot what these signals look like
figure(1); hold on;
plot(t,real(A),'k');
plot(t,real(B),'r');
plot(t,real(C),'g');
plot(t,real(D),'b');
xlabel('Time');
ylabel('Amplitude');
legend('A','B','C','D');
这将生成一个与您在问题中发布的图片非常相似的图。如果您的潮汐行为无法通过LTI系统近似,那么您可能必须执行一些更复杂的非线性建模。
希望有所帮助!
答案 1 :(得分:2)
潮汐预测模型非常复杂。
要获得更精确的预测,您需要更多数据。看看下面的论文(不幸的是用德语写的;我不知道英文翻译):
Das Nordseemodell der BAW zur Simulation der Tide in der Deutschen Bucht
幸运的是,这篇论文包含了许多可以在不懂德语的情况下理解的表格和图片。
总结:除了A,B,C,D点的潮汐水平,你当然需要一些 近似的海底深度剖面,您将需要风数据进行计算。只有六个月的现实世界数据还不够:您需要至少一年的数据才能涵盖所有季节。
本文第93页引用的软件已于2010年归入GPLv2,可以找到here
答案 2 :(得分:0)
这类似于强迫振荡(由月球驱动)和海气系统的干扰。
你能设置一个由四个ODE和一个外部力源组成的系统,如:
<<< tidal force field >>>
| | | |
o -vvvvv- o -vvvvv- o -vvvvv- o
A B C D
-vvvvv-
应该与机械弹簧类似。
所有的弹簧也会受到月球的影响,如果这些点相距较远,可能会有一些轻微的相移。
您可以通过使用随机微分方程中给出的一些方法-I-wish-I-know来确定系统结果矩阵中的常数。使用随机微分方程seems to be used in hydrology(付费墙)的方法,所以也许我不会太远。
如果你想生活在边缘,你可以尝试使耦合表现为略微非线性(即,当达到最大值时略微变平,这可以被认为是海面上升时增加的表面)