资讯动态

考虑互阻抗的三相不平衡潮流:基于IEEE33节点前推回代法实现

发布时间:2026/10/13 4:13:44 来源:尧图企业网站定制
做配电网潮流的同学基本都绕不开IEEE33节点。这个网络就像电力系统的“hello world”但一旦把条件换成三相不平衡还要在模型里把互阻抗考虑进去事情就完全不一样了。我最近把一个基于前推回代法的三相不平衡潮流程序跑通了算例正是IEEE33节点系统特地把实现思路、迭代公式、代码框架和调试时踩过的坑整理出来给后面想动手做同方向东西的读者铺一条顺一点的路。这套东西能干什么简单说输入一个辐射状配电网的节点、线路、负荷参数程序输出每一相的电压幅值、相角、支路电流和网损。相比只算单相模型或序分量模型它的核心优势是每相电压独立更新线路阻抗用3x3矩阵表示相间互感直接写进压降公式里。非常适合研究低压配电网的负荷不平衡问题、分布式电源接入后的电压偏移以及动力照明混合供电场景下的潮流分布。适合的读者主要有三类正在做配电网课程设计的学生、要搭试验算例验证算法的研究者、以及想把配网潮流当基础工具用的工程人员。1. 项目概述与核心难点拆解1.1 为什么拿IEEE33节点当测试床IEEE33节点标准算例的来历就不多赘述了它本质上是一个12.66kV的辐射状配电系统一共33个节点、32条支路末端带有若干分布式负荷总负荷大约3.715MW加2.3Mvar。这个网络规模不大不小手算能验证程序跑起来又是毫秒级所以不管做潮流算法、故障分析还是网架重构大家都默认先拿它试水。我选它还有一层考虑原始数据里面给出了每条支路的R和X负荷都是复功率形式特别适合直接扩展成三相模型。做三相不平衡时只要把每个节点的单相负荷拆成A、B、C三相独立负荷再把线路阻抗从标量扩展成3x3矩阵就能在同一个拓扑上做各种不平衡场景的测试。比如让A相满载、B相半载、C相空载或者某条支路C相单相接地这类极端工况在IEEE33上跑出来的结果非常直观方便和对称潮流的基准结果对比。有一点要提醒原始IEEE33数据本身只给正序阻抗没有给零序参数更没有给明确的相间互阻抗。所以做三相模型时线路参数必须自己扩展。这一步很多人直接随便填矩阵结果算出来电压畸变特别大。后面我会专门讲扩展方法这是第一个坑。1.2 三相不平衡到底引入了什么新麻烦单相潮流或者对称潮流本质是解一个标量网络方程节点电压只有一个复数。三相不平衡之后问题维度直接乘3每个节点有三相电压每条支路有三相电流线路阻抗从标量变成3x3矩阵。麻烦的不是计算量大而是概念上的转变。第一个麻烦是耦合。三相线路中A相电流不仅流过A相自阻抗产生压降还会在B相、C相导线上感应出互阻抗压降。换句话说B相负荷变化会直接影响A相电压。如果忽略互阻抗算出来的三相电压就等于各自独立这完全违背物理实际。尤其电缆线路或者紧密排列的低压线路互阻抗和自阻抗的数量级非常接近更不能忽略。第二个麻烦是负荷怎么分配。实际配电网里单相负荷接在不同相上三相负荷分配天然不平衡。建模时每个节点要指定三相各自的有功和无功而且还得考虑星接还是角接。前推回代法里计算注入电流是S/V的共轭这个公式对单相成立对三相就是逐相独立计算但接线方式会影响零序电流通路不能想当然。第三个麻烦是中性线和地回路。IEEE33通常画成三相三线制实际低压系统常有中性线不平衡电流会走中性线回流。如果完全忽略中性线零序回路就断了算出来的中性点电压偏移是错的。简化程序可以先忽略中性线但心里得有数忽略中性线等于假设系统对称接地与真实三相四线制存在误差。1.3 前推回代法在这个场景下为什么能打配电网潮流算法主流无非牛拉法、PQ解耦法、前推回代法。IEEE33这类辐射状网络支路数等于节点数减一天然适合前推回代。原因有三点第一前推回代不需要求导、不需要形成整体雅可比矩阵每步只是沿着树结构做两次遍历实现简单、内存占用极小。第二配电网R/X比值大牛拉法容易因为初值不合适而收敛缓慢甚至发散前推回代从根节点电压平启动开始迭代配网场景下稳健得多。第三前推回代天然支持“逐相计算”回代时用的是三相基尔霍夫电流定律前推时用3x3阻抗矩阵乘三相电流向量完全不需要坐标变换。互阻抗直接写进矩阵乘法里物理含义清清楚楚。当然它也有短板对环网和PV节点处理比较吃力。这个项目专注于基础辐射状网络暂时不碰弱点。等基础版本跑通后再谈扩展这样思路不乱。2. 三相不平衡潮流计算的数学模型2.1 三相线路模型与3x3阻抗矩阵三相线路的一条支路在相域里有自己的阻抗参数。最常见的表示是一个3x3对称方阵[ Z_{abc} \begin{bmatrix} Z_{aa} Z_{ab} Z_{ac} \ Z_{ba} Z_{bb} Z_{bc} \ Z_{ca} Z_{cb} Z_{cc} \end{bmatrix} ]对角线是各相自阻抗非对角线是相间互阻抗。由于线路参数本身是对称的不考虑外部环境差异矩阵通常满足ZabZba、ZacZca、ZbcZcb。如果导线完全换位那么自阻抗都相等互阻抗也都相等矩阵退化成只有两个不同的数值。关键问题是怎么从IEEE33现有的正序阻抗扩展出这个矩阵。配电网数据一般给出正序阻抗Z1和零序阻抗Z0工程上常用下面的关系反推[ Z_{aa} \frac{Z_0 2Z_1}{3} ] [ Z_{ab} \frac{Z_0 - Z_1}{3} ]这个公式的前提是假设线路完全换位非对角元素都取相同的Zab。实际低压线路不换位更精细的做法是用Carson公式考虑大地回流效应计算自阻抗和互阻抗但那需要导线几何位置参数超出IEEE33自带数据范围。所以我建议的工程做法是假设完全换位由Z1和Z0扩展得到Zaa和ZabZbbZccZaaZacZbcZab。虽然简化但能把互阻抗的影响体现出来比全部忽略强太多了。还有一个细节IEEE33的原始阻抗单位是欧姆必须先转换成标幺值再放进矩阵否则前推回代公式会乱。标幺转换方法我放在第3节讲这里先记住一个原则Zbase和三相功率基准、线电压基准要自洽。2.2 负荷建模与接线方式的影响潮流计算里负荷模型一般分恒功率、恒阻抗、恒电流三种。前推回代法最容易实现的是恒功率模型因为它和注入电流之间是直接的共轭关系[ I_{inj, phase} \left(\frac{S_{phase}}{V_{phase}}\right)^* ]每个节点三相分别给出Pa、Qa、Pb、Qb、Pc、Qc然后逐相算出注入电流。如果某相没有负荷对应S0注入电流就是0非常利落。恒阻抗负荷稍麻烦一点阻抗值会随电压变化而改变恒电流负荷则要把电流幅值固定前推回代过程中也需要特殊处理。我的建议是第一阶段全用恒功率模型它最能体现低压配网的负荷特性也最容易和单相潮流结果对比。等基础程序稳定了再在load定义里加一个type字段支持另外两种模型扩展。接线方式的影响主要体现在角接负荷和三角形连接的电压电流关系上。IEEE33电压等级是12.66kV一般按三相三线星形接地系统处理。如果某个节点接了线间负荷那需要先把线电流折算成相电流或者把线负荷转换成等效星接负荷。很多教材直接说“三相平衡负荷可以按星接算”但三相不平衡时不能这么偷懒否则线电流和相电流的√3关系会错。2.3 相分量法 vs 对称分量法怎么选做三相不平衡潮流有两条技术路线对称分量法和相分量法。对称分量法把A、B、C三相电压电流分解成零序、正序、负序三个序网在完全换位、网络对称的前提下三个序网解耦计算量小理论成熟。但一旦出现不换位线路或者参数不对称序网之间就出现耦合对称分量法的优势立即消失。本项目明确要求“考虑三相不平衡和互阻抗”而且线路阻抗矩阵就是非对角满阵这正是相分量法的主场。相分量法不需要做任何坐标变换直接以A、B、C三相相量为变量阻抗矩阵用3x3的Zabc前推回代时矩阵乘向量每一步都看得见互阻抗的作用。缺点是计算量大约是单相的三倍对IEEE33这种小网络来说完全不是问题。选相分量法还有个隐藏好处代码可读性高。你不用在脑子里做序网变换和相序接口所有量的物理意义都是“A相电压”“B相电流”调试时出了问题直接打印三相向量看一眼就知道是哪相不对。3. 前推回代法完整迭代流程与参数计算3.1 迭代前的数据准备与标幺化程序启动前必须把三件事做扎实网络拓扑表、线路参数矩阵、节点负荷表。拓扑表用边列表存每一条边给出“父节点-子节点”并对全树从根节点做一次拓扑排序得到节点遍历顺序和父子关系表。这一步特别重要因为前推回代要求“从末端回推”和“从根前推”如果没有一个明确的顺序代码写起来就是一团乱麻。线路参数矩阵不是简单地把每条支路的R和X填到对角线上而是要构造成3x3复数矩阵。建议每一条支路存一个9元素的结构体Zaa、Zbb、Zcc、Zab、Zbc、Zac。对称线路下ZbbZaa、ZccZaa、ZabZbcZac但结构上仍然完整保存方便以后扩展不对称线路。标幺化的基准选择是最容易翻车的地方。IEEE33标称电压12.66kV是线电压三相总功率基准我选10MVA。为了统一相电压基准取线电压除以√3即大约7.31kV单相功率基准取总功率除以3。这样推导出来的阻抗基准是[ Z_{base} \frac{V_{base, phase}^2}{S_{base, phase}} \frac{(V_{LL}/\sqrt{3})^2}{S_{total}/3} \frac{V_{LL}^2}{S_{total}} ]看到没有和三相系统直接用线电压和三相功率算出来的阻抗基准完全一样。也就是说线路阻抗的标幺值和单相程序里算出来的值一致不用额外改数据。这个推导过程我建议所有读者自己验算一遍能少掉很多莫名其妙的bug。迭代初值方面根节点作为平衡节点三相电压固定为Va 1.0∠0° Vb 1.0∠-120° Vc 1.0∠120°其余节点也先都用这个对称正序电压作为平启动初值。不要自作聪明给各相设不同的电压幅值前推回代法的鲁棒性足够从对称初值收敛到不平衡解。3.2 回代过程从末端算支路电流回代过程是从末端节点往根节点方向走计算每一条支路的三相电流。核心思想是基尔霍夫电流定律的相分量形式某条支路的电流等于该支路下游所有节点的注入电流之和。算法顺序是这样的按照拓扑排序的逆序从最末端节点开始。对节点k先把所有下游支路的电流向量相加再加上节点k自身的注入电流向量就得到节点k与其父节点之间那条支路的电流。节点自身的注入电流由负荷功率和当前迭代电压决定[ I_{inj,k}^{(phase)} \left(\frac{S_{k}^{(phase)}}{V_{k}^{(phase)}}\right)^* ]这里的除法是对三个相分量分别做的不是矩阵除法。每一相是一个复数用上一轮迭代的电压值计算注入电流。要注意一个符号约定我程序里规定负荷功率为正表示从电网吸收功率所以注入电流方向是流向负荷方向从节点看是流出。所有代码统一用这个约定前后就不容易乱。回代过程中支路电流直接用向量加法累加。不要试图在这里引入阻抗矩阵阻抗是用来算电压降落的不参与电流合成。这一步就是纯粹把树结构上的电流汇聚起来逻辑很直接。如果某个节点是空载节点注入电流向量为0那它只是电流中转站。如果某个节点挂着分布式电源且按PQ类型建模注入电流就是DG的复功率恒正、方向指向网络计算时把负荷电流和DG电流矢量相加就行。3.3 前推过程从根节点算电压降落前推过程从根节点出发对每一条支路根据送端电压、支路电流和支路阻抗矩阵计算受端电压。公式看着简单但这里是互阻抗真正发挥作用的地方[ V_{j,abc} V_{i,abc} - Z_{abc,ij} \cdot I_{ij,abc} ]展开写清楚一点A相电压的更新公式是[ V_{j,a} V_{i,a} - (Z_{aa}I_{a} Z_{ab}I_{b} Z_{ac}I_{c}) ]也就是A相电压跌落不仅取决于A相电流还取决于B相电流和C相电流。这就是互阻抗耦合的直接体现。如果Zab不为0B相电流就会在A相上产生压降B相负荷重了A相电压会被“拉低”。很多第一次做三相潮流的人会忽略这一点只把Zaa和Ia相乘结果算出来的三相电压像是三条互不相干的单相线路完全错。遍历支路的时候要严格按拓扑排序的从根到末顺序。因为只有先更新了父节点电压子节点电压才能用父节点的新电压去算。如果遍历顺序乱七八糟前推结果时对时错收敛也会出问题。3.4 收敛判据与加速技巧每完成一轮回代和前推就得到一组新的节点三相电压。收敛判断可以比较相邻两轮迭代电压的最大幅值偏差或者最大相角偏差。我在项目里用的是最大电压向量差的无穷范数[ \Delta V_{max} \max_{k, phase} |V_{k,phase}^{(new)} - V_{k,phase}^{(old)}| ]阈值取1e-8标幺值。对IEEE33来说这个精度已经远高于工程需要。如果你想看潮流计算是否足够稳可以同时监控总注入功率和根节点输出功率之间的差值功率不平衡量也能反映收敛质量。平启动初值下前推回代法一般10到20轮就收敛了。遇到重负荷场景或者负荷极度不平衡的工况可能会看到电压在两三个值之间来回振荡此时给电压更新加一个阻尼系数能有效稳住[ V_{new} V_{old} \lambda (V_{calc} - V_{old}) ]λ推荐取0.5-0.8。加阻尼对最终结果没影响只是让迭代路径更平缓。还有一种情况是根节点电压给定太低比如标幺值给成0.95重负荷下末端电压很容易越限迭代也会困难。建议初值老老实实给1.0。4. 程序实现要点与核心代码框架4.1 数据结构设计节点表、支路表、负荷表写这种仿真程序数据结构的清爽程度直接决定调试效率。我采用的方案是用三个基础数据结构全部用数组或字典索引。节点表存节点编号、节点类型、三相电压实部虚部。节点类型分根节点平衡节点、普通PQ节点、可能的DG节点。负荷表可以合并进节点表也可以单独一个表每一行存节点编号、Pa、Qa、Pb、Qb、Pc、Qc。分开更清晰因为做短路或故障仿真时可以只改负荷不动线路。支路表存父节点、子节点、三相阻抗矩阵9个复数。如果用了前面所说的完全换位假设非对角都一样但建议结构上仍然留满9个槽位以后扩展不对称参数不用改代码。对整个网络做拓扑排序时我直接用了一个队列广度优先搜索从根节点开始逐层展开。因为IEEE33是标准树这个顺序是唯一的代码实现简单。排序结果存成两个数组order数组是从根到末的前推节点顺序reverse_order数组是逆序回代节点顺序。核心循环只需要for node in reverse_order和for node in order简洁明了。4.2 前推回代核心循环的代码实现下面给一个Python风格的核心循环代码直接把逻辑摊开讲import numpy as np a np.exp(2j * np.pi / 3) V_initial np.array([1.0, np.conj(a), a]) # A相0度B相-120C相120 V {n: V_initial.copy() for n in nodes} V_root V_initial # 根节点三相电压固定 for it in range(50): V_before V.copy() # 回代逆序计算每条支路的三相电流 I_branch {} for n in reversed(order): # 先累加下游支路电流 I_total np.zeros(3, dtypecomplex) for child in children[n]: I_total I_branch[(n, child)] # 再加本节点注入电流PQ恒功率负荷 S_load loads[n] # 三相复功率数组 [Sa, Sb, Sc] with np.errstate(divideignore): I_inj np.conj(S_load / V[n]) I_total I_inj if parent[n] is not None: I_branch[(parent[n], n)] I_total # 前推从根节点按顺序更新电压 for n in order[1:]: p parent[n] Z Zabc[(p, n)] # 3x3复阻抗矩阵 I I_branch[(p, n)] # 3x1支路电流 V[n] V[p] - Z I if max(np.max(np.abs(V[n] - V_before[n])) for n in nodes) 1e-8: break这段代码有几个细节要提醒。第一卷积、点积、矩阵乘法的维度必须严格对齐Z是3x3I是3x1结果才是3x1。第二直接用S/V可能会出现除零错误空载节点电压也许为0所以要加errstate保护但更推荐在负荷表里把无负荷节点电流直接设为0不进入除法。第三根节点的电压在前推循环里不要更新它是常量所以order[1:]跳过根节点。DG节点如果用PQ模型只需要把S_load里加上负的DG复功率如果用PV模型情况更复杂需要外循环修正无功本项目第一版建议先不做。4.3 边界条件与特殊节点处理边界条件主要是三类根节点、空载节点、异常负荷节点。根节点是系统参考节点。在IEEE33里节点1就是配电网入口通常接上级变电站。它的三相电压幅值恒定、相角恒定前推回代时每次都直接赋固定值。这相当于向系统提供不平衡功率的余量。潮流算完后根节点流出的三相功率就是整个网络的总需量也可以用来计算总网损。空载节点没有负荷注入电流为0。这个简单但要注意如果一条支路的下游都是空载节点那这条支路电流可能很小但不会完全为0因为支路本身充电电容在模型里没考虑。三相前推回代法默认忽略了并联导纳对IEEE33这种短距离配网影响较小可以先不管。还有一类特殊情况是三相负荷严重不平衡导致某一相电流接近0。计算时没问题但后续若要做三相线损、三相不平衡度指标必须小心电压不平衡度定义。比如用电压负序分量与正序分量比值这时三相电压需要做序变换如果直接在相域里看幅值差只能算作经验指标不够严谨。5. 调试记录与常见问题排查5.1 不收敛时先查这四件事第一件事检查单位。IEE33原始支路阻抗是欧姆负荷是kW/kvar而程序内部用的是标幺值。如果忘记除以Zbase阻抗偏大几个数量级电压一迭代就冲到负几十想收敛根本不可能。排查方法很简单看前推第一次迭代后末端电压是否在0.9-1.1之间。如果出现极大负数八成是单位没归一。第二件事检查支路方向。前推回代对树的定向非常敏感父节点必须是更靠近根节点的那端。如果边表里父子的方向反了电流累加和电压降落的方向全错迭代结果必然发散。我调试时曾经把一条边方向写反程序怎么调收敛判据都没用后来打印支路电流才发现从根节点流出的电流为负马上找到问题。第三件事检查负荷功率符号。如果负荷功率定义成负值表示发出功率而该节点又不是DG那这个节点就变成电源了。多了一个隐性电源电网潮流回路完全不对。符号约定要在输入文件里统一程序内部不要随意改变正负方向。第四件事检查收敛判据的维度。三相程序要比较三相电压不能只比较A相就认为收敛。否则B相、C相可能还在乱跳程序提前跳出。我建议用3x1向量的无穷范数并且打印每次迭代的最大差值一眼就能看出是否收敛。5.2 互阻抗矩阵的典型错误互阻抗矩阵最容易出的问题有三个。第一个是矩阵不对称。理论上一段无源线路的阻抗矩阵是对称的程序里如果填充Zab和Zba时用了不同的变量矩阵非对称算出来的电压会带奇怪的偏移。建议每次构建完矩阵后做一个对称校验断言ZabZba等。第二个是用正序阻抗直接当自阻抗把互阻抗设成0。这个错误特别隐蔽因为结果看起来“像那么回事”三相电压各自独立却不满足相间耦合的物理规律。最典型的表现是单相接地故障时非故障相电压没有升高或者三相不平衡负荷下中性点电压偏移完全不对。第三个是零序阻抗取值不合适。前面说过Zaa和Zab由Z1和Z0共同决定零序阻抗如果瞎填比如把Z0设成和Z1一样大那么Zab就变成0互阻抗效应又没了。工程上一般取Z0是Z1的三倍左右具体根据线路类型查手册。如果只是想做算法验证取Z03Z1是合理的默认值。5.3 三相结果不对称的排查思路如果在负荷也为对称的情况下算出来的三相电压出现不对称那一定是模型参数出了问题因为网络拓扑和参数本身是对称的结果应该完全对称。排查思路是逐层缩小范围先看根节点电压初值是否对称再检查所有支路Zabc矩阵是否三条对角相等、所有互阻抗相等。如果某个支路矩阵填错只会影响它下游节点的不对称性可以通过打印各支路电压降来判断哪条支路有问题。如果负荷本来就不对称那三相电压不对称是正常的。此时要重点检查不对称程度是否符合预期。比如A相负荷调大50%A相电压应该明显偏低同时由于互阻抗耦合B相、C相电压也会有轻微下降。如果B相电压完全不变大概率互阻抗被设成0了。5.4 与对称潮流结果的互相验证调试三相程序最好的参照物就是经典单相潮流结果。先把所有负荷设为三相完全对称Zabc矩阵设成与对称阻抗等价然后跑一遍程序。此时三相电压应该完全一致且等于单相潮流结果。我在实际调试时做了两组对照第一组用对称负荷对称网络参数结果与Matpower的单相潮流结果逐点对比最大误差小于1e-8第二组加入互阻抗与手动推导的一条双支路小网络对比验证互阻抗耦合方向正确。两组对照都过了我才放心在IEEE33全网上跑不平衡工况。如果你不想用其他软件做对照可以自己手工算一条简单链式网络。比如从根节点出发两条支路三个节点给定一个不平衡负荷用公式逐轮推几代和程序输出对比。这个方法虽然笨但能最快定位逻辑错误。6. 项目扩展与实测心得6.1 从三相平衡到不平衡的改造经验我最初拿到这个程序需求时第一反应是拿现成的单相前推回代改。后来发现不是那么简单单相代码里所有变量都是标量改成三相需要把标量换成向量把乘法换成矩阵乘法。这个改动看起来机械但耦合逻辑容易出错。我的改造顺序是先保留单相程序新建一个三相同构版本把电压、电流、功率全部改成3x1复数向量阻抗改成3x3矩阵先跑对称负荷和对称参数保证结果和单相版本一致再逐步打开互阻抗和不平衡负荷开关。这个路线非常稳强烈推荐。还有一点经验不要一开始就追求性能。Python里如果按节点循环、每层做矩阵乘法IEEE33根本不会有性能压力几十轮迭代也就是几毫秒。等把逻辑调通再考虑用矩阵化批量操作或搬到C、C#上。6.2 前推回代法的适用范围与边界经过这次实践我对前推回代法的边界也有更清晰的认识。它对辐射状网络几乎是无敌的存在但在弱环网上就会遇到问题。网孔会让回代过程无法简单从末端累加因为环路电流需要额外迭代或补偿。如果后面想处理有联络开关闭合的IEEE33弱环网可以在端口处加一个“断点补偿”方法就是先把环网在某个节点断开再调整断点注入功率使其满足两端电压相等约束。它对PV节点的支持也很有限。光伏或者储能如果以恒功率因数并网按PQ处理没问题如果要求控制电压需要无功功率迭代前推回代法要做外环修正复杂度和稳定性都会下降。建议项目定位在PQ型负荷且节点类型全为PQ的场景已经能覆盖大多数配电网规划分析需求。另外三相前推回代法对高R/X比线路和重馈线的收敛性依然很好这也是相比牛顿法的一个优势。实测在IEEE33末端加一倍的负荷依然能收敛只是部分节点电压会降到0.85及以下这时候要考虑电压越限了。6.3 后续可以接着做的事基础的三相不平衡潮流跑通了后面有价值的方向有很多。最简单的扩展是算三相线损和网损把所有支路的I^2*Z损耗分相累加就能看到不平衡负荷对损耗的影响。这个数据对配电网三相负荷自动平衡、分布式储能选址都很有用。再进一步可以加分布式电源。把DG节点设置成PQ型负负荷就能评估不同接入点对三相电压不平衡度的影响。如果DG出力波动还能结合随机场景生成做概率潮流。前推回代法计算速度快很适合批量场景蒙特卡洛模拟。更工程化的方向是做低压台区三相不平衡治理仿真。拿IEEE33改参数拟合实际台区数据然后模拟换相开关动作或无功补偿装置投切验证治理效果。这个方向比较贴近生产也容易出成果。我在实际使用中还有一个体会前推回代法虽然简单但其物理可解释性特别强。迭代过程本身就是电流在树状网络里流动、电压从根到末逐级降落的过程任何一步算出来电压不对都能立刻追溯到是哪条支路、哪相电流出了问题。这种透明性是牛拉法不具备的。如果你刚开始接触配电网潮流计算从这个算法入手是最合适的因为你能真正看到网络在“算”什么而不是盯着矩阵迭代心里发虚。后面就算去学更复杂的算法这段经验也会一直有用。

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

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

免费获取报价 →
↑