1. 为什么一上手就要先分清离网和并网的脾气
很多人接触三相逆变器时,第一件事就想把控制框图堆上去,其实这个方向容易踩坑。离网逆变器的本质是一台“电压源”,它的任务是自己在没有电网支撑的前提下,把直流母线电压变成一组幅值、频率、相位都稳定可控的三相交流电压。并网逆变器则是“电流源”,它要跟随电网电压,主要控制输出电流。两个物种的脾气完全不同:并网时你身后有电网这个“无限大容量”在撑腰,负载突变也好、谐波也好,电网都会帮你分担一部分;离网时你身后什么都没有,三相电压直接顶在负载上,负载什么德行,逆变器就得承受什么德行。
我手里这套项目的主角,是一台额定功率10 kW的三相离网逆变器样机,直流母线540 V,输出三相线电压380 V / 相电压220 V,工频50 Hz,开关频率10 kHz。负载类型从纯阻性、感性电机类,到整流性电容滤波负载都会遇到。整套项目从最早的单电压环起步,一路改到电压电流双环,再叠加重复控制,中间踩了无数个坑。这篇手记就是把“为什么这么改、改成什么样、实测结果如何”完整记录下来。
适合看这篇内容的人,我大致分三类:第一类是刚接触三相离网逆变器、对控制结构还没有整体感觉的入门者;第二类是做并网逆变器想转过来做离网、容易被“电压源”和“电流源”搞混的工程师;第三类是自己搭了双环控制但发现非线性负载下波形质量上不去、正在寻找补偿思路的人。下面所有参数都是基于这套样机的实际调试数据,但控制思路完全通用。
1.1 离网场景的负载特性:逆变器是“电压源”而非“电流源”
先强调一个容易被忽视的前提:离网逆变器必须把输出电压钉死在一个正弦波上,电流是负载决定的“结果”,不是控制目标。这个定位决定了整个控制架构的选型。
我给这套样机规划了一组基础指标:空载到满载的电压波动不超过±5%;阻性满载下输出电压THD小于3%;整流性非线性负载下THD尽量压到5%以内;动态响应上,负载从空载切换到满载时,电压跌落不超过10%,恢复时间小于两个工频周期。这些指标单靠电压环很难同时满足,所以必须拆成内外环,再引入重复控制来收拾周期性的谐波。
1.2 一套三相系统的总体框架(样机参数)
整机框架分四块:功率主回路、采样调理、数字控制核心、驱动与保护。
功率主回路用的是三相全桥拓扑,IGBT模块,直流母线540 V,输出经三相LC滤波器后直接接负载。LC参数是本次项目的关键基础:滤波电感 L = 0.6 mH,滤波电容 C = 30 μF,无源阻尼电阻与电感并联,阻尼功率约几十瓦。数字控制核心用了一片主流DSP,ADC采样频率和PWM载波频率都是10 kHz,控制周期100 μs。输出采样放在LC电容端,也就是直接采负载侧线电压/相电压,这样电压环反馈的是真正加在负载上的电压,而不是桥臂中点电压。
这里特别说明一下为什么要用LC而不是LCL。LCL滤波器在并网场景很好用,因为它对高频开关谐波衰减更厉害,但它本身是三阶系统,有谐振峰,需要更复杂的阻尼策略。离网逆变器带的是直接负载,滤波器截止频率不能太高,也不能太低:太高压不住开关纹波,太低会让电压环带宽严重受限。LC是二阶系统,参数直观,阻尼设计也简单,对离网这种“强电压源”场景更合适。
2. 主回路和滤波参数:先把“硬件底色”打好
很多人上来就调控制参数,这是本末倒置。控制算法再牛,也补不了滤波器和主回路设计上的先天缺陷。LC参数选多少,直接决定了电压环能跑多快、谐波抑制能做到什么程度。这台样机的LC参数不是拍脑袋定的,是从“开关纹波衰减”和“电压环带宽需求”两头夹出来的。
2.1 三相全桥加LC滤波器选型的内在逻辑
LC滤波器的截止频率 f_c = 1 / (2π√(LC)),代入 L = 0.6 mH、C = 30 μF,算出来约1187 Hz。这个频率比10 kHz开关频率低将近一个十倍频程,对开关纹波的衰减大约有40 dB,足够了。同时它比输出工频50 Hz高约20倍,基波几乎无衰减地通过。也就是说,载波附近的谐波被滤掉,而50 Hz的基波不会因为过大的感抗和容抗而产生明显的相移和幅值跌落。
电感取0.6 mH还有一层考虑是电流纹波。IGBT开关频率10 kHz,直流母线540 V,三相桥臂输出电压在一个开关周期内的伏秒积决定电感电流纹波。按经验公式算,电感上的峰峰值电流纹波大约控制在额定电流的20%以内。额定电流10 kW、线电压380 V时,相电流有效值约15.2 A,峰值约21.5 A,20%就是4 A左右。0.6 mH在这个母线电压和开关频率下正好能满足这个约束。
电容取值30 μF,主要是从无功电流占比来考虑的。在50 Hz下,30 μF电容的容抗是 1/(2π×50×30e-6) ≈ 106 Ω,对应线电压380 V时每相电容电流约2 A,相对于15 A的负载电流来说只占13%。这个比例很关键:电容太大了,空载时逆变器要额外承担很大的容性无功电流,会让逆变器发热;电容太小,LC截止频率就往上跑,开关纹波压不住。30 μF是这套系统里比较均衡的选择。
2.2 离网工况下电感电容参数的估算过程
滤波参数要跟着负载特性走,这是离网和并网最大的区别。并网逆变器的滤波器主要配合电网阻抗,而离网逆变器要考虑的是“负载能让电压环稳住多少”。
我做参数估算时是反着算的。先定电压环带宽目标:我希望电压环在1 kHz以内有一定的增益,但又不能超过LC谐振频率太多,否则容易和滤波器谐振峰打架。LC谐振频率1187 Hz,电压外环带宽取200~300 Hz比较安全,电流内环带宽取1~2 kHz。这个频率分配和电流环、电压环的时间尺度关系是一致的:内环比外环快5~10倍,内外环才不会互相干扰。
电感电流连续也是必须保证的。轻载时电感电流可能进入断续模式,会导致控制对象模型改变、环路增益突变,这是三相离网逆变器轻载波形畸变的重要原因之一。我在这台样机上测试空载到10%负载时,电流环增益波动明显,后来通过增加一个很小的固定死负载,让系统始终工作在连续模式,问题解决。这也是工程上很常见的取舍:为了控制一致性,牺牲一点点空载损耗。
3. 双环控制:电压外环与电流内环的分工协作
双环控制的本质,是让两个控制环各干各最擅长的事。电流内环的任务是快速跟踪电流指令、压制电感电流的扰动,它直接输出PWM占空比,带宽高、响应快。电压外环的任务是稳住输出电压,它输出的是电流指令——注意这个逻辑关系:电压误差不是直接变成占空比,而是先变成“期望的电感电流”,再由电流环去实现这个电流。相当于电压环是领导,电流环是执行者,领导定目标,执行者干细活。
3.1 为什么电流内环要跑得比电压环更快
电流环控制对象是滤波电感 L = 0.6 mH,在10 kHz采样频率下,这个对象的延时主要包括:采样计算延时一拍(100 μs)和PWM更新延时约半拍(50 μs)。用PI控制器时,电流环穿越频率我整定到约1.5 kHz,相位裕度约50度。为什么电流环要这么快?因为在LC滤波器的框架里,电感电流就是“可控的输入”,负载变化时电感电流能不能跟上指令,直接决定电压环看到的扰动有多大。电流环越快,相当于电源内阻越小,输出电压被负载拉偏的程度就越轻。
电流环PI参数的实际整定值,比例系数取 Kp_i = 0.03,积分系数 Ki_i = 15(离散化后按周期累加)。这里补充一个容易弄混的概念:电流环PI输出的不是占空比,而是调制波电压指令。因为数字控制里我们用的是SVPWM或者SPWM方式,调制波指令最终要除以直流母线电压得到归一化占空比。电流环输出的电压指令要叠加上电网前馈电压,这样才能避免稳态误差过大。虽然离网系统没有电网,但有一个等效概念:电感上既要有电流变化产生的电压,也要有输出电压这个“反电动势”,所以电流环输出必须加上电容电压前馈,否则稳态时电流会出现静差。
3.2 控制器参数整定的一个实操套路
我整定双环参数用的不是一股脑仿真后直接上机,而是按这个顺序来的:
第一步,单独整电流环。把电压环断开,电感电流指令给阶跃,观察电流跟踪是否出现超调或振荡。用PI调节器,从纯比例开始往上加,直到电流响应出现轻微振荡,再往回退30%,这就是Kp的初始值;然后加积分,消除稳态误差,积分系数从小往大调,观察电流阶跃响应是不是能在一个到两个开关周期内跟上指令。
第二步,闭合电压环。电压环的输出接电流环的指令,给电压环一个阶跃,观察电压跟踪响应。电压环PI参数我整定的结果是 Kp_v = 0.8,Ki_v = 120(离散化后)。电压环带宽比电流环低,大约250 Hz,因为电压环后面拖着一个LC滤波器和电流环,太高的增益容易引起整个环路不稳定。
第三步,验证满载和空载两个极端工况。空载时,电压环的负载是电容,系统阻尼最弱,最容易振荡;满载阻性负载时,负载相当于给LC并联了一个电阻阻尼,系统相对稳。所以空载必须优先验证,空载能稳住,满载基本不会有发散性问题。
3.3 旋转坐标系下的解耦和前馈(简述)
三相系统典型的做法是把ABC三相转换到dq旋转坐标系下控制。离网逆变器输出电压和电流是50 Hz交流量,在dq坐标系下会变成直流量,PI调节器对直流量可以实现无静差跟踪,这就是Park变换的意义。
但dq坐标系下有个绕不开的问题:d轴和q轴之间存在交叉耦合。电感上的电流变化会在dq轴之间产生交叉项——d轴电流的变化会影响q轴电压,反过来也一样。如果不管这个耦合,两个轴的控制会互相干扰,动态时出现“你砍我一刀、我踢你一脚”的振荡。我的做法很标准:在电流环PI输出上叠加解耦项,d轴解耦项叠加 −ωL·i_q,q轴解耦项叠加 +ωL·i_d,其中 ω=2π×50=314 rad/s,L=0.6 mH。这样处理后,d轴和q轴就变成了两个独立的直流对象,控制起来就简单了。
前馈方面,电压外环输出的电流指令在dq轴下,还要叠加上电容电压对应的前馈分量。更准确地说,电流环的输出应该加上输出电压在dq轴下的分量,因为在稳态时电感电压为零,调制波电压就等于输出电压。这个前馈在轻载时尤其重要,没有它会看到电压在空载切满载时跌得更狠。
4. 双环控制搞不定的那些谐波问题
双环控制搭起来之后,阻性负载下波形其实已经不错了,THD能到3%以内。但只要一接整流性负载——比如前端是二极管整流桥加电解电容的那种——波形就露馅了。输出电压波形在每相电流导通的尖峰位置出现明显的削顶和畸变,THD直接飙到10%以上。这时候双环控制表现出它的天然上限。
4.1 非线性负载与死区效应带来的周期性畸变
整流性负载的特点是只在电压峰值附近的一小段角度内导通,电流波形是一簇尖峰,里面包含大量低频谐波,主要是3、5、7、11、13次。这些谐波电流流过滤波电感和线路阻抗,就在输出电压上产生了谐波压降。电压环不是不想抑制,而是电压环的带宽只有250 Hz左右,对5次谐波(250 Hz)的增益已经明显下降,对11次(550 Hz)、13次(650 Hz)的增益更低。也就是说,双环控制系统对输出电压里这些周期性谐波,天生就没有足够的环路增益去压制。
死区效应是另一个推手。IGBT需要设置死区时间防止直通,我这套样机的死区时间是3 μs,在开关周期100 μs里占了3%。死区导致输出电压基波幅值略微降低,同时注入一系列低次谐波,尤其是3次和5次。更烦人的是,死区效应的大小和方向跟电流方向直接相关,电流过零附近谐波特别明显,波形出现“零电流钳位”的平顶现象。双环对这个也束手无策,因为死区是一种周期性扰动,而PI调节器对周期扰动的抑制能力有限。
4.2 双环结构在谐波抑制上的天然上限
说得更理论一点:PI调节器在参考信号是直流时有无穷大增益,但参考和扰动都是50 Hz及其整数倍频率时,PI在这些频率上的增益是有限的。你就算把PI参数加大,也只会把低频增益顶上去,对高频谐波该没增益还是没增益,而且参数加大到一定程度就会和LC谐振峰值打架,整个系统振荡起来。这是一种“架构层面的瓶颈”,不是调参能解决的。
这时摆在面前的两条路:一条是提高采样和控制频率,把电压环带宽硬往上顶,但这受限于IGBT开关损耗和DSP算力,而且LC谐振峰会在高频处让相位快速掉头;另一条就是引入一个专门针对“周期性误差”的控制通道——重复控制。我选了第二条。
5. 重复控制:用“学过的误差”去修正“未来的误差”
重复控制这个思路,理解起来其实特别生活化。你每次在同一个弯道开车都压到同一个坑,第一次没注意,第二次就有意识地绕一下,第三次就完全避开了。重复控制就是让逆变器记住“上一个周期这个角度上输出电压差了多少”,然后在下个周期的同一个角度把误差反向补偿回去。
5.1 内模原理与周期延迟链:重复控制为什么能消除周期误差
核心结构是一个延迟链:z^(-N),其中N是一个基波周期内的采样点数。我这个系统采样频率10 kHz,工频50 Hz,所以N=200。误差信号经过延迟200个采样周期后回到输入端,与当前误差叠加,就构成了一个周期内模。
这个内模的频率特性是:在50 Hz及其整数倍频率处,环路增益理论上趋近无穷大。你可以把它理解成一组“梳齿滤波器”,梳齿正好卡在每个谐波频率上,对所有50 Hz整数倍频率都有极高的增益。这正是PI调节器做不到的——PI只在0 Hz附近有高增益,而重复控制在每个周期频率上都建立了高增益通道。所以它对3次、5次、7次、11次这些周期性谐波,几乎是“一网打尽”。
但单纯的延迟链有一个致命问题:稳定性。在非周期频率点上,延迟链的增益并不收敛,可能放大了噪声。因此工程上的重复控制都要加两个修正环节:
第一个是内模衰减系数Q,典型取0.95~0.98。Q直接乘在延迟链的反馈回路上,相当于给内模引入一个小于1的衰减,让它在非周期频率上不再是“纯积分”,从而保住稳定性。代价是周期频率上的增益从“无穷大”降为“很大”,但工程上已经很够用了。
第二个是补偿器S(z),通常是一个低通滤波器或陷波器,用来把重复控制的作用范围限制在低频段,避免它去高频段和LC谐振峰、采样噪声搅在一起。我这个系统的补偿器S(z)取了一个截止频率约2 kHz的二阶低通,确保重复控制只在中低频段发力。
5.2 PI加重复控制并联:双环框架里的第二种补偿通道
直接把重复控制整个替换掉电压环是不可行的,因为重复控制本质上是“慢一拍”的——它必须等一个完整的基波周期才能学到误差,动态响应跟不上负载突变。所以我的实际结构是:电压误差同时进入两条通道,一路给常规的PI调节器负责快速动态响应,另一路进重复控制负责周期性谐波抑制。两个通道的输出叠加后,作为电流内环的电流指令。
这个结构用控制框图的话说就是“并联复合控制”。双环控制负责“快”,重复控制负责“准”,各干各的,互不抢活。并联的好处在于:PI通道的动态响应不会被重复控制拖慢,重复控制的稳态精度又能把PI通道剩下的谐波误差吃掉。实测中,阻性负载下重复控制投入前后THD从2.8%降到1.5%;整流性负载下从10%降到3.5%左右,效果非常明显。
这里有个参数要特别小心:重复控制的增益K_rc不能太大。K_rc直接乘在重复控制的输出补偿量上,它越大,谐波抑制越强,但也越容易放大误差信号里的非周期成分,甚至引起不稳定。我最后整定在0.85,留了15%的稳定裕量。这个值不是固定的,它取决于你的LC滤波器模型精度、采样延时、负载范围。如果滤波参数漂移或者负载变化很大,K_rc需要往回调。
5.3 相位补偿和超前环节的工程实现
重复控制里最难处理的是相位补偿。系统建模时我们用的是数字控制,从采样到PWM输出,天然存在一拍半左右的延时(采样计算一拍、PWM更新半拍),再加上LC滤波器的相位滞后,误差在“被补偿”的时候,目标对象的相位已经和采到的误差对不上了。如果直接按当前误差去补偿,补偿量会打在错误的相位上,严重的会振荡。
解决办法是在重复控制的输出通道里加一个超前环节 z^k。也就是说,你提前把当前误差对应的补偿量推到未来k个采样周期后输出,去抵消系统固有的相位滞后。这个k值怎么定?我在定k之前,先测量了从调制波电压指令到输出电压之间的总相频特性:LC加数字延时,在关注的1 kHz以内,总相位滞后大约在40度到60度之间。10 kHz采样周期对应50 Hz基波周期的200个点,一个采样周期对应1.8度电角度。要补偿50度相位,大概需要28个采样周期,k就取28?这显然太大了,超前太多会把高频噪声放大得很厉害。
实际工程里我们不会追求全频段补偿,而是重点补偿基波和5、7、11次谐波这些“主要矛盾”。我测试下来,k取3到5比较稳妥,也就是超前3到5个采样周期,补偿约5.4到9度相位。剩下的相位滞后,靠S(z)的相位特性去配合。你可能会问,补偿不够怎么办?答案是靠闭环自行修正——重复控制的强项是“反复学”,这一轮补偿偏了一点,下一轮误差里还能看到这个偏差,它会继续修正。只要不是相位错得超过90度导致正反馈,系统都能收敛。
6. 调试现场实录:三个最容易翻车的点
代码写完了、仿真也没问题,不代表样机就能跑。实测时的坑往往是仿真里根本不会出现的。下面三个是我在这台机器上真实踩过、而且每一条都很有代表性的问题。
6.1 启动瞬间的冲击电流与软启动设计
第一版程序上电,母线电容一充到540 V,直接闭合接触器接负载,结果冲击电流把输入端限流电阻都烧红了。问题在于:输出电压指令从0直接跳到额定380 V,LC电容相当于短路,电流环指令瞬间饱和,桥臂直接输出最大占空比,整个就是一个大的dv/dt冲击。
解决思路是软启动。我把电压环的参考电压从0开始按斜坡爬升,爬升时间设为500 ms,每1 ms加一次参考值,相当于50 Hz基波的一个周期内参考只爬1/500的幅度。同时,电流环指令限幅也要跟上:斜坡期间,电流指令限幅值从0逐渐放宽到额定值。这样启动时电感电流、电容电流都被限制在合理范围内,实测启动冲击电流被压到额定电流的1.2倍以内。
6.2 满载切载时的动态跌落和恢复时间
双环控制刚闭合时,我做了一个很残酷的测试:满载10 kW突然切除负载,然后马上又全部接上。结果是电压峰值冲到430 V以上,跌落到300 V左右,恢复时间超过3个工频周期,明显超出指标。
这个问题的机理不复杂:负载突变时,电压环的输出(电流指令)受PI带宽限制,来不及调整;电流内环再快,它执行的是一个滞后的指令。削载时多余的电磁能量全灌进滤波电容,电压飙升;加载时电容能量被负载抽走,电压跌落。重复控制在动态瞬间几乎帮不上忙,因为它的学习周期是50 Hz,第一个周期内它还在按上一周期的误差输出补偿量,甚至可能帮倒忙。
我的处理分三步:第一步,电流指令限幅从额定电流改成一个快速退饱和逻辑:电压偏差超过阈值时,限幅值按时间常数线性放开,避免PI饱和后再退饱和的时间黑洞。第二步,给电压环PI加了一个“抗饱和积分”机制,输出限幅时冻结积分累加。第三步,在重复控制通道前面加了一个使能开关:检测到电压偏差大于某个门槛(比如额定电压的8%)时,重复控制通道暂停输出1~2个周期,先让PI通道全力调动态,然后再恢复。这一步很关键,避免了重复控制在动态过程中的错误补偿拖慢恢复。
这三步做完,实测10 kW切载时电压峰值410 V,恢复时间小于1.5个周期,基本满足指标。
6.3 死区补偿的方向问题:补偿加反了会是什么现象
死区补偿是我在这台机器上栽得最莫名其妙的一个跟头。死区时间3 μs,理论输出电压损失大约是 3μs / 100μs × 540 V ≈ 16.2 V。这个损失会造成基波电压幅值偏低和低次谐波。为了补回来,我在调制波上叠加一个跟电感电流方向相关的补偿量。
结果第一次上电测试,波形不仅没变好,反而出现了明显的低频振荡,THD飙升。查了两个小时才发现是补偿方向搞反了:电流方向判断和实际电流采样极性不一致。IGBT电流采样用的是支路电流传感器,霍尔传感器的输出方向在硬件板上接反了,导致软件里判断的“电流正方向”和实际的电流方向差180度。死区补偿方向反了之后相当于引入了更强的周期性扰动,重复控制都救不回来。
这个问题的经验教训有两条。第一,软件上做死区补偿前,必须先做一次电流极性校验:给定一个已知方向的直流电流,对比采样值和真实方向。第二,把死区补偿的增益做成可调参数,接入系统后先从小增益开始加,观察波形是变好还是变坏。波形变好,说明方向正确;变坏,马上翻转极性。不要一上来就按满补偿量加,方向错误时满补偿会直接把系统震荡起来。
7. 仿真与实测数据:THD变化与负载适应对比
项目快收尾时,我把“仅双环控制”和“双环加重复控制”两组状态在同样的硬件、同样的负载条件下做了完整对比。数据一定要亲自测、分开记录,因为不同负载下的表现差异非常大,只测一个工况就下结论是要出事的。
7.1 从纯阻性到整流性负载的畸变率变化
我把负载分成三档:纯阻性满载、阻性加感性混合负载(功率因数0.8)、整流性电容滤波负载(相当于三相不控整流桥加电解电容加电阻)。三档负载下的输出电压THD对比如下表。
| 负载类型 | 仅双环控制 | 双环加重复控制 | 波形主要改善点 |
|---|---|---|---|
| 纯阻性满载 | 2.8% | 1.5% | 尖峰毛刺减小,波形更光滑 |
| 阻感负载 | 3.6% | 1.9% | 5、7次谐波明显下降 |
| 整流性负载 | 10.5% | 3.4% | 削顶消失,过零畸变改善 |
| 整流性满载 | 12.8% | 4.2% | 高次谐波仍有残留,但可接受 |
单独看整流性负载那一行,10.5%降到3.4%,这个改善对离网逆变器来说是决定性的。不过要诚实地说,重复控制也有失灵的地方:当负载周期性非常强但不是50 Hz整数倍的时候,比如一个频率为47 Hz的变频负载,重复控制学习的周期对不上,反而会把误差搞乱。我的应对措施是给重复控制加了一个频率自适应:通过锁相环或过零检测来实时估计实际基波频率,动态调整N值(取整到最近的采样点数)。这套样机上做了简单的自适应,实测振频在48~52 Hz范围内都能保持不错的补偿效果。
关于波形上最后的残留,4.2%里主要成分是23、25、31、35次这些高频开关边带谐波。重复控制的S(z)低通滤波器把它们滤掉了一部分,但要进一步压下去,就得考虑提高S(z)的转折频率或者用更高阶的陷波器,这会和稳定性打架。工程上我认为4%左右已经是一个很好的交付状态。
7.2 动态响应指标的折中取舍
THD做漂亮了,不代表一切都好了。我测了三组动态指标:空载切满载的电压跌落、满载切空载的电压过冲、恢复时间。结果很有意思:加入重复控制之后,稳态THD大幅改善,但暂态指标其实没有明显变好,甚至在某些工况下恢复时间略有变长。这不是重复控制的错,而是我的使能开关在动态期间暂时切掉了它,让PI单独扛,PI的带宽上限就摆在那里。
这也引出一个工程上的取舍原则:不要指望一套控制结构包打天下。重复控制是稳态精度的利器,动态响应还得靠双环的PI。两个通道的切换逻辑要平滑,否则动态转稳态的瞬间会出现一个小的电压凸起。我最后加了过渡处理:重复控制重新投入时,先用一个斜坡系数把它的输出从0软切入,而不是一下子全量输出。这个过渡时间设了两个工频周期,实测波形上没有可见的切换痕迹。
8. 一点个人心得:从参数到工程习惯
做完这个项目,如果让我重新来过,我会在一开始就盯住三件事:滤波参数的阻尼设计、控制器离散化方式的统一、以及负载特性的提前摸底。
阻尼这块多说一句。LC滤波器的谐振峰在1187 Hz,如果不做阻尼,电压环带宽稍微靠近一点就会激起振荡。有人会想用软件阻尼算法来省掉阻尼电阻,我试验过,效果能接受,但鲁棒性明显不如硬件阻尼电阻。电流内环带宽1.5 kHz,已经压在谐振峰附近,软件阻尼的参数稍微漂一点就可能出现高频啸叫。硬件阻尼电阻几十瓦的损耗,换来的是一整片稳定工作区间,这笔账划算。
离散化方式统一这件事,是调试中后期才意识到的。电压环PI、电流环PI、重复控制、坐标变换、滤波器,这些模块在不同文档里用了不同的离散化方法——有前向欧拉、后向欧拉、双线性变换。混用会导致模型的相位特性对不上,重复控制的相位补偿参数怎么调都不准。后来我全部统一成双线性变换,相位特性基本对齐,补偿参数就一下子清晰了。
最后说一个很多教程不会写的地方:样机调试时,一定要给每一个控制模块预留“在线开关”。我这个项目里,电流环、电压环、重复控制、死区补偿、软启动每一个环节都做了一个可在线切换的使能位,调试时可以单独开启或旁路某一个模块。这套调试习惯救了我无数次,定位问题的时候不用整机停摆,直接通过上位机切模块,几秒钟就能判断是哪一部分在捣乱。
三相离网逆变器从双环走到重复控制,本质上是“动态”和“稳态”的博弈。双环负责让系统活起来、动得快,重复控制负责让系统静下来、稳得准。把这两个东西协调好,再处理好启动、切载、死区这几个工程细节,一台能打的离网逆变器就出来了。