news 2026/10/14 1:14:29

单相交流调压Simulink仿真:晶闸管移相触发与谐波分析全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
单相交流调压Simulink仿真:晶闸管移相触发与谐波分析全攻略

前段时间有个朋友做单相交流调压的Simulink仿真,调了一个下午波形都是乱的,一会儿只有正半周有输出,一会儿负载电压直接跳成电网全压,最后发现是给晶闸管的那路触发信号没有和电网过零点对齐。这种事在课程设计和电源入门项目里太常见了——大家以为把晶闸管摆进模型、给个脉冲就能出波形,实际上触发时序、负载特性和谐波分析才是单相交流调压仿真的真正门槛。

这篇把单相交流调压的完整Simulink仿真过程拆开讲清楚:从主电路拓扑、移相触发信号搭建,到阻感负载的失控问题、FFT谐波分析,再到波形异常的排查思路。不管你是刚接触电力电子仿真,还是想把仿真结果转成实物调试,这篇文章都能给你一套直接能用的操作路径。

1. 单相交流调压不是半波整流:先把这个拓扑看懂

1.1 两只晶闸管背靠背,才是完整的双向开关

单相交流调压的主电路看起来简单,但很多人第一次搭会犯一个很基础的错误——把一只晶闸管当成整个调压开关。晶闸管是单向导通器件,只有当阳极电压高于阴极且门极有触发脉冲时才会导通,电流方向只有一个。单只晶闸管接在交流回路里,实际上只能控制正半周,输出变成半个正弦波,这就不是调压,而是半波整流了。

完整的单相交流调压电路需要用两只晶闸管反并联,或者直接用一只双向晶闸管。反并联的意思是:SCR1的阳极接到SCR2的阴极,SCR1的阴极接到SCR2的阳极,两个管子头对头、尾对尾地并在一起。交流电压正半周时SCR1承受正向电压,触发它导通;负半周时SCR2承受正向电压,触发它导通。这样正负两个半周期都被控制,负载上得到的仍然是交流波形,只是有效值被改变了。

在Simulink里我建议用两只Thyristor模块而不是一只Triac模块来搭主电路。原因很实际:两只管子分开时,你可以单独观察每个门极的触发信号,调试触发时序的时候一眼就能看出是哪个半周出了问题。Triac模块虽然简单,但触发逻辑被封装在内部,波形不对时很难定位。

1.2 它和整流、斩波调压的本质区别

交流调压最常见的应用场景是白炽灯调光、电炉温控、小功率风扇调速和电机软启动。这类负载的共同特点是:不需要改变频率,只要调节施加在负载上的电压有效值就能达到调节效果。

很多人把交流调压和整流混为一谈,其实两者有本质区别。整流是把交流变成直流,输出波形带有明显的直流分量;而交流调压的输出仍然是交流,频率和电网一致,改变的只是电压幅值。单相交流调压属于相位控制式调压,通过改变晶闸管在每个半周期内的触发延迟角α,控制电流的导通区间,从而改变负载上的有效电压。还有一种斩波式调压是用高频开关器件快速通断来调节等效电压,两者的控制思路完全不同,本文讨论的是相控方式。

1.3 为什么值得先在Simulink里跑一遍

我见过不少同学跳过仿真直接搭硬件,结果一上电就烧了门极驱动板,或者示波器上看到的波形和理论计算完全对不上。交流调压电路牵扯到触发同步、电流连续断续模式、谐波含量这些因素,靠手算只能算纯电阻负载的理想情况,一旦加入电感,波形分析就变得复杂。

先用Simulink把主电路、触发逻辑、负载特性都建出来,几秒钟就能改参数重新仿真,可以直观地观察不同延迟角下的电压电流波形、晶闸管的导通情况、以及谐波成分。仿真调通之后再转硬件,至少你心里清楚每个阶段应该看到什么波形,出了问题是出在触发还是出在主电路。

2. 主电路骨架:模型搭对了,后面才不扯皮

2.1 模块清单与参数初设

