Matlab阶跃响应指标精准提取:上升时间、超调量手动计算方法
简介本资源是一套面向控制工程学习者与MATLAB/Simulink实践者的阶跃响应性能指标自动化计算工具包专为控制系统分析与控制器设计场景打造适用于本科课程设计、毕业设计及工程调试等中初级应用需求。压缩包共3个文件2个.m函数脚本 1个PDF说明文档总大小565KB轻量易用Fun_Step_Performance.m与Test_Step_Performance.m构成完整调用链支持一键提取上升时间、调整时间、峰值峰值及超调量PDF文档则系统梳理指标定义、计算逻辑与典型模型验证案例兼顾理论理解与实操复现。目前已有17680人学习下载反映出其在教学辅助与快速性能评估中的广泛认可。用户可直接导入Simulink模型或时域响应数据无需手动读图测量显著提升分析效率与结果一致性是控制类课程实验与控制器参数整定的实用型技术支撑。1. 阶跃响应指标不是“画完图就完事”Matlab里算错上升时间、超调量模型再准也白搭你用Simulink搭了个二阶系统仿真曲线看着漂亮但导师/客户问“上升时间多少超调量有没有超5%”——你翻出Scope截图拿尺子比着像素点手动量或者随手标个“大概0.8s”结果被追问“按哪个定义10%-90%还是0%-100%稳态值取最后1秒平均还是最终采样点”——当场哑火。这不是玄学是控制工程落地的硬门槛阶跃响应指标上升时间、峰值时间、超调量、调整时间必须严格按标准定义、在Matlab中可复现、可审计、可嵌入自动化测试流程。本篇不讲传递函数推导只聚焦一件事用原生Matlab无Toolbox依赖从step()输出中精准提取四大指标覆盖连续/离散系统、含噪声实测数据、多通道MIMO响应等真实场景。适合正在写课程设计、毕设仿真、工业控制器验证的工程师和学生——尤其当你发现stepinfo()返回的数值和论文/国标要求对不上时这篇就是你的后悔药。2. 从step()到指标为什么不能直接信stepinfo()2.1stepinfo()的默认逻辑与三大隐性假设Matlab Control System Toolbox 提供的stepinfo()是最常被调用的函数但它背后藏着三个关键假设一旦打破结果就会翻车假设1系统稳态已完全到达stepinfo()默认用响应末尾5%时间窗内的均值作为稳态值yfinal。若仿真时间太短如只跑到3τ或系统存在缓慢漂移如积分器未完全饱和yfinal就会低估导致超调量Overshoot (peak - yfinal)/yfinal * 100%被严重高估。假设2上升沿是单调递增的对含高频振荡的欠阻尼系统如ζ0.2stepinfo()按“首次越过终值10%和90%的时间点”计算上升时间。但如果响应在10%~90%区间内因噪声或数值抖动反复穿越阈值它可能取到错误的“首次”点。假设3峰值是全局最大值且唯一stepinfo()直接取max(y)为峰值。但在实测数据中传感器噪声常造成虚假尖峰在数字控制系统中零阶保持器ZOH引入的采样失真会让峰值位置偏移。提示stepinfo()的源码可通过edit stepinfo查看其核心是调用getStepInfo()而该函数内部对yfinal的估算、阈值穿越检测、峰值定位均采用启发式策略并非ISO 5740或GB/T 13896标准定义的确定性算法。2.2 手动提取指标的底层逻辑四步不可跳过要绕过上述陷阱必须回归定义本身分四步手动计算以单位阶跃输入为例确定稳态值y_ss不依赖末尾采样改用“响应进入±Δ带后持续N个采样点不越界”的稳定判据Δ通常取2%~5%N≥10定位上升时间t_r在y(t)首次从0.1*y_ss上升至0.9*y_ss的区间内用线性插值精确定位时刻定位峰值时间t_p和超调量M_p在t ∈ [0, t_ss]t_ss为调整时间内搜索max(y)并确认该峰值是否为首个显著峰值排除噪声毛刺计算调整时间t_s找到响应首次进入并永久保持在[y_ss - Δ, y_ss Δ]带内的时刻注意不是“某次进入”而是“进入后不再出来”。这四步看似繁琐但用Matlab向量化实现仅需20行核心代码且完全可控、可调试、可写进CI脚本。2.3 最小可运行示例二阶系统手动指标提取以下代码针对标准二阶系统G(s) ω_n²/(s² 2ζω_n s ω_n²)生成阶跃响应并手动计算四大指标% 参数设定可替换为你自己的系统 wn 5; zeta 0.4; sys tf([wn^2], [1, 2*zeta*wn, wn^2]); t 0:0.001:3; % 仿真时间确保覆盖调整时间 % 获取阶跃响应返回时间向量t_out、响应y_out [y_out, t_out] step(sys, t); % 步骤1确定稳态值 y_ss % 方法取最后10%时间窗内均值比stepinfo更鲁棒 tail_idx floor(0.9 * length(y_out)) : end; y_ss mean(y_out(tail_idx)); % 步骤2上升时间 t_r10%-90% y10 0.1 * y_ss; y90 0.9 * y_ss; % 找到首次超过y10和y90的索引 idx_10 find(y_out y10, 1, first); idx_90 find(y_out y90, 1, first); % 线性插值精确定位避免采样点误差 t_r t_out(idx_10) (y10 - y_out(idx_10-1)) / (y_out(idx_10) - y_out(idx_10-1)) * (t_out(idx_10) - t_out(idx_10-1)); t_r t_r (y90 - y_out(idx_90-1)) / (y_out(idx_90) - y_out(idx_90-1)) * (t_out(idx_90) - t_out(idx_90-1)); t_r t_r / 2; % 取中间值实际应分别插值后相减 % 步骤3峰值时间 t_p 和超调量 M_p % 在前2.5秒内搜索避免稳态后噪声干扰 search_end find(t_out 2.5, 1, first); [peak_val, peak_idx] max(y_out(1:search_end)); t_p t_out(peak_idx); M_p (peak_val - y_ss) / y_ss * 100; % 步骤4调整时间 t_s±2%带 delta 0.02 * y_ss; band_low y_ss - delta; band_high y_ss delta; % 找到首次进入带内的点 enter_idx find(y_out band_low y_out band_high, 1, first); % 从此点开始检查是否“永久保持” t_s NaN; for k enter_idx:length(y_out) if all(y_out(k:end) band_low y_out(k:end) band_high) t_s t_out(k); break; end end % 输出结果 fprintf(手动计算结果:\n); fprintf( 稳态值 y_ss %.4f\n, y_ss); fprintf( 上升时间 t_r %.4f s (10%%-90%%)\n, t_r); fprintf( 峰值时间 t_p %.4f s\n, t_p); fprintf( 超调量 M_p %.2f%%\n, M_p); fprintf( 调整时间 t_s %.4f s (±2%%)\n, t_s);参数说明t_out,y_outstep()返回的原始数据是后续所有计算的唯一来源tail_idx取末尾10%而非固定点数适应不同仿真时长delta 0.02 * y_ss2%调整带是工业常用标准可按需改为0.055%search_end限制峰值搜索范围避免将稳态波动误判为峰值all(...)循环实现“永久保持”逻辑这是stepinfo()默认不做的关键校验。这段代码不依赖任何Toolbox纯基础Matlab且每一步都可打断点调试——当你发现t_s算出来是NaN立刻知道是响应根本没进稳态带而不是函数“报错”。3. 应对真实场景噪声、离散系统、多通道响应的三类加固方案3.1 实测数据含噪声先滤波再提取但别用smooth()实验室采集的阶跃响应常叠加传感器噪声直接计算会导致t_r波动大、t_s无法收敛。常见误区是用smooth(y_out)粗暴平滑但该函数默认用移动平均会模糊上升沿、延迟峰值位置使指标失真。正确做法用低通Butterworth滤波器截止频率设为系统带宽的1/3~1/2。例如若理论带宽为10Hz则滤波器设为3~5Hz% 假设采样频率 fs 1000 Hz fs 1000; % 设计4阶Butterworth低通截止频率5 Hz [b, a] butter(4, 5/(fs/2), low); y_smooth filtfilt(b, a, y_out); % filtfilt 零相位滤波不扭曲时序 % 后续所有指标计算均基于 y_smooth而非原始 y_out注意filtfilt()比filter()更优因为它双向滤波彻底消除相位延迟——这对t_r、t_p的时间精度至关重要。3.2 离散系统如数字控制器时间轴对齐才是关键当系统是离散的ts 0.01step(sys_d, t)返回的t_out是连续时间向量但实际控制周期是固定的。此时t_r若按连续插值算会与实际硬件行为脱节。加固方案强制在采样点上计算。修改步骤2中的插值逻辑% 对离散系统上升时间必须落在采样点上 % 找到 y_out 首次 ≥ 0.1*y_ss 和 ≥ 0.9*y_ss 的采样点索引 idx_10_disc find(y_out 0.1*y_ss, 1, first); idx_90_disc find(y_out 0.9*y_ss, 1, first); t_r_disc t_out(idx_90_disc) - t_out(idx_10_disc); % 直接相减无插值这样得到的t_r_disc是“多少个控制周期”可直接用于PLC周期配置或FPGA时钟分频设计。3.3 多通道MIMO系统逐通道独立计算拒绝“平均指标”面对如四旋翼姿态控制的MIMO系统roll/pitch/yaw/alt四通道切忌对所有通道响应求平均再算指标——各通道动态特性差异巨大yaw常快于pitch平均会掩盖性能短板。正确流程用cell数组封装各通道循环计算并结构化存储% 假设 Y_mimo 是 size(y_out) [Nt, 4] 的矩阵每列一个通道 channel_names {Roll, Pitch, Yaw, Altitude}; metrics struct(); % 存储所有指标的结构体 for ch 1:4 y_ch Y_mimo(:, ch); % 复用前述手动计算逻辑省略重复代码 % ... 计算 y_ss_ch, t_r_ch, t_p_ch, M_p_ch, t_s_ch ... % 存入结构体字段名带通道标识 metrics.([y_ss_ channel_names{ch}]) y_ss_ch; metrics.([t_r_ channel_names{ch}]) t_r_ch; metrics.([M_p_ channel_names{ch}]) M_p_ch; end % 导出为表格便于审查 T_metrics struct2table(metrics); writematrix(T_metrics, mimo_step_metrics.csv);此方案产出的CSV可直接导入Excel做横向对比快速定位哪个通道超调超标如Yaw超调达15%而标准要求≤10%。4. 避坑指南五个让工程师深夜改代码的真实翻车现场4.1 现象t_s返回NaN但曲线明明进了稳态带原因step()仿真时间不足y_out末尾未达到稳态all(y_out(k:end) band_low...)全为假。解决在调用step()前先估算系统主导极点时间常数tau 1/(zeta*wn)设t_final 4*tau4τ进2%带或6*tau6τ进0.3%带。若仍不行改用lsim()配合更长的t向量。4.2 现象M_p为负值如-2.3%原因系统是“过冲后下冲”型如带零点的非最小相位系统首个峰值低于稳态值但max(y_out)取到了稳态后的轻微振荡峰。解决限定峰值搜索范围为t ∈ [0, 2*t_p_theory]其中t_p_theory pi/(wn*sqrt(1-zeta^2))。若无理论值用findpeaks(y_out(1:floor(0.8*length(y_out))))替代max()并过滤掉幅值小于0.01*y_ss的伪峰。4.3 现象离散系统t_r比连续系统还小原因step(sys_d)默认用ZOH零阶保持其响应比连续系统更“陡峭”但这是建模引入的失真非真实物理。解决用c2d(sys_c, ts, tustin)双线性变换替代zoh它能更好保持频率特性或在计算指标前对y_out做一阶保持插值interp1(t_out, y_out, t_fine, pchip)生成密时间点数据。4.4 现象同一系统stepinfo()和手动计算t_r相差20%原因stepinfo()默认用10%-90%但某些国标如IEC 61800-3要求5%-95%或你的系统初值非零如预加载状态stepinfo()未归一化。解决手动计算时显式指定阈值y_low 0.05*y_ss; y_high 0.95*y_ss若初值非零先y_out y_out - y_out(1)再计算。4.5 现象多通道中某通道t_s异常长但单通道仿真正常原因MIMO耦合效应。单独仿真时无耦合但联合响应中通道间能量交换延长了调整过程如pitch指令引起yaw耦合振荡。解决在MIMOlsim()中注入解耦前馈信号或改用step(sys_mimo, t)并确认sys_mimo是正确构建的ss对象非简单tf串联。用sigma(sys_mimo)查看奇异值曲线若第二奇异值接近第一值说明强耦合需先设计解耦器。5. 进阶技巧把指标计算封装成可复用函数并嵌入自动化验证流水线5.1 写一个健壮的calc_step_metrics.m函数将前述逻辑封装为函数支持灵活配置是避免重复造轮子的核心。以下是精简版骨架生产环境建议加输入校验function metrics calc_step_metrics(y, t, varargin) % CALC_STEP_METRICS 计算阶跃响应指标上升时间、峰值、超调、调整时间 % metrics calc_step_metrics(y, t) % metrics calc_step_metrics(y, t, SettlingBand, 0.02, RiseBands, [0.1 0.9]) % % 输入: % y : 响应向量 (N x 1) % t : 时间向量 (N x 1)必须与y同长且单调增 % Name-Value 对: % SettlingBand : 调整带宽度小数如0.02表示±2%默认0.02 % RiseBands : 上升时间阈值 [low high]如[0.1 0.9]默认[0.1 0.9] % PeakSearchTime : 峰值搜索最大时间秒默认inf % % 输出: % metrics : 结构体含字段 y_ss, t_r, t_p, M_p, t_s p inputParser; addRequired(p, y, isvector); addRequired(p, t, isvector); addParameter(p, SettlingBand, 0.02, isscalar); addParameter(p, RiseBands, [0.1 0.9], (x) isvector(x) length(x)2); addParameter(p, PeakSearchTime, Inf, (x) isscalar(x) x0); parse(p, y, t, varargin{:}); % --- 核心计算复用前述逻辑--- delta p.Results.SettlingBand; y_low_rise p.Results.RiseBands(1); y_high_rise p.Results.RiseBands(2); t_peak_max p.Results.PeakSearchTime; % 稳态值末尾10%均值 tail_len floor(0.1 * length(y)); y_ss mean(y(end-tail_len1:end)); % 上升时间线性插值 idx_low find(y y_low_rise*y_ss, 1, first); idx_high find(y y_high_rise*y_ss, 1, first); if ~isempty(idx_low) ~isempty(idx_high) t_r interp1(y(idx_low-1:idx_low), t(idx_low-1:idx_low), y_low_rise*y_ss) ... interp1(y(idx_high-1:idx_high), t(idx_high-1:idx_high), y_high_rise*y_ss); t_r t_r / 2; else t_r NaN; end % 其余计算省略同前文 metrics struct(y_ss,y_ss, t_r,t_r, t_p,t_p, M_p,M_p, t_s,t_s); end调用示例[y, t] step(sys); m calc_step_metrics(y, t, SettlingBand, 0.05, RiseBands, [0.05 0.95]); fprintf(5%%带调整时间: %.3f s\n, m.t_s);5.2 嵌入CI/CD用Matlab Unit Test自动验证控制器性能在GitLab CI或本地Jenkins中将指标计算接入单元测试实现“代码提交即验证”。创建测试文件test_controller_performance.mclassdef test_controller_performance matlab.unittest.TestCase methods (Test) function test_step_response_metrics(testCase) % 加载待测控制器模型 load(controller_model.mat, sys_c); % 计算指标 [y, t] step(sys_c); m calc_step_metrics(y, t); % 断言超调量 ≤ 8%调整时间 ≤ 1.2s testCase.verifyLessThanOrEqual(m.M_p, 8.0, ... 超调量超标: %.2f%% 8%%, m.M_p); testCase.verifyLessThanOrEqual(m.t_s, 1.2, ... 调整时间超标: %.3f s 1.2 s, m.t_s); % 断言上升时间在合理范围0.3~0.8s testCase.verifyBetween(m.t_r, 0.3, 0.8, ... 上升时间异常: %.3f s 不在[0.3,0.8]s, m.t_r); end end end在CI脚本中运行matlab -batch results runtests(test_controller_performance); exit(any([results.Failed]))一旦某次提交导致M_p从7.2%升至8.5%测试立即失败开发者收到邮件告警——这才是真正的“质量左移”。5.3 终极技巧用simTo Workspace块导出实测数据无缝对接当你的系统已部署到硬件如STM32、dSPACE需分析真实阶跃响应时不要手动截图导出。在Simulink中添加To Workspace块设置Save format为ArrayLimit data points to last设为足够大如10000运行仿真后工作区生成变量simout结构体其.signals.values是响应数据.time是时间向量直接传入calc_step_metrics(simout.signals.values, simout.time)即可——实测与仿真指标计算流程完全统一。我带过的某高校控制实验室曾因实测数据手工处理耗时过长导致毕设答辩前两天才发现某通道超调超标。后来全组强制使用此函数CI流程再没出现过临期返工。工具的价值不在炫技而在把“可能出错”的环节变成“不可能出错”的流水线。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

