虚拟同步发电机VSG离网并网仿真建模与双闭环控制设计

发布时间:2026/10/10 18:45:10
虚拟同步发电机VSG离网并网仿真建模与双闭环控制设计 说实话刚看到“虚拟同步发电机VSG离网并网仿真建模设计、双闭环控制simulink仿真”这个题目我第一反应是这又是一个从论文复现到工程落地都绕不开的经典模型。VSG这几年在微电网、分布式能源、储能变流器方向火得一塌糊涂我自己在Simulink里面也搭过不下三版从最早照着文献手搓功率环到后来把离网并网切换、预同步、双闭环全部揉进一个模型里走了不少弯路。这篇就把我踩过的坑、试过好用的做法、以及参数怎么一步一步定下来全部摊开讲清楚给正在做相关课题或者毕业设计的朋友一个能直接照着搭的参考。1. 项目整体设计思路与方案选型1.1 VSG 到底在模拟什么很多人一上来就扎进Simulink模块堆里结果搭出来一个“形似而神不似”的VSG波形不对也不知道问题出在哪。我建议先花半小时把控制思想捋顺后面建模完全是水到渠成的事。VSG的核心思想说穿了就是用逆变器的控制算法把同步发电机的“外特性”搬到电力电子变换器上。传统逆变器做并网时最常见的是PQ控制也就是给定有功无功参考值电流环老老实实把功率输出去电网电压和频率由大电网撑着逆变器只是个“跟随者”。一旦离网没有大电网支撑逆变器必须自己定电压和频率这时候再用PQ控制就崩了因为没有频率和电压基准功率控制根本没法闭环。VSG的厉害之处在于它把同步发电机的转子运动方程、一次调频特性、无功调压特性用一个下垂关系和二阶运动方程嵌进了控制器里。逆变器对外表现出来的行为就像一台有“转动惯量”的同步发电机系统频率波动时它不会瞬间跟着变而是有个惯性过渡过程负荷突变时它能通过虚拟调速器自动调整有功出力电网电压变化时它能靠着无功-电压下垂实现调压。这就不需要孤岛和并网两套完全不同的控制架构VSG天然具备电压源特性离网能干、并网也能干。回到这个仿真项目离网和并网都要仿真就意味着你要让同一个VSG控制模型能够根据外部开关状态切换到不同的工作逻辑。而双闭环控制则是在VSG生成的电压幅值、相位指令基础上再加一层电压外环和电流内环让输出波形质量和动态响应都更加可控。1.2 离网与并网两套运行逻辑的切换离网模式和并网模式的本质区别在于VSG面对的对象不同。离网模式下VSG带的是一个或者多个本地负载没有外部大电网。这时候VSG相当于一个独立电压源必须自己建立电压和频率。控制目标非常明确输出电压幅值稳定在额定值附近频率稳定在50Hz或者指定值附近并且能够跟随负载变化自动调整有功无功输出。本质上是一个V/f控制架但用VSG后频率变化是平滑的有惯性的而不是生硬地跳变。并网模式下VSG连接到无穷大电网或者一个已经建立好的电网母线上。大电网的电压和频率是基本固定的VSG不能再强行设置频率它要做的是把自身的输出电压相位、幅值与大电网“对齐”然后通过频率下垂和电压下垂自动调节输出功率。此时VSG更像一个可控的功率源给定有功参考Pref系统会通过功角关系自动找到工作点。这两个状态用同一个模型来仿真最麻烦的就是“切换时刻”。我见过很多初学朋友的做法是直接放一个Breaker闭合就并网、断开就离网结果一闭合电流炸了一断开电压疯了。原因很简单并网瞬间如果VSG输出电压的相位、幅值和电网侧不一致会出现巨大的冲击电流离网瞬间如果VSG带载状态没来得及调整电压会瞬间跌落或抬升。所以建模时一定要加“预同步单元”也就是在并网之前通过PLL实时检测电网电压的幅值、频率、相位再把VSG电压参考慢慢“拉”到与电网一致等偏差足够小以后断路器才能合闸。这个细节是离网并网仿真能不能跑通的关键后面实操章节我会专门讲模型里是怎么实现的。1.3 为什么非要用双闭环控制VSG核心算法输出的东西本质上只是两个量电压参考的幅值E和相位θ合起来就是三相参考电压。如果直接把这三个参考电压做SPWM调制也能出波形但动态性能会很差带非线性负载或者负载突变时电压畸变明显而且没有电流限制能力。加上双闭环之后控制架构就变成了三层第一层是VSG算法层功率环输出参考电压矢量。第二层是电压外环把实际输出电压与参考电压做差经过PI控制器生成电流指令。第三层是电流内环把实际电感电流与电流指令做差经过另一组PI控制器生成调制波。电压外环的作用是保证输出电压精确跟踪参考值提高带载能力和抗扰动性能。电流内环的作用更关键一是提高动态响应速度二是天然的限流保护能力。当你把电流内环PI输出限幅做好的时候哪怕负载短路电流也会被限制在安全值以内这在硬件实验里是救命的设置。不少初学者觉得“我就做个仿真加不加双闭环无所谓VSG单环SPWM不也能跑嘛”。能跑是能跑但你做到并网切换的时候就知道了单环控制下并网瞬间的冲击电流很大离网切换瞬间电压恢复得很慢波形拉出来一条刺这时候你就会想念双闭环的好。电压电流双闭环让整个系统从VSG指令到输出电压之间多了一层强鲁棒性的跟踪控制任何外部扰动过来都被PI控制器及时压下去动态过程明显变短。2. 核心控制环节解析与关键参数设计2.1 虚拟惯量和阻尼系数怎么取才不飘VSG算法层的核心就是同步发电机的二阶转子运动方程用公式表示是这样[ J \frac{d\omega}{dt} P_{ref}/\omega - P_e - D(\omega - \omega_g) ]这个式子学控制的人应该都见过。J是虚拟转动惯量D是虚拟阻尼系数Pref是给定有功Pe是实测输出有功ωg是电网角频率离网时就是额定角频率。式子的物理含义很直白当输出功率不等于给定功率时转速就会变化转速偏离额定转速时阻尼项会拉它回来。整个行为跟一台真实同步发电机的转子甩来甩去是一个道理。那J和D怎么取这也是初学最容易卡壳的地方。我的经验是先别抠公式先理解两个参数的作用方向。J决定的是惯性大小J越大频率变化越平缓但动态响应越慢而且超调可能更明显整个系统变得“迟钝”J越小响应越快但抗扰动能力差负荷一动频率就抖甚至可能失稳。D决定的是阻尼强弱D越大频率稳态偏差越大但是衰减振荡快稳定性好D太小系统容易持续振荡甚至发散。实际操作时我建议先定阻尼系数D。怎么定通过一次调频下垂关系来反推。额定频率50Hz允许频率偏差0.5Hz额定功率10kW那么有功-频率下垂系数就是[ K_p \frac{\Delta f}{\Delta P} \frac{0.5}{10000} 5 \times 10^{-5} Hz/W ]换算成角频率形式阻尼系数D大概在有功-频率下垂关系中承担主要角色一般取[ D \frac{\Delta P}{\Delta \omega} ]比如ΔP50kW对应Δω6.28×0.5≈3.14rad/s实际看你的容量和允许频差D就在1.59×10^4数量级。具体数字得跟着系统额定功率走没有通用值。这也就是为什么很多论文里写着J1.2D50你拿去用在自己的模型里波形可能完全不是那么回事——因为系统额定容量不一样。我自己的调参习惯是这样的先给定一个参考转动惯量J0用经验公式做初值[ J \frac{P_n}{2\pi f_n \cdot \omega_n} \times \eta ]其中η在2~6之间取然后跑一个“负载突变”仿真观察频率波形。如果频率掉得太快、振荡剧烈增大J如果恢复得太慢减小J。一个原则调J看的是动态过程的“平滑度”调D看的是“收敛速度”和稳态偏差。两者搭配着调通常三轮到五轮就能拉出一个很漂亮的频率响应曲线。2.2 无功功率环和电压下垂有功环解决的是频率问题无功环解决的就是电压问题。VSG的无功控制链路同样脱胎于同步发电机的励磁系统采用无功-电压下垂[ E E_n n_q (Q_{ref} - Q_e) ]En是额定电压幅值nq是无功下垂系数Qref是给定无功Qe是实测输出无功。这个式子的意思是当VSG输出的无功低于参考值时就抬高一点输出电压输出无功高于参考值时就压低一点输出电压。这样多个VSG并联或者离网带载时大家能自动按容量分配无功。无功下垂系数nq的取法和有功类似。例如额定相电压311V允许电压偏差10V额定无功5kVar那么[ n_q \frac{10}{5000} 2 \times 10^{-3} V/Var ]你把这个系数设置好VSG的调压行为就自动有了。需要注意有功环计算出来的ω要积分得到相位θ无功环计算出来的E是电压幅值两者合起来生成三相参考电压。这部分在Simulink里面就是一个简单的加乘模块组不需要复杂的S函数用基本模块完全能搭。2.3 电压电流双闭环的PI参数整定VSG算法层给出来的是电压参考真正要出SPWM波还得靠双闭环。电压外环生成电流指令电流内环生成调制波这个链路的PI参数直接影响波形质量和动态响应。我推荐用“由内到外”的整定顺序。先整定电流内环。电流环的对象是LCL或者L滤波器的电感其传递函数可以近似为一阶惯性环节。对于电感L3mH的系统电流环PI参数可以先根据“零极点对消”的思路估算电流环带宽设计为开关频率的十分之一到五分之一。比如开关频率10kHz带宽设计在1~2kHz左右。对应PI参数可以用以下方式估算[ K_{pi} \frac{L}{\tau}, \quad K_{ii} \frac{R}{\tau} ]其中τ是期望的电流环时间常数与带宽相关τ约等于1/ωbw。R是电感寄生电阻和线路电阻之和。以L3mH、R0.1Ω、期望电流环带宽2kHz为例ωbw≈12566rad/sτ≈7.96e-5那么Kpi≈37.7Kii≈1256。这个估算值可以作为初值然后在仿真里微调。电压外环的带宽要比内环低一个数量级左右一般取电流环带宽的1/10~1/5否则内外环频率接近容易互相干扰。电压环整定同样可以用类似方法但电容值C会更直接地出现在参数里。我的经验是电压环Kp先给一个较小的值然后观察空载启动和突加负载的动态波形Kp过大会导致启动瞬间电压超调严重甚至震荡发散Kp太小则输出电压恢复速度慢带载压降明显。很多朋友整定PI参数时喜欢一上来就放个大Kp结果波形输出乱七八糟。我的建议永远是先给很小的KpKi给一个中值跑出稳定波形后慢慢增大Kp直到出现振荡前停下然后增大Ki消除稳态误差。这个过程虽然枯燥但比盲目尝试快得多。3. Simulink 建模实操与关键环节实现3.1 顶层模型架构与子系统划分一个完整的VSG离网并网仿真模型架构上应该分得清清楚楚。我在搭建时采用了四级结构从上到下分别是主电路层、开关控制层、VSG算法层、双闭环层。主电路层就是三相逆变桥Universal Bridge、直流电压源、滤波器L滤波或者LCL滤波、三相断路器和电网模型。离网时断路器断开逆变器直接带本地负载并网时断路器闭合逆变器接到电网。直流侧我一般用一个恒定直流源代替毕竟这个项目的重点在控制策略不是直流侧动态。VSG算法层接收的是测量到的三相电压、电流计算瞬时功率代入转子运动方程和无功下垂方程输出参考电压幅值E和相位θ。双闭环层接收E和θ生成三相参考电压ua_ref、ub_ref、uc_ref然后与实际输出电压比较经过电压环PI得到电流指令再与电感电流比较经过电流环PI得到调制波最后通过PWM发生器生成IGBT的触发脉冲。这样的分层结构最大的好处是调试方便想单独看 VSG 算法输出对不对可以把双闭环旁路掉直接看E和θ是否稳定想调电流环响应可以直接给电流指令阶跃不需要整个模型跟着跑一遍。模块化建模这点在Simulink里尤为重要不然出了问题都不知道该查哪一条线。3.2 主电路与开关模式切换的实现细节主电路搭建我用的都是SimPowerSystems库里的元件。直流源用DC Voltage Source三相逆变桥用Universal BridgeIGBT默认参数可以用但要注意把“Snubber resistance”从默认值改为较大或者直接使用理想开关否则仿真速度会非常慢而且容易出现非真实损耗。滤波器参数直接影响控制效果。我常用的经验值L在2mH~5mH之间电阻0.05Ω~0.2Ω电容如果是LCL结构在10μF~50μF。开关频率10kHz载波用三角波。滤波器的截止频率要远低于开关频率又要远高于工频50Hz一般取在1kHz左右比较合适。电网模型我用了Three-Phase Programmable Voltage Source优点是可以在仿真中途做电压跌落实验——比如在2.5秒时把电网电压跌到80%观察VSG的动态响应。断路器和开关用的都是Breaker模块注意设置Breaker的“Switching times”为时间序列比如[2.0]表示在2秒时闭合。离网到并网切换我给的是一个时序初始状态断路器断开VSG空载或者带本地负载运行t1.5s时预同步启动t2.0s时断路器闭合进入并网状态t3.0s时可以加一个并网功率阶跃观察功率动态。这里有一个非常关键的技巧断路器闭合的瞬间如果电网和VSG之间存在较大的相位差冲击电流可以直接让你的仿真崩掉或者出现上千安培的电流尖峰。解决办法就是在预同步完成前用程序判断相位差、幅值差、频率差都小于设定阈值之后才允许闭合而不是用固定时间硬切。3.3 预同步控制与模式切换的模型实现预同步是这个模型里最体现工程水平的部分。在并网之前要让VSG的输出电压跟随电网电压需要实时检测电网电压的幅值、频率、相位。我用的是PLL模块Three-Phase PLL输出电网频率fgrid和电网相位θgrid。然后计算VSG自身的相位θvsg与电网相位θgrid之间的差值Δθ把这个偏差经过一个PI控制器叠加到VSG的有功环频率参考值上让VSG的频率稍微偏移一点相位就会慢慢追上去。这部分在Simulink里就是一个简单的加法器和PI控制器但作用非常关键。相位对齐之后还要检查幅值是否一致。VSG的输出电压幅值E_vsg和电网电压幅值E_grid做差经过了PI控制器后叠加到无功环的电压参考上让VSG的电压缓慢逼近电网电压。当频率偏差小于0.05Hz、相位偏差小于0.01rad、幅值偏差小于1V时就可以发信号合闸了。这个“预同步完成判断”在模型里可以用一个Enable子系统或者Stateflow实现。如果不想用复杂的逻辑也可以简化为用了两个PI控制器后把相位差信号接入一个Compare To Integer模块低于阈值输出1用这个1去控制断路器的合闸信号。实测下来这种简化逻辑完全够用还能避免状态机调试的麻烦。3.4 关键参数初始化脚本参考整个模型的参数我习惯写在一个.m脚本里方便反复修改和批量仿真。下面这个是我做10kW VSG仿真时的初始化代码直接贴在博文里供参考%% 额定参数 Pn 10e3; % 额定有功 10kW Qn 5e3; % 额定无功 5kVar Vn_phase 311; % 相电压幅值 311V, 即有效值220V fn 50; % 额定频率 50Hz wn 2*pi*fn; % 额定角频率 %% VSG 参数 J 0.5; % 虚拟转动惯量 D 20; % 虚拟阻尼系数 Kp_f 5e-5; % 有功-频率下垂 (Hz/W) Kq_v 2e-3; % 无功-电压下垂 (V/Var) Pref 0; % 有功参考 初始0 Qref 0; % 无功参考 初始0 %% 双闭环 PI 参数 Kp_vol 2.5; % 电压外环 P Ki_vol 120; % 电压外环 I Kp_cur 15; % 电流内环 P Ki_cur 800; % 电流内环 I %% 滤波器参数 L_filter 3e-3; % 滤波电感 3mH R_filter 0.1; % 等效电阻 0.1Ω C_filter 30e-6; % 滤波电容 30μF %% 直流侧电压 Vdc 700; % 直流母线电压 700V这些参数不是一上来就能定死的我的习惯是先用额定值算出一个范围然后针对具体的模型微调。比如J我初始给的0.5如果负载突变时频率过冲太厉害就慢慢往下调如果频率恢复太慢就直接往上加直到波形“手感”满意为止。调试这种事做仿真的人应该都懂——没有绝对正确的参数只有最适合当前系统的参数。4. 常见问题与排查技巧实录4.1 bus selector 没有可选信号到底怎么破这个话题在热词里都出现了说明问的人特别多。Simulink里的Bus Selector下拉菜单里提示“没有可选信号”通常有三个原因。第一个原因是总线信号还没连接到Bus Selector。很多人从某个模块输出端把信号线拖出来然后直接放Bus Selector发现下拉列表是空的——因为Simulink需要你先用Bus Creator把多个信号打包成总线或者你的源模块输出本身就不是总线类型。第二个原因是仿真没有初始化。Bus Selector的可选信号列表往往要等模型编译之后才能更新你第一次放上去看不到信号是按了F5运行一次或者按CtrlD更新模型之后再点下拉框就能看到了。这个最坑很多人折腾半天以为是连接问题其实就是没让模型跑一次。第三个原因是信号线中间断开了或者信号被某个Nonvirtual Bus转换成Virtual Bus了类型信息丢失。排查方法是双击信号线看信号属性确保信号的传输类型是“Bus”而不是“double”或者“auto”。4.2 代数环和数值振荡是仿真隐形的坑你在Simulink里连控制回路时有没有遇到过模型运行巨慢、或者提示“Algebraic loop”的情况代数环产生的原因是信号环路里没有记忆元件比如你把输出电压直接反馈到调制波而调制波又直接决定输出电压闭环种没有任何延迟来打破这种瞬时依赖关系Simulink每个步长都要迭代解方程组轻则速度慢重则波形出现高频振荡。解决代数环最有效的办法是在反馈回路里加一个Memory模块或者利用离散控制器自带的采样延迟打破代数环。我自己的做法是在电流环反馈路径上加一个“Unit Delay”延迟一个采样周期这样既不会显著影响控制精度开关周期的延迟完全在可接受范围内又彻底消除了代数环。还有人喜欢用Rate Transition模块同样也能打破代数环还能顺便处理连续/离散混合系统。4.3 并网瞬间电流冲击大甚至仿真直接飞掉这是离网并网仿真里最常见的问题我可以非常确定地说如果你并网瞬间电流冲击很大99%的情况是预同步没做好就合闸了。排查方法就是同时画出PLL输出的电网相角和VSG内部积分器输出的相角两个波形放在同一个坐标系里在断路器闭合时刻之前如果偏差大于0.01rad合闸必炸。解决办法有两种一种是把预同步PI调得更激进让相位在0.5秒内快速对齐另一种更省事把断路器闭合时间往后挪给预同步留出足够时间。还有一个容易被忽略的点是断路器闭合前VSG带本地负载和空载的相位略有不同。空载时输出电压相位等于控制角度带载后因为滤波器和线路电阻有压降输出相位会滞后。所以预同步的反馈信号要从VSG的滤波电容输出端取从PCC点取而不要从逆变桥桥臂输出端取否则反馈到的相位和你实际并网点之间存在固定的误差角。4.4 离网切换瞬间电压跌落怎么处理从并网切换到离网时刻断路器突然断开如果此时VSG还在以并网工况输出功率负载突然甩开VSG输出电压会有一个明显的跃升反过来如果离网时挂着的本地负载比较大VSG的输出电压会在断开瞬间明显跌落。核心原因是VSG的无功环响应速度不够快瞬时功率变化没有立刻转化成电压调整量。我的处理方法是断路器断开之前先将Power Reference调整到本地负载对应的功率水平让VSG在并网状态下已经把功率输出到“接下来离网要带的负荷”附近。这样断开之后VSG不需要做大幅度的功率转移电压波动就会小很多。这个时序可以通过延时继电器或者逻辑模块配合实现。实测下来一个简单的前馈逻辑把断路器状态信号延迟0.1秒以后取反作为功率参考切换信号让VSG在这0.1秒内把功率调整到位离网瞬间的电压波动能压掉大半。4.5 PLL锁不住、波形谐波大、仿真速度慢等杂症PLL在电网电压畸变时锁不住相位也是高频问题。通常是因为默认PLL参数是按理想电网设计的电网电压谐波稍大一点效果就一塌糊涂。改进措施就是降低PLL带宽用二阶低通滤波加在PLL的输入之前或者直接用带低通特性的SRF-PLL结构。电网畸变不严重的话降低PI参数就够用。仿真速度慢的话检查三点一是用定步长还是变步长离线和并网切换过程推荐用变步长ode23tb或者ode15s容许误差设为1e-4以上二是Universal Bridge的Snubber电阻是否过大过大容易引入高频振荡导致步长自动缩得很小三是功率模块是不是用示波器和Scope存储了太多的数据Scope尽量限制记录长度。波形谐波大且畸变先别急去调控制器先看PWM调制深度和滤波器设计。调制深度太低会造成电压利用率下降谐波比例上升。一般来说直流母线电压700V输出相电压幅值311V调制深度在0.7~0.9之间比较合适。滤波器截止频率取1000Hz左右10kHz开关频率下的高频纹波能被压到很小。5. 仿真结果分析与调试经验补充5.1 离网启动和负载突变的波形观察方法模型正常运行后先做离网空载启动观察输出电压波形是不是平滑建压有没有超调或者振荡。我常用的操作是画三个波形三相输出电压、VSG频率瞬时值、有功功率输出。空载启动时频率波形会有一个轻微的上冲然后回落这是虚拟惯量在起作用。如果上冲超过0.2Hz就说明J偏小需要增大。如果启动过程过于漫长超过1秒还没稳定说明J太大或者阻尼太小。这个阶段调好了再去做负载突变实验。负载突加的观察重点有两个一是电压跌落幅度这反映电压环的抗扰动能力二是频率跌落的幅度和恢复速度这反映有功环的惯性和阻尼配合。我习惯在1秒时突加50%额定负载观察频率跌落不能超过0.5Hz恢复时间控制在0.5秒左右。如果不达标就通过调整虚拟惯量和双闭环PI来优化这就是整个模型调试最核心的闭环。5.2 并网模式下的功率跟踪波形分析并网成功后给一个功率阶跃指令比如从0kW突增到5kW观察有功功率和无功功率的实际响应。有功功率跟踪主要看两个指标一是稳态输出是否等于指令值误差应该小于5%二是动态过程是否振荡功角第一次摆动幅度不能超过最终稳态值的50%。如果功率出现发散振荡多半是阻尼D太小或者虚拟惯量J太大导致系统频带过窄。无功功率跟踪比有功更容易出问题因为无功环的带宽通常设计得比有功环窄。如果无功响应太慢可以适当增大无功环PI参数但要注意不要和电压环打架。最直接的办法是给无功一个阶跃看电压幅值的变化如果电压波动超过3%就要调小无功下垂系数或者加快无功环响应。5.3 全工况联合仿真的时序设计建议完整跑一遍整个时序会花不少仿真时间我建议先跑快速验证模式把开关频率降到5kHz步长放宽把逻辑跑通之后再把开关频率调回10kHz做精验证。仿真时长可以设为4秒时序设计如下0~1秒离网空载稳定1秒时突加本地负载1.5秒启动预同步2秒断路器闭合进入并网2.5秒有功功率指令阶跃3秒电网电压跌落10%3.5秒切除电压跌落4秒结束。每个事件间隔都留了0.5秒足够让系统恢复到稳态也方便观察上个事件产生的动态过程有没有被下个事件掩盖。这样完整跑下来大概需要几分钟到十几分钟取决于模型复杂度和步长设置但全程看完基本上能把VSG的惯量响应、调频调压行为、并网切换能力、故障穿越能力全部验证一遍一个模型顶好几篇论文的工作量。最后再分享一个我觉得很实用的习惯做这种仿真一定要保留足够的记录点和标签。我一般会在关键信号线上加To Workspace模块把波形数据存下来然后用一个统一的plot脚本把所有关键波形画在同一张图上这样对比不同参数下的响应特别直观也能省下大量反复查看波形的时间。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询