双馈风力发电系统仿真,DFIG,采用背靠背双pwm变换器,具备最大功率追踪功能。 (1)转子侧变换器采用基于定子电压定向的矢量控制策略,有功无功解耦,具备MPPT能力,采用功率外环电流内环双闭环控制结构。 (2)网侧采用电网电压定向的矢量控制策略,才用电压外环电流内环控制,直流母线电压稳定,输入功率因数为1。 (3)具备最大功率追踪MPPT功能,MPPT才用最优特性曲线法,可根据输入风速实时追踪最大功率点,追踪效果好。 (4)模型注释清楚,简单易懂,可提供文献参考,可根据需要定制。

在风力发电领域,双馈感应发电机(DFIG)凭借其独特优势成为了研究与应用的热点。今天就来唠唠基于背靠背双 PWM 变换器且具备最大功率追踪功能的双馈风力发电系统仿真。

一、转子侧变换器

转子侧变换器采用基于定子电压定向的矢量控制策略,这一策略的核心在于实现有功无功解耦,同时赋予系统最大功率点追踪(MPPT)能力,采用的是功率外环电流内环双闭环控制结构。

咱们先看看功率外环的代码示意:

# 功率外环控制示例代码
def power_out_loop(power_ref, power_measured):
    kp_p = 0.5  # 比例系数
    ki_p = 0.1  # 积分系数
    integral_p = 0
    error_p = power_ref - power_measured
    integral_p += error_p
    current_ref_d = kp_p * error_p + ki_p * integral_p
    return current_ref_d

这里呢,powerref 是给定的功率参考值,powermeasured 是实际测量到的功率。通过比例积分控制(PI 控制),计算出电流参考值 currentrefd,为内环电流控制提供目标。

再看看电流内环代码:

# 电流内环控制示例代码
def current_in_loop(current_ref_d, current_measured_d):
    kp_i = 0.3  # 比例系数
    ki_i = 0.05  # 积分系数
    integral_i = 0
    error_i = current_ref_d - current_measured_d
    integral_i += error_i
    voltage_ref_d = kp_i * error_i + ki_i * integral_i
    return voltage_ref_d

在电流内环中,将功率外环给出的电流参考值 currentrefd 与实际测量的电流值 currentmeasuredd 作比较,同样通过 PI 控制算出电压参考值 voltagerefd,这个电压参考值最终用于控制变换器的输出。

二、网侧变换器

网侧采用电网电压定向的矢量控制策略,运用电压外环电流内环控制方式,目的是维持直流母线电压稳定并且使输入功率因数为 1。

双馈风力发电系统仿真,DFIG,采用背靠背双pwm变换器,具备最大功率追踪功能。 (1)转子侧变换器采用基于定子电压定向的矢量控制策略,有功无功解耦,具备MPPT能力,采用功率外环电流内环双闭环控制结构。 (2)网侧采用电网电压定向的矢量控制策略,才用电压外环电流内环控制,直流母线电压稳定,输入功率因数为1。 (3)具备最大功率追踪MPPT功能,MPPT才用最优特性曲线法,可根据输入风速实时追踪最大功率点,追踪效果好。 (4)模型注释清楚,简单易懂,可提供文献参考,可根据需要定制。

电压外环代码示例:

# 电压外环控制示例代码
def voltage_out_loop(voltage_ref, voltage_measured):
    kp_v = 0.4  # 比例系数
    ki_v = 0.08  # 积分系数
    integral_v = 0
    error_v = voltage_ref - voltage_measured
    integral_v += error_v
    current_ref_q = kp_v * error_v + ki_v * integral_v
    return current_ref_q

voltageref 是期望的直流母线电压参考值,voltagemeasured 是实际测量值。通过 PI 计算得出电流参考值 currentrefq

电流内环和转子侧类似,这里就不再赘述代码。通过这样的双环控制,保证了直流母线电压稳定以及功率因数为 1 的目标。

三、最大功率追踪 MPPT

系统具备最大功率追踪 MPPT 功能,采用的是最优特性曲线法。这种方法可以根据输入风速实时追踪最大功率点,追踪效果相当不错。

简单来说,我们可以根据风速 - 功率的最优特性曲线建立一个查找表。代码大致如下:

# 风速 - 功率查找表示例
wind_speed_power_table = {
    3: 0,
    4: 100,
    5: 200,
    # 更多风速 - 功率对应值...
}

def mppt(wind_speed):
    if wind_speed in wind_speed_power_table:
        return wind_speed_power_table[wind_speed]
    else:
        # 简单的线性插值
        lower_speed = max([s for s in wind_speed_power_table if s < wind_speed])
        upper_speed = min([s for s in wind_speed_power_table if s > wind_speed])
        lower_power = wind_speed_power_table[lower_speed]
        upper_power = wind_speed_power_table[upper_speed]
        interpolated_power = lower_power + (wind_speed - lower_speed) * (upper_power - lower_power) / (upper_speed - lower_speed)
        return interpolated_power

这个代码中,根据实时测量的风速,从查找表中获取对应功率值,如果风速不在查找表中则进行简单线性插值计算功率。这样就实现了根据风速实时追踪最大功率点。

四、模型特点

整个模型注释清楚,简单易懂。对于想要深入研究的朋友,可提供相关文献参考。如果有特殊需求,也能根据具体情况定制。像 [《双馈风力发电系统建模与控制》]这样的文献,对于理解系统的原理和模型构建就很有帮助。通过这样的仿真模型,能更深入地研究双馈风力发电系统的运行特性,为实际应用提供有力支持。希望以上内容能让大家对双馈风力发电系统仿真有更清晰的认识!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