资讯动态

最优零序电压注入法实现NPC三电平中点电位平衡的Simulink仿真

发布时间:2026/9/15 23:35:24 来源:尧图企业网站定制
在做三电平仿真复现时最让我头疼的从来不是IGBT怎么建模、PWM怎么发波而是直流侧那两个串联电容的电压像跷跷板一样来回晃。NPC三电平拓扑的中点位电位失衡问题几乎是每个做电力电子仿真的研究者都会撞上的一堵墙。这篇博客想聊的就是怎么用“最优零序电压注入法”来抑制中点电位偏移并且把整个算法从论文公式一路落地到Simulink模型里。我按自己复现IEEE顶刊论文时的思路来拆解先讲清楚问题根源再对比几种主流平衡策略然后给出核心算法的完整计算流程最后是模型搭建、结果判读和实战中踩过的坑。无论你是刚入门三电平变换器还是已经跑过仿真但对平衡效果不满意这篇都值得花十分钟看完。1. 中点电位失衡NPC三电平的“慢性病”从何而来1.1 从拓扑结构说起中点是怎么被“拉偏”的想要理解中点电位平衡问题必须先搞清楚NPC三电平拓扑的工作机理。经典的二极管钳位型三电平变流器每相有四个IGBT和两个钳位二极管直流侧由两个电容串联中间引出中性点O。每相输出只有三种电平状态P直流母线正、O钳位于中点、N直流母线负。关键就在这个O状态上。当某相输出O电平时该相负载电流会经由钳位二极管流入或流出中性点O这个电流叫做中点电流。三相的中点电流汇合在一起就会在两个串联电容之间形成充放电效应。一个开关周期内中点电流不为零就意味着上电容和下电容的电压必然发生偏移。再往深一层说中点电流的大小与每相调制波占空比的绝对值密切相关。假设三相的归一化调制波为 d_a、d_b、d_c载波周期内的平均中点电流可以写成I_np (1 - |d_a|)·i_a (1 - |d_b|)·i_b (1 - |d_c|)·i_c从这个式子就能看出来只要调制波的绝对值不等于1负载电流就有可能在中点产生累计电荷。传统两电平拓扑没有O状态自然没有这个烦恼而NPC三电平把中点直接引出来了就必须面对旁边这两个电容的电压平衡问题。这不是什么偶发故障而是拓扑本身自带的“出厂缺陷”。1.2 电位失衡之后会遇到什么后果如果放任中点电位漂移后果非常直接。首先是输出波形畸变电容电压不对称会让P、O、N三个电平的台阶不再均匀线电压和相电压的谐波含量明显上升尤其是低频段THD会恶化得很厉害。其次是功率器件承受的电压应力不再均衡上桥臂或下桥臂某个IGBT被迫扛超过额定值的电压长期运行极容易击穿。再就是两个直流电容的寿命和容量利用率一个电容过压、一个欠压整体可靠性和利用率都大幅下降。还有一个容易被忽略的问题——低频工况下的波动。在电机驱动或并网逆变器中负载频率可能低到几赫兹甚至零频。此时中点电流中的低频分量会非常大电容电压波动幅度跟电流幅值成正比、跟电容容值和频率成反比。单纯靠加大电容来压波动成本和体积都受不了电容体积增大带来的母线寄生电感问题反而会让工况更复杂。所以中点电位平衡从来不是一个“可做可不做”的优化项而是NPC三电平能否工程化应用的前置条件。复现IEEE顶刊论文里的控制策略第一步就必须把这个问题彻底掰开揉碎。2. 为什么是“最优”零序电压注入几种主流平衡策略的底层对比2.1 零序电压不改变线电压却能操纵中点电流先解释一个反直觉的事实三相调制波同时叠加一个零序电压 V_z不会改变任何线电压只会让每一相的相电压参考值整体平移。比如原来三相调制波是正弦波叠加一个三次谐波分量后线电压波形不变但调制波的最大值被压低了直流电压利用率提高了——这是最经典的零序注入应用。对中点电位平衡来说零序电压还有另一层更隐蔽的作用。回头看中点电流公式 I_np Σ(1 - |d_x|)·i_x其中 d_x 是每相的占空比。当三相同时叠加 V_z 后每相的占空比变为 d_x V_z中点电流变成关于 V_z 的函数I_np(V_z) Σ(1 - |d_x V_z|)·i_xV_z 改变了每相调制波的绝对值也就改变了每个开关周期内每相处于O状态的时间占比从而改变了流向中点的电流大小和方向。换句话说零序电压像一只“阀门”不碰输出线电压却能精确控制中点电流。这正是它作为平衡工具的核心价值可以在不牺牲输出电能质量的前提下把中点电位拉回来。2.2 固定注入、SVPWM、PI闭环各自的边界在哪里学术界和工程界提出的中点平衡方案很多但思路可以归成几类。固定零序注入比如注入谐波最简单它只是为了提高电压利用率完全没有中点平衡能力可以直接排除。SVPWM的中点是靠小矢量冗余状态来调节的。三电平SVPWM有12个扇区、27个开关状态其中正小矢量和负小矢量对中点电流的作用相反。通过在一个开关周期内调整正负小矢量的作用时间就能间接控制中点电流。这个方法被广泛采用效果也不错但缺点是它只利用了离散的冗余矢量状态平衡能力受所在扇区和矢量位置限制动态响应相对有限。而且SVPWM实现起来扇区判断、矢量时间计算都比较繁琐改一次控制目标就要重推一遍查表。更普遍的是PI加零序电压闭环采样两个电容电压的差值ΔV经过PI调节器输出一个零序电压叠加到三相调制波上。这个方案实现简单、物理意义清晰很多工业产品就是这么做的。但它有个内在软肋——PI参数存在的价值是应对“被控对象是线性时不变系统”而中点电流与占空比、负载电流之间的关系是强耦合的分段函数。同一个PI参数在调制比0.8和调制比0.4时的控制效果可能差出一倍离散步距一大容易出现积分饱和或振荡。“最优”零序电压注入法之所以在近几年的IEEE论文里频繁出现本质是把上面这个问题变成了一个可解析求解的优化问题不依赖PI的经验调参而是在每一个开关周期内直接求使中点电流达到期望值的最优零序电压 V_z*。因为目标函数是分段线性的全局最优解可以在约束区间内解析枚举得到不存在迭代不收敛的问题。两个字总结就是“确定性”没有PI的滞后和超调也不依赖SVPWM的离散状态而是连续地、直接地找到理论上的最优解。平衡策略核心原理动态响应实现复杂度电压利用率影响固定零序注入只调制波叠加固定分量无平衡能力极低提升SVPWM小矢量调节调整正负小矢量时间中等高较高PI闭环零序电压PI输出零序叠加受参数限制低较高最优零序电压注入每周期枚举求最优V_z快且确定中较高从表格也能看出来最优零序电压注入法最大的增量价值是它在“输出电能质量”、“平衡能力”和“实现复杂度”之间找到了一个非常舒服的平衡点。2.3 “最优”需要一个明确的目标函数说“最优”之前得先回答一个哲学问题你到底要优化什么IEEE论文里的目标函数千变万化但落地到实际仿真时无非两种常见设定第一种是最小化中点电流的绝对值每个开关周期内让 I_np 尽量趋近于零。这样做的好处是稳态中点电位波动最小但它在电容电压已经出现偏差时没有纠偏能力——电流为零只能防止继续恶化没法把已经偏掉的电平拉回来。第二种是带纠偏闭环的目标把电容电压差 ΔV V_c2 - V_c1 引入目标函数定义一个期望中点电流 I_np* K_p·ΔV然后让算法求解使 I_np 最接近 I_np* 的零序电压。当 V_c2 V_c1 时期望电流会把电荷从中点抽走让V_c2降下来、V_c1升上去。我在仿真中采用的是第二种方案。它相当于在“最小化中点纹波”和“快速纠偏”之间加了一个权重系数 K_p实际调参只有一个量非常友好。后面的算法拆解也是围绕这个目标函数展开。3. 最优零序电压的核心算法拆解分段线性与枚举求解3.1 数学模型把中点电流写成零序电压的分段线性函数先把问题的数学框架搭完整。假设三相调制波为 v_a、v_b、v_c取值范围归一化在 [-1, 1]三相负载电流为 i_a、i_b、i_c直流侧电容电压差为 ΔV。注入零序电压 V_z 后每一相的实际调制波变成v_x v_x V_z约束条件是任何一相都不能超调所以 V_z 必须落在以下区间内V_min -1 - min(v_a, v_b, v_c) V_max 1 - max(v_a, v_b, v_c)这个可行区间是整个算法的“解空间”。超过这个范围某相调制波就会越过载波极限导致过调制所以枚举只能在区间 [V_min, V_max] 内进行。在这个区间内中点电流为I_np(V_z) Σ(1 - |v_x V_z|)·i_x关键观察来了绝对值函数在 v_x V_z 0 处才发生斜率转折也就是 V_z -v_x。三相合起来一共有三个转折点-v_a、-v_b、-v_c。这些转折点把可行区间切成了若干个子区间在每个子区间内三个绝对值符号的正负都是固定的于是 I_np(V_z) 在这个子区间里就是一个关于 V_z 的线性函数I_np(V_z) A_k B_k·V_z其中 A_k、B_k 由该区间内三相电流和调制波决定。线性函数在一个区间上的最小值要么出现在端点要么出现在内部零点。因此寻找全局最优零序电压的任务化简成了在少数几个候选点之间比较大小。3.2 枚举求解不需要求导不需要迭代具体求解步骤可以写成这样第一步计算可行区间上下限 V_min 和 V_max同时把三个转折点 -v_a、-v_b、-v_c 全部找出来。第二步把 V_min、V_max 和所有转折点混在一起排序得到一串有序候选边界点。相邻边界点之间就是一个个子区间每个子区间内部不存在转折I_np 是线性的。第三步逐个遍历子区间。在每个子区间内任取一个内点比如中点判断三相调制波加零序后的符号也就是每个绝对值里头的正负号。这决定了一个开关周期内各相O状态钳位的时间比例方向。第四步基于得到的符号写出该区间内的 A_k 和 B_k于是中点电流变成了显式的线性函数。然后在这个区间内求使 |I_np(V_z) - I_np*| 最小的点先检查内部零点是否在区间内再检查两个端点。所有候选点比较一遍记录代价最小的那个 V_z就是全局最优。这个算法不需要任何迭代求解器循环次数最多就是4到5个子区间乘上3个候选点总共十几个比较运算。在DSP或者FPGA上跑起来微秒级别完全满足实时控制的需求。这也是它能从论文走向工程的重要前提。3.3 一个数值算例把计算过程彻底走一遍光看公式可能不够直观拿一组实际数值走一遍。假设某时刻三相调制波为 v_a 0.6、v_b -0.3、v_c -0.3三相电流为 i_a 10A、i_b -5A、i_c -5A电容电压差 ΔV 0所以期望中点电流 I_np* 0。可行区间算出来是 V_min -1 - (-0.3) -0.7V_max 1 - 0.6 0.4。转折点有三个-0.6、0.3、0.3其中b相和c相的转折点重合。排序后得到候选边界-0.7、-0.6、0.3、0.4。看第一个子区间 [-0.7, -0.6]在这个区间内v_a V_z 恒大于0v_b V_z 和 v_c V_z 恒小于0。代入中点电流公式化简得到I_np (0.4 - V_z)·10 (0.7 V_z)·(-5) (0.7 V_z)·(-5) -3 - 20·V_z区间端点上的值V_z -0.7 时 I_np 11AV_z -0.6 时 I_np 9A。这个区间内找不到 I_np 0 的解最小值在右端点代价为9。看第二个子区间 [-0.6, 0.3]符号情况跟上一个区间相同化简结果仍然相同I_np -3 - 20·V_z。这次由 -3 - 20·V_z 0 解出 V_z -0.15正好落在区间内部。代价为零直接命中全局最优。因为代价已经达到理论下界后面的区间都不用再看了。结论最优零序电压 V_z* -0.15注入后三相实际调制波为 0.45、-0.45、-0.45此时中点电流严格为零。可以看到算法天然地把调制波往“对称”的方向推让O状态占空比和电流方向互相抵消。4. Simulink仿真模型落地主电路、控制环与关键代码的完整复现4.1 主电路搭建与参数选型Simulink里搭NPC三电平主电路我建议直接用Simscape Electrical里的三电平桥臂模块而不是用四个IGBT手动搭。三电平桥臂模块参数清晰还能省掉很多不必要的电气节点仿真速度更快。直流侧用两个独立的电容串联中点引出接到桥臂的中点端。参数选型直接参考IEEE论文里常用的验证条件结合工程常识做微调参数数值说明直流母线电压 Vdc600V模拟380V工业变频器母线直流侧电容 C1、C24700μF折中体积与低频抗波动能力载波频率 fsw5kHz常规IGBT开关频率基波频率 f050Hz工频验证负载电阻 R10Ω三相星接负载电感 L10mH模拟电机绕组感性负载死区时间2μs非理想化验证用Simscape的三相RL串联负载模块接到桥臂输出端注意把中性点浮空或者用星形连接都行不影响算法验证。关键是把两个电容电压分别引出来做反馈这是整个控制系统唯一的传感器信号来源。4.2 控制环搭建采样同步、零序计算与PWM发生控制环的结构分成三块信号采样、最优零序计算、PWM调制。先看PWM发生。三电平载波层叠PWM的标准做法两路三角载波层叠一路在 [0,1] 范围一路在 [-1,0] 范围与同一路调制波比较。调制波大于上方载波输出P小于下方载波输出N介于两者之间输出O。在Simulink里可以直接用两个“Repeating Sequence”模块产生三角波再用比较器和逻辑运算生成门极信号。采样同步是最容易忽略的细节。最优零序电压每个开关周期要更新一次更新时机必须严格对齐到载波周期的起始点。最简单的办法是用三角载波产生一个同步脉冲——载波到达波谷或波峰时触发采样保持模块把三相电流和两个电容电压锁存下来然后用这些锁存值计算零序电压。如果不用同步采样而是每个仿真步长都重新计算一次零序那算出来的 V_z 和实际PWM模块用的调制波可能错拍效果会大打折扣。零序计算我放在一个Matlab Function模块里实现输入是三相调制波、三相电流和电容电压差输出是零序电压。算法代码就是上一节枚举流程的直接翻译完整的核心代码如下function vz optimal_zero_seq(va, vb, vc, ia, ib, ic, Kp, dV) % 最优零序电压注入法 % 输入三相调制波va,vb,vc三相电流ia,ib,ic平衡系数Kp电容电压差dVVc2-Vc1 % 输出最优零序电压vz v [va, vb, vc]; i [ia, ib, ic]; % 可行区间 vmin -1 - min(v); vmax 1 - max(v); % 期望中点电流带电压差纠偏 inp_ref Kp * dV; % 分段点 bps unique([vmin, vmax, -va, -vb, -vc]); best_vz vmin; best_cost inf; for k 1:length(bps)-1 v1 bps(k); v2 bps(k1); if v2 - v1 1e-8 continue; end % 取区间中点判断符号 vm 0.5*(v1 v2); dv v vm; sgn sign(dv); % 该区间内中点电流为线性函数inp A B*vz A sum((1 - sgn.*v).*i); B -sum(sgn.*i); % 候选点内部零点 if abs(B) 1e-10 vz0 (inp_ref - A) / B; if vz0 v1-1e-8 vz0 v21e-8 cost 0; if cost best_cost best_cost cost; best_vz vz0; end end end % 候选点端点 for vzc [v1, v2] cost abs(A B*vzc - inp_ref); if cost best_cost best_cost cost; best_vz vzc; end end end vz best_vz; end这段代码有两点需要特别说明。第一我用了 unique 函数把重复的分段点合并掉避免零长度区间。第二内部零点判断时留了 1e-8 的容差防止浮点条件下出现边界点判定失败。这些都是实际跑模型过程中发现的细节问题不加这些处理模型偶尔会出现零序电压跳变导致电流波形上出现毛刺。4.3 模型初始化与求解器配置模型建好后还需要做两处关键配置。求解器层面电力电子模型是典型的刚性系统IGBT开关瞬间有极陡的电压电流变化建议用变步长求解器ode23tb 或者 ode15s 都行。相对容差设到 1e-4最大步长限制在2e-6秒保证开关过程的波形分辨率。仿真时长为0.5到1秒既能看清稳态纹波又能观察到动态响应。初始化脚本可以把所有参数集中管理。我习惯在模型里加一个PreLoadFcn回调函数使仿真开始前自动跑初始化脚本。脚本里定义直流电压、电容、负载、载波频率和Kp系数顺便把电容初始电压设置成不对称的值比如V_c1 310V、V_c2 290V。这样一启动就能看到算法把20V的初始偏差逐步拉平的过程比单纯看稳态结果更有说服力。5. 仿真结果怎么判读中点电压偏移、THD与动态响应实测5.1 开环对比有注入和没有注入完全是两种命运仿真跑起来之后第一件事就是先做一个对照实验把零序注入旁路直接让正弦调制波送进PWM比较器观察两个电容电压。在这个状态下由于三相平衡负载下中点电流在一个基波周期内平均不为零电容电压会缓慢漂移而且波形上有明显的低频振荡。实测下来上下电容的电压差能达到±25V以上输出相电压的台阶明显不对称低压侧的IGBT每次关断都要扛更高的电压尖峰。把最优零序注入模块接入之后效果立竿见影。稳态下两个电容电压差被压缩到±3V以内波形几乎是一条以300V为中心的平直线只残留开关频率附近的微小纹波。线电压的波形台阶变得更加均匀THD从开环状态的百分之7到8下降到百分之2左右。5.2 不同调制比下的极限性能中点电位平衡在两个极端工况下最容易露馅低调制比和高调制比。低调制比比如0.3时三相调制波都很小每相大部分时间停留在O状态中点电流的活跃程度非常高电容电压波动会剧烈放大。我实测调制比0.3、不加零序注入时电容电压差能摆到±50V加上最优零序注入后压差被压回±5V以内。这条策略在低调制比下依然坚挺原因是可行区间 [V_min, V_max] 非常宽零序电压有充足的调节空间。高调制比比如0.95时情况反过来。调制波接近载波极限零序电压的可行区间被压缩到很小算法能打的“牌”变少了平衡能力会弱一些。实测调制比0.95时电容电压差大概控制在±8V以内虽然纹波比低调制比时大一些但依然远好于开环状态。这也印证了论文里的一个常见结论最优零序注入法在0.4到0.9的调制比范围内表现最优秀接近过调制边界时需要结合其他手段比如SVPWM的冗余小矢量做补充。调制比开环ΔV峰峰值最优零序注入ΔV峰峰值线电压THD注入后0.3±50V±5V1.8%0.5±30V±3V2.1%0.8±25V±3V2.3%0.95±28V±8V2.6%5.3 动态性能初始偏差恢复和负载突变响应除了稳态指标中点电位平衡策略的动态性能同样重要。我把初始化脚本里的电容电压改成310V对290V然后观察算法把这两者拉平需要多长时间。实测下来大概需要3到5个基波周期过程平滑无超调这比PI闭环常见的“先冲过头再拉回来”好很多。这背后的原因就在于最优零序注入每个周期都在解析地求解最优点不存在积分项带来的相位滞后。再测试负载突变在0.4秒时把负载电阻从10Ω切换到5Ω负载电流瞬间翻倍。可以看到电容电压差会出现一个短暂的冲击约±12V随后在2到3个基波周期内恢复。这一个响应速度在工程上是够看的。当然想要进一步压住冲击峰值可以把Kp适当调大但代价是稳态纹波会略微上升这个trade-off后面细说。还有一个容易被忽略的动态场景三相调制波不对称。比如给其中一相注入2%的直流偏置模拟传感器零点漂移此时即使是三相平衡负载也会产生不平衡的中点电流。最优零序注入能通过调整V_z补偿掉这部分不平衡实测电容电压差依然能压在±5V以内。这说明算法对系统不对称也具备一定的鲁棒性不只能处理对称工况。6. 复现过程中绕不开的坑采样同步、死区影响与系数整定6.1 采样在波峰还是波谷中点电流估算是两套逻辑我在复现过程中第一个栽的跟头就是采样同步。最初我用零阶保持器定时采样采样周期跟载波周期一样但没有严格对齐载波的波峰或波谷。结果零序电压算出来是正确的但PWM环节还没来得及用上这个值载波已经翻过去了相当于控制量晚了一个节拍。表现到波形上电容电压差不仅没有压下来反而出现了次谐波震荡。正确做法是让采样脉冲由三角载波本身触发。Simulink里可以把三角波通过一个“Detect Rise Nonnegative”模块在载波上升沿穿过零点时产生一个脉冲用这个脉冲驱动采样保持模块和控制模块。这样每个载波周期开始时采样的值在整个周期内都有效控制器和PWM严格同步。注意三电平层叠PWM有两路载波触发脉冲只需要取其中一路通常取正半周那路的下落沿或者负半周那路的上升沿取决于你希望采样点落在PWM周期起始还是中点。6.2 死区时间会让理论占空比和实际占空比悄悄产生偏差仿真模型里如果设置了IGBT死区时间实际的输出电压脉冲宽度会比理论上窄或者宽等效占空比跟理想计算值之间有一个死区时间的偏差。死区时间为2μs、开关周期200μs时偏差占比大约百分之1。单独看不大但它会累计到中点电流的估算误差里。因为算法假设中点电流跟理论占空比严格对应实际电路因为死区产生偏差后每个周期内流入中点的电荷就多了一点或少了一点稳态时电容电压差会带一个微小的常值偏置压不到零。我在仿真里做过对照死区2μs时稳态ΔV的均值大概偏了3V左右。对于论文级别的仿真结论来说这个量级可以接受但如果追求极致可以做死区补偿思路是死区期间O状态的实际时间发生变化修正每相的等效占空比后再送入零序计算模块。仿真中更省事的做法是先把死区设为0跑通算法逻辑确认平衡效果达标后再加上死区观察性能退化幅度评估工程裕量。6.3 Kp系数到底怎么调动态和稳态的跷跷板前面说要让算法具备纠偏能力需要引入 I_np* K_p·ΔV整个控制效果对Kp非常敏感。Kp过小比如0.05算法纠偏很慢初始电压偏差恢复时间很长动态冲击大。Kp过大比如0.8算法对电压偏差反应过激每个周期都灌入大量中点电流去追平电压结果就是稳态中点电流纹波变大、电容电压出现高频抖动甚至闭环振荡。经过多组扫描这个模型里Kp取0.2到0.3之间比较合适。在这个区间里初始20V偏差恢复时间约4个基波周期稳态ΔV纹波控制在±3V动态冲击也足够小。Kp的量纲是安培每伏特即每1V电容电压偏差对应0.2到0.3A的期望中点电流。如果你的主电路功率等级变了Kp也要等比例调整因为同样的电压偏差在更大电流系统里需要的修正电流更大。一个实用经验先按额定电流除以额定电压再乘一个0.1的系数起步然后逐步加大观察电容电压纹波开始明显变差的位置就是上限。6.4 算法实时性这种“最优”方案能不能上嵌入式平台仿真里零序计算是用Matlab Function跑解释型代码速度慢一点无伤大雅但工程上如果要在DSP或FPGA上实现必须评估计算量。前面已经算过整个枚举过程至多扫描五六个区间每个区间几个四则运算总共不超过五十次浮点运算。在TMS320F28335那种150MHz的老器件上单次计算时间可以压到20微秒以内比5kHz载波的200微秒周期小一个数量级完全跑得动。即便将来要提高到20kHz开关频率50微秒的周期依然能塞进这个计算量。所以“最优”两个字不只是性能上的最优也意味着算法结构足够简单具备实时落地的条件。这一点是我认为该方法比某些机器学习类平衡策略更有工程价值的核心原因。6.5 遇到输出电压利用率不够时先检查零序限幅最后一个容易踩的坑是直接把调制波送进限幅器导致的直流电压利用率下降。有些论文实现里为了让调制波不超限直接加一个Saturation模块硬切这种做法会破坏零序注入的效果。正确的顺序是先让 V_z 在可行区间 [V_min, V_max] 内被选出来然后把 V_z 加到三相调制波上这样叠加后的调制波严格落在 [-1,1] 内不需要额外限幅。如果实际波形出现过调制说明V_z的可行区间计算有误优先检查 min(v) 和 max(v) 的符号有没有写反这是我最常看到的一个低级但致命的错误。一点收尾的体会把这套算法从论文搬到Simulink再搬到实验板上的过程我最大的感受是仿真的价值不在于让波形多漂亮而在于逼你把每个环节的物理逻辑想清楚。比如采样为什么不取波峰而取波谷、死区为什么会产生常值偏置、Kp为什么有个最佳甜点区——这些问题在论文里往往一句话带过真正动手复现时才意识到都是决定成败的细节。如果你第一次跑出来的仿真中点电位平衡效果不理想不要急着怀疑算法有问题先按上面这几个坑逐一排查大概率能找到原因。后面有时间我打算再把五电平NPC和ANPC拓扑里的扩展版本也做一个对比实验到时候继续来分享。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价