GnarGnarr 2023-03-04 10:32 采纳率: 0%
浏览 251
已结题

利用matlab进行时程风速模拟法进行峡谷风模拟的计算

davenport脉动风速功率谱

img


脉动风压计算公式为

img


脉动风速

img


平均风速

img


p为流体密度

利用时程风速模拟法进行峡谷风模拟的计算
谐波叠加法作为常用的风速时程的模拟法。基于三角级数求和的频谱表示法,利用离散谱进行迭代不断逼近目标随机过程的离散性数值模拟方法。根据风的记录,脉动风可以作为高斯平稳过程来考虑。
在进行风速谱模拟时,假设:
(1)不同高度质点的风速在风作用下相互间是有关联的;
(2)在同一时间点,脉动风同时作用在结构上的所有点。
风可以作为高斯函数过程和稳定随机这两个过程,设具有n个特征值、特征向量的,且平均值为0的高斯过程

img

风速的密度函数矩阵S(w)可以表示为:

img


上述S(w)为正定矩阵,其各元素是相关函数的傅立叶变换,按照Cholesky分解法,S(w)可分解为:

img


img


疑问:能否利用davenport脉动风速功率谱,利用Matlab软件对脉动风速进行仿真,模拟风速时程曲线实现一个接近于峡谷风的风场数值模拟?
例如某地大峡谷,当地最大风速达到38.45m/s,在30m高度处的风速为22.46m/s,峡谷风的脉动风载作用于距地面高度为30米的绝缘子串。如果以此绝缘子串为研究对象,通过Matlab软件仿真生成一个电塔、高度为30米的峡谷风脉动风速时程曲线和风速谱。峡谷风为C类场地,在进行合成时地面粗糙系数取0.01291。由于峡谷风作用时间较长,为更广泛的研究峡谷风对输电线路的作用,选取峡谷风谱的持续时间为600s,采样点数为2048个,时间步长为0.1s,截断频率取10pi,根据上述中分析的脉动风速谱理论,能否生成高度为30米的绝缘子处的峡谷风风速时程曲线和频谱。

  • 写回答

4条回答 默认 最新

  • 「已注销」 2023-03-04 10:45
    关注

    参考GPT和自己的思路,可以利用Davenport脉动风速功率谱,结合Matlab软件,对峡谷风进行仿真,实现一个接近于峡谷风的风场数值模拟。下面是一个可能的仿真过程:

    1 根据峡谷风为C类场地,取地面粗糙系数为0.01291,计算峡谷风的脉动风速功率谱S(w)。可以使用公式:
    S(w) = 4 * 0.312 * U10^2 * (w/wm)^(-5/3) * exp(-1.25*(wm/w)^2)
    其中,U10为10米高度处的平均风速,wm为角频率,可取为wm=2pif,f为频率。需要注意的是,S(w)是对数正态分布的,因此需要进行对数正态分布的变换。

    2 根据Cholesky分解法,将S(w)分解为下三角矩阵H(w)。可以使用Matlab中的函数chol进行分解,例如:
    H = chol(S,'lower');

    3 采用谐波叠加法,利用频谱表示法,生成峡谷风速的时程曲线。可以使用公式:
    v(t) = 2 * Re[sum(H(w)exp(iphi(w))sqrt(S(w))exp(iwt))]
    其中,Re表示实部,phi(w)为(0,2*pi)均匀分布的随机相位角,t为时间,频率采样点数N可以取2048。需要注意的是,生成时程曲线时需要进行傅里叶逆变换。

    4 计算峡谷风速的风速谱。可以使用Matlab中的函数pwelch进行计算,例如:
    [P,f] = pwelch(v,[],[],[],1/0.1);

    5 绘制峡谷风速的时程曲线和风速谱。可以使用Matlab中的plot函数进行绘制。

    需要注意的是,峡谷风是一种复杂的风场,实际情况中可能存在许多未考虑的因素,如地形、气象条件、周围环境等,因此模拟结果可能存在误差。同时,对于输电线路等重要结构的设计和评估,应该根据实际情况进行综合考虑,避免仅依赖数值模拟结果。

    以下是一个简单的Matlab示例代码,用于模拟峡谷风速时程曲线和风速谱:

    % 峡谷风速模拟
    % 设置参数
    H = 30; % 高度
    V_mean = 22.46; % 平均风速
    V_max = 38.45; % 最大风速
    T = 600; % 持续时间
    N = 2048; % 采样点数
    dt = 0.1; % 时间步长
    f_cutoff = 10*pi; % 截断频率
    z0 = 0.01291; % 地面粗糙系数
    c = 1.5; % 峡谷宽度系数
    n = 100; % 谱的分段数
    % 计算参数
    f_s = 1/dt; % 采样频率
    df = f_s/N; % 频率分辨率
    f = (0:N-1)*df; % 频率数组
    w = 2*pi*f; % 角频率数组
    k = 2*pi./w; % 波数数组
    f_c = c*V_mean/H; % 峡谷风固有频率
    f_n = f_s/2; % Nyquist频率
    % 生成功率谱密度函数
    S = davenport(V_mean,V_max,H,f_c,f_cutoff,n);
    % Cholesky分解
    L = chol(S);
    % 生成随机相位角
    phi = 2*pi*rand(n,N/2-1);
    % 生成高斯随机数
    z = randn(n,N/2-1);
    % 合成脉动风速
    V = zeros(1,N);
    for i = 1:n
        V(i,:) = 2*sqrt(L(i,:)).*z(i,:).*cos(w.*dt.*(0:N/2-1)+phi(i,:));
    end
    V = sum(V,1);
    % 计算风速时程曲线
    V = V + V_mean;
    % 计算风速谱
    S_v = fft(V,N).*conj(fft(V,N))/N/f_s;
    S_v = S_v(1:N/2);
    % 绘制结果
    figure;
    subplot(2,1,1);
    plot((0:N-1)*dt,V);
    xlabel('时间(秒)');
    ylabel('风速(米/秒)');
    title('峡谷风速时程曲线');
    subplot(2,1,2);
    loglog(f(1:N/2),S_v);
    xlabel('频率(赫兹)');
    ylabel('功率谱密度(米^2/秒)');
    title('峡谷风速谱');
    

    该代码使用Davenport方法生成峡谷风速的功率谱密度函数,然后使用Cholesky分解方法将功率谱密度函数转换为相关函数的傅立叶变换,最后利用随机相位角和高斯随机数合成脉动风速时程曲线,并计算风速谱。最终绘制出风速时程

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 创建了问题 3月4日