Simulink里做电力电子仿真需要用到Simscape Electrical库,老版本里叫SimPowerSystems。主电路模块都从Specialized Power Systems分类下找,这个分类专门处理带电气网络的仿真,和普通Simulink数学模块是分开的两个体系。

以下是我常用的模块清单和初始参数,直接照抄就能跑通第一版模型:

模块位置参数设置
AC Voltage SourceSpecialized Power Systems > SourcesPeak amplitude: 311,Phase: 0,Frequency: 50
Series RLC BranchSpecialized Power Systems > ElementsR=10,L=0,C=inf
Thyristor(两只)Power Electronics > ThyristorRon=0.001,Lon=0,Rs=500,Cs=250e-9
Voltage MeasurementSpecialized Power Systems > Sensors默认
Current MeasurementSpecialized Power Systems > Sensors默认
PowerguiSpecialized Power Systems > PowerguiContinuous或Discrete,按需选
ScopeSimulink > Sinks默认

电源幅值要特别注意,220V是有效值,交流电压源模块里填的是峰值,所以要填311V而不是220V。负载先用纯电阻R=10Ω跑通整个链路,再在后面加电感,这是调试的好习惯,一步一步来能快速隔离问题。

两只晶闸管的参数可以用默认值,但需要理解每个参数的作用:Ron是导通电阻,Rd是关断电阻,Cs是缓冲电容。缓冲电容的作用是限制晶闸管两端电压的变化率,防止dv/dt过大导致管子误触发,Simulink默认带缓冲电路,这符合实际应用中的常规做法。Lon是导通电感,逆变器仿真里有时要设置,交流调压这种工频场合保持默认即可。

2.2 反并联连接细节与晶闸管参数解释

搭建时先把电压源正端接负载,负载另一端接到两只晶闸管的公共端A点。SCR1阳极接A点,SCR1阴极接电源负端;SCR2阴极接A点,SCR2阳极接电源负端。这样SCR1负责正半周导通,SCR2负责负半周导通。门极信号分别接到两个脉冲信号源,注意电流方向和晶闸管的阴极、阳极对应关系,接反了模型会报错或者管子永远不导通。

如果把Triac模块和反并联晶闸管对比,两者在Simulink里的导通特性并不完全一致。Triac内部相当于两个反并联晶闸管,但它对门极信号的处理方式更简化,有时候脉冲宽度不够也能继续导通,和实际双向晶闸管的特性有差异。想让仿真结果更贴近硬件,优先用双晶闸管方案。

晶闸管模型里有一个重要的细节:Simulink的Thyristor模块在门极信号为高电平且管子两端承受正向电压时导通,但门极信号撤销之后不会立即关断,只有流过晶闸管的电流降到维持电流以下才能关断。这个特性决定了交流调压的触发不能用窄脉冲,后面第三章会详细解释。

2.3 Powergui 和求解器怎么选

Powergui是整个电气仿真模型的控制中心,没有它电气网络无法求解。双击Powergui可以选择仿真类型,Continuous和Discrete都可以用。Continuous模式配合变步长求解器(推荐ode23tb)精度高,但仿真速度慢;Discrete模式需要设置一个固定采样时间Ts,通常取1e-5到1e-6秒之间,速度更快,适合反复调参。

我个人的习惯是控制在同一个仿真步长体系里。如果用Discrete模式,PLL、比较器等控制模块最好也用相同的采样时间,否则容易出现信号不同步的怪异现象。实际上,在交流调压这种工频50Hz的场合,Ts取1e-5秒已经足够,每个工频周期有2000个采样点,足够还原触发角变化的细节。

Powergui里还有一个非常重要的功能:FFT Analysis。双击Powergui进入界面后,可以看到左侧工具栏里有FFT分析的入口,它能直接对仿真采集到的电压电流数据做快速傅里叶变换,分析谐波含量。这个功能在第五章会详细展开。

3. 移相触发信号:固定延时是坑,相位同步才是正道

3.1 触发角α从哪里开始算