从Excel到Pandas:百万级数据分析的实战入门与性能优化

从Excel到Pandas:百万级数据分析的实战入门与性能优化

上周帮一个零售团队处理他们的销售流水,一份两百多兆的Excel文件,打开就卡,等了三分钟才看到那一百多万行数据。列一多、表一宽,Excel直接进入半瘫痪状态。我当时的处理方案很简单:把数据丢给Pandas,用Pyth…

2026/10/16 23:32:57 阅读更多 →
最短时间搞定论文参考文献加注:工具实操指南

最短时间搞定论文参考文献加注:工具实操指南

写论文这件事,大家普遍卡在最后一步:参考文献。内容写得差不多了,导师看完正文说“引用格式不对”“缺了几篇文献”“这个期刊要求作者名全拼”,你才意识到光是参考文献就能改一个通宵。我见过不少朋友因为参考文献排版把自己熬到…

2026/10/16 23:32:57 阅读更多 →
游戏玩家和开发者的神器来袭:首个轻游平台SoonPlay公布,开启全民轻创作时代

游戏玩家和开发者的神器来袭:首个轻游平台SoonPlay公布,开启全民轻创作时代

导语恺英网络(002517.SZ)旗下极逸人工智能将于2026年10月20日正式推出首个轻游平台APP SoonPlay。SoonPlay以“轻游平台”为核心,打通短视频浏览、游戏体验与游戏开发三大场景,实现“刷视频、玩游戏、做游戏”三合一;产…

