ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于误差幅值的NLADRC连续调度在MMC-HVDC有功外环中的应用

基于误差幅值的NLADRC连续调度在MMC-HVDC有功外环中的应用 MMC-HVDC整流侧有功外环前前后后我调过三版方案。第一版是查表PI额定功率阶跃看着挺好轻载工况一上来直流电压抖得让人头皮发麻第二版换成固定参数NLADRC抗扰能力确实上来了可观测器带宽一旦取大稳态下功率测量噪声被放大波形像长了毛。问题不在算法本身在于参数只会在某一个工作点附近最优。后来我把思路改成“参数跟着误差幅值走”——也就是标题里这套方案的核心基于误差幅值的NLADRC参数连续调度再配合多工况自动寻优把“整定有功外环参数”这件事从纯经验活变成一个可复现的流程。这篇就完整整理一下设计逻辑、数学表达、寻优框架和仿真验证过程内容按算法设计-参数调度-自动寻优-仿真验证-工程避坑的顺序展开适合正在做柔性直流输电控制、或者想给ADRC控制器换一种参数整定思路的同行参考。1. 有功外环凭什么难调固定参数控制器的先天矛盾1.1 外环被控对象不是纯线性时不变系统先明确一个基本控制结构。MMC-HVDC整流侧的有功外环处于双闭环结构的最外层有功功率参考值和实际值做差经过外环控制器输出内环d轴电流参考值 (i_{d_ref})内环电流控制器再去跟踪这个电流指令最后通过调制驱动MMC阀组。被控对象对于外环而言可以近似看成一个一阶惯性环节[ G_p(s) \frac{K}{T s 1} ]但这条近似路线的隐蔽问题在于(T) 和 (K) 并不恒定。桥臂电感、变压器漏感、子模块电容等效值这些参数会随着运行点变化交流电网短路比不同时等效阻抗也在变整流侧和逆变侧相互耦合逆变侧功率波动折算到整流侧就是一路实时变化的扰动。也就是说外环控制器面对的实际是一套参数慢变、扰动频繁的系统外加电压电流采样噪声和数字控制延时。我见过不少人拿额定工况下的开环阶跃响应辨识出一组 (K)、(T)然后按经典方法把PI参数一算就上工程。结果大功率阶跃没问题一遇到轻载或者换流器转逆变外环振荡、直流电压过冲都是因为那组PI只在该工况附近最优离远一点模型失配就压不住。1.2 固定参数PI和固定参数NLADRC的表现差异PI几乎每个工程都在用其固有问题不是秘密带宽高了阶跃响应快但噪声和超调一起上来带宽低稳态稳、噪声小但碰到大扰动恢复得极慢。哪怕加上变PI增益本质还是用一条经验曲线去覆盖多变工况更新频率不够难以真正连续适配。固定参数的NLADRC在解决模型失配上有明显进步。它把未建模动态、参数变化、外部扰动统统归入“总扰动”通过扩张状态观测器ESO实时估计并在控制律里补偿掉。调试时只需要关注两个带宽控制器带宽 ( \omega_c ) 和观测器带宽 ( \omega_o )通常取 ( \omega_o \lambda \omega_c)(\lambda) 取3到5。但固定参数NLADRC有自己的新问题。我一个典型例子某双端MMC-HVDC仿真模型里有功外环采用一阶NLADRC( \omega_c) 取5 rad/s( \omega_o) 取25 rad/s。额定功率从0.4 pu阶跃到1.0 pu时控制器输出会先打到限幅值附近ESO对大误差下的状态估计有一段时间的滞后实际恢复时间被拖到90 ms以上。如果把 ( \omega_c) 调到9 rad/s来提升大扰动响应速度轻载小扰动工况下观测器带来的噪声放大又变得明显有功功率波动和直流电压毛刺肉眼可见。传统整定思路在这里撞上了墙同一个控制器参数不可能在“大误差需要激进”和“小误差需要收敛”这两个诉求上同时最优。1.3 误差幅值调度的出发点换个角度看这件事。误差幅值本身就是工况信息的天然载体误差大意味着大功率阶跃或强扰动此时控制器最该做的是快速追参数应当偏向大带宽误差小意味着趋于稳态或小扰动此时最该做的是别把噪声放大、别产生过冲参数应当偏向高阻尼、小带宽。增益调度不是一个新概念燃气轮机和飞行控制里早就用了几十年。但在MMC-HVDC有功外环结合NLADRC把误差幅值作为连续调度变量和传统的离散查表增益切换有本质区别查表切换在工况跨越边界时控制参数会发生跳变进而引起控制量突变严重时就是直流电压小台阶而连续调度让带宽参数随误差平滑变化不存在切换跳变控制量过渡自然。这就是“基于误差幅值的参数连续调度”这个提法的核心价值。一个容易踩的误区有人看到“误差调参”就以为是变增益PID改个参数而已。实际差别很大——NLADRC里调度的不只是外环增益还包括观测器带宽和fal非线性因子也就是说调的是整个“估计-补偿”闭环的动态特性不是一个简单增益能比的。2. NLADRC误差幅值连续调度设计逻辑与数学表达2.1 调度变量选取为什么是误差幅值而不是功率变化率设计连续调度前第一个问题就是拿什么当调度变量。我对比过几个候选这里直接给结论候选调度变量优点缺点误差幅值 ( |e| )直接反映被控量与参考的偏移程度无需额外传感器与控制器任务高度一致稳态时接近零需要设下限避免参数退化功率变化率 ( dP/dt )对阶跃和斜坡扰动敏感对噪声极其敏感数值微分放大毛刺工程上容易误触发运行功率水平 ( P )简单稳定工况区分明确无法感知阶跃幅度大扰动中段和稳态数值相同导致参数不区分直流电压偏差直流电压与有功强耦合反映系统级偏移间接变量存在相位滞后响应不够快最终选误差幅值。原因很实际第一它直接对应闭环控制的“当前脱离期望的程度”与外环控制目标一致第二不需要额外测量通道有功误差本来就是外环内部信号第三( |e| ) 在扰动发生时能快速上升在稳态时回落天然形成连续的变化曲线。唯一要处理的问题就是在稳态附近给它一个下限保护防止调度回到过小的带宽值导致恢复能力退化。2.2 连续调度函数与参数映射关系调度函数我采用归一化误差输入、S形映射输出、对数坐标映射带宽的结构。具体三步走第一步误差归一化。定义基准误差 ( e_{base} )这个值取额定有功误差的30%到50%。比如额定功率1.0 pu那么 ( e_{base} ) 取0.3 pu到0.5 pu。归一化误差[ e_n \frac{|e(t)|}{e_{base}} ]第二步S形平滑函数。用sigmoid变形输出范围限制在[0,1][ S(e_n) \frac{2}{1 e^{-k (e_n - e_0)}} - 1 ]其中 ( k ) 控制调度曲线陡峭程度( e_0 ) 是调度中心。实际调下来( k ) 取5到10( e_0 ) 取0.2到0.4比较合适。( S ) 在误差很小时趋近0误差大时趋近1中间平滑过渡不会有突变。第三步带宽映射。控制器带宽在不同误差等级之间切换直接用线性映射会有问题带宽从3 rad/s到12 rad/s线性插值意味着中间点对应的调节速度偏移而且小带宽段的分辨率不足。换成对数坐标插值更合理[ \omega_c(e_n) \omega_{c_lo} \times \left( \frac{\omega_{c_hi}}{\omega_{c_lo}} \right)^{S(e_n)} ]这样在小带宽区间有足够的分辨率大带宽区间膨胀速度快符合“误差越大越激进”的逻辑。观测器带宽同步换算[ \omega_o(e_n) \lambda \cdot \omega_c(e_n), \quad \lambda 3 \text{ ~ } 5 ]fal函数里的非线性因子同样参与调度。误差大时让 ( \alpha ) 偏向0.7左右提高非线性增益和跟踪速度误差小时让 ( \alpha ) 偏向1.0左右退化为近似线性控制避免小误差极限环和抖动[ \alpha(e_n) \alpha_{hi} - (\alpha_{hi} - \alpha_{lo}) \cdot S(e_n) ]我常用的参数范围( \alpha_{hi} 0.7 )( \alpha_{lo} 1.0 )( \delta) 随误差量级做自适应修正修正公式为 ( \delta \delta_0 \cdot e_{base} )( \delta_0) 取0.01到0.05。2.3 调度后对ESO补偿能力的影响串联起整个方案后ESO的行为会随之改变。观测器带宽大时ESO对总扰动的估计速度快、补偿及时这正好匹配大误差工况观测器带宽小时ESO对高频噪声的增益低、稳态输出干净这匹配小误差工况。一句话概括连续调度让ESO的“激进程度”和“滤波程度”跟着控制需求走而不是固定在某一个折中值。这里有一个关键点要理解透彻ESO估计的不是物理量本身而是“总扰动”包括模型失配、参数变化、外扰折算后的等效项。当有功功率大步阶越过时总扰动项变化剧烈低带宽ESO根本追不上补偿滞后直接表现为外环响应变慢高带宽ESO能快速收敛才谈得上下一步参数自动寻优。反过来说如果只在控制器前向增益上做调度而不动观测器带宽那补偿能力滞后问题依旧存在等于只换汤没换药。注意一个边界观测器带宽不能无限往上调。离散化条件下( \omega_o ) 的工程上限大约在采样频率 ( f_s ) 的1/10到1/20。以控制周期100 μs为例( f_s 10 ) kHz( \omega_o ) 通常不超过500~1000 rad/s。调度函数的上限参数要留足这个裕量。3. 多工况自动寻优一个可落地的实施框架3.1 工况矩阵与性能指标的工程定义参数连续调度解决了“参数随误差变化”的问题但调度函数里还有不少待定参数( k )、( e_0 )、( \omega_{c_lo} )、( \omega_{c_hi} )、( \lambda )、( \alpha_{hi} )、( \alpha_{lo} )、( \delta_0 )。靠手调可以调出一组能用的但很难保证在多个工况下都接近最优。所以标题里还有后半句“多工况自动寻优”本质就是把“仿真跑工况-看波形-调参数”这个循环自动化。第一步是确定工况矩阵。我按工程实际列出了六类必测工况工况编号场景描述核心考核点C1额定功率阶跃0.4 pu 到 1.0 pu大扰动快速性、超调C2轻载抗扰0.1 pu 运行交流电压跌落20%小扰动稳定性、噪声抑制C3整流转逆变功率指令 1.0 pu 到 -0.3 pu功率反向时的平滑性C4对端功率阶跃扰动逆变侧切换导致直流电压波动直流系统级扰动隔离能力C5参数摄动桥臂电感摄动30%、子模块电容-10%模型失配鲁棒性C6采样噪声场景功率测量叠加噪声稳态噪声表现每个工况都要定义性能指标。工程上我用这三个为主最大超调量 ( M_p )、调节时间 ( t_s )进入±2%误差带、积分时间绝对误差 ( ITAE \int t|e(t)|dt )。额外加一个振荡度指标用控制量的总变差 ( TV \sum |u_{k1} - u_k| ) 来度量TV太大说明控制器在来回折腾对阀组应力不好。综合目标函数按工况加权求和[ J \sum_{i1}^{6} w_i \left( \alpha_1 \frac{M_{p,i}}{M_{p_base}} \alpha_2 \frac{t_{s,i}}{t_{s_base}} \alpha_3 \frac{ITAE_i}{ITAE_{base}} \alpha_4 \frac{TV_i}{TV_{base}} \right) ]各指标用基准值归一化量纲统一。权重 ( w_i ) 根据项目侧重点分配如果项目最关心阶跃响应就把C1权重调大如果更看重稳态质量C2和C6权重调大。3.2 离线寻优加在线查表的具体步骤自动寻优怎么做我推荐离线寻优加在线查表的组合不建议直接上在线强化学习。在线训练在真实MMC-HVDC设备上风险太高仿真环境里训出来的策略又面临模型迁移问题而离线寻优加查表在工业界成熟度最高逻辑清晰容易过评审。操作流程拆解如下在PSCAD或Simulink里搭好双端MMC-HVDC电磁暂态仿真模型控制系统按“内环电流控制环流抑制外环有功/直流电压控制”的完整结构搭建外环采用上述NLADRC连续调度结构。确定待寻优参数向量 ( \theta [k, e_0, \omega_{c_lo}, \omega_{c_hi}, \lambda, \alpha_{hi}, \alpha_{lo}, \delta_0] )。用粒子群算法PSO在参数空间搜索。我的配置种群规模30迭代次数40惯性权重0.6学习因子 ( c_1 c_2 2.0 )参数范围用工程经验约束。每个粒子代表一组调度参数把参数写入仿真模型按工况矩阵顺序跑完六类工况计算出综合目标函数 ( J )返回给优化器。多随机初始化跑3次避免陷入局部最优。取最优参数组追加一个边界校验把工况矩阵再外扩比如短路比从10降到5、交流电压跌落扩展到30%确认全部外扩工况下系统仍然稳定指标不恶化为标准。最终输出一组连续调度参数固化到控制器里。整套流程在单台高性能主机上跑六工况单次评估大约3分钟种群30、迭代40就是1200次评估累计六十个小时左右能完成一轮完整的寻优。实际工程里可以接受这个时间成本毕竟换来的是不用在真机上反复试错。3.3 寻优结果如何“翻译”成调度曲线参数智能算法给出的参数组是数值但控制器需要的是可解释、可校验的调度曲线。我拿到寻优结果后会做一次“可解释性还原”把最优的 ( k )、( e_0 ) 代回到S形函数里重新绘制 ( \omega_c(e_n) ) 曲线看它是否符合直观经验——比如额定阶跃工况下误差大时拉带宽到上限稳态小误差时回到下限附近。如果寻优得到的最优参数在曲线形态上呈现明显的不合理特征比如调度曲线在中段出现局部反转那大概率是目标函数权重设置问题或者某个工况没有充分激励需要调整工况矩阵重新寻优而不是硬把结果塞进控制器。这一步看似多余实际上很重要自动寻优结果再好也要能通过工程师的常识审查才能在工程项目里落地。另外如果目标平台不允许在线实时计算指数函数不少DSP控制周期很紧可以把连续调度曲线提前离散成查表点比如按 ( e_n ) 从0到2.0取40个点控制器运行时用线性插值查表效果几乎不损失。我实测过40点查表的SOC模型和连续函数模型的阶跃响应波形差别在2%以内完全可以接受。4. 双端MMC-HVDC仿真验证从波形看效果4.1 仿真模型搭建要点验证平台用双端MMC-HVDC电磁暂态仿真模型整流侧和逆变侧都是三相MMC关键参数如下桥臂子模块数 ( N 98 )子模块电容 ( C_{SM} 16 ) mF桥臂电感 ( L_{arm} 50 ) mH交流系统短路比5整流侧交流线电压230 kV直流额定电压 ±200 kV额定有功1.0 pu对应1000 MW。仿真步长方面我给出一个经验值电磁暂态主电路步长20 μs到50 μs控制采样周期100 μs。MMC阀组子模块多仿真会非常慢我的做法是先用单桥臂等效模型调控制策略基本思路跑通后再换回完整模型验证波形细节这样能把一轮工况矩阵的评估时间压缩一半以上。两个细节必须提醒。第一MMC的环流抑制控制一定要加在仿真里否则二倍频环流会经过功率计算耦合到外环干扰波形的判断让人误以为是外环控制问题。第二内环电流控制带宽取200到300 rad/s左右外环调度后最高带宽要控制在20 rad/s以内保证内外环带宽至少拉开一个数量级不然内外环动态相互干扰仿真里稳定性很好工程里一联调就出问题。4.2 额定功率阶跃工况对比C1工况功率指令从0.4 pu阶跃到1.0 pu对比三种方案查表PI、固定参数NLADRC( \omega_c 5 ) rad/s( \omega_o 25 ) rad/s、连续调度NLADRC。实测仿真结果方案超调量调节时间控制量TV查表PI13.5%88 ms极低固定NLADRC4.2%92 ms中连续调度NLADRC0.9%47 ms低固定NLADRC比PI强在超调但由于控制器带宽保守大误差阶段恢复速度依然偏慢连续调度NLADRC在大误差阶段把 ( \omega_c ) 拉到接近上限恢复过程明显加快误差回落之后调度函数又主动降低带宽把超调压住最终调节时间缩短了一半多。控制量总变差数值也不大说明控制器动作整体平稳没有因为参数连续变化而引起控制量抖振。这里专门观察了调度变量的动态过程阶跃发生的第一个控制周期归一化误差 ( e_n ) 超过1.5调度函数立刻把 ( \omega_c ) 抬到上限大约30 ms后误差收敛进入稳态范围( \omega_c ) 平滑回落到下限附近。整个过程没有任何参数跳变功角波形干净清晰。4.3 轻载、电压跌落等多工况横向评估单看额定阶跃表现还不够自动寻优的价值要体现在多工况整体水平上。把六类工况全部跑完结果汇总工况查表PI固定NLADRC连续调度NLADRCC1 额定阶跃超调13.5%88 ms超调4.2%92 ms超调0.9%47 msC2 轻载电压跌落电压跌落20%恢复120 ms有振荡恢复95 ms有噪声毛刺恢复62 ms无振荡波形干净C3 整流转逆变有短暂功率过冲约8%过冲4%恢复偏慢过冲1.5%过程平滑C4 对端扰动直流电压波动±6%恢复110 ms波动±4%恢复80 ms波动±2%恢复50 msC5 参数摄动保持稳定但动态指标恶化明显保持稳定指标轻微恶化保持稳定指标略有恶化但整体最优C6 噪声工况功率波动幅值中等功率波动幅值偏大功率波动幅值最小C6工况尤其值得注意。固定NLADRC在满带宽时噪声放大是硬伤而连续调度在稳态时已经把带宽降到低位噪声环境下功率波动反而比PI还小。这就是“同一个控制器在不同误差等级下表现出不同性格”的优势所在。5. 工程落地避坑与个人调试体会5.1 连续调度不等于无限增大带宽“调度”很容易被误解成带宽越大越好。我在调试中吃过一次亏把 ( \omega_{c_hi} ) 从12 rad/s加到18 rad/s想着大阶跃恢复能更快结果在仿真里出现了高频振荡——不是不稳定而是观测器带宽跟上去了噪声通道和未建模动态开始相互作用控制量出现高频小幅抖动。后来回头看18 rad/s已经逼近采样频率100 μs下的可行边界了。我的结论是带宽上限要按采样频率、控制延时和内环带宽三方面共同约束来确定。经验上 ( \omega_{c_hi} ) 不超过内环带宽的1/10( \omega_{o_hi} ) 不超过采样角频率的1/10。在这个范围内调度带来的性能提升是真实的超出范围就是制造麻烦。5.2 离散化、限幅与抗饱和NLADRC从连续域到离散域实现不是简单替换就行。ESO方程离散化我推荐双线性变换一阶欧拉法在采样周期偏大时会引入明显相位滞后观测器带宽越高越明显。仿真里用一阶欧拉和双线性变换对比过( \omega_o 300 ) rad/s时同一工况下欧拉法让恢复时间多了10%左右。外环输出必然要限幅( i_{d_ref} ) 限幅保护交流器不过流这就牵扯到抗饱和问题。误差一大、控制量顶到限幅值时ESO的积分通道还在继续累积扰动估计退出限幅后会出现一段明显过冲。处理办法在两层做一是对 ( z_2 ) 估计项做条件限幅防止扰动估计超出物理范围二是限幅发生时暂停调度函数向大带宽方向扩张让控制器以当前参数平滑运行直到控制量退出饱和后再恢复调度逻辑。这里手动改过几版代码效果最明显的就是这两个地方。5.3 调度参数的敏感性分析与边界整定最后聊一下参数敏感性。自动寻优给出一组最优参数后不要直接上场。我做敏感性扫描时发现( k ) 这个参数最敏感它在5到10之间变化时目标函数变化幅度能到15%( e_0 ) 相对钝感在0.2到0.4之间变化对结果影响不大( \omega_{c_lo} ) 的取值直接影响稳态抗噪能力取太小会让轻载工况恢复过慢取太大又失去“小误差收敛”的意义。建议在寻优结束后补一轮单参数扫描确认目标函数在最优参数附近是平滑的凹函数而不是尖锐峰值。如果是尖锐峰值说明该参数两边的约束很强工程上应主动偏保守一侧取值牺牲一点峰值性能换取鲁棒性。我就遇到过 ( \omega_{c_lo} ) 和 ( \delta_0 ) 相互耦合的情况单独扫描都没问题联合偏离参数范围后故障穿越工况出现了低频振荡最后是通过缩小 ( \delta_0 ) 的搜索上限解决的这个隐患如果没排查出来在验收测试里迟早要爆雷。整条链路跑下来我最大的体会是控制算法从“固定参数”进化到“参数跟着误差走”并不复杂难的是把调参过程从“拍脑袋”变成“自动寻优可解释校验”的正规方法。基于误差幅值的NLADRC连续调度加上多工况寻优这套组合在整流侧有功外环上的效果是实打实的——响应快、超调小、噪声抑制好而且不挑工况。如果后续要做工程产品化我建议继续往两个方向扩展一是把寻优算法从离线升级为在线自学习在运行数据积累后自动修正调度曲线二是把误差幅值调度推广到直流电压外环和逆变侧功率外环统一整套控制器的参数自适应框架。
返回列表