单相交流调压的核心控制量是触发延迟角α,它的定义是以电源电压过零点为起始时刻,晶闸管门极收到有效触发脉冲的时刻距过零点的电角度。α=0意味着电压过零后立即触发,晶闸管全导通,输出接近电网电压;α=180°意味着整个半周期都没有触发,输出为零。

搞清楚了定义就知道,触发脉冲必须建立在电网相位的基础上,而不是建立在绝对时间的基础上。很多人初学时直接拖一个Pulse Generator,设置周期0.02s、占空比50%、相位延迟几毫秒,这样看起来有脉冲输出,但晶闸管的导通时刻和电源过零点没有任何相位关系,仿真波形要么完全不对,要么稍微改个频率就彻底崩溃。电网频率如果波动,固定时间延迟的触发角也就跟着变了,这在仿真里可能只是波形异常,到了实际硬件就是触发失败甚至炸管子。

正确的做法是让触发信号和电源电压严格同步,也就是常说的相位同步。同步之后,不管频率怎么变化,触发点相对于过零点的电角度始终是固定的α。

3.2 用积分器搭一个和电网过零同步的相位锯齿波

在Simulink里做相位同步,最直观、最可控的方法是构造一个与电源过零点同步的锯齿波信号,这个锯齿波的横坐标就是电源相位。具体做法是:检测电源电压的过零点,每检测到一个过零点就把积分器清零,积分器的输入是角频率ω=2πf=314.16rad/s,这样积分输出从0开始线性增长,到达时间等于半个工频周期(10ms)时输出达到π,再过零点又清零。

实现步骤拆开来写:

  1. 从交流电压源输出端接一个Voltage Measurement,得到220V正弦波。
  2. 信号进入Sign模块,变成+1/-1的方波,代表电压极性的正负。
  3. 方波经过一个采样延时模块,延时一个仿真步长,然后用原方波减去延时后的方波,再通过Abs模块取绝对值。这个差值只在方波翻转的极短时间内非零,得到的就是过零点脉冲。
  4. 把这个过零脉冲接到Integrator积分器的外部复位端,复位方式选rising。积分器输入常数314.16,初始条件0。
  5. 积分器输出就是每个半周期从0到π线性变化的相位锯齿波信号θ(t)。

这个搭建方法全部使用Simulink基础模块和Simscape测量模块,不依赖复杂的PLL封装,调试时每一步都能看到中间信号,非常适合用来理解移相触发的本质。积分器复位端在脉冲到来时会瞬时清零,哪怕积分器输出已经接近π,复位后也是从0重新开始,这个行为保证了锯齿波始终和电网过零点对齐。

3.3 门极分配:正负半周各管各的管子

有了θ锯齿波之后,移相角比较就很简单了:让θ与α_ref(弧度)比较,当θ > α_ref时输出高电平。由于θ总是在0到π之间,高电平会一直保持到本半周期结束,这个信号天然就是一个宽脉冲。

很多资料强调交流调压要用宽脉冲或双脉冲,原因在于晶闸管的开通需要门极电流持续一段时间,直到阳极电流建立并超过擎住电流。如果在导通初期门极脉冲就消失,管子可能还没来得及形成稳定的导通状态。在Simulink仿真里,窄脉冲有时候也能出正确波形,因为模型对门极信号的处理存在理想化,但在实际硬件中窄脉冲触发失效的概率极高。从仿真阶段就养成用宽脉冲的习惯,后续转硬件会省掉大量排错时间。

接下来是门极分配的问题:相位锯齿波在每个过零点都复位,单靠θ本身无法区分当前是正半周还是负半周。所以需要利用电源电压的极性信号来分配门极:把Sign模块输出的方波直接作为选通信号,方波为+1时使能SCR1的门极通路,方波为-1时使能SCR2的门极通路。

具体到Simulink操作:比较器输出的宽脉冲信号,分别和极性信号及其取反信号做乘法(或逻辑与),得到两路门极信号。正半周时只有SCR1门极有脉冲,负半周时只有SCR2门极有脉冲。注意极性信号从-1到+1切换的时刻正是过零点,积分器也在同一时刻复位,所以相位关系和门极分配在时间上完全对齐,不会出现半周期错位的问题。