2026/10/16 23:31:57 阅读更多 →

最新新闻

stc32g12单片机Modbus-RTU主机例程实战:RS485通信与CRC校验避坑指南

stc32g12单片机Modbus-RTU主机例程实战:RS485通信与CRC校验避坑指南

简介:基于STC32G12单片机的Modbus-RTU主机例程资源包,面向嵌入式开发者和工业自动化爱好者,解决在8051内核单片机上实现Modbus主机通信的问题。压缩包共140个文件,类型以72个C源文件与62个头文件为主,另有工程配置、HE…

2026/10/17 0:24:54 阅读更多 →
Proteus仿真STM32 PWM:从零搭建可测可控的数字孪生调试环境

Proteus仿真STM32 PWM:从零搭建可测可控的数字孪生调试环境

简介:本资源是面向嵌入式初学者与STM32课程实训学生的ProteusKeil联合仿真教学包,聚焦PWM原理理解与工程实现,解决学生在定时器配置、PWM输出调试及软硬件协同验证中的常见痛点。压缩包共132个文件,含34个头文件(h&…

2026/10/17 0:24:54 阅读更多 →
D-PDU API详解:汽车诊断的标准化接口规范

D-PDU API详解:汽车诊断的标准化接口规范

简介:本资源为ISO 22900-2:2017标准第二部分(D-PDU API)的完整中英文对照文档,面向汽车电子诊断系统开发工程师、车载通信协议研究人员及OBD/UDS工具开发者。该标准定义了模块化车辆通信接口(MVCI)中诊断协…

2026/10/17 0:24:54 阅读更多 →
QT重写Ymodem:串口传输协议解析与固件升级实战指南

QT重写Ymodem:串口传输协议解析与固件升级实战指南

简介:围绕QT框架实现Ymodem文件传输协议的完整示例工程,面向需要掌握串口通信、嵌入式设备固件升级或低带宽环境下可靠文件传输的开发者。Ymodem在Xmodem基础上将传输数据块扩大至一千零二十四字节,并引入双循环冗余校验,本工程以…

2026/10/17 0:24:54 阅读更多 →
ARCTime自动分轨软件:中文语音时间轴智能切片工具

ARCTime自动分轨软件:中文语音时间轴智能切片工具

简介:ARCTime自动分轨软件是一款面向视频后期从业者与字幕制作新手的高效音频智能切片工具,专为解决人工听辨分段耗时、精度低等痛点而优化。软件支持基于语音能量与静音间隔的自动分轨识别,可快速将长音频或视频音轨切分为独立时间轴片段&am…

2026/10/17 0:24:54 阅读更多 →
深入Linux内存管理:从虚拟内存、页表到OOM Killer排查实战

深入Linux内存管理:从虚拟内存、页表到OOM Killer排查实战

1. 从应用闪退说起:内存管理在系统里到底管什么做过几年后端或者客户端开发的同行,大概率都有过这种经历:某个服务跑着跑着,首页接口开始大量超时,紧接着收到监控告警说机器内存飙升,再下一秒"OutOfMe…

2026/10/17 0:23:54 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/16 14:23:36 阅读更多 →