Jensen尾流模型

一.引言

1.1 尾流效应

大型风电场中前排风机的尾流速度亏损以及尾流区湍流强度的增加会导 致后排风机的功率输出降低并增大叶片的疲劳载荷,这种现象被称作“尾流效应”。

受到环境、场地等因素的影响,风电场中尾流损失现象十分显著。为了减少尾流效应所带来的风电场功率损失,需要通过优化算法对指定区域风电场的风机位置进行布局优化。

1.2 尾流模型

现有的尾流计算模型主要分为两类:解析尾流模型(analytical wake model)和计算尾流模型(computational wake model)。前者是基于理想化的假设或实验数据拟合而得到的半经验风机尾流区域速度分布的数学表达式;后者则使用完整的计算流体力学分析方法求解 N-S 方程来更为准确地描述风机尾流场的流动。

解析尾流模型由于其形式简单,计算速度快并且具有能够满足工程精度要求的特点而作为风电场发电量的快速预报方法被广泛应用于风电场模拟和实际的风电场微观选址研究中。常见的解析尾流模型包含 Jensen 尾流模型、 Frandsen 尾流模型、Bastankhah 尾流模型、Larsen 尾流模型等,本文主要介绍Jensen尾流模型。

二.Jensen单尾流模型

Jensen单机尾流模型图示如下:

可见尾流以固定扩散系数沿风机转子两侧扩散。通过以下表达式计算风经过风力机风轮时在气流中产生风速衰减后的风速:  

v_1=v_0[1-\frac{1-\sqrt{1-C_T}}{r_x^2}r_0^2]

其中,r_0为风机转子半径,v_0为原始风速,r_x=\alpha x\alpha为尾流扩散系数,x为下游风机与上游风机在风向上的投影距离,C_T为推力系数。

三.Jensen多重尾流模型

Jensen多重尾流模型,即考虑下游风机可能受上游多台风机的尾流影响,图示如下:

如图中风机T7同时受T1、T4风机的尾流影响。多机尾流影响有多种计算方式,包括 1)几何和;2)线性和;3)能量平衡;4)平方和。通常采用平方和的形式进行叠加。下游风速可计算如下:

v_j=v_0(1-\sqrt{\sum_{i=1}^{n}w_{ij}^2})

其中,i\in Jj\in JJ是风机所有可能的位置,w_{ij}为风机i对风机j的尾流影响因子(暂考虑尾流完全重叠的情况):

w_{ij}=\frac{(1-\sqrt{1-C_T})r_0^2}{(r_0+\alpha x_{ij})^2}

四.考虑尾流部分重叠的阴影模型

存在上游风机尾流仅影响下游部分风机的情况,如下图所示:

考虑重叠阴影面积A_{shadow,i}后,尾流影响因子综合修正为以下形式:

①当 x_{ij}<=0 或 d_{ij}>=2r_0+\alpha x_{ij} 时,

w_{ij}=0

②当 x_{ij}>0 且 d_{ij}<\alpha x_{ij} 时,

w_{ij}=\frac{(1-\sqrt{1-C_T})r_0^2}{(r_0^2+\alpha x_{ij})^2}

③当 x_{ij}>0 且 \alpha x_{ij}<d_{ij}<2r_0+\alpha x_{ij} 时,

w_{ij}=\frac{(1-\sqrt{1-C_T})r_0^2}{(r_0^2+\alpha x_{ij})^2}(\frac{A_{shadow,i}}{A_0})

A_0为风机转子扫过的面积,A_{shadow,i}计算公式如下:

A_{shadow,i}=[r_i(x_{ij})]^2\cos^{-1}(\frac{L_{ij}}{r_i(x_{ij})})+r_0^2 \cos^{-1}(\frac{d_{ij}-L_{ij}}{r_i(x_{ij})})-0.5d_{ij}z_{ij}

其中,r_i(x_{ij})是上游风力涡轮机后 x_{ij} 处的尾流半径,d_{ij}是下游涡轮机中心与尾流效应中心之间的距离,L_{ij}是尾流区域与风机转子旋转范围交汇点到尾流效应中心的距离,z_{ij}是尾流区域与风机转子旋转范围两交汇点之间的距离。

——end——

