双馈风力发电系统仿真那些事儿
双馈风力发电系统仿真,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
这个代码中,根据实时测量的风速,从查找表中获取对应功率值,如果风速不在查找表中则进行简单线性插值计算功率。这样就实现了根据风速实时追踪最大功率点。
四、模型特点
整个模型注释清楚,简单易懂。对于想要深入研究的朋友,可提供相关文献参考。如果有特殊需求,也能根据具体情况定制。像 [《双馈风力发电系统建模与控制》]这样的文献,对于理解系统的原理和模型构建就很有帮助。通过这样的仿真模型,能更深入地研究双馈风力发电系统的运行特性,为实际应用提供有力支持。希望以上内容能让大家对双馈风力发电系统仿真有更清晰的认识!

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


所有评论(0)