用这种方法搭出来的触发模块,修改α_ref的值就可以在线调整触发角,从0到170°之间任意试验,波形会随之平滑变化。这也是判断触发逻辑是否正确的直观标准——α从小变大,负载电压有效值应该单调下降。

4. 阻感负载的失控边界:窄脉冲会让你修到怀疑人生

4.1 电流滞后与导通模式:什么是连续、断续

电阻负载时电流和电压同相位,触发逻辑简单直观。但实际负载大多带感性成分,比如电机绕组、变压器、带滤波电感的加热回路,这时候电流滞后于电压一个角度φ,φ=arctan(ωL/R)。

这个滞后角直接决定了交流调压的工作模式。当触发角α大于φ时,晶闸管导通后电流会在某个时刻自然过零关断,电流波形是一段一段的,称为断续工作模式。当α小于或等于φ时,电流还没有过零,下一半周期的触发脉冲就来了,电流始终连续不断,称为连续工作模式。

在连续模式下,调压电路处于一种失控状态。因为电流连续,每个半周期晶闸管都会在电流过零后因为承受正压并等待触发而导通,即使你撤销触发脉冲,电流也能通过另外一只晶闸管继续流动,输出电压基本等于全压。这就是为什么单相交流调压用于电机软启动时,触发角不能设得太小,一旦进入α≤φ的工作区间,调压功能就失效了。

4.2 脉冲宽度不够会看到什么波形

阻感负载下最容易踩的坑是触发脉冲宽度不够。触发逻辑里如果只给一个很窄的脉冲(比如持续0.1ms),而负载是感性的,电流滞后电压,晶闸管可能在电流过零前就已经失去门极信号。表面看触发逻辑“每个半周期都有脉冲”,实际效果却是某个晶闸管在下一周期没有被有效触发,负载上出现只有正半周或者只有负半周导通的半波波形。

这种单半波工作状态非常危险,负载电压和电流中会叠加明显的直流分量,可能引发电感饱和、变压器偏磁等问题。在Simulink仿真中,最直观的现象是电流的上下波形不对称,负载电流平均值不为零,用FFT分析会看到偶次谐波明显增大。

解决脉冲宽度问题有两种常规方案。第一种是宽脉冲触发,把门极信号拉宽到接近整个半周期,确保晶闸管在整个可导通区间内都有门极信号。第二种是双脉冲触发,在主脉冲消失一段时间后再补发一个脉冲。交流调压这类低频应用首选宽脉冲,逻辑简单,可靠性也足够。

4.3 仿真里复现“失控”和“正常”的对照参数

为了把感性负载的工作模式彻底搞明白,可以在同一个模型里切换两组参数做对照。

第一组:R=10Ω,L=0.05H。此时ωL=15.7Ω,φ=arctan(1.57)=57.5°。设触发角α=80°,因为α>φ,电流断续,这是调压能正常工作的区域。观察负载电流波形,可以看到电流过零后有一段零电流间歇区,电压是截断的正弦波。

第二组:同样R和L,把触发角改成α=30°,此时α<φ,系统进入连续模式。你会看到电流波形几乎恢复成完整的正弦波,调压效果几乎消失,负载电压接近电源电压。这个对照实验比背公式有用得多,跑一遍就明白为什么交流调压不适用于纯感性负载的小角度调节了。

另外,阻感负载在断续模式下还有一个特点:当α比较接近φ时,电流导通角可能比较大,晶闸管的关断点离下一个过零点很近,宽脉冲的优势体现得最明显。窄脉冲在这个区域即使逻辑上没出错,仿真也可能因为过零时间的细微偏移出现一次性触发失败,但波形表现得很随机,这是排查时最容易迷惑人的情况。

5. 用FFT把谐波摊开看:α角一动波形成分全变了

5.1 有效值公式与理论对照

单相交流调压对纯电阻负载的输出电压有效值有理论公式,可以用来和仿真测量值做对照验证:

Uo = U × sqrt((π-α)/π + sin(2α)/(2π))

