单台三相模块化多电平(MMC)小信号建模之旅
单台三相模块化多电平mmc小信号建模 内含功率外环、环流抑制、电流内环、PLL等控制部分完整建模在电力电子领域三相模块化多电平MMC变换器因其诸多优点而备受关注。今天咱就唠唠单台MMC的小信号建模这里面还包含功率外环、环流抑制、电流内环、PLL等控制部分的完整建模。功率外环建模功率外环主要目的是根据给定的功率指令生成合适的电流指令。在三相系统中我们通常基于瞬时功率理论来实现。假设三相电压为\(ua\)、\(ub\)、\(uc\)三相电流为\(ia\)、\(ib\)、\(ic\)瞬时有功功率\(p\)和无功功率\(q\)可表示为# 这里简单示意计算瞬时功率的代码逻辑 import numpy as np # 假设已经获取到三相电压和电流 ua np.random.rand(100) ub np.random.rand(100) uc np.random.rand(100) ia np.random.rand(100) ib np.random.rand(100) ic np.random.rand(100) # 计算瞬时功率 p 1.5 * (ua * ia ub * ib uc * ic) q 1.5 * (ua * ib - ub * ia ub * ic - uc * ib uc * ia - ua * ic)功率外环通过PI调节器来调节功率偏差。假设功率指令为\(p{ref}\)和\(q{ref}\)PI调节器的传递函数可简单表示为\(G{pi}(s)Kp\frac{Ki}{s}\)其中\(Kp\)是比例系数\(K_i\)是积分系数。代码实现上可以这样class PI_Controller: def __init__(self, Kp, Ki): self.Kp Kp self.Ki Ki self.integral 0 def update(self, error, dt): self.integral error * dt output self.Kp * error self.Ki * self.integral return output # 初始化PI控制器 Kp_p 0.1 Ki_p 0.01 pi_p PI_Controller(Kp_p, Ki_p) # 假设功率偏差 error_p p_ref - p # 计算输出 output_p pi_p.update(error_p, dt)这里的dt是采样时间间隔每次调用update函数根据功率偏差计算出输出这个输出后续会作为电流内环的电流指令。环流抑制建模环流在MMC中是个不可忽视的问题它会影响系统的性能和效率。为了抑制环流通常采用基于零序电压注入的方法。在\(abc\)坐标系下环流可表示为\(i{cir,a}i{a1}-i{a2}\)\(i{cir,b}i{b1}-i{b2}\)\(i{cir,c}i{c1}-i{c2}\)其中\(i{a1}\)、\(i_{a2}\)等分别是上下桥臂电流。我们通过引入环流控制器比如也是一个PI控制器来调节环流偏差。以\(a\)相为例代码实现可能如下# 假设已经获取到上下桥臂电流 ia1 np.random.rand(100) ia2 np.random.rand(100) icir_a ia1 - ia2 # 环流PI控制器 Kp_cir 0.05 Ki_cir 0.005 pi_cir_a PI_Controller(Kp_cir, Ki_cir) # 假设环流指令为0 error_cir_a 0 - icir_a output_cir_a pi_cir_a.update(error_cir_a, dt)这个输出会叠加到调制波上从而抑制环流。电流内环建模电流内环的任务是跟踪功率外环给出的电流指令。在静止坐标系下电流内环通常采用比例谐振PR控制器以实现对交流信号无静差跟踪。PR控制器传递函数为\(G{pr}(s)KpKr\frac{2\omegacs}{s^{2}2\omegacs\omega0^{2}}\)其中\(\omegac\)是截止频率\(\omega0\)是谐振频率一般为电网频率。单台三相模块化多电平mmc小信号建模 内含功率外环、环流抑制、电流内环、PLL等控制部分完整建模代码实现上class PR_Controller: def __init__(self, Kp, Kr, wc, w0): self.Kp Kp self.Kr Kr self.wc wc self.w0 w0 self.s1 0 self.s2 0 def update(self, error, dt): self.s1 (error - self.wc * self.s1) * dt self.s2 (self.w0 * self.s1 - self.wc * self.s2 - self.w0**2 * error) * dt output self.Kp * error self.Kr * self.s2 return output # 初始化PR控制器 Kp_i 0.2 Kr_i 0.1 wc_i 10 w0_i 2 * np.pi * 50 pr_i_a PR_Controller(Kp_i, Kr_i, wc_i, w0_i) # 假设电流偏差 error_i_a i_ref_a - ia output_i_a pr_i_a.update(error_i_a, dt)这个输出就是最终作用在MMC变换器上的调制信号。PLL建模锁相环PLL在MMC系统中用于同步电网电压获取准确的相位信息。常用的是基于同步旋转坐标系SRF的PLL。其基本原理是将电网电压变换到同步旋转坐标系下通过PI控制器调节相位偏差使得\(q\)轴电压为0。在代码上首先要进行坐标变换假设电网电压为\(ua\)、\(ub\)将其变换到\(dq\)坐标系def abc_to_dq(ua, ub, theta): uc -ua - ub u_alpha ua u_beta np.sqrt(3) / 3 * (ua 2 * ub) ud u_alpha * np.cos(theta) u_beta * np.sin(theta) uq -u_alpha * np.sin(theta) u_beta * np.cos(theta) return ud, uq # 假设电网电压 ua np.random.rand(100) ub np.random.rand(100) theta 0 # 初始相位 ud, uq abc_to_dq(ua, ub, theta) # PLL的PI控制器 Kp_pll 0.01 Ki_pll 0.001 pi_pll PI_Controller(Kp_pll, Ki_pll) # 假设q轴电压指令为0 error_q 0 - uq output_pll pi_pll.update(error_q, dt) theta output_pll * dt这里通过不断更新相位\(\theta\)实现对电网电压的同步。通过上述对功率外环、环流抑制、电流内环和PLL的建模我们就完成了单台三相模块化多电平MMC的小信号建模。每个部分相互协作共同保障MMC系统稳定高效运行。当然实际应用中还需要根据具体的系统参数进行细致的调整和优化。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2460361.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!