简介《ABAQUS蠕变问题计算流程》面向从事有限元仿真、材料长期变形与寿命评估的工程师及学习者聚焦高温、高应力环境下塑料、金属合金等材料的蠕变数值模拟问题属于偏入门到进阶的流程型文档。压缩包内含1个doc文档约198KB以图文结合的方式梳理从静态加载到蠕变分析的两阶段流程对几何非线性、增量步增长策略及分析步设置均有交代便于按步骤查阅和对照操作。内容重点讲解蠕变模型参数的获取包括Power-law模型的Time hardening与Strain hardening形式、利用蠕变曲线族拟合确定材料参数并说明蠕变应变容差1E-41E-6、积分算法及边界条件等关键设置可帮助读者理解建模思路、判断参数取值并排查常见配置问题。已有1163人学习适合作为ABAQUS蠕变分析入门、课程参考与流程速查资料。1. 为什么要把蠕变拆成两个分析步先算清一笔长时变形的账拿一个塑料卡扣件做例子装配时它在几秒内被压到位之后在 60℃ 环境里挂上几年靠自身弹性撑着。短时加载用静力算长时变形就得用 ABAQUS 蠕变有限元流程去推。直接把加载和几年蠕变塞进一个分析步收敛难度高出了问题也分不清是加载阶段没算准还是材料参数本身有问题。这套流程的做法是把问题切成两段先用与时间无关的静态加载步拿到应力场再用专门的蠕变分析步把时间轴拉开。前者解决“装上瞬间受多大力”后者解决“三年后变形多少、应力松弛到什么程度”。适合做塑料件、高温紧固件、长期承载结构评估的人也适合刚接触 *VISCO 分析步、被增量步和容差折腾过的同行。下面按设置顺序拆开讲每一步都落到关键字和参数上。2. 静态加载步怎么设几何非线性、增量步与收敛口径2.1 先决定几何非线性开不开别默认关着静态加载步的作用只有一个在蠕变开始前把结构的应力场算到一个可信的状态。这个步与时间无关ABAQUS/Standard 里对应*STATICCAE 里是 Static, General。很多人习惯性不勾 NLGEOM等到蠕变步里变形量跑到几十毫米才回头改结果两阶段的应力口径不一致前一步的应力场没法直接用。判断标准不复杂预估总变形量与构件特征尺寸之比超过 5%就打开几何非线性。塑料蠕变件尤其如此长期载荷下变形往往是百分之几到十几静力步虽然只算瞬时响应但后续蠕变步若开 NLGEOM静力步也应保持同一设置避免参考构型从“变形前”跳到“变形后”引发应力重分布的口径差。另一个容易被忽略的点是材料模型。静力步里如果定义了塑性蠕变步里蠕变与塑性会同时激活ABAQUS 会把两者做耦合迭代收敛难度上升。把加载和蠕变拆成两步本质上是让静力步先把塑性变形“消耗”掉蠕变步里应力水平相对稳定Time hardening 形式的幂律模型才有成立的前提。这也是原材料里提到的“降低蠕变应变与其他非弹性应变耦合程度”的实际含义。2.2 增量步不是越小越好要看载荷曲线*STATIC的数据行是四个数初始增量、分析步总时间、最小增量、最大增量。这里的“时间”是加载过程的伪时间跟物理蠕变时间没有关系。常见写法是初始增量给总时间的 5%最大增量给 10%最小增量压到 1e-6 量级兜底。载荷施加方式决定增量步能否走顺。如果载荷是阶跃式的装配力瞬间加上建议在静力步里用固定增量或较小的最大增量让接触和塑性充分建立如果是缓慢拧紧的过程用默认的自动增量即可。真正需要盯的是.sta文件里的 STEP TIME 是否走满、.msg里有没有 “too many attempts” 的循环。静力步没收敛就往下接蠕变步后面所有结果都是建在错误初应力上的这类返工最费时间。接触问题要额外注意。静力步里接触还没建立稳定蠕变步里法向力会随变形漂移出现“接触面反复开合”的振荡。稳妥做法是在静力步末尾加一个很小的保载增量或者用接触稳定化把初始过盈量消化掉再进入蠕变步。2.3 从 CAE 到 INP静态步的关键字落地CAE 里点选完成后建议导出 INP 逐行核对尤其是 NLGEOM、增量步上下限和输出请求。下面是一段可复用的静态步骨架** ---- 静态加载步只算瞬时响应不涉及时间 ---- *STEP, NAMELOAD, NLGEOMON, INC200 *STATIC 0.05, 1.0, 1e-6, 0.1 ** 边界条件装配面固定注意不要过约束 *BOUNDARY FIXED-1, 1, 3, 0.0 ** 载荷集中力或 pressure按实际工况给 *CLOAD LOAD-1, 2, -1200.0 ** 只输出应力和位移蠕变应变在这一步没有意义 *OUTPUT, FIELD, FREQUENCY1 *ELEMENT OUTPUT S, E, U, RF *END STEP第一行NLGEOMON打开大变形INC200是增量步上限防止自动增量失控时无限切分。*STATIC后面的四个数依次是初始增量 0.05、总伪时间 1.0、最小增量 1e-6、最大增量 0.1。最小增量不要设成 0否则增量被压到机器精度时 ABAQUS 只会报数值奇异看不出真实原因。*OUTPUT, FIELD, FREQUENCY1表示每个增量都写场输出静力步增量数不多这样设置便于后续检查应力云图有没有异常尖峰。跑完后先看三样东西.sta里是否出现 “THE ANALYSIS HAS COMPLETED SUCCESSFULLY”.msg里有没有零主元或负特征值警告后处理里接触面的 CPRESS 是否连续。三项都干净再进入蠕变参数和蠕变步的设置。3. 蠕变模型参数怎么来Power-law 三参数拟合的完整链路3.1 Time hardening 与 Strain hardening 的边界在哪ABAQUS 提供的蠕变模型里幂律模型分时间硬化形式和应变硬化形式另有双曲正弦律。三者不是随便挑一个就行选错形式拟合出来的参数在自己的工况下会明显偏离。时间硬化形式的微分表达是等效蠕变应变率等于 A 乘以等效应力的 n 次方再乘以时间的 m 次方。它的隐含假设是蠕变速率只跟当前应力和当前时间有关跟已经积累了多少蠕变应变无关。所以应力变化范围不大的恒载工况用它最省事三个参数也容易从曲线族拟合出来。应变硬化形式把时间替换成累积蠕变应变适合应力水平会变化、甚至出现卸载和松弛的场景。比如先加载再保载、或者多个载荷台阶依次施加时间硬化形式会把“历史”丢掉算出来的蠕变偏大或偏小。判断依据很直接工况里等效应力变化幅度超过 20%就应考虑应变硬化形式。双曲正弦律带一个应力尺度参数适合应力跨度大、跨越屈服附近甚至更高温区的材料。它的参数更多拟合需要的数据点也更密普通塑料件在常温到 60℃ 区间内用幂律足够不必上双曲正弦。模型形式关键参数适用工况拟合难度Time hardeningA、n、m恒载、应力变化小于 20%低三参数Strain hardeningA、n、m变载、松弛、多台阶加载中需迭代应变历史Hyperbolic-sineA、B、n、m高应力、宽温域、跨屈服高需多温度曲线3.2 把积分形式写进拟合脚本别拿微分形式硬套实验给的是蠕变曲线族不同应力水平下蠕变应变随时间的变化。微分形式描述的是斜率直接拿去拟合曲线会放大测量噪声。正确做法是先积分。恒应力下时间硬化形式积分后蠕变应变等于 A 除以 m1乘以应力的 n 次方再乘以时间的 m1 次方。注意 m 通常为负m1 小于 1曲线在双对数坐标下是一条直线斜率为 m1。下面这段脚本用最小二乘在双对数空间拟合避免应变跨几个数量级时高应变段主导残差import numpy as np from scipy.optimize import least_squares # 实验曲线族行是时间点(h)列是应力水平(MPa) t np.array([0.0, 100.0, 300.0, 600.0, 1000.0]) q_levels np.array([10.0, 20.0, 30.0, 40.0]) # 每一列对应一个应力水平的蠕变应变按实际试验数据替换 eps np.array([ [0.0000, 0.0000, 0.0000, 0.0000], [0.0012, 0.0031, 0.0058, 0.0094], [0.0021, 0.0054, 0.0102, 0.0168], [0.0030, 0.0078, 0.0149, 0.0246], [0.0039, 0.0102, 0.0196, 0.0325], ]) def creep_strain(p, q, tt): A, n, m p return A / (m 1.0) * q ** n * tt ** (m 1.0) def residual(p): model np.zeros_like(eps) for j, q in enumerate(q_levels): model[:, j] creep_strain(p, q, t) # 对数残差低应变段和高应变段权重接近 mask eps 0 return (np.log(model[mask]) - np.log(eps[mask])) # 初值A 取 1e-8 量级n 取 2~4m 取负值 p0 [1e-8, 3.0, -0.5] # 上下界防止 n、m 跑飞A 必须为正 bounds ([1e-15, 0.5, -0.95], [1e-2, 10.0, -0.01]) res least_squares(residual, p0, boundsbounds, xtol1e-12, ftol1e-12) A, n, m res.x print(A%.6e n%.4f m%.4f % (A, n, m)) print(残差范数%.6e % res.cost)creep_strain里的除法A/(m1.0)就是积分带来的系数漏掉它拟合出的 A 会整体偏大 (m1) 倍回填到材料卡后蠕变速率对不上。residual用对数差而不是绝对差是因为应变从 1e-4 到 1e-2 跨两个数量级绝对残差会让高应变点独占权重低应力曲线拟合得很差。bounds把 m 限制在 -0.95 到 -0.01m 接近 -1 时分母趋零参数失去物理意义n 限制在 0.5 到 10超出这个范围的幂律指数通常意味着试验数据本身有问题。xtol、ftol收到 1e-12 是为了让参数稳定在四位有效数字上否则同一批数据跑两次结果会在第三位跳动。拟合完必须做回代检查把 A、n、m 代回积分式逐点算残差百分比超过 15% 的点要回头看试验数据是不是有异常。双对数坐标下画一条拟合直线和散点斜率明显弯曲说明该换应变硬化形式或者分温度段拟合。3.3 参数回填材料卡与量纲核对CAE 里路径是 Property 模块下的 MaterialMechanical 中的 Plasticity 下面找 CreepLaw 选 Time填入 A、n、m。对应的关键字是*CREEP, LAWTIME。这里最常见的错误是时间单位。A 的量纲里带时间的负 (m1) 次方。试验数据时间是小时A 就是小时制模型里*VISCO的总时间用的是秒两者差 3600 的 (m1) 次方倍。m 等于 -0.5 时这个倍数是 60 左右结果直接差两个数量级。所以拟合脚本里时间用什么单位输入文件里就必须用什么单位中间不做任何换算。我一般会在材料卡旁边写一行注释标明 A 对应的时间单位下一次改模型时不用猜。温度相关的曲线族要按温度分表*CREEP配合*TEMPERATURE定义场变量依赖。别把不同温度的曲线混在一起拟合出一组参数那不是材料特性是数学平均。4. 蠕变分析步时间、容差与积分算法的联动4.1 总时间与时间单位必须先对齐蠕变是时间相关过程惯性效应可以忽略ABAQUS 为此提供了专门的*VISCO分析步CAE 里是 Procedure type 选 General 下的 Visco。这个步的数据行是四个数初始增量、蠕变总时间、最小增量、最大增量。总时间直接对应设计寿命。做三年评估单位是小时就填 26280单位是秒就是 9.46e7。这一步没有“归一化”的说法填多少就算多少。初始增量建议给总时间的 1e-5 到 1e-4让求解器从小步起步避免第一个增量就因为蠕变应变跳变而 cutback。最大增量不要给得太豪放恒载下蠕变速率平缓最大增量给总时间的 1% 到 5% 通常够用如果结构里有应力集中区最大增量再收一半。判断时间单位是否自洽有个便宜的办法先跑一个 24 小时的小算例看蠕变应变量级是否和材料曲线对得上对不上就先查单位别急着调容差。4.2 CETOL 决定增量步密度1e-4 到 1e-6 是常用区间*VISCO上的 CETOL 是蠕变应变误差容差控制每个增量内蠕变应变的局部积分误差。它不控制总误差但直接决定增量步大小容差收紧一个数量级增量步数大致也上去一个数量级。常用区间是 1e-4 到 1e-6。第一次算建议用 1e-4 跑通流程看.sta里的增量步数量和总耗时确认模型没问题后再收到 1e-5 做正式结果。直接上 1e-7 甚至更小增量步会被压到 1e-9 量级一个三年工况跑几十万步磁盘先满人先崩。原材料里提到“容差设得很小增量步也将降低”说的就是这个联动关系。收敛困难的模型除了放宽容差还可以看.msg里是哪一类迭代在拖后腿。如果是接触反复迭代问题在接触设置如果是蠕变应变增量过大触发 cutback才轮到调 CETOL。4.3 提交、监控与输出频率下面是一段蠕变步的完整关键字接在静态步后面** ---- 蠕变步恒载、长时间、惯性忽略 ---- *STEP, NAMECREEP, NLGEOMON, INC100000 *VISCO, CETOL1e-5 1e-4, 26280., 1e-8, 500. ** 重启文件便于后续续算或参数扫描 *RESTART, WRITE, FREQUENCY100 ** 场输出降频避免 odb 膨胀 *OUTPUT, FIELD, FREQUENCY50 *ELEMENT OUTPUT S, E, CE, CEEQ *NODE OUTPUT U, RF *END STEP*VISCO, CETOL1e-5指定容差下一行四个数依次是初始增量 1e-4 小时、总时间 26280 小时三年、最小增量 1e-8、最大增量 500 小时。INC100000是增量上限长时间工况建议给足否则算到一半报 “too many increments” 停在半路。*RESTART, WRITE, FREQUENCY100每 100 个增量写一次重启文件参数扫描或中途改工况时能省掉重算。输出变量里CE是蠕变应变分量CEEQ是等效蠕变应变这两个是判断蠕变是否进入稳定阶段的直接依据。FREQUENCY50表示每 50 个增量写一次场输出配合 CETOL 1e-5odb 大小可控。如果不设频率默认每个增量都写长时工况的 odb 能到几十 GB后处理打开都费劲。提交命令用abaqus jobcreep_run inputcreep.inp cpus4 interactivecpus4按机器核数给蠕变步的并行效率一般核数太多收益有限。跑起来后盯.sta的 STEP TIME 进度和增量步长变化增量步长稳定增长说明积分顺利反复在某个值附近 cutback 说明该位置有应力突变或接触振荡。5. 常见问题排查五类翻车现场与处理顺序5.1 五条踩坑记录每条都能对上号现象一蠕变曲线前段异常陡之后才变平。原因是在蠕变步里重新定义了载荷。ABAQUS 在后续分析步中修改载荷时默认按斜坡加载这段斜坡占用了蠕变总时间相当于多了一次加载过程早期应变自然偏大。解决方式很简单静力步施加过的载荷在蠕变步里不要再写一遍确实需要改用幅值曲线定义阶跃或者确认OPNEW后的载荷与上一步完全一致。现象二增量步数暴涨总时间几乎走不动。原因多半是 CETOL 设得过小或者模型里有局部应力奇异点蠕变应变率在奇异点附近发散求解器被迫不断切分增量。先看.msg里 cutback 发生在哪个单元若是尖角或点载荷处的单单元做网格细化或圆角处理比调容差有效容差本身先放回 1e-4 试算。现象三蠕变应变量级和材料曲线差几十倍。原因是时间单位不一致。拟合时用小时输入时*VISCO总时间用秒A 的幂次被放大 3600 的 (m1) 次方倍。核对方法是拿一个单单元模型恒应力下跑 100 小时解析解和有限元结果对不上就查单位不要先怀疑网格。现象四静力步用稳定化算完蠕变步应力场明显偏低。原因是稳定化引入的阻尼力没有完全衰减人为压低了应力。检查.sta里的稳定化耗散能与内能之比超过 5% 就说明阻尼还在起作用。处理方式是在静力步后加一个短的保载步让阻尼衰减或者减小稳定化因子重算。现象五odb 文件巨大后处理卡死。原因是场输出频率默认跟随增量而蠕变步增量数动辄上万。解决方式是显式设置*OUTPUT, FIELD, FREQUENCYN或者用TIME INTERVAL按物理时间等间隔输出。需要连续曲线时单独输出CEEQ这种标量到历史输出比全场输出省得多。5.2 排查顺序先初值、再单位、后容差遇到结果不对按这个顺序走能少绕路。第一步查静力步是否收敛、应力场是否合理初应力错了后面全错第二步查时间单位和 A 的量纲是否一致用单单元算例做解析对照第三步才看 CETOL 和增量步设置容差只影响精度和效率不会把结果改变一个数量级。把这三步倒过来做很容易在容差上反复折腾最后发现是单位错了。日志里两个位置要养成习惯看.msg里搜索 “CUTBACK” 和 “ZERO PIVOT”前者定位增量失败的位置后者定位约束不足或接触未建立。.dat文件里的单元质量检查也别跳过蠕变对大变形敏感畸变单元会让结果失真。6. 结果验证与一个省时间的技巧拿重启做参数扫描算完不等于算对。蠕变结果至少过三关。第一关是量级关取一个应力水平已知的区域把有限元算出的等效蠕变应变和材料曲线在同一时间点对比偏差超过 20% 就要回头查参数拟合。第二关是趋势关恒载下蠕变应变对时间在双对数坐标里应接近直线斜率约等于 m1曲线明显上翘说明进入了第三阶段蠕变而幂律模型本身不含第三阶段这时候结果只能作为保守估计。第三关是守恒关蠕变过程中总应变由弹性、塑性、蠕变三部分组成卸载后弹性部分恢复剩下的不可恢复量要能和手算对上对不上通常是边界条件或材料定义漏了项。参数扫描是蠕变分析里最耗时的活。改一次 A 或 m 就要重跑三年工况硬算不现实。我的做法是先用静力步加短时蠕变步比如 100 小时把流程跑通确认*RESTART, WRITE正常生成重启文件再用重启续算长时工况。重启的关键字是*RESTART, READ, STEPn, INTERVALk从第 n 个分析步的第 k 个增量接着算。做敏感性分析时保持静力步结果不变只重启蠕变步并改材料参数能省掉重复的加载计算。# 第一轮短时蠕变生成重启文件 abaqus jobcreep_short inputcreep_short.inp cpus4 interactive # 第二轮从蠕变步的最后一个增量续算到三年 abaqus jobcreep_long inputcreep_long.inp oldjobcreep_short cpus4 interactive第一条命令跑短时工况重点是确认.res文件正常写出、增量步没有异常 cutback。第二条命令用oldjob指向上一轮作业读取重启文件续算输入文件里对应的*RESTART, READ要写清从哪个分析步、哪个增量开始。这样参数扫描时只需要替换材料卡里的 A、n、m静力步的结果直接复用。还有一个细节蠕变步和静力步的 NLGEOM 设置要一致重启时如果改了 NLGEOMABAQUS 会按新设置重算参考构型等于把前面的应力场作废。我曾经在扫描时图省事只改了材料参数没检查这一步结果三组曲线里有一组整体偏移查了大半天才发现是重启文件对应的设置和输入文件不匹配。从那以后每次续算前我都强制把*STEP行的 NLGEOM、*VISCO的 CETOL 和材料卡的时间单位三处对一遍再提交作业。希望这些步骤能帮你少走一遍弯路。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
叉车型AGV电气安全:车架隔离与故障可预测设计 简介:这份PDF讲义围绕叉车型AGV的EN 1175-1:1998A1:2010电气安全要求展开,面向AGV电气设计、安全评估、检测认证及设备维护人员,帮助读者把标准条款落实到整车电气架构与合规检查中。内容从适用范围与一般要求切入,逐项讲解防止直… · 2026/11/3 3:09:31
不变学习中的环境标签失效问题与解决方案 1. 项目概述:当不变学习遭遇环境标签失效在机器学习领域,不变学习(Invariant Learning)一直是提升模型泛化能力的重要方法。其核心假设是:存在某些跨环境不变的预测规律,而模型应该学习这些不变性而非虚假相… · 2026/11/3 3:09:31
SSE协议性能测试工具开发与实战指南 1. 项目概述:当性能测试遇上AI流式输出去年在给某金融客户做压力测试时,我们团队遇到了一个棘手问题——他们的AI客服系统采用SSE(Server-Sent Events)协议推送实时响应,而市面上主流测试工具对这类长连接流式输出的支… · 2026/11/3 3:09:31
深入理解try-catch异常处理机制与最佳实践 1. 异常处理机制的本质与价值在编程实践中,错误和异常无处不在。从文件读取失败到网络请求超时,从空指针引用到数组越界,这些意外情况随时可能中断程序的正常执行流程。异常处理机制正是为了解决这类问题而诞生的编程范式,它允许开… · 2026/11/3 3:44:37
水电站数字化改造:振动声纹与多物理场分析提升5%发电效率 1. 老旧电站的"盲维"困境:看不见的5%收益去哪了?在电力行业摸爬滚打十几年,我发现一个有趣的现象——许多运行超过15年的老电站,明明设备没坏、发电量报表也正常,但实际收益总比设计值低5%左右。这个数字就像… · 2026/11/3 3:44:37
风暴事件影像数据集拆解:多源数据清洗与防泄漏划分 做极端天气相关影像任务的人,往往栽在第一步:拿到一份 Storm Event Imagery Dataset,看它有分类目录、有标签文件,直接套一个现成的骨干网络跑训练,验证集准确率九十几,交差时信心满满,一上真实… · 2026/11/3 3:44:37
LeetCode Hot100打卡:算法刷题技巧与实战经验 1. 项目概述"hot100打卡——day10"这个标题看似简单,却蕴含着程序员群体中一个非常流行的学习方式——算法刷题打卡。作为一名经历过校招和跳槽的老程序员,我深知坚持刷题的重要性,也明白大多数人最难的就是保持每日练习的节奏。ho… · 2026/11/3 3:44:37
大模型微调必备:Conda虚拟环境搭建与管理指南 1. 虚拟环境:大模型微调的第一道防线在开始大模型微调之前,环境隔离是每个开发者必须重视的基础工作。我见过太多因为环境冲突导致项目失败的案例——某个依赖库版本不兼容,或者系统Python环境被污染,都可能让后续的微调工作功亏一… · 2026/11/3 3:44:37
DeepSeek本地部署:Ollama+ChatBox跑通7B模型 简介:这是一份面向 DeepSeek 使用者的本地部署教程文档,适合对在线服务稳定性不满、重视隐私与响应延迟的爱好者及有一定操作经验的人士,用于在网络拥堵或服务不可用时保障研究和工作连续进行,并兼顾个人隐私保护与本地响应速度。… · 2026/11/3 3:43:37
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18