其中α是弧度值,U是电源电压有效值。当α=0时,Uo=U;当α=π时,Uo=0。这个公式只适用于纯电阻负载,阻感负载的表达式要复杂得多,所以在调试初期用纯电阻负载验证触发和测量链路是最靠谱的办法。

仿真里测量输出电压有效值,可以用Powergui里面的RMS测量模块,也可以把Voltage Measurement的数据导出到MATLAB工作区,再写几行脚本计算:

alpha = 30 * pi/180; U = 220; Uo_theory = U * sqrt((pi-alpha)/pi + sin(2*alpha)/(2*pi)); % 仿真采集到的电压瞬时值存在 v_data 变量里 Uo_sim = rms(v_data); disp(['理论值: ', num2str(Uo_theory)]); disp(['仿真值: ', num2str(Uo_sim)]);

理论值和仿真值通常在1%以内,如果偏差过大,要么是触发角计算有误,要么是α的度量起点不对。我调试的过程中最常犯的错是把角度制和弧度制混用,比较器里用的是弧度,而界面上习惯用度,建议在模块里统一换算,避免来回乘除。

5.2 FFT分析怎么在Simulink里做

谐波分析不需要额外装工具箱,Powergui自带的FFT分析功能就够用。仿真正常跑完之后,双击Powergui图标,选择FFT Analysis,界面上会列出所有被测量过的电压和电流信号。

操作顺序是:先在Structure下拉框里选择模型名称,再在Available Signals里勾选想要分析的信号(比如Load Voltage),设定Start time和Number of cycles,基频填50Hz,最大频率可以设到2500Hz(50次谐波以内)。点Display之后,界面会画出信号的频谱柱状图,横坐标是谐波次数,纵坐标是相对基波的百分比幅度,同时会给出THD总谐波畸变率。

仿真时要注意,FFT分析需要足够长的稳态数据。如果仿真时间太短,FFT窗口里包含暂态过程,谐波计算结果会失真。建议仿真时间至少设置到0.3秒以上,分析时从0.1秒之后开始取数据窗口,这样看到的是触发角固定后的稳态谐波情况。

5.3 谐波变化趋势和工程含义

同样的负载和触发逻辑,不同触发角下谐波含量差异巨大。以下是一组纯电阻负载仿真得到的典型趋势数据,可以作为参考:

触发角α输出电压有效值占比谐波特点
30°97%THD较低,3次谐波为主
60°87%3、5次谐波增加
90°71%THD明显升高,3次谐波接近基波的30%
120°50%谐波集中,高次谐波比例显著

看到这组数据就明白,相控调压虽然电路简单,但它是以谐波污染为代价换来的调压能力。晶闸管在导通角变化时相当于在电源和负载之间不断接入和断开,切出的波形越残缺,谐波越丰富。单相交流调压的谐波以奇次为主,3次谐波最突出,如果两只晶闸管触发不对称,还会出现偶次谐波。

这对工程实践有几个直接启示:第一,调压用在路灯、加热器等纯阻负载上问题不大,但用在电机类感性负载时要充分考虑谐波引起的附加损耗和转矩脉动;第二,当调压深度较大时,网侧电流畸变严重,必要时需要加装滤波器;第三,触发角不要设得太靠近边界值,比如α超过150°后波形几乎完全切断,谐波占比极高但实际调压意义不大,调压范围一般取30°到150°比较合理。

6. 波形不对先别改参数:按这几步排查

6.1 典型异常现象与原因对照

仿真过程遇到波形不正常的概率很高,多数问题都出在触发同步或门极分配上。以下是我实际调试中碰到过的问题整理:

异常现象主要原因排查方向
只有正半周有输出SCR2门极没信号或门极分配反了先看两路门极信号是否分别出现在正负半周
电流波形上下不对称两只晶闸管导通角不一致比较两路门极脉冲的起点和宽度
负载电压接近全压不可调触发角太小或进入连续模式确认α值,感性负载下检查φ关系
改变α但是输出不变比较器逻辑没有连接到门极检查θ锯齿波是否随过零同步复位
波形随机跳变仿真采样时间过大或求解器容差过大调小Ts,降低相对容差

