現(xiàn)潮汐調(diào)和分析:從原理到工程實(shí)踐)
簡(jiǎn)介本資源是一套面向海洋工程、水文預(yù)報(bào)及高??蒲腥藛T的潮汐調(diào)和分析MATLAB實(shí)現(xiàn)方案聚焦于從實(shí)測(cè)水位數(shù)據(jù)中提取M2、S2、N2等主導(dǎo)分潮的調(diào)和常數(shù)并支持潮汐回歸與短期預(yù)報(bào)。包內(nèi)含3個(gè)核心MATLAB函數(shù)文件.m格式總大小僅5KB輕量高效主程序完成數(shù)據(jù)預(yù)處理、FFT頻譜分析、分潮識(shí)別與最小二乘擬合輔助函數(shù)分別承擔(dān)雅可比矩陣計(jì)算支撐參數(shù)優(yōu)化與速度/加速度相關(guān)物理量推導(dǎo)構(gòu)成完整調(diào)和分析閉環(huán)。已有2116人學(xué)習(xí)下載適用于具備基礎(chǔ)MATLAB編程能力與海洋動(dòng)力學(xué)知識(shí)的中級(jí)用戶可直接部署于水文站歷史數(shù)據(jù)回溯、海岸帶工程潮位校核或教學(xué)實(shí)驗(yàn)中的調(diào)和常數(shù)反演實(shí)踐提供即用型算法框架與關(guān)鍵數(shù)值求解邏輯。1. 項(xiàng)目概述潮汐調(diào)和分析及其在MATLAB中的實(shí)現(xiàn)如果你從事海洋工程、港口設(shè)計(jì)、航海保障或者海岸帶研究潮汐數(shù)據(jù)就像空氣一樣不可或缺。但原始的潮汐觀測(cè)數(shù)據(jù)只是一條隨時(shí)間起伏的曲線它背后隱藏的規(guī)律——比如明天幾點(diǎn)漲潮潮位有多高某個(gè)港口的主要分潮是什么——都需要通過一套成熟的方法來(lái)“解碼”。這套方法就是潮汐調(diào)和分析。簡(jiǎn)單說它就像給復(fù)雜的潮汐波動(dòng)做“頻譜分析”把一條看似雜亂的時(shí)間序列分解成幾十個(gè)甚至上百個(gè)具有固定周期和振幅的“正弦波”我們稱之為分潮每個(gè)分潮都對(duì)應(yīng)著月球、太陽(yáng)等天體引力的特定周期分量。為什么要用MATLAB來(lái)做這件事因?yàn)檎{(diào)和分析本質(zhì)上是一系列復(fù)雜的矩陣運(yùn)算和最小二乘擬合。你需要處理可能長(zhǎng)達(dá)數(shù)月甚至數(shù)年的每小時(shí)潮位數(shù)據(jù)構(gòu)建一個(gè)龐大的設(shè)計(jì)矩陣求解上百個(gè)未知的調(diào)和常數(shù)振幅和遲角。手動(dòng)計(jì)算幾乎不可能而MATLAB恰恰是處理矩陣運(yùn)算和科學(xué)數(shù)據(jù)分析的“瑞士軍刀”。它的矩陣操作語(yǔ)法直觀內(nèi)置了強(qiáng)大的線性代數(shù)工具箱和優(yōu)化算法還有豐富的繪圖功能可以讓你從數(shù)據(jù)導(dǎo)入、預(yù)處理、核心分析到結(jié)果可視化形成一條完整的工作流。對(duì)于研究人員和工程師來(lái)說掌握了用MATLAB進(jìn)行潮汐調(diào)和分析就等于擁有了一把從原始數(shù)據(jù)中提取精準(zhǔn)潮汐預(yù)報(bào)參數(shù)的鑰匙。2. 核心原理與數(shù)學(xué)模型拆解2.1 調(diào)和分析的基本思想將潮汐視為多個(gè)正弦波的疊加潮汐是由天體主要是月球和太陽(yáng)引潮力引起的周期性水位波動(dòng)。調(diào)和分析的理論基礎(chǔ)是任何復(fù)雜的周期性波動(dòng)都可以用一系列具有固定頻率、振幅和相位的正弦函數(shù)的和來(lái)無(wú)限逼近。對(duì)于潮汐這些頻率是由天體運(yùn)行的天文周期決定的是已知的。例如主要半日分潮M2的周期大約是12.42小時(shí)源于月球繞地球公轉(zhuǎn)K1分潮的周期是23.93小時(shí)與月球赤緯變化有關(guān)。因此在任意時(shí)刻t的潮高h(yuǎn)(t)可以表示為h(t) Z0 Σ [Ai * cos(ωi * t - gi)]其中Z0是平均海平面即觀測(cè)期間潮位的平均值。Σ表示對(duì)所有考慮的分潮i求和。Ai是分潮i的振幅代表了該分潮對(duì)潮汐貢獻(xiàn)的大小。ωi是分潮i的角速度頻率由天文常數(shù)決定是已知的。gi是分潮i的格林尼治遲角代表了該分潮的相位。(ωi * t - gi)就是該分潮在時(shí)刻t的相位角。我們的目標(biāo)就是從一段時(shí)間的實(shí)際潮位觀測(cè)數(shù)據(jù)h_obs(t)中反推出每個(gè)分潮的Ai和gi以及Z0。這些Ai和gi就是所謂的“調(diào)和常數(shù)”是描述一個(gè)地點(diǎn)潮汐特征最核心的參數(shù)。一旦獲得了它們我們就可以用上面的公式來(lái)預(yù)報(bào)未來(lái)任意時(shí)刻的潮位。2.2 最小二乘擬合從數(shù)據(jù)到參數(shù)的橋梁觀測(cè)數(shù)據(jù)是離散的帶有誤差的。我們不可能找到一個(gè)完美的公式讓理論值完全等于觀測(cè)值。調(diào)和分析采用最小二乘法尋找一組調(diào)和常數(shù)使得由這些常數(shù)計(jì)算出的理論潮位序列與觀測(cè)潮位序列之間的誤差平方和最小。將余弦項(xiàng)利用三角恒等式展開Ai * cos(ωi*t - gi) Ai*cos(gi)*cos(ωi*t) Ai*sin(gi)*sin(ωi*t)令Xi Ai*cos(gi),Yi Ai*sin(gi)則原方程變?yōu)殛P(guān)于Xi,Yi的線性方程h(t) Z0 Σ [Xi * cos(ωi*t) Yi * sin(ωi*t)]對(duì)于N個(gè)時(shí)間點(diǎn)的觀測(cè)數(shù)據(jù)我們可以構(gòu)建一個(gè)線性方程組H A * X其中H是 N×1 的列向量包含N個(gè)時(shí)刻的觀測(cè)潮高。A是 N×(2M1) 的設(shè)計(jì)矩陣M為分潮個(gè)數(shù)。第一列全為1對(duì)應(yīng)Z0后續(xù)每?jī)闪蟹謩e對(duì)應(yīng)一個(gè)分潮的cos(ωi*t)和sin(ωi*t)。X是 (2M1)×1 的未知數(shù)列向量即[Z0, X1, Y1, X2, Y2, ..., Xm, Ym]^T。這是一個(gè)典型的超定線性方程組通常N遠(yuǎn)大于2M1。最小二乘解為X (A^T * A)^(-1) * (A^T * H)在MATLAB中我們可以直接用反斜杠運(yùn)算符求解X A \ H。這個(gè)操作背后就是求解最小二乘問題既穩(wěn)定又高效。解出Xi和Yi后便可還原出我們關(guān)心的振幅和遲角Ai sqrt(Xi^2 Yi^2)gi atan2(Yi, Xi)注意象限MATLAB的atan2函數(shù)可直接給出正確結(jié)果注意這里求出的gi是相對(duì)于分析所用時(shí)間原點(diǎn)的遲角。在實(shí)際應(yīng)用中通常需要根據(jù)天文參數(shù)將其轉(zhuǎn)換為相對(duì)于格林尼治子午線的格林尼治遲角或用于當(dāng)?shù)仡A(yù)報(bào)的專用遲角。這一步需要引入天文幅角計(jì)算稍復(fù)雜但MATLAB中可以通過已知的ωi和初始天文角計(jì)算得到。3. MATLAB實(shí)現(xiàn)流程與核心代碼解析3.1 數(shù)據(jù)準(zhǔn)備與預(yù)處理在開始寫代碼之前數(shù)據(jù)的質(zhì)量決定了分析的成敗。通常潮位數(shù)據(jù)來(lái)源于驗(yàn)潮站格式可能是文本文件如.txt,.csv或特定數(shù)據(jù)格式如.nc。% 假設(shè)數(shù)據(jù)文件為‘tide_data.csv’兩列時(shí)間戳和潮高米 data readtable(tide_data.csv); time datetime(data.Time, InputFormat, yyyy-MM-dd HH:mm:ss); % 轉(zhuǎn)換為datetime數(shù)組 height data.Height; % 數(shù)據(jù)預(yù)處理 % 1. 檢查并處理缺失值 missing_idx isnan(height); if any(missing_idx) warning(發(fā)現(xiàn)缺失數(shù)據(jù)點(diǎn)位置%s, mat2str(find(missing_idx))); % 方法一線性插值適用于短時(shí)間缺失 height(missing_idx) interp1(find(~missing_idx), height(~missing_idx), find(missing_idx), linear); % 方法二若缺失嚴(yán)重考慮使用鄰近站數(shù)據(jù)或模型插補(bǔ)或分段分析 end % 2. 去趨勢(shì)項(xiàng)如果數(shù)據(jù)包含長(zhǎng)期的海平面變化或儀器漂移 % 使用一階多項(xiàng)式擬合趨勢(shì)并減去 p polyfit(datenum(time), height, 1); trend polyval(p, datenum(time)); height_detrended height - trend; % 對(duì)于調(diào)和分析通常分析的是去趨勢(shì)后的數(shù)據(jù)趨勢(shì)項(xiàng)可單獨(dú)記錄。實(shí)操心得datetime類型比傳統(tǒng)的datenum更直觀便于時(shí)間運(yùn)算和繪圖。處理缺失值時(shí)線性插值是常用方法但如果連續(xù)缺失超過一定時(shí)長(zhǎng)如12小時(shí)插值結(jié)果可能不可靠此時(shí)應(yīng)評(píng)估是否將該段數(shù)據(jù)剔除或采用更復(fù)雜的方法。3.2 構(gòu)建分潮列表與設(shè)計(jì)矩陣這是調(diào)和分析的核心步驟。你需要決定分析哪些分潮。對(duì)于一般的港口工程常用的有幾十個(gè)分潮??梢詮膰?guó)際通用的潮汐調(diào)和常數(shù)集中選取如t_tide工具箱內(nèi)置的列表。% 定義一組常用的主要分潮示例 % 格式{分潮名稱 角速度度/小時(shí) 是否分析} tidal_components { M2, 28.9841042, true; S2, 30.0000000, true; N2, 28.4397295, true; K1, 15.0410686, true; O1, 13.9430356, true; P1, 14.9589314, true; Q1, 13.3986609, false; % 示例暫時(shí)不分析Q1 % ... 可以繼續(xù)添加更多分潮 }; % 篩選出需要分析的分潮 active_idx [tidal_components{:,3}]; comp_names tidal_components(active_idx, 1); comp_speed cell2mat(tidal_components(active_idx, 2)); % 度/小時(shí) num_comp length(comp_names); % 將時(shí)間轉(zhuǎn)換為以小時(shí)為單位的數(shù)值序列從第一個(gè)數(shù)據(jù)點(diǎn)開始 t_hours hours(time - time(1)); % 使用hours函數(shù)直接計(jì)算小時(shí)差 % 構(gòu)建設(shè)計(jì)矩陣 A N length(t_hours); A ones(N, 1); % 第一列為常數(shù)項(xiàng)對(duì)應(yīng)平均海平面 Z0 for i 1:num_comp omega_rad_per_hour deg2rad(comp_speed(i)); % 轉(zhuǎn)換為弧度/小時(shí) % 計(jì)算該分潮的余弦和正弦列 cos_col cos(omega_rad_per_hour * t_hours); sin_col sin(omega_rad_per_hour * t_hours); % 添加到設(shè)計(jì)矩陣 A [A, cos_col, sin_col]; end注意事項(xiàng)分潮角速度的精度至關(guān)重要必須使用國(guó)際公認(rèn)的精確值。構(gòu)建設(shè)計(jì)矩陣時(shí)時(shí)間t_hours的起點(diǎn)可以是任意的但必須保持一致。這里從第一個(gè)數(shù)據(jù)點(diǎn)開始計(jì)為0方便計(jì)算。如果數(shù)據(jù)時(shí)間跨度很長(zhǎng)數(shù)年t_hours會(huì)變得很大可能導(dǎo)致cos(ωt)計(jì)算時(shí)的精度問題。一個(gè)技巧是將時(shí)間原點(diǎn)設(shè)在觀測(cè)時(shí)段的中點(diǎn)可以減少數(shù)值誤差。3.3 求解調(diào)和常數(shù)與結(jié)果評(píng)估設(shè)計(jì)矩陣A和觀測(cè)向量H準(zhǔn)備好后就可以進(jìn)行最小二乘求解了。% H 為觀測(cè)潮高向量已去趨勢(shì) H height_detrended; % 使用反斜杠運(yùn)算符求解最小二乘問題 % 這相當(dāng)于 X pinv(A) * H但更穩(wěn)定高效 X A \ H; % 提取結(jié)果 Z0 X(1); % 平均海平面相對(duì)于去趨勢(shì)后的數(shù)據(jù) amp zeros(num_comp, 1); phase_rad zeros(num_comp, 1); for i 1:num_comp Xi X(2*i); % 對(duì)應(yīng) cos 項(xiàng)的系數(shù) Yi X(2*i 1); % 對(duì)應(yīng) sin 項(xiàng)的系數(shù) amp(i) sqrt(Xi^2 Yi^2); phase_rad(i) atan2(Yi, Xi); % 返回弧度范圍 [-pi, pi] end % 將相位轉(zhuǎn)換為角度0-360度 phase_deg mod(rad2deg(phase_rad), 360); % 計(jì)算擬合值回歸值和殘差 H_fitted A * X; residual H - H_fitted; % 評(píng)估擬合優(yōu)度計(jì)算確定系數(shù) R-squared SS_res sum(residual.^2); SS_tot sum((H - mean(H)).^2); R2 1 - (SS_res / SS_tot); fprintf(調(diào)和分析完成。R-squared %.4f\n, R2);核心技巧A \ H是MATLAB求解線性最小二乘問題的推薦方式。它會(huì)自動(dòng)根據(jù)矩陣A的條件數(shù)選擇最合適的算法如QR分解。如果A的條件數(shù)很大即接近奇異結(jié)果可能不穩(wěn)定。此時(shí)可以考慮使用嶺回歸ridge函數(shù)或增加正則化項(xiàng)但需要謹(jǐn)慎因?yàn)檫@可能引入偏差。一個(gè)健康的分析R2通常應(yīng)大于0.9表明模型解釋了90%以上的潮位變化。3.4 結(jié)果可視化與分析圖形化結(jié)果是驗(yàn)證分析和展示成果的關(guān)鍵。figure(Position, [100, 100, 1200, 800]); % 子圖1觀測(cè)數(shù)據(jù)、擬合數(shù)據(jù)與殘差的時(shí)間序列 subplot(3,1,1); plot(time, H, b-, LineWidth, 1, DisplayName, 觀測(cè)潮位); hold on; plot(time, H_fitted, r--, LineWidth, 1.5, DisplayName, 調(diào)和擬合); ylabel(潮高 (m)); title(潮位觀測(cè)值與調(diào)和擬合對(duì)比); legend(Location, best); grid on; subplot(3,1,2); plot(time, residual, k-, LineWidth, 0.8); ylabel(殘差 (m)); title(擬合殘差); grid on; % 殘差應(yīng)近似為白噪聲無(wú)明顯周期性或趨勢(shì)。若有說明有未考慮的分潮或非調(diào)和因素。 % 子圖2主要分潮的振幅玫瑰圖或柱狀圖 subplot(3,1,3); bar(amp); set(gca, XTick, 1:num_comp, XTickLabel, comp_names, XTickLabelRotation, 45); ylabel(振幅 (m)); title(各分潮振幅); grid on; % 可以單獨(dú)繪制一個(gè)相位圖 figure; polarscatter(deg2rad(phase_deg), amp, filled); title(分潮振幅-相位極坐標(biāo)圖); % 為每個(gè)點(diǎn)添加標(biāo)簽 for i 1:min(num_comp, 20) % 避免標(biāo)簽過多重疊 text(deg2rad(phase_deg(i)), amp(i), comp_names{i}, FontSize, 8); end可視化不僅能直觀檢查擬合效果還能通過殘差圖診斷問題。如果殘差序列顯示出明顯的周期性可能意味著有重要的分潮未被納入模型如果殘差有趨勢(shì)可能意味著去趨勢(shì)不徹底或存在其他系統(tǒng)性誤差。4. 高級(jí)話題與實(shí)操進(jìn)階4.1 分潮選擇策略與“拍頻”問題不是分潮越多越好。分潮數(shù)量受到觀測(cè)數(shù)據(jù)長(zhǎng)度的制約。根據(jù)奈奎斯特采樣定理和最小二乘原理要穩(wěn)定求解一個(gè)分潮的參數(shù)至少需要其周期兩倍以上的數(shù)據(jù)長(zhǎng)度且為了獲得可靠結(jié)果通常建議數(shù)據(jù)長(zhǎng)度覆蓋該分潮的多個(gè)完整周期。例如要分析一個(gè)周期為18.6年的分潮如月球交點(diǎn)潮理論上需要至少37年的數(shù)據(jù)這在實(shí)際中很難獲得。更常見的問題是“拍頻”或“共線性”。當(dāng)兩個(gè)分潮的頻率非常接近時(shí)如K1和P1周期相差僅約0.07小時(shí)它們?cè)谟邢揲L(zhǎng)度的觀測(cè)數(shù)據(jù)中幾乎無(wú)法被區(qū)分。它們對(duì)應(yīng)的設(shè)計(jì)矩陣的列幾乎線性相關(guān)導(dǎo)致(A^T*A)矩陣病態(tài)求出的振幅和相位誤差極大。解決方案數(shù)據(jù)長(zhǎng)度確保數(shù)據(jù)長(zhǎng)度遠(yuǎn)大于目標(biāo)分潮的周期并盡可能長(zhǎng)。分潮合并對(duì)于頻率極其接近、難以區(qū)分的分潮對(duì)如K1/P1S2/K2在短期數(shù)據(jù)分析中常將它們合并處理。例如將K1和P1合并為一個(gè)“K1P1”分潮使用一個(gè)加權(quán)平均頻率。正則化或?yàn)V波在求解方程時(shí)加入正則化項(xiàng)如Tikhonov正則化抑制噪聲放大?;蛘咴诜治銮皩?duì)數(shù)據(jù)進(jìn)行帶通濾波預(yù)先分離出不同頻段的信號(hào)。使用專業(yè)工具箱如MATLAB的t_tide工具箱它內(nèi)置了處理這些問題的策略會(huì)自動(dòng)建議可分析的分潮列表并處理一些共線性問題。4.2 利用t_tide工具箱進(jìn)行標(biāo)準(zhǔn)化分析t_tide是一個(gè)廣泛使用的MATLAB潮汐調(diào)和分析工具箱它封裝了完整的流程包括天文參數(shù)計(jì)算、節(jié)點(diǎn)因子校正、置信區(qū)間估計(jì)等。% 假設(shè)已有時(shí)間序列 t_datetime 和潮高序列 h % t_tide 要求輸入時(shí)間序列為MATLAB的datenum格式 t_datenum datenum(time); % 基本調(diào)用 [tide_struct, prediction] t_tide(h, interval, 1, start, t_datenum(1), ...); % interval: 采樣間隔小時(shí)這里是1小時(shí)。 % start: 起始時(shí)間的datenum。 % tide_struct 結(jié)構(gòu)體包含所有結(jié)果 % tide_struct.name % 分潮名稱 % tide_struct.freq % 頻率轉(zhuǎn)/小時(shí) % tide_struct.tidecon % 調(diào)和常數(shù)矩陣 [振幅 振幅誤差 格林尼治遲角 遲角誤差] % 可以直接用 t_predic 函數(shù)進(jìn)行預(yù)報(bào) future_time datenum(2025-06-01 00:00:00):1/24:datenum(2025-06-08 00:00:00); h_pred t_predic(future_time, tide_struct); % 繪制預(yù)報(bào)結(jié)果 figure; plot(datetime(future_time, ConvertFrom, datenum), h_pred); xlabel(時(shí)間); ylabel(預(yù)報(bào)潮高 (m)); title(基于調(diào)和常數(shù)的潮汐預(yù)報(bào)); grid on;使用心得t_tide非常方便尤其適合標(biāo)準(zhǔn)化分析和快速原型。但它是一個(gè)“黑箱”對(duì)于初學(xué)者理解底層原理可能不利。建議先手動(dòng)實(shí)現(xiàn)一遍基礎(chǔ)分析再使用t_tide進(jìn)行對(duì)比和驗(yàn)證這樣能更深刻地理解其輸出結(jié)果和內(nèi)部處理機(jī)制比如它對(duì)“衛(wèi)星”分潮和節(jié)點(diǎn)因子的處理。4.3 誤差分析與置信區(qū)間最小二乘擬合給出的調(diào)和常數(shù)是點(diǎn)估計(jì)。我們還需要知道這些估計(jì)的可靠性即置信區(qū)間。t_tide會(huì)自動(dòng)計(jì)算振幅和相位的誤差。如果手動(dòng)實(shí)現(xiàn)可以利用殘差來(lái)估計(jì)參數(shù)的標(biāo)準(zhǔn)誤。% 計(jì)算參數(shù)協(xié)方差矩陣 % 殘差方差的無(wú)偏估計(jì) sigma2 (residual * residual) / (N - size(A, 2)); % 設(shè)計(jì)矩陣的協(xié)方差 cov_matrix sigma2 * inv(A * A); % 注意直接求逆可能不穩(wěn)定實(shí)際可用更穩(wěn)健的方法 % 參數(shù)的標(biāo)準(zhǔn)誤是協(xié)方差矩陣對(duì)角線的平方根 std_err sqrt(diag(cov_matrix)); % 對(duì)于振幅Ai其誤差傳播較復(fù)雜通常近似處理或采用蒙特卡洛模擬。 % 更實(shí)用的方法是采用自助法Bootstrap num_bootstrap 1000; amp_boot zeros(num_bootstrap, num_comp); phase_boot zeros(num_bootstrap, num_comp); for b 1:num_bootstrap % 對(duì)殘差進(jìn)行重采樣有放回生成新的“觀測(cè)”數(shù)據(jù) idx randi(N, N, 1); H_boot H_fitted residual(idx); % 對(duì)新數(shù)據(jù)執(zhí)行調(diào)和分析 X_boot A \ H_boot; % 存儲(chǔ)每次的振幅和相位 for i 1:num_comp Xi_b X_boot(2*i); Yi_b X_boot(2*i 1); amp_boot(b, i) sqrt(Xi_b^2 Yi_b^2); phase_boot(b, i) atan2(Yi_b, Xi_b); end end % 計(jì)算95%置信區(qū)間 amp_CI prctile(amp_boot, [2.5, 97.5], 1); % 每列的分潮 phase_CI_rad prctile(phase_boot, [2.5, 97.5], 1); phase_CI_deg rad2deg(phase_CI_rad); fprintf(分潮 M2 振幅的95%%置信區(qū)間: [%.4f, %.4f] m\n, amp_CI(1,1), amp_CI(2,1));自助法是一種強(qiáng)大的非參數(shù)統(tǒng)計(jì)方法它不依賴于誤差分布的正態(tài)性假設(shè)能給出更可靠的置信區(qū)間估計(jì)尤其適用于像潮汐數(shù)據(jù)這樣可能存在復(fù)雜相關(guān)性的情況。5. 常見問題、調(diào)試技巧與項(xiàng)目擴(kuò)展5.1 常見問題排查表問題現(xiàn)象可能原因排查與解決思路擬合優(yōu)度R2很低0.71. 數(shù)據(jù)噪聲過大或存在大量異常值。2. 缺失數(shù)據(jù)處理不當(dāng)。3. 關(guān)鍵分潮未被包含在模型中。4. 數(shù)據(jù)中存在強(qiáng)烈的非調(diào)和信號(hào)如風(fēng)暴潮、海嘯、儀器故障。1. 繪制原始數(shù)據(jù)圖檢查異常點(diǎn)并進(jìn)行濾波或剔除。2. 檢查并合理插補(bǔ)缺失數(shù)據(jù)段。3. 增加分潮數(shù)量特別是長(zhǎng)周期分潮如Mf, Mm或淺水分潮如M4, M6。4. 分離非調(diào)和信號(hào)先用低通濾波或滑動(dòng)平均去除高頻噪聲和短周期波動(dòng)或使用氣象數(shù)據(jù)輔助修正。設(shè)計(jì)矩陣A條件數(shù)過大1. 分潮間存在強(qiáng)共線性如K1和P1。2. 數(shù)據(jù)時(shí)間序列太短。3. 時(shí)間t數(shù)值過大導(dǎo)致計(jì)算精度下降。1. 合并無(wú)法區(qū)分的分潮對(duì)。2. 使用更長(zhǎng)的觀測(cè)數(shù)據(jù)。3. 將時(shí)間原點(diǎn)移至數(shù)據(jù)序列中央t_centered t_hours - mean(t_hours)。4. 考慮使用正則化嶺回歸或主成分回歸PCR。殘差序列呈現(xiàn)明顯周期性有顯著的分潮未被模型捕獲。1. 對(duì)殘差序列做功率譜分析如pwelch函數(shù)查看在哪些頻率上有峰值。2. 根據(jù)峰值頻率查找對(duì)應(yīng)的天文分潮或淺水分潮將其加入模型重新分析。求解出的振幅為負(fù)或異常大1. 數(shù)值計(jì)算不穩(wěn)定條件數(shù)大。2. 分潮角速度單位錯(cuò)誤如用了度/天而非度/小時(shí)。3. 時(shí)間序列與分潮頻率不匹配。1. 檢查并降低設(shè)計(jì)矩陣的條件數(shù)cond(A)。2. 仔細(xì)核對(duì)分潮角速度單位確保與時(shí)間變量單位一致小時(shí)。3. 驗(yàn)證時(shí)間序列的采樣間隔是否均勻。預(yù)報(bào)結(jié)果與后續(xù)觀測(cè)偏差大1. 調(diào)和常數(shù)求解不準(zhǔn)數(shù)據(jù)質(zhì)量或長(zhǎng)度問題。2. 未考慮節(jié)點(diǎn)因子和天文參數(shù)的年際變化。3. 當(dāng)?shù)厮臍庀髼l件發(fā)生長(zhǎng)期變化。1. 使用更長(zhǎng)時(shí)間、更高質(zhì)量的數(shù)據(jù)重新分析。2. 在預(yù)報(bào)時(shí)必須使用隨時(shí)間變化的節(jié)點(diǎn)因子f(t)和天文幅角V0(t)u(t)對(duì)調(diào)和常數(shù)進(jìn)行調(diào)制A_actual(t) f(t) * Aphase_actual(t) V0(t)u(t) phase。t_tide的t_predic函數(shù)已包含此步驟。3. 定期用新數(shù)據(jù)更新調(diào)和常數(shù)。5.2 項(xiàng)目擴(kuò)展方向掌握了基礎(chǔ)的調(diào)和分析后你可以在此基礎(chǔ)上開展更多有價(jià)值的工作潮汐預(yù)報(bào)系統(tǒng)將求得的調(diào)和常數(shù)固化編寫一個(gè)預(yù)報(bào)函數(shù)。輸入未來(lái)時(shí)間點(diǎn)輸出預(yù)報(bào)潮位。這是港口調(diào)度、船舶航行最直接的應(yīng)用。余水位分析與風(fēng)暴潮分離將觀測(cè)潮位減去調(diào)和預(yù)報(bào)潮位得到“余水位”。余水位主要包含氣象潮風(fēng)暴潮、海嘯等非天文因素引起的變化。這對(duì)風(fēng)暴潮預(yù)警至關(guān)重要。潮汐特征統(tǒng)計(jì)分析基于調(diào)和常數(shù)計(jì)算潮汐類型半日潮、全日潮、混合潮、潮汐不等現(xiàn)象日不等、半月不等、平均潮差、最大可能潮差等特征參數(shù)。多站對(duì)比與空間插值對(duì)一片海域多個(gè)站點(diǎn)的調(diào)和常數(shù)進(jìn)行分析研究潮波傳播規(guī)律甚至可以嘗試空間插值生成區(qū)域化的調(diào)和常數(shù)場(chǎng)。與數(shù)值模型結(jié)合將調(diào)和分析得到的調(diào)和常數(shù)作為校準(zhǔn)或驗(yàn)證海洋數(shù)值模型如FVCOM, ROMS潮汐模擬結(jié)果的“地面真值”。5.3 最后的叮囑數(shù)據(jù)質(zhì)量是生命線無(wú)論你的算法多么精巧MATLAB代碼多么高效如果輸入的數(shù)據(jù)質(zhì)量不佳一切分析都是空中樓閣。在開始分析前務(wù)必花時(shí)間做好數(shù)據(jù)質(zhì)量控制剔除明顯的野值、合理插補(bǔ)短時(shí)缺失、識(shí)別并標(biāo)記出受風(fēng)暴潮等極端事件影響的時(shí)段。有時(shí)一段“干凈”的、連續(xù)數(shù)月的數(shù)據(jù)比一段更長(zhǎng)但充滿問題的數(shù)據(jù)更有價(jià)值。調(diào)和分析是一個(gè)強(qiáng)有力的工具但它對(duì)輸入數(shù)據(jù)是“誠(chéng)實(shí)”的垃圾進(jìn)垃圾出。因此培養(yǎng)良好的數(shù)據(jù)清洗和預(yù)處理習(xí)慣是成功進(jìn)行潮汐調(diào)和分析的第一步也是最關(guān)鍵的一步。本文還有配套的精品資源點(diǎn)擊獲取