<think>好的,用户的问题是关于如何使用Matlab进行UUV的仿真建模,分析噪声特性和信号特征频率的变化规律,特别是机械噪声源、流体动力噪声以及频谱与时域分析方法。我需要结合用户提供的引用内容,其中提到空化噪声是连续谱的主要成分,并且在100-1000Hz有峰值,受航速和吃水深度影响。用户的需求涉及到建模和仿真,需要涵盖多个噪声源和信号分析方法。 首先,我需要确定用户可能需要的步骤。通常,仿真建模包括建立数学模型,然后转换为代码实现。噪声模型部分需要机械噪声和流体动力噪声的数学模型,可能包括空化噪声模型。然后,时域和频域分析需要用到信号处理的方法,比如FFT、小波变换等。 机械噪声可能来自电机、齿轮等,通常可以用高斯白噪声模拟,或者更复杂的模型如正弦波叠加,尤其是如果某些部件有特定频率的振动。流体动力噪声可能涉及流致噪声模型,比如偶极子或四极子声源,或者基于湍流的模型。空化噪声部分需要根据引用中的描述,生成具有特定频谱特征的信号,比如在100-1000Hz有峰值,两侧按一定斜率下降。 接下来,用户可能需要将各个噪声源叠加,然后进行传播模型的仿真,考虑水下声传播的特性,比如衰减、多径效应等。不过用户的问题可能更侧重于噪声生成和特征分析,而传播模型可能简化,比如使用衰减模型或滤波器来模拟信道影响。 然后,时域分析可能包括信号的波形图、统计特性,频域分析则用功率谱密度、频谱图等方法。特征频率的变化规律可能需要参数随时间变化,比如随着UUV航速改变,峰值频率发生偏移,这需要模型中的参数动态调整。 在Matlab实现方面,需要生成不同噪声信号,进行合成,然后应用信号处理工具。可能需要使用Simulink进行系统级建模,或者用脚本和函数处理。比如,机械噪声可以用randn生成高斯噪声,流体噪声可能需要更复杂的模型,如合成带有特定频率成分的信号,空化噪声则需要设计滤波器来形成特定的频谱形状。 可能需要引用一些参考文献或Matlab工具箱,比如Signal Processing Toolbox, Simulink, 或者Acoustics Toolbox。不过用户可能没有这些工具箱,所以最好使用基本的函数实现。 然后,考虑到用户可能需要具体的代码示例,比如生成不同噪声源,合成,进行FFT分析,绘制频谱图等。同时,需要解释每个步骤的目的,比如如何模拟航速对空化噪声峰值频率的影响,可能通过调整滤波器的中心频率参数。 还需要注意用户提到的频谱和时域分析方法,可能需要比较不同噪声源在时域和频域的表现,以及如何从合成信号中提取特征频率,比如峰值检测、谐波分析等。 可能的问题点包括如何合理地将不同噪声源叠加,是否需要考虑相干性,或者各噪声源的独立性。此外,传播模型可能需要考虑水下声速、衰减系数、多径效应等,但用户的问题可能更关注噪声源本身和特征分析,传播模型可能简化。 总结步骤: 1. 建立各噪声源的数学模型(机械、流体动力、空化噪声) 2. 使用Matlab生成各噪声信号 3. 合成总噪声信号 4. 应用传播模型(如衰减、滤波) 5. 时域分析(波形、统计量) 6. 频域分析(功率谱、频谱图) 7. 特征频率提取与分析 代码部分可能需要分段展示各噪声生成的方法,合成,以及分析部分。同时需要解释参数如何影响结果,比如航速改变时如何调整空化噪声的峰值频率。 最后,用户可能还需要验证模型的有效性,比如与实际数据对比,但仿真阶段可能只需理论模型。需要确保数学公式正确转换为Matlab代码,比如使用正确的滤波器设计,正确的FFT参数设置等。</think>以下是使用Matlab实现UUV噪声传播模型及信号特征频率仿真的分步解决方案: ### 一、噪声源建模 1. **机械噪声建模** 使用高斯白噪声叠加周期脉冲信号模拟轴承/齿轮振动: ```matlab fs = 10e3; % 采样率10kHz t = 0:1/fs:10; mechanical_noise = 0.5*randn(size(t)) + 0.2*sin(2*pi*300*t); % 300Hz特征频率 ``` 2. **流体动力噪声建模**[^1] 建立空化噪声连续谱模型: ```matlab % 航速影响参数 speed = 5; % 节 f_peak = 500 + 20*(speed-3); % 峰值频率与航速线性相关 % 生成空化噪声频谱 N = length(t); f = (0:N-1)*fs/N; spectrum = 1./(1 + (abs(f-f_peak)/100).^2); % 洛伦兹型谱 fluid_noise = real(ifft(sqrt(spectrum).*exp(1i*2*pi*rand(size(spectrum))))); ``` ### 二、传播信道建模 ```matlab % 水下声传播衰减模型 distance = 100; % 传播距离(m) alpha = 0.036*f.^1.5/1000; % 衰减系数(dB/m) H = 10.^(-alpha*distance/20).*exp(-1i*2*pi*f*0.02); % 时延0.02s received_signal = real(ifft(fft(fluid_noise).*H)); ``` ### 三、时频域分析方法 1. **时域分析**: ```matlab figure; subplot(211) plot(t(1:1000), mechanical_noise(1:1000)) title('机械噪声时域波形') subplot(212) plot(t(1:1000), fluid_noise(1:1000)) title('流体噪声时域波形') ``` 2. **频域分析**: ```matlab [Pxx,f] = pwelch(received_signal,[],[],[],fs); figure; semilogy(f, Pxx) xlabel('Frequency (Hz)') ylabel('PSD (dB/Hz)') title('接收信号功率谱') ``` ### 四、特征频率追踪 ```matlab % 小波变换分析瞬时频率 [cfs,frq] = cwt(received_soiceil, 'amor', fs); figure; surface(t,frq,abs(cfs)) axis tight shading flat xlabel('Time (s)') ylabel('Frequency (Hz)') title('时频分析') ``` ### 五、完整仿真框架 ```matlab classdef UUVNoiseModel < handle properties Speed % 航行速度 Depth % 吃水深度 MechParams % 机械参数 end methods function obj = UUVNoiseModel(speed, depth) obj.Speed = speed; obj.Depth = depth; end function [t, noise] = generateNoise(obj, duration) fs = 10e3; t = 0:1/fs:duration; % 机械噪声生成 mech_noise = 0.3*randn(size(t)) + 0.1*sin(2*pi*obj.MechParams.f0*t); % 流体噪声生成 f_peak = 300 + 15*(obj.Speed-5) - 2*(obj.Depth-20); fluid_noise = synthesizeCavitationNoise(f_peak, t); % 噪声合成 noise = mech_noise + fluid_noise; end end end ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

h(^z^)h

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值