排查的时候有一个实用原则:先看控制信号,再看主电路波形。很多人一看到输出电压不对就怀疑晶闸管模型参数,实际上90%的问题出在门极信号上。Scope里同时显示电源电压、两路门极脉冲和负载电压,首先确认脉冲的起点是否位于电源过零点附近,以及两路脉冲是否严格相隔半个周期。

6.2 参数校验顺序:门极→电压→电流→FFT

我一般按照固定的顺序校验模型,这样问题定位最快。第一步看门极信号,确认宽脉冲和电源过零点的相位关系,这是整个仿真的基石;第二步看负载电压波形,波形是截断正弦说明主电路和触发逻辑正常,只是α控制生效;第三步看负载电流,确认电流是连续还是断续,和理论对比;第四步做FFT,验证谐波水平是否符合预期。

每一步之间是递进关系。门极信号对了,电压波形才有意义;电压波形对了,电流波形才有讨论价值。跳步排查往往会浪费时间,比如电压波形不对时去分析谐波,只能看到一堆没有意义的数据。

采样时间的选择对结果影响也很大。用Discrete模式时,Ts从1e-4改成1e-5,波形精度会有明显提升,但仿真时间也增加大约10倍。交流调压这种模型收敛性相对好,我通常先用1e-4快速验证逻辑,确认触发正常后再换1e-5做精细观测,兼顾速度和精度。

6.3 仿真转硬件前最后核对的几个点

仿真跑通之后要转硬件调试,有几个参数和配置必须在仿真阶段就刻意验证,否则原型板做出来问题会很多。

门极脉冲宽度要实测。仿真里宽脉冲很容易做,但实际驱动电路如果用的是脉冲变压器耦合,宽脉冲会在磁芯上产生偏磁问题,这时候要改用双脉冲方案或高频脉冲列。仿真阶段就要把触发器设计成可以切换宽脉冲和双脉冲的结构,方便后续对比。

缓冲电路的参数值得仔细调一下。Simulink默认的Cs=250e-9、Rs=500是通用值,实际电路里要结合晶闸管的dv/dt耐量和电路杂散电感调整,仿真里可以快速验证不同缓冲参数对关断过冲的影响,这个在硬件上测量困难得多。

最后是负载特性的确认。仿真里可以随意把L设成任何值,但实物的电感参数会随温度、电流变化。建议在仿真里把L参数拉偏正负20%再做一次扫描,看看触发角固定时的输出电压波动范围,做到心里有数再做硬件。

我个人实际操作中的体会是,Simulink里的单相交流调压模型和硬件电路最大的偏差往往不是主电路参数,而是触发信号的同步质量和脉冲宽度裕量。仿真里信号同步是理想的,脉冲和过零点完全对齐,但实际硬件里过零检测有延迟、光耦有延时、驱动电路有响应时间,这些都会造成实际触发角比设定值偏大。从仿真阶段就预留出10°到15°的触发裕量,是我吃过几次亏之后总结出来的习惯。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 1:14:22

嵌入式Linux NAND Flash上yaffs2根文件系统移植实战与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:14:15

计算机图形学前四章核心:坐标系与变换矩阵实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:14:04

Vue项目视频播放方案:原生video标签组件化实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:13:52

CWRU轴承振动预处理实战:从滤波到归一化的故障诊断关键路径

1. 项目概述&#xff1a;为什么滚动轴承振动序列预处理是故障诊断的“第一道门槛”在工业设备状态监测领域&#xff0c;滚动轴承振动序列的预处理不是可有可无的“前戏”&#xff0c;而是决定后续所有分析结果是否可信的生死线。我接触过太多刚入门的工程师&#xff0c;一上来就…

作者头像 李华
网站建设 2026/10/14 1:13:52

C++ Primer Plus第四章习题解析:字符串、指针与结构体实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:13:32

贝叶斯变分推断:工业级不确定性建模的务实解法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华