混合半云模型在风速-功率曲线建模中的应用

2 下载量 4 浏览量 更新于2024-08-31 收藏 3.14MB PDF 举报
"基于混合半云模型的风速-功率曲线建模方法,旨在解决风电机组出力评估和风电功率预测中的不确定性问题。通过引入最优组内云熵算法去除异常数据,利用逆向云发生器量化风速-功率关系的不确定性,并采用X条件云发生器和正向云发生器构建混合半云模型,从而将定性特征转化为定量数据。这种方法在实际风电场数据上的应用验证了其有效性。" 本文主要探讨了风速-功率曲线建模的挑战和解决方案,尤其是在考虑不确定性和数据分布特征的情况下。混合半云模型是一种创新的建模策略,它考虑了风电映射关系的不确定性以及功率曲线的非典型分布。在该模型中,最优组内云熵算法被用于快速有效地识别并剔除异常数据,确保数据的质量。接着,逆向云发生器被用来计算期望、熵和超熵等数字特征,这些特征可以定量描述风速与功率之间的不确定关系,进而构建腰部数据的半云模型。 进一步,X条件云发生器和正向云发生器在混合半云模型中起着关键作用。它们分别用于腰部和上部数据的功率云滴的生成,实现了从定性数字特征到定量数据的有效转换。这样的转换有助于更准确地捕捉风功率数据的内在规律和随机分布特性。 以中国东北某大型风电场的实际测量数据为实例,文章通过分析数据质量、频率分布以及风功率预测的准确性,验证了混合半云模型的实用性。这一建模方法对于理解和预测风电机组的功率输出、提升风电并网的稳定性具有重要意义,对于优化新能源电力系统的调度策略提供了科学依据。 这项研究为风能领域的数据分析和建模提供了一种新的工具,有助于提高风电功率预测的精度,减轻风电并网对电网稳定性的潜在影响,推动清洁能源的高效利用。在未来的风电技术发展中,混合半云模型可能成为解决风速-功率不确定性问题的标准方法之一。

def pic(df, name): import matplotlib.pyplot as plt plt.figure(figsize=(36, 12)) plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False grid = plt.GridSpec(4, 1, wspace=0, hspace=0) df['wnacwindspeed'].dropna() df['wgengenactivepw'].dropna() df.rename(columns={'temp_act': '检测风机', 'temp_avg': '平均风机', 'wnacwindspeed': '平均风速', 'wgengenactivepw': '有功功率'}, inplace=True) if not df.empty: fig = plt.figure(figsize=(19.2, 10.8), dpi=100) # 温度预警图 plt.subplot(211) plt.scatter(df['datatime'], df['检测风机'], color='r', label='检测风机值',s=1) plt.scatter(df['datatime'], df['平均风机'], color='g', label='健康参考值',s=1) plt.legend(fontsize=10, loc='best') plt.title(name, size=28) plt.grid() # 风速-功率曲线图 ax1 = fig.add_subplot(212) lns1 = ax1.plot(df['datatime'], df['平均风速'], color='#6495ED', label='风速',lw=1) ax2 = ax1.twinx() lns2 = ax2.plot(df['datatime'], df['有功功率'], color='#DAA520', label='功率',lw=1) lns = lns1 + lns2 labs = [l.get_label() for l in lns] ax1.legend(lns, labs, loc=0) ax1.grid() ax1.set_xlabel('datatime') ax1.set_ylabel('Wind Speed (m/s)', color='#6495ED', size=20) ax2.set_ylabel('Power (kW)', color='#DAA520', size=20) now = datetime.datetime.now() time_str = now.strftime("%Y-%m-%d") path = 'D:/LYTCO/result/' + time_str if not os.path.exists(path): os.makedirs(path) name = name.replace('/', '-') name = path + '/' + name + '.png' fig.tight_layout() plt.savefig(name, bbox_inches='tight') plt.close()

2023-06-09 上传