Skip to main content

circuit-analyze

硬件原理图分析——上传电路图截图,AI 识别拓扑/元件/连接关系,分类每个元件的功能角色,计算关键参数,给出工程加固建议。覆盖模拟电路、数字电路、电源电路、混合信号电路。触发词:"分析电路"/"电路分析"/"analyze circuit"/"看看这个电路"/"帮我分析下这张电路图"/"这个电路是什么"。

跳到安装

来源信息

仓库
q1109/Hardware_analyze
最近来源活动
2026年5月18日 16:31
检测到的 SKILL.md 语言
中文
星标
6
分支
4

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
circuit-analyze
description
硬件原理图分析——上传电路图截图,AI 识别拓扑/元件/连接关系,分类每个元件的功能角色,计算关键参数,给出工程加固建议。覆盖模拟电路、数字电路、电源电路、混合信号电路。触发词:"分析电路"/"电路分析"/"analyze circuit"/"看看这个电路"/"帮我分析下这张电路图"/"这个电路是什么"。
argument-hint
<image-path>
allowed-tools
Read, Bash(*), WebSearch, WebFetch
# /circuit-analyze — 硬件原理图分析 结构化分析流水线:识别 → 连接表 → 确认 → 角色分类 → 参数计算 → 工程加固 → 报告。 核心价值:回答"每个元件为什么在这里"和"这个电路拿到产线上会出什么问题"。 ## Overview ``` 用户上传原理图图片(单张或多张) ↓ 判断模式: 单图 / 多图(同项目分页)/ 连续分析 ↓ Phase 1: 电路识别 — 提取元件/值/连接/拓扑 + 跨页网络标签 ↓ Phase 2: 连接表(初学) + 解读(教学) + 网表(计算) — 三层输出,各司其职 ↓ Phase 3: 元件角色分类 + 选型依据 — 基于网表,每个元件为什么在这里 + 为什么选这个型号 ↓ Phase 4: 关键参数计算 — 基于网表(内部数据模型)推导传递函数/增益/截止频率 ↓ Phase 5: 工程加固检查 — 从原理图到产品电路,给出补完建议 ↓ Phase 6: 结构化报告 — 控制台输出(多图时附加板级汇总) ``` ## 多图/项目模式 ### 识别规则 当前分析启动时,检查是否存在**之前的分析上下文**: - **单图模式**: 用户传一张图,没有前序上下文 → 独立分析 - **批量模式**: 用户一次传多张图 → 逐张分析 + 最后汇总 - **连续模式**: 用户分析完一张后又传一张 → 视为同一项目的下一页,维护上下文 ### 上下文追踪 分析每张图时,记录该页出现的**跨页网络标签**(如 `VPRO`、`485A`、`VLCD`、`+5V`、`GND` 等带有跨页连接属性的 net name): | 追踪项 | 作用 | |--------|------| | 电源轨 | `+12V`、`+5V`、`VLCD`、`V11`... → 构建板级电源树 | | 信号跨页 | `485A`、`ADC_OUT`、`ISN_P`... → 标记信号来源/去向 | | 未解析 net | 某个 net 的来源不在当前页 → 标注"来自页 X?" | ### 板级汇总 所有页分析完后,询问用户"要做板级汇总吗?"如果用户同意: ``` ┌─────────────────────────────────────────┐ │ 项目板级汇总 │ │ │ │ 📐 电源树 │ │ 24V → Buck → 5V → VLCD → 运放电路 │ │ 5V → RS-485 收发器 │ │ 24V → V11(?) → VPRO编程 │ │ │ │ 🔗 信号流 │ │ [传感器] → ISN_P/N → 差分放大 → ADC_OUT │ │ MCU → 485_TX → RS-485收发器 → 485总线 │ │ │ │ ⚠️ 跨页悬空 net: V11 来源未找到 │ │ │ │ 🛡️ 全局问题 │ │ - 电源入口无保险丝(Buck 输入侧) │ │ - 无统一 ESD 策略(各接口各自为政) │ └─────────────────────────────────────────┘ ``` ### 上下文清除 用户说"新项目"/"重新开始" → 清除所有上下文。 --- ## 适用范围 覆盖所有常见硬件原理图类型: | 类别 | 典型电路 | |------|---------| | 模拟电路 | 运放电路(反相/同相/差分/跟随器/求和/仪表放大器/积分器/微分器)、有源滤波器(Sallen-Key/MFB/状态变量)、三极管放大电路(共射/共基/共集/差分对)、MOSFET 开关/放大、二极管电路(整流/钳位/稳压/续流) | | 电源电路 | 线性稳压(78xx/LDO)、DC-DC 开关电源(Buck/Boost/Buck-Boost)、电荷泵、电源滤波/保护 | | 数字电路 | 逻辑门电路、电平转换、隔离(光耦/磁耦)、MCU 外围(复位/晶振/调试接口)、接口电路(RS232/RS485/CAN/USB) | | 混合信号 | ADC/DAC 前端调理、采样保持、Vref 基准源 | 遇到超出当前知识覆盖的冷门电路时,先 WebSearch 搜索,搜不到则用已知的电路原理进行类推分析,标注不确定性。 ## Inputs | 必填 | 说明 | |---|---| | `<image-path>` | 原理图图片 (PNG/JPG/截图/照片),支持单张或多张 | 无需任何本地文件依赖。分析所需的知识来自模型训练数据。 **Datasheet 策略**: 不确定的型号/参数先 WebSearch 搜 datasheet。搜不到或信息不全时,标注"⚠️ 推测值"并给出区间估算,同时提示用户"如果有 datasheet 可以发给我修正"。 ## Workflow ### Phase 1: 电路识别 利用视觉能力分析原理图,提取: - **元件清单**: 对每个可见元件提取 — 位号 (R1/U1/C2/Q1/D1...)、类型 (电阻/电容/电感/运放/三极管/MOSFET/二极管/IC/晶振/连接器...)、标称值(含单位)、封装/型号(如有标注)、置信度 (高/中/低) - **连接关系**: 构建节点连接表。标注关键节点——优先用原理图上的 net label (VIN/VOUT/+5V/GND...),无名节点自动编号 N001/N002...。**目标是直接可转换为网表** - **拓扑识别**: 根据元件配置和连接模式判断电路类型 **标记低置信度项**: - 模糊/遮挡的元件值 → 🔴 低 - 多个可能类型的元件 → 🟡 中 - 不清晰/推断的连接关系 → 🟡 中 - 拓扑不确定 → 🟡 中,准备候选 **不确定的型号/参数** → 先 WebSearch 搜 datasheet。搜不到则用已知的器件典型值估算;关键参数无法确定时,标注为推测值并给出区间。提示用户"有 datasheet 可发我修正"。 --- ### Phase 2: 连接表 + 解读 + 确认 **目标**: 将 Phase 1 的识别结果转换为三层输出——既有初学者的可读性,又有从业者的精确性。 #### 三层输出结构 ``` ┌─ Layer 1: 功能块连接表 ──── 按电路功能分组,初学者可读 │ │ │ 【反相放大器 — U1 运放】 │ +IN: pin3 ── GND │ -IN: VIN ── R1(1k) ── pin2 │ pin2 ── Rf(10k) ── pin1(OUT) │ OUT: pin1 ── VOUT │ │ │ ← 每行 = 一条精确的节点连接,无串/并联歧义 │ ← 用信号名和引脚名,不用 N001 自动编号 │ ├─ Layer 2: 自然语言解读 ──── 一段话解释电路做什么 │ │ │ "U1 和 R1/Rf 构成反相放大器,增益 = -Rf/R1 = -10。 │ C1 是输入隔直电容,防止前级直流偏置影响虚地..." │ │ │ ← 适合初学者理解电路意图 │ └─ Layer 3: SPICE 网表 (可选) ──── 用户说"导出网表"时输出 * 反相放大器 R1 VIN N001 1k Rf N001 VOUT 10k ``` #### Layer 1: 功能块连接表 输出格式: ``` 📐 电路连接: 【功能块1 — 核心描述】 关键节点: 信号流方向 PIN (pinX): NODE_A ──元件(值)── NODE_B (作用注释) ... 【功能块2 — 核心描述】 ... 【电源】 +5V: U1(pin8), ... GND: U1(pin4), ... ``` 格式规则: - 用原理图上的 net label 作为节点名 (VIN/VOUT/INA/CC...),不用 N001 - 用 IC 引脚名而不是编号 (in+/in-/out/vcc...),后面括号标注 pin number - 箭头 `──→` 表示信号流向 - `∥` 表示并联,如 `R16∥C26` - 非关键去耦/滤波可以用一行汇总,不需逐个列出 - 看不清的值标 🔴,已确认的标 🟢 #### Layer 2: 自然语言解读 连接表之后,用 3-5 句话解释: - 电路整体做什么 - 每个功能块扮演什么角色 - 信号流从哪到哪 - 关键设计意图(为什么这样接) ``` 💡 一句话: 这是一个反相放大器,增益 Av=-10。 U1 和 R1/Rf 构成反相放大器的核心——输入信号经 R1 进入运放反相端,输出经 Rf 反馈回来,放大倍数由 Rf/R1 的比值决定。C1 串联在输入路径上,隔断前级可能 存在的直流偏置电压,只让交流信号通过。 ``` #### Layer 3: SPICE 网表(可选) 用户说 `导出网表` 或 `save netlist` 时输出。使用标准 SPICE 格式,节点名映射回 N001/N002... 自动编号。 写入 `.cir` 文件,路径由用户指定。 #### 确认流程 三层输出后标注 🔴 项: ``` ⚠️ 请确认: 🔴 Rf 的值是 10k 还是 100k?影响增益 🔴 Q24 的源极是接 V11 还是接 GND? 🟡 C3 的容值?(不影响核心分析) 回复 "ok" 或直接纠正,如 "Rf=100k, Q24源极→V11" ``` 用户纠正后更新 Layer 1 和 Layer 2。 **确认上限**: 最多 3 轮。 --- ### Phase 3: 元件角色分类 **基于已确认的网表**(内部数据模型,非人读的 Layer 1 连接表)进行分析。对每个元件按以下 8 类角色归类,写一句解释它为什么在这里: | 角色 | 含义 | 典型元件 | |------|------|---------| | gain-setting | 决定放大倍数/衰减量 | Rf, Rin, Rg | | frequency-shaping | 决定工作频率和频率响应 | 滤波电容、补偿电容、LC 谐振 | | DC-bias | 设定直流工作点或隔直 | 耦合电容、偏置分压电阻、Vref | | stability-compensation | 防振荡/防过冲 | 相位补偿电容、输出隔离电阻、snubber | | protection/isolation | 防 ESD/过压/过流/短路/反接 | TVS、钳位二极管、保险丝、光耦、串联限流电阻 | | structural/essential | 电路骨架,拿走不工作 | 有源器件(运放/三极管/MOSFET/IC)、负载电阻、电源 | | power-delivery | 供电、去耦、滤波、稳压 | 去耦电容、旁路电容、磁珠、LDO | | impedance-matching | 设定/匹配输入输出阻抗 | 终端电阻、串联匹配电阻 | 输出格式: ``` 🔧 每个元件是干嘛的: | 位号 | 值 | 角色 | 为什么在这里 | |------|-------|-------------------|-----------------------------------| | R1 | 1kΩ | gain-setting | 与Rf共同设定增益Av=-Rf/R1=-10 | | C1 | 100nF | DC-bias | 输入隔直电容,阻断前级直流偏置 | | D1 | 1N4148| protection | 输入钳位,防止负压损坏运放输入级 | ``` #### 选型依据(关键元件) 角色分类之后,对**有具体型号或关键参数的核心元件**分析选型依据。回答"为什么选这个型号而不是别的": **分析维度**(每类元件挑相关项,不需全部): - **电压应力**: 额定电压 vs 电路中承受的最大电压 → 裕度是否够 - **电流应力**: 额定电流 vs 实际峰值/持续电流 → 裕度是否够 - **速度/频率**: 开关速度/GBW/反向恢复时间 → 是否满足电路频率要求 - **精度**: 容差/温漂/匹配精度 → 是否满足电路精度要求 - **功耗/热**: 封装功耗 vs 实际耗散 → 是否需要散热 - **成本/替代**: 为什么不用更便宜/更常见的型号 输出格式: ``` 📋 选型依据: | 元件 | 型号/值 | 关键参数 | 选型理由 | |------|---------|---------|---------| | D9 | B540C | 40V/5A Schottky | Buck续流,反压=24V→40V裕度67%;5A远超负载电流;Schottky低Vf降导通损耗 | | Q25 | 2N7002 | 60V/115mA N-ch | 仅驱动栅极,电流需求极小;60V耐压远超24V输入;SOT-23小封装 | | R3 | 52.3k/1%| E96, 1% | 反馈分压决定VOUT精度;E96标准值;1%精度保证输出误差<2% | | C6 | 100μF | — | 输出滤波大电容,降低低频纹波;耐压需≥10V(选16V规格保裕度)| ``` **关键规则**: - 有明确型号的优先查 datasheet 找极限参数,与电路实际应力对比 - 无型号的(如通用电阻电容),根据电路参数反推选型约束(如"此处电容耐压需≥25V") - 如果某元件选型有明显不合理处 → 标 🟡 并提出替代型号 --- ### Phase 4: 关键参数计算 **基于网表的节点和元件值**(内部数据模型),直接推导传递函数或计算公式。 **模拟电路**:增益(DC/AC)、截止频率(-3dB点)、输入/输出阻抗、直流工作点、带宽(GBW限制)、Q值(滤波器)、CMRR(差分电路) **电源电路**:输出电压、纹波估算、效率、开关频率(如适用)、输入/输出电压范围 **数字电路**:逻辑电平、上拉/下拉值、时间常数(RC延时)、电流驱动能力 **交叉校验**:计算结果是否合理?电阻值在优选范围?增益是否超过器件能力?截止频率是否合理? 不确定的器件参数(如运放 GBW、三极管 β)先 WebSearch 搜 datasheet,搜不到用典型值代入并标注"推测值"。**未知电压/频率等关键参数**无法从电路推断时,用**区间分析法**——列出"如果 X=12V 则...如果 X=15V 则...",供用户对照实际确认。用户可提供 datasheet 或实测值来收窄区间。 输出格式: ``` 📊 关键参数: 直流增益: Av = -10 (20dB) 输入阻抗: Zin ≈ 1kΩ 输出阻抗: Zout < 1Ω (闭环) -3dB 带宽: ≈ 91kHz (LM358 GBW=1MHz / 噪声增益=11) ⚠️ 需 datasheet 确认: LM358 GBW 容差 ±30%,实际带宽 70-100kHz ``` --- ### Phase 5: 工程加固检查 从"能工作"到"能投产"。逐项检查并给出: - **缺了什么** → **生产上会出什么问题** → **怎么修** → **有什么副作用** 检查维度(根据电路类型选相关项,不需要全部): - **ESD/浪涌防护**: 对外接口是否有 TVS/钳位/ESD 保护 - **电源完整性**: 芯片电源引脚是否有去耦电容;电容是否紧贴引脚;电源入口是否有滤波 - **信号完整性**: 输入是否有 RF/EMI 滤波;高速信号是否有终端匹配 - **稳定性**: 反馈环路是否可能振荡;大反馈电阻是否需要补偿电容;容性负载是否隔离 - **偏置/直流路径**: 输入偏置电流是否有直流通路;单电源运放是否有偏置 - **热/功耗**: 功率元件是否有散热考虑;LDO 压差×电流是否可接受 - **保护/鲁棒性**: 输出是否有短路保护;输入是否有过压保护;电源是否有反接保护 - **启动行为**: 上电瞬间输出是否会冲到满幅;电源是否有软启动 - **容差/量产**: 电阻精度是否足够(特别是差分/匹配电阻);电容材质是否合适(滤波用 C0G,去耦用 X7R) 标记: | 标记 | 含义 | |------|------| | 🔴 | 缺失,强烈建议加 | | 🟡 | 需注意/条件性建议 | | 🟢 | 已正确处理 | --- ### Phase 6: 报告输出 汇总 Phase 3-5 输出结构化报告。 报告末尾提示: ``` 下一步: - "这个电路如果[改动],会怎样?" → 进入修改讨论 - "帮我把这个分析写成视频稿" → 生成脚本 - "分析下一张图" → 连续分析(同项目),维护板级上下文 - "做板级汇总" → 将所有分析过的页汇总为板级报告 - "新项目" → 清除上下文,从头开始 ``` --- ## Key Rules 1. **三层输出:连接表(人读) + 解读(教学) + 网表(内部分析)**。Phase 2 输出 Layer 1 连接表作为确认界面;Phase 3-5 的分析基于网表(内部数据模型),计算在其上执行 2. **角色分类 + 选型依据是教学内容**。每个元件一句"为什么在这里"+"为什么选这个型号",这是通用 AI 不会主动做的事 3. **工程加固要有后果**。不只说加什么,要说"不加会怎样"(击穿/振荡/噪声/烧毁/漂移...) 4. **参数要交叉校验**。算完增益查电阻值范围;算完 fc 查是否合理;算完功耗查封装是否扛得住 5. **不编造元件值**。看不清就标 🔴 低置信度让用户补充 6. **未知参数用区间分析**。用户也不知道某参数时,列"如果 A 则 B"的区间表,不凭空猜一个值 7. **datasheet 先搜再问**。不确定的型号/参数先 WebSearch 搜,搜不到标注"推测值"并告诉用户"有 datasheet 可发我修正" 8. **覆盖所有硬件电路类型**。模拟/数字/电源/混合信号都支持 9. **多图维护上下文**。用户连续分析多张图时,追踪跨页 net 和电源轨,最后可做板级汇总 ## Refusals - 「图片完全看不清」→ 列出能辨认的轮廓,建议用户提供清晰版 - 「不是原理图(PCB 版图 / 实物照片)」→ 说明需要原理图而非版图,建议先导出原理图 - 「用户要跳过 Phase 2 网表确认」→ 拒绝。网表确认是质量兜底——串/并联看错,后面全错
在 GitHub 查看