某只 MOSFET 的阈值写着 1 V,用 3.3 V GPIO 驱动却可能仍然发热;栅极几乎没有直流电流,快速开关时驱动器却可能需要安培级瞬态电流。两者并不矛盾:阈值描述弱导通测试点,栅极电荷描述切换时的动态负担。本篇先分清沟道、工作区与端子,再把驱动和损耗算在一起。
| 问题 | 关键区别 | 阅读位置 |
| 栅极如何控制电流 | 反型层与体区 | 四端结构与类型 |
| 饱和是不是开得最充分 | MOSFET 饱和与 BJT 饱和 | 工作区与平方律边界 |
| 3.3 V 能否驱动 | 阈值测试与 R_DS(on) 保证 | 读数据手册 |
| 关断为什么仍会反向通电 | 沟道和体二极管 | 双向电流与单向阻断 |
| 栅极要供多少电流 | 总电荷、Miller 区域与回路阻抗 | 栅极驱动算例 |
| 为什么额定电流够仍会损坏 | 温度、SOA、动态应力 | 损耗与工作范围 |
四端结构与类型
以平面增强型 NMOS 为教学模型:P 型体区内有两个 n⁺ 区,形成源、漏接触;栅极与半导体表面之间有绝缘介质。正的栅—源电压使表面空穴减少,并在足够偏置下形成电子反型层,将源与漏之间的导电能力提高。
栅、源、漏、体分别是 G、S、D、B 四个端子。集成电路中的体端连接会影响阈值和寄生结;离散功率 NMOS 往往在内部把体区接源极,且可能采用垂直结构,不能把这张平面图当作所有功率管的实际剖面。
即使 V_GS 低于阈值,栅下也可能存在电场和亚阈值导电,不是“没有电场”。阈值标记一个约定的状态或测试电流点,不把器件行为切成绝对零电流与充分导通两部分。
| 类型 | V_GS = 0 时的通常状态 | 主要调节方向 |
| N 沟道增强型 | 常关 | 增大正 V_GS 增强导通 |
| P 沟道增强型 | 常关 | 使 V_GS 更负增强导通 |
| N 沟道耗尽型 | 常开 | 施加足够负的 V_GS 可关断 |
| P 沟道耗尽型 | 常开 | 施加足够正的 V_GS 可关断 |
上述均受具体额定范围限制。对 NMOS、V_DS>0 的常用方向,约定漏电流从 D 到 S,电子主要从 S 到 D;PMOS 的电压和电流符号要相应处理,不要把一个无符号的“Vth 大小”套进所有条件。
工作区与平方律边界
对长沟道、强反型、渐变沟道和近似恒定迁移率的 NMOS 模型,定义 k = μ_nC_ox(W/L)、过驱动 V_ov = V_GS−V_th。忽略沟道长度调制时:
| 区域 | 条件 | 理想模型 |
| 三极管 / 欧姆区 | V_ov>0,0≤V_DS<V_ov | I_D = k(V_ovV_DS−V_DS²/2) |
| 饱和区 | V_ov>0,V_DS≥V_ov | I_D = kV_ov²/2 |
| 弱反型 / 亚阈值 | 接近或低于强反型阈值 | 不能用上面的强反型平方律直接表示 |
欧姆区中 V_DS 足够小时,二次项可忽略,器件近似为受栅压控制的电阻。随 V_DS 增大,漏端局部栅—沟道过驱动减小,出现夹断区域;电流仍能经过高场区流入漏极,夹断不是把电流完全切断。
饱和区在这个理想模型中对 V_DS 不敏感,但对 V_ov 是平方关系,不是 I_D 正比于 V_ov。取 k = 1 mA/V²、V_ov = 2 V,V_DS = 0.5 V 时 I_D = 0.875 mA,V_DS≥2 V 后理想饱和电流为 2 mA;V_ov 增加到 4 V 后变为 8 mA。这是解析模型示例,不是功率器件的通用拟合。
短沟道、速度饱和、迁移率退化、沟道长度调制和功率器件漂移区都会改变关系。实际饱和电流并不严格水平,g_m=2I_D/V_ov 也只有相应平方律条件下才成立。
“饱和”和“线性模式”需要先确定语境
BJT 饱和常用于低压降开关导通;MOSFET 作为低损耗开关充分导通时,通常希望在低 V_DS 的欧姆区。两者的“饱和”不是同一目标。
功率文档所说的 linear mode 又常指器件作为可控耗散元件,同时承受较大电压和电流,可能位于教材的 MOSFET 饱和区。例如热插拔限流不能简单按“欧姆区导通电阻”估算整段启动损耗。Infineon:MOSFET 线性运行与 SOA
夹断为什么不是电流归零?
竖线标出 VDS=Vov。把观察点拖过它,电流和曲线斜率都连续,之后变平来自“忽略沟道长度调制”的模型假设。低损耗开关通常关心左侧的小 VDS 区域,不能把这个饱和区名称类比成 BJT 的低压降导通。
正在呈现知识画面
夹断为什么不是电流归零?长沟道模型在 VDS=Vov 连续进入饱和;夹断后仍有漏电流。
{"id":"mosfet-region-continuity","title":"夹断为什么不是电流归零?","summary":"长沟道模型在 VDS=Vov 连续进入饱和;夹断后仍有漏电流。","height":1000,"html":"<h2 data-i18n=\"heading\"></h2><p class=\"intro\" data-i18n=\"intro\"></p><div class=\"control\"><label for=\"ov\" data-i18n=\"ov\"></label><output for=\"ov\" id=\"ov-value\"></output><input id=\"ov\" type=\"range\" min=\"0.5\" max=\"4\" value=\"2\" step=\"0.1\"></div><div class=\"control\"><label for=\"ds\" data-i18n=\"ds\"></label><output for=\"ds\" id=\"ds-value\"></output><input id=\"ds\" type=\"range\" min=\"0\" max=\"5\" value=\"0.5\" step=\"0.01\"></div><div class=\"chart-wrap\"><div class=\"chart-label\" data-i18n=\"plot\"></div><svg id=\"plot\" class=\"curve\" viewBox=\"0 0 360 210\" role=\"img\" data-i18n-label=\"plot\"></svg></div><div class=\"metrics\"><div><span data-i18n=\"current\"></span><strong id=\"current\"></strong></div><div><span data-i18n=\"region\"></span><strong id=\"region\"></strong></div><div><span data-i18n=\"slope\"></span><strong id=\"slope\"></strong></div></div><p id=\"eq\" class=\"formula\"></p><details class=\"scope\"><summary data-i18n=\"scopeLabel\"></summary><p data-i18n=\"scope\"></p></details>","css":".intro{margin:8px 0 18px;color:var(--muted);font-size:14px}.caption,.hint{font-size:12px;color:var(--muted);margin-top:12px}.control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;margin:14px 0;font-size:13px}.control label{font-size:13px}.control output{color:var(--accent);min-width:5em;text-align:right;font-variant-numeric:tabular-nums}.control input{grid-column:1/-1;width:100%;margin:0}.presets{display:flex;gap:4px;align-items:stretch}.presets button{flex:1 1 0;min-width:0;overflow-wrap:anywhere;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.actions button{flex:1;min-width:0;font-size:13px;min-height:42px}.copy{display:grid;font-size:14px;margin:16px 0}.copy>*{grid-area:1/1;margin:0}.reserve{visibility:hidden}.scope{margin-top:14px;color:var(--muted);font-size:12px}.scope summary{padding:8px 0;cursor:pointer}.scope p{margin-top:10px}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.card{border:1px solid var(--rule);border-radius:9px;padding:14px;min-width:0}.card header{font-size:14px;font-weight:600;margin-bottom:10px}.card button{font-size:12px;width:100%;min-width:0}.card small{display:block;font-size:12px;color:var(--muted)}.card code{font-size:12px;overflow-wrap:anywhere}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.metrics>div{border-left:2px solid var(--accent);padding-left:10px;min-width:0}.metrics span{display:block;min-height:3.2em;color:var(--muted);font-size:12px}.metrics strong{font-size:23px;display:block;font-weight:550;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.formula{border-top:1px solid var(--rule);padding-top:12px;margin-top:14px;font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.value{font:550 20px ui-monospace,monospace}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin:12px 0}.legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--accent);margin-right:6px}.legend .second:before{background:var(--second)}.check{display:flex;align-items:center;gap:8px;font-size:13px;margin:12px 0}.check input{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent)}select,input[type=text],input[type=number]{background:var(--paper);color:var(--ink);font:inherit;font-size:13px;padding:10px;border:1px solid var(--rule);border-radius:7px;max-width:100%;min-width:0}select{width:100%;min-height:42px}.band{height:20px;display:flex;background:var(--surface);border-radius:4px;overflow:hidden}.band i{height:100%;display:block;background:var(--accent);transition:width .25s}.band i.second{background:var(--second)}button:disabled{cursor:default}.status{font-size:13px;min-height:4.8em}.mono{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}\n@media(max-width:480px){.two{gap:8px}.card{padding:12px 9px}.actions button,.presets button{font-size:12px}.metrics strong{font-size:20px}.metrics{gap:8px}}\n@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}\n.track-row{margin:16px 0}.track-row>span{display:block;font-size:12px;color:var(--muted);margin-bottom:7px}.track{display:flex;gap:5px;min-width:0}.cell{flex:1;min-width:0;min-height:48px;border:1px solid var(--rule);border-radius:5px;background:var(--surface);display:flex;align-items:center;justify-content:center;text-align:center;padding:5px 3px;font-size:12px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.cell.on{background:var(--accent-soft);border-color:var(--accent)}.cell.gold{background:var(--second-soft);border-color:var(--second)}.cell.empty{border-style:dashed;color:var(--muted)}.cell.error{border-color:var(--second);text-decoration:line-through}.choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:14px 0}.choices button{min-width:0;padding:10px 4px;font-size:12px;overflow-wrap:anywhere}.choices button[aria-current=true]{border-color:var(--accent);background:var(--accent-soft)}.relation{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:6px;margin:12px 0}.relation .cell{min-height:72px}.relation>i{text-align:center;font-style:normal;color:var(--accent)}.readout{font-size:13px;white-space:pre-line;min-height:6.4em;overflow-wrap:anywhere}.plot{position:relative;border-left:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:8px 0;margin:18px 0}.plot-row{height:28px;position:relative;margin:4px 0;background:var(--surface)}.plot-row i{position:absolute;inset-block:5px;background:var(--accent);min-width:2px;transition:width .2s,left .2s}.plot-row b{position:relative;padding:4px 6px;font:11px/28px ui-monospace,monospace;background:var(--paper);border-radius:3px}.axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}\n\n/* Action labels must remain readable across locales and narrow embeds. */\n.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.actions button{overflow-wrap:anywhere;white-space:normal;min-height:58px;padding:8px}\nbutton{overflow-wrap:anywhere}\n@media(min-width:640px){.actions{grid-template-columns:repeat(3,minmax(0,1fr))}}\n\n.metrics span{overflow-wrap:anywhere}\n.panel{border:1px solid var(--rule);border-radius:9px;padding:12px;margin:14px 0;min-width:0}.panel h3{font-size:13px;margin:0 0 10px;color:var(--muted)}.source{font:13px/1.8 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0}.source mark{background:var(--accent-soft);color:var(--ink);border-bottom:2px solid var(--accent)}.source .fault{background:var(--second-soft);border-color:var(--second)}.diagram{display:block;width:100%;height:auto;max-height:320px;margin:14px 0;overflow:visible}.diagram text{fill:var(--ink);font:12px ui-monospace,monospace}.diagram .edge{stroke:var(--muted);stroke-width:1.5;fill:none}.diagram .edge.on{stroke:var(--accent);stroke-width:3}.diagram .node{fill:var(--surface);stroke:var(--rule);stroke-width:1.5}.diagram .node.on{fill:var(--accent-soft);stroke:var(--accent)}.diagram .node.gold{fill:var(--second-soft);stroke:var(--second)}.log{font:12px/1.8 ui-monospace,monospace;white-space:pre-line;overflow-wrap:anywhere;min-height:7.2em}.table{display:grid;gap:5px;margin:14px 0}.table .tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.table .tr>*{padding:8px 5px;background:var(--surface);border-radius:4px;min-width:0;overflow-wrap:anywhere;font-size:12px}.table .tr .on{background:var(--accent-soft)}.table .tr .gold{background:var(--second-soft)}.choices button{min-height:44px}.metrics strong{min-height:1.6em}.code-line{display:block}.code-line.on{background:var(--accent-soft);border-left:2px solid var(--accent);padding-left:6px}.status-badge{font-size:12px;color:var(--accent)}.tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.tile-grid .cell{min-height:40px}.actions button{min-height:48px}.form-field{display:grid;gap:8px;margin:14px 0;font-size:13px}.form-field input{width:100%;font-family:ui-monospace,monospace}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.formula{min-height:3.2em}.presets{flex-wrap:wrap}.presets button{flex-basis:25%;min-height:44px}\n\n.budget{display:flex;height:28px;margin:16px 0;background:var(--surface);border-radius:5px;overflow:hidden}.budget i{display:block;background:var(--accent);transition:width .2s}.budget i.gold{background:var(--second)}.intervals{margin:16px 0}.interval{position:relative;height:36px;background:var(--surface);margin:6px 0;border-radius:4px;overflow:hidden}.interval i{position:absolute;height:100%;background:var(--accent-soft);border-left:2px solid var(--accent)}.interval i.gold{background:var(--second-soft);border-color:var(--second)}.interval span{position:relative;z-index:1;font:12px/36px ui-monospace,monospace;padding-left:7px}.table .tr>*{min-height:4.8em}.formula{white-space:pre-line;min-height:7.2em}.actions:has(>button:only-child){grid-template-columns:1fr}.metrics strong{min-height:3.2em}.rangegrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;margin:14px 0}.rangegrid .cell{min-height:30px;padding:3px 1px;font-size:10px}.message{min-height:7.2em;white-space:pre-line;font:13px/1.8 ui-monospace,monospace;overflow-wrap:anywhere}\n/* Allow CJK hanging punctuation without overflowing a metric's border box. */\n.metrics>div{padding-right:4px}.metrics span{line-break:anywhere}\n\n.chart-wrap{margin:18px 0}.chart-label{font-size:12px;color:var(--muted);min-height:3.2em}.curve{display:block;width:100%;height:auto;max-height:320px;overflow:visible}.curve text{font:11px ui-monospace,monospace;fill:var(--muted)}.gridline{stroke:var(--rule);stroke-width:1}.metrics strong{font-size:20px;min-height:3.2em}.formula{font:12px/1.8 ui-monospace,monospace;min-height:9em}.readout{min-height:8em}.presets button{flex-basis:30%}.scope p{overflow-wrap:anywhere} .unit-note{font-size:12px;color:var(--muted);margin:10px 0}\n\n.metrics span{word-break:break-all;line-break:strict}.metrics>div{padding-right:6px}\n\n","js":"const $=s=>document.querySelector(s);const set=(id,v)=>$('#'+id).textContent=v;const t=k=>viz.t(k);function cells(id,values){$('#'+id).replaceChildren(...values.map(v=>{const e=document.createElement('div');e.className='cell '+(v.cls||'');e.textContent=v.text;e.title=v.title||v.text;return e;}));}function pressed(mode){document.querySelectorAll('[data-mode]').forEach(e=>e.setAttribute('aria-pressed',String(e.dataset.mode===mode)));}const esc=s=>String(s).replace(/[&<>\"']/g,c=>({'&':'&','<':'<','>':'>','\"':'"',\"'\":'''}[c]));const fmt=s=>'{'+[...s].sort().join(', ')+'}';function graph(id,nodes,edges){const el=$('#'+id);el.setAttribute('viewBox','0 0 360 200');el.innerHTML='<defs><marker id=\"arrow-'+id+'\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"5\" markerHeight=\"5\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"var(--muted)\"/></marker></defs>'+edges.map(e=>{const a=nodes[e[0]],b=nodes[e[1]],dx=b.x-a.x,dy=b.y-a.y,d=Math.hypot(dx,dy)||1;if(edges.some(r=>r[0]===e[1]&&r[1]===e[0])){const nx=-dy/d,ny=dx/d;return '<path class=\"edge '+(e[2]?'on':'')+'\" d=\"M '+(a.x+dx/d*22+nx*12)+' '+(a.y+dy/d*22+ny*12)+' Q '+((a.x+b.x)/2+nx*38)+' '+((a.y+b.y)/2+ny*38)+' '+(b.x-dx/d*25+nx*12)+' '+(b.y-dy/d*25+ny*12)+'\" marker-end=\"url(#arrow-'+id+')\"/>';}return '<line class=\"edge '+(e[2]?'on':'')+'\" x1=\"'+(a.x+dx/d*25)+'\" y1=\"'+(a.y+dy/d*25)+'\" x2=\"'+(b.x-dx/d*28)+'\" y2=\"'+(b.y-dy/d*28)+'\" marker-end=\"url(#arrow-'+id+')\"/>';}).join('')+nodes.map(n=>'<g><circle class=\"node '+(n.cls||'')+'\" cx=\"'+n.x+'\" cy=\"'+n.y+'\" r=\"25\"/><text x=\"'+n.x+'\" y=\"'+(n.y+4)+'\" text-anchor=\"middle\">'+esc(n.name)+'</text>'+(n.sub?'<text x=\"'+n.x+'\" y=\"'+(n.y+43)+'\" text-anchor=\"middle\">'+esc(n.sub)+'</text>':'')+'</g>').join('');}function table(id,rows){$('#'+id).classList.add('table');$('#'+id).replaceChildren(...rows.map(r=>{const row=document.createElement('div');row.className='tr';row.style.gridTemplateColumns='repeat('+r.length+',minmax(0,1fr))';r.forEach(x=>{const c=document.createElement('div');if(typeof x==='object'){c.textContent=x.text;c.className=x.cls||'';}else c.textContent=x;row.append(c)});return row;}));}function band(id,parts,total){$('#'+id).replaceChildren(...parts.map((p,i)=>{const e=document.createElement('i');e.style.width=(100*p.value/total)+'%';e.className=i%2?'gold':'on';e.title=p.name+': '+p.value;return e}));}function intervals(id,items,total){$('#'+id).replaceChildren(...items.map(p=>{const row=document.createElement('div');row.className='interval';const bar=document.createElement('i');bar.style.left=(100*p.start/total)+'%';bar.style.width=(100*(p.end-p.start)/total)+'%';bar.className=p.cls||'';const label=document.createElement('span');label.textContent=p.label;row.append(bar,label);return row;}));}function plot(id,series,xr,yr,opts={}){const e=$('#'+id),X=x=>42+(x-xr[0])/(xr[1]-xr[0])*298,Y=y=>175-(y-yr[0])/(yr[1]-yr[0])*148;let out='<defs><clipPath id=\"clip-'+id+'\"><rect x=\"42\" y=\"27\" width=\"298\" height=\"148\"/></clipPath></defs>';for(let i=0;i<3;i++){let x=xr[0]+i*(xr[1]-xr[0])/2,y=yr[0]+i*(yr[1]-yr[0])/2;out+='<path class=\"gridline\" d=\"M '+X(x)+' 27V175M42 '+Y(y)+'H340\"/><text x=\"'+X(x)+'\" y=\"194\" text-anchor=\"middle\">'+esc(opts.xfmt?opts.xfmt(x):Number(x.toFixed(2)))+'</text><text x=\"36\" y=\"'+(Y(y)+4)+'\" text-anchor=\"end\">'+esc(opts.yfmt?opts.yfmt(y):Number(y.toFixed(2)))+'</text>';}out+='<g clip-path=\"url(#clip-'+id+')\">';for(const s of series){out+='<path fill=\"none\" stroke=\"'+(s.color||'var(--accent)')+'\" stroke-width=\"2.5\" '+(s.dash?'stroke-dasharray=\"5 4\"':'')+' d=\"'+s.pts.map((p,i)=>(i?'L':'M')+X(p[0]).toFixed(2)+','+Y(p[1]).toFixed(2)).join(' ')+'\"/>';}for(const p of opts.points||[])out+='<circle cx=\"'+X(p[0])+'\" cy=\"'+Y(p[1])+'\" r=\"4\" fill=\"var(--second)\" stroke=\"var(--paper)\" stroke-width=\"1.5\"/>';if(opts.cursor!==undefined)out+='<path d=\"M'+X(opts.cursor)+' 27V175\" stroke=\"var(--muted)\" stroke-dasharray=\"3 3\"/>';e.innerHTML=out+'</g>';e.dataset.curves=JSON.stringify(series.map(s=>s.pts));}const curve=(fn,lo,hi,n=120)=>Array.from({length:n+1},(_,i)=>{const x=lo+(hi-lo)*i/n;return[x,fn(x)]});function inputs(draw){document.querySelectorAll('input,select').forEach(e=>{e.addEventListener('input',draw);e.addEventListener('change',draw)});draw()}const n=id=>+$('#'+id).value;const show=(id,v,d=3)=>set(id,Number(v.toFixed(d)));function draw(){let ov=n('ov'),ds=n('ds'),fn=v=>v<ov?ov*v-v*v/2:ov*ov/2;show('ov-value',ov);show('ds-value',ds);plot('plot',[{pts:curve(fn,0,5)}],[0,5],[0,8],{cursor:ov,points:[[ds,fn(ds)]]});show('current',fn(ds));set('region',t(ds<ov?'triode':'sat'));show('slope',Math.max(ov-ds,0));set('eq',ds<ov?'ID = k(Vov VDS − VDS²/2)\\n= '+fn(ds).toFixed(4)+' mA':'ID = k Vov²/2\\n= '+fn(ds).toFixed(4)+' mA');$('#region').dataset.state=ds<ov?'triode':'sat';}inputs(draw);","audio":false,"strings":{"current":"ID(mA)","ds":"VDS(V)","heading":"夹断为什么不是电流归零?","intro":"调整过驱动与漏源电压,查看分段公式的连接处。","ov":"过驱动 Vov(V)","plot":"横轴 VDS(V),纵轴 ID(mA)","region":"工作区","reset":"重置","sat":"饱和区","scope":"k=1 mA/V²,强反型长沟道 NMOS,忽略沟道长度调制、亚阈值与功率器件结构。","scopeLabel":"模型范围与约定","slope":"∂ID/∂VDS(mS)","triode":"欧姆区"}}
读数据手册:阈值不是驱动保证
V_GS(th) 往往在很小的规定漏电流下测量,而应用可能要通过数安培。要判断一个 3.3 V 驱动是否合适,应找实际可保证到达的 V_GS 下的 R_DS(on) 或导通规格,并考虑温度和压降,而不是只确认 3.3 大于阈值。
| 参数 | 应带上的条件 | 容易误读的地方 |
| V_GS(th) | 测试 I_D、V_DS、温度与上下限 | 不是达到额定电流所需栅压 |
| R_DS(on) | V_GS、I_D、结温与保证/典型值 | 不能把 10 V 驱动规格用于 3.3 V |
| I_D 额定 | 结温、壳温/板温、封装和散热 | 不是脱离热条件的可用持续电流 |
| V_DS、V_GS 额定 | 正负峰值、振铃与瞬态 | 不用固定两倍电源电压代替波形核验 |
| Q_g、Q_gd | 漏压、漏流、最终栅压 | 不能仅用一个 Q_g 比较任意工作点 |
| C_iss、C_oss、C_rss | 偏置和测量频率 | 非线性电容,不是固定电容器 |
常用小信号电容定义为 C_iss=C_GS+C_GD、C_oss=C_DS+C_GD、C_rss=C_GD。大幅度电压转换所需电荷应沿电压变化积分,不能总用某一点的 C_iss×V_GS 代替 Q_g。Nexperia:功率 MOSFET 数据手册参数
双向电流与单向阻断
常见体源内部短接的离散 NMOS,其体区与漏区形成寄生二极管:阳极在 S/体区,阴极在 D。不是“Body 与 Source 之间有体二极管”,因为这两个端子在这种结构里已经连接。PMOS 的体二极管方向相反。
栅极关断时,这个二极管仍可能让 S→D 方向电流通过。沟道充分开启后,在适用偏置范围内沟道可以双向导电,反向电流不一定全部流经体二极管。要关断时双向阻断,常使用反向串联的两只 MOSFET,并正确安排驱动和体二极管方向。
体二极管还有其压降、恢复电荷、热和换流条件,不能默认可以无限承担续流。高边 NMOS 的源极会随负载节点升高,栅极需要相对于源极保持所需驱动电压;只把栅极拉到对地 5 V,在源极已接近 5 V 时并不能保持 5 V 的 V_GS。
自举高边驱动需要满足其充电和刷新条件,未必能连续保持 100% 导通;电荷泵或隔离供电驱动有不同能力边界。源极公共电感上的瞬态压降也会改变芯片内部看到的 V_GS。
栅极驱动算例:平均电流小不代表峰值小
栅极绝缘使稳定直流漏电通常较小,但每次切换都要搬移电荷。若某工作点 Q_g = 20 nC、驱动幅度 5 V、频率 200 kHz,普通电阻式充放电驱动的供电平均电流近似 Q_gf = 4 mA,驱动电源相关能量功率约 Q_gV_drivef = 20 mW。这个功率分散在驱动器及栅电阻等路径中,不能全部算作 MOSFET 芯片内部热损耗。
若希望在约 50 ns 内搬移 20 nC,总电荷除以时间给出的平均切换电流是 0.4 A。Miller 区域需要单独分析:假设 Q_gd = 6 nC,该阶段实际可用栅电流约 0.2 A,则持续时间约 30 ns。驱动器封面上的峰值电流不保证平台期间也能提供同样电流,实际值由驱动电压、平台电压和总回路阻抗决定。TI:高速 MOSFET 栅极驱动
Miller 平台对应电荷变化与漏极电压转换耦合的阶段,平台高度随负载电流、器件和驱动条件变化,不是另一个固定阈值。漏极快速 dv/dt 也可能经 C_GD 耦合到关断的栅极,造成误导通;关断下拉能力、回路电感和需要时的 Miller 钳位都应结合电路分析。
串联栅电阻用于调节充放电速度和阻尼,并不保证自动“消除振荡”。增大电阻可能降低边沿速度和 EMI,却增加开关重叠损耗。另一个栅—源下拉电阻用于在驱动高阻时建立默认关断,其职责与串联栅电阻不同。
平台期间,电荷去了哪里?
在默认 0.2 A 下,平台从 40 ns 到 70 ns。观察这段:蓝线不升,金线却下降。提高栅电流缩短的是各段的时间尺度,并没有减少这个模型规定的 Qgd;真实驱动电流还会随平台电压和回路阻抗变化。
tMiller≈IgQgd
正在呈现知识画面
平台期间,电荷去了哪里?Miller 平台上栅压近似不变,电荷仍在转移,漏极电压同时下降。
{"id":"gate-charge-miller-time","title":"平台期间,电荷去了哪里?","summary":"Miller 平台上栅压近似不变,电荷仍在转移,漏极电压同时下降。","height":1000,"html":"<h2 data-i18n=\"heading\"></h2><p class=\"intro\" data-i18n=\"intro\"></p><div class=\"control\"><label for=\"ig\" data-i18n=\"ig\"></label><output for=\"ig\" id=\"ig-value\"></output><input id=\"ig\" type=\"range\" min=\"0.1\" max=\"0.5\" value=\"0.2\" step=\"0.01\"></div><div class=\"control\"><label for=\"time\" data-i18n=\"time\"></label><output for=\"time\" id=\"time-value\"></output><input id=\"time\" type=\"range\" min=\"0\" max=\"200\" value=\"50\" step=\"0.5\"></div><div class=\"chart-wrap\"><div class=\"chart-label\" data-i18n=\"plot\"></div><svg id=\"plot\" class=\"curve\" viewBox=\"0 0 360 210\" role=\"img\" data-i18n-label=\"plot\"></svg></div><div class=\"metrics\"><div><span data-i18n=\"charge\"></span><strong id=\"charge\"></strong></div><div><span data-i18n=\"plateau\"></span><strong id=\"plateau\"></strong></div><div><span data-i18n=\"vg\"></span><strong id=\"vg\"></strong></div><div><span data-i18n=\"vd\"></span><strong id=\"vd\"></strong></div></div><p id=\"eq\" class=\"formula\"></p><details class=\"scope\"><summary data-i18n=\"scopeLabel\"></summary><p data-i18n=\"scope\"></p></details>","css":".intro{margin:8px 0 18px;color:var(--muted);font-size:14px}.caption,.hint{font-size:12px;color:var(--muted);margin-top:12px}.control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;margin:14px 0;font-size:13px}.control label{font-size:13px}.control output{color:var(--accent);min-width:5em;text-align:right;font-variant-numeric:tabular-nums}.control input{grid-column:1/-1;width:100%;margin:0}.presets{display:flex;gap:4px;align-items:stretch}.presets button{flex:1 1 0;min-width:0;overflow-wrap:anywhere;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.actions button{flex:1;min-width:0;font-size:13px;min-height:42px}.copy{display:grid;font-size:14px;margin:16px 0}.copy>*{grid-area:1/1;margin:0}.reserve{visibility:hidden}.scope{margin-top:14px;color:var(--muted);font-size:12px}.scope summary{padding:8px 0;cursor:pointer}.scope p{margin-top:10px}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.card{border:1px solid var(--rule);border-radius:9px;padding:14px;min-width:0}.card header{font-size:14px;font-weight:600;margin-bottom:10px}.card button{font-size:12px;width:100%;min-width:0}.card small{display:block;font-size:12px;color:var(--muted)}.card code{font-size:12px;overflow-wrap:anywhere}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.metrics>div{border-left:2px solid var(--accent);padding-left:10px;min-width:0}.metrics span{display:block;min-height:3.2em;color:var(--muted);font-size:12px}.metrics strong{font-size:23px;display:block;font-weight:550;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.formula{border-top:1px solid var(--rule);padding-top:12px;margin-top:14px;font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.value{font:550 20px ui-monospace,monospace}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin:12px 0}.legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--accent);margin-right:6px}.legend .second:before{background:var(--second)}.check{display:flex;align-items:center;gap:8px;font-size:13px;margin:12px 0}.check input{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent)}select,input[type=text],input[type=number]{background:var(--paper);color:var(--ink);font:inherit;font-size:13px;padding:10px;border:1px solid var(--rule);border-radius:7px;max-width:100%;min-width:0}select{width:100%;min-height:42px}.band{height:20px;display:flex;background:var(--surface);border-radius:4px;overflow:hidden}.band i{height:100%;display:block;background:var(--accent);transition:width .25s}.band i.second{background:var(--second)}button:disabled{cursor:default}.status{font-size:13px;min-height:4.8em}.mono{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}\n@media(max-width:480px){.two{gap:8px}.card{padding:12px 9px}.actions button,.presets button{font-size:12px}.metrics strong{font-size:20px}.metrics{gap:8px}}\n@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}\n.track-row{margin:16px 0}.track-row>span{display:block;font-size:12px;color:var(--muted);margin-bottom:7px}.track{display:flex;gap:5px;min-width:0}.cell{flex:1;min-width:0;min-height:48px;border:1px solid var(--rule);border-radius:5px;background:var(--surface);display:flex;align-items:center;justify-content:center;text-align:center;padding:5px 3px;font-size:12px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.cell.on{background:var(--accent-soft);border-color:var(--accent)}.cell.gold{background:var(--second-soft);border-color:var(--second)}.cell.empty{border-style:dashed;color:var(--muted)}.cell.error{border-color:var(--second);text-decoration:line-through}.choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:14px 0}.choices button{min-width:0;padding:10px 4px;font-size:12px;overflow-wrap:anywhere}.choices button[aria-current=true]{border-color:var(--accent);background:var(--accent-soft)}.relation{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:6px;margin:12px 0}.relation .cell{min-height:72px}.relation>i{text-align:center;font-style:normal;color:var(--accent)}.readout{font-size:13px;white-space:pre-line;min-height:6.4em;overflow-wrap:anywhere}.plot{position:relative;border-left:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:8px 0;margin:18px 0}.plot-row{height:28px;position:relative;margin:4px 0;background:var(--surface)}.plot-row i{position:absolute;inset-block:5px;background:var(--accent);min-width:2px;transition:width .2s,left .2s}.plot-row b{position:relative;padding:4px 6px;font:11px/28px ui-monospace,monospace;background:var(--paper);border-radius:3px}.axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}\n\n/* Action labels must remain readable across locales and narrow embeds. */\n.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.actions button{overflow-wrap:anywhere;white-space:normal;min-height:58px;padding:8px}\nbutton{overflow-wrap:anywhere}\n@media(min-width:640px){.actions{grid-template-columns:repeat(3,minmax(0,1fr))}}\n\n.metrics span{overflow-wrap:anywhere}\n.panel{border:1px solid var(--rule);border-radius:9px;padding:12px;margin:14px 0;min-width:0}.panel h3{font-size:13px;margin:0 0 10px;color:var(--muted)}.source{font:13px/1.8 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0}.source mark{background:var(--accent-soft);color:var(--ink);border-bottom:2px solid var(--accent)}.source .fault{background:var(--second-soft);border-color:var(--second)}.diagram{display:block;width:100%;height:auto;max-height:320px;margin:14px 0;overflow:visible}.diagram text{fill:var(--ink);font:12px ui-monospace,monospace}.diagram .edge{stroke:var(--muted);stroke-width:1.5;fill:none}.diagram .edge.on{stroke:var(--accent);stroke-width:3}.diagram .node{fill:var(--surface);stroke:var(--rule);stroke-width:1.5}.diagram .node.on{fill:var(--accent-soft);stroke:var(--accent)}.diagram .node.gold{fill:var(--second-soft);stroke:var(--second)}.log{font:12px/1.8 ui-monospace,monospace;white-space:pre-line;overflow-wrap:anywhere;min-height:7.2em}.table{display:grid;gap:5px;margin:14px 0}.table .tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.table .tr>*{padding:8px 5px;background:var(--surface);border-radius:4px;min-width:0;overflow-wrap:anywhere;font-size:12px}.table .tr .on{background:var(--accent-soft)}.table .tr .gold{background:var(--second-soft)}.choices button{min-height:44px}.metrics strong{min-height:1.6em}.code-line{display:block}.code-line.on{background:var(--accent-soft);border-left:2px solid var(--accent);padding-left:6px}.status-badge{font-size:12px;color:var(--accent)}.tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.tile-grid .cell{min-height:40px}.actions button{min-height:48px}.form-field{display:grid;gap:8px;margin:14px 0;font-size:13px}.form-field input{width:100%;font-family:ui-monospace,monospace}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.formula{min-height:3.2em}.presets{flex-wrap:wrap}.presets button{flex-basis:25%;min-height:44px}\n\n.budget{display:flex;height:28px;margin:16px 0;background:var(--surface);border-radius:5px;overflow:hidden}.budget i{display:block;background:var(--accent);transition:width .2s}.budget i.gold{background:var(--second)}.intervals{margin:16px 0}.interval{position:relative;height:36px;background:var(--surface);margin:6px 0;border-radius:4px;overflow:hidden}.interval i{position:absolute;height:100%;background:var(--accent-soft);border-left:2px solid var(--accent)}.interval i.gold{background:var(--second-soft);border-color:var(--second)}.interval span{position:relative;z-index:1;font:12px/36px ui-monospace,monospace;padding-left:7px}.table .tr>*{min-height:4.8em}.formula{white-space:pre-line;min-height:7.2em}.actions:has(>button:only-child){grid-template-columns:1fr}.metrics strong{min-height:3.2em}.rangegrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;margin:14px 0}.rangegrid .cell{min-height:30px;padding:3px 1px;font-size:10px}.message{min-height:7.2em;white-space:pre-line;font:13px/1.8 ui-monospace,monospace;overflow-wrap:anywhere}\n/* Allow CJK hanging punctuation without overflowing a metric's border box. */\n.metrics>div{padding-right:4px}.metrics span{line-break:anywhere}\n\n.chart-wrap{margin:18px 0}.chart-label{font-size:12px;color:var(--muted);min-height:3.2em}.curve{display:block;width:100%;height:auto;max-height:320px;overflow:visible}.curve text{font:11px ui-monospace,monospace;fill:var(--muted)}.gridline{stroke:var(--rule);stroke-width:1}.metrics strong{font-size:20px;min-height:3.2em}.formula{font:12px/1.8 ui-monospace,monospace;min-height:9em}.readout{min-height:8em}.presets button{flex-basis:30%}.scope p{overflow-wrap:anywhere} .unit-note{font-size:12px;color:var(--muted);margin:10px 0}\n\n.metrics span{word-break:break-all;line-break:strict}.metrics>div{padding-right:6px}\n\n","js":"const $=s=>document.querySelector(s);const set=(id,v)=>$('#'+id).textContent=v;const t=k=>viz.t(k);function cells(id,values){$('#'+id).replaceChildren(...values.map(v=>{const e=document.createElement('div');e.className='cell '+(v.cls||'');e.textContent=v.text;e.title=v.title||v.text;return e;}));}function pressed(mode){document.querySelectorAll('[data-mode]').forEach(e=>e.setAttribute('aria-pressed',String(e.dataset.mode===mode)));}const esc=s=>String(s).replace(/[&<>\"']/g,c=>({'&':'&','<':'<','>':'>','\"':'"',\"'\":'''}[c]));const fmt=s=>'{'+[...s].sort().join(', ')+'}';function graph(id,nodes,edges){const el=$('#'+id);el.setAttribute('viewBox','0 0 360 200');el.innerHTML='<defs><marker id=\"arrow-'+id+'\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"5\" markerHeight=\"5\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"var(--muted)\"/></marker></defs>'+edges.map(e=>{const a=nodes[e[0]],b=nodes[e[1]],dx=b.x-a.x,dy=b.y-a.y,d=Math.hypot(dx,dy)||1;if(edges.some(r=>r[0]===e[1]&&r[1]===e[0])){const nx=-dy/d,ny=dx/d;return '<path class=\"edge '+(e[2]?'on':'')+'\" d=\"M '+(a.x+dx/d*22+nx*12)+' '+(a.y+dy/d*22+ny*12)+' Q '+((a.x+b.x)/2+nx*38)+' '+((a.y+b.y)/2+ny*38)+' '+(b.x-dx/d*25+nx*12)+' '+(b.y-dy/d*25+ny*12)+'\" marker-end=\"url(#arrow-'+id+')\"/>';}return '<line class=\"edge '+(e[2]?'on':'')+'\" x1=\"'+(a.x+dx/d*25)+'\" y1=\"'+(a.y+dy/d*25)+'\" x2=\"'+(b.x-dx/d*28)+'\" y2=\"'+(b.y-dy/d*28)+'\" marker-end=\"url(#arrow-'+id+')\"/>';}).join('')+nodes.map(n=>'<g><circle class=\"node '+(n.cls||'')+'\" cx=\"'+n.x+'\" cy=\"'+n.y+'\" r=\"25\"/><text x=\"'+n.x+'\" y=\"'+(n.y+4)+'\" text-anchor=\"middle\">'+esc(n.name)+'</text>'+(n.sub?'<text x=\"'+n.x+'\" y=\"'+(n.y+43)+'\" text-anchor=\"middle\">'+esc(n.sub)+'</text>':'')+'</g>').join('');}function table(id,rows){$('#'+id).classList.add('table');$('#'+id).replaceChildren(...rows.map(r=>{const row=document.createElement('div');row.className='tr';row.style.gridTemplateColumns='repeat('+r.length+',minmax(0,1fr))';r.forEach(x=>{const c=document.createElement('div');if(typeof x==='object'){c.textContent=x.text;c.className=x.cls||'';}else c.textContent=x;row.append(c)});return row;}));}function band(id,parts,total){$('#'+id).replaceChildren(...parts.map((p,i)=>{const e=document.createElement('i');e.style.width=(100*p.value/total)+'%';e.className=i%2?'gold':'on';e.title=p.name+': '+p.value;return e}));}function intervals(id,items,total){$('#'+id).replaceChildren(...items.map(p=>{const row=document.createElement('div');row.className='interval';const bar=document.createElement('i');bar.style.left=(100*p.start/total)+'%';bar.style.width=(100*(p.end-p.start)/total)+'%';bar.className=p.cls||'';const label=document.createElement('span');label.textContent=p.label;row.append(bar,label);return row;}));}function plot(id,series,xr,yr,opts={}){const e=$('#'+id),X=x=>42+(x-xr[0])/(xr[1]-xr[0])*298,Y=y=>175-(y-yr[0])/(yr[1]-yr[0])*148;let out='<defs><clipPath id=\"clip-'+id+'\"><rect x=\"42\" y=\"27\" width=\"298\" height=\"148\"/></clipPath></defs>';for(let i=0;i<3;i++){let x=xr[0]+i*(xr[1]-xr[0])/2,y=yr[0]+i*(yr[1]-yr[0])/2;out+='<path class=\"gridline\" d=\"M '+X(x)+' 27V175M42 '+Y(y)+'H340\"/><text x=\"'+X(x)+'\" y=\"194\" text-anchor=\"middle\">'+esc(opts.xfmt?opts.xfmt(x):Number(x.toFixed(2)))+'</text><text x=\"36\" y=\"'+(Y(y)+4)+'\" text-anchor=\"end\">'+esc(opts.yfmt?opts.yfmt(y):Number(y.toFixed(2)))+'</text>';}out+='<g clip-path=\"url(#clip-'+id+')\">';for(const s of series){out+='<path fill=\"none\" stroke=\"'+(s.color||'var(--accent)')+'\" stroke-width=\"2.5\" '+(s.dash?'stroke-dasharray=\"5 4\"':'')+' d=\"'+s.pts.map((p,i)=>(i?'L':'M')+X(p[0]).toFixed(2)+','+Y(p[1]).toFixed(2)).join(' ')+'\"/>';}for(const p of opts.points||[])out+='<circle cx=\"'+X(p[0])+'\" cy=\"'+Y(p[1])+'\" r=\"4\" fill=\"var(--second)\" stroke=\"var(--paper)\" stroke-width=\"1.5\"/>';if(opts.cursor!==undefined)out+='<path d=\"M'+X(opts.cursor)+' 27V175\" stroke=\"var(--muted)\" stroke-dasharray=\"3 3\"/>';e.innerHTML=out+'</g>';e.dataset.curves=JSON.stringify(series.map(s=>s.pts));}const curve=(fn,lo,hi,n=120)=>Array.from({length:n+1},(_,i)=>{const x=lo+(hi-lo)*i/n;return[x,fn(x)]});function inputs(draw){document.querySelectorAll('input,select').forEach(e=>{e.addEventListener('input',draw);e.addEventListener('change',draw)});draw()}const n=id=>+$('#'+id).value;const show=(id,v,d=3)=>set(id,Number(v.toFixed(d)));function draw(){let ig=n('ig'),time=n('time'),q=t=>Math.min(20,ig*t),vg=t=>{let a=q(t);return a<8?3*a/8:a<14?3:3+2*(a-14)/6},vd=t=>12*(1-Math.max(0,Math.min(1,(q(t)-8)/6)));show('ig-value',ig);show('time-value',time);plot('plot',[{pts:curve(vg,0,200,240)},{pts:curve(vd,0,200,240),color:'var(--second)'}],[0,200],[0,12],{cursor:time,points:[[time,vg(time)],[time,vd(time)]]});show('charge',q(time));show('plateau',6/ig);show('vg',vg(time));show('vd',vd(time));set('eq','Q(t) = min(Ig t, 20 nC)\\ntMiller = Qgd / Ig = '+(6/ig).toFixed(2)+' ns\\nttotal = Qg / Ig = '+(20/ig).toFixed(2)+' ns');}inputs(draw);","audio":false,"strings":{"charge":"已转移电荷(nC)","heading":"平台期间,电荷去了哪里?","ig":"栅电流(A)","intro":"改变栅极电流并拖动时间,联动栅压、漏压和电荷。","plateau":"平台时间(ns)","plot":"横轴 ns;蓝:VGS,金:VDS(V)","reset":"重置","scope":"分段教学曲线:Qg=20 nC、Qgd=6 nC(8–14 nC)、驱动终值5 V、漏压12 V、恒定栅电流;不拟合具体器件。","scopeLabel":"模型范围与约定","time":"时刻(ns)","vd":"VDS(V)","vg":"VGS(V)"}}
损耗与工作范围
充分导通时,电阻损耗近似 P_cond = I_rms²R_DS(on,T)。这里的 I_rms 应按器件导通波形和周期口径计算;若只用导通时恒定 5 A、占空比 D,则全周期平均损耗为 D·25R。
举例:工作温度下 R_DS(on)=30 mΩ、全周期 RMS 电流为 5 A,导通损耗约 0.75 W。若另有硬开关条件 V = 12 V、I = 5 A,电压电流重叠转换时间合计 50 ns,频率 100 kHz,常见简化三角重叠估计 P_sw≈½VI(t_r+t_f)f = 0.15 W。
这个模型忽略了实际换流形状、C_oss 能量、体二极管恢复、死区和驱动变化,不能称作总开关损耗的精确测量。它的作用是说明降低 R_DS(on) 并不保证总损耗下降:更大芯片可能需要更多驱动电荷,不同代器件又可能改变这种取舍。
SOA 描述在给定时间和热条件下允许的电压—电流组合。限流、软启动和短路期间可能同时有较大 V_DS 与 I_D,不能仅检查二者各自都低于单独额定值。热稳态可用适用安装条件下的热阻初估,短脉冲要看瞬态热阻和 SOA;正温度系数有助于某些充分导通并联条件下均流,但不保证所有偏置下都无局部热失稳。
from math import isclose
k, overdrive = .001, 2
linear = k*(overdrive*.5-.5**2/2)
saturation = k*overdrive**2/2
assert isclose(linear, .000875)
assert isclose(saturation, .002)
qg, frequency, drive = 20e-9, 200e3, 5
assert isclose(qg*frequency, .004)
assert isclose(qg*frequency*drive, .02)
assert isclose(6e-9/.2, 30e-9)
conduction = 5**2*.03
switching = .5*12*5*50e-9*100e3
assert isclose(conduction, .75) and isclose(switching, .15)
print("长沟道示例:0.875/2 mA;驱动估算:4 mA、20 mW、Miller 阶段 30 ns")
print(f"导通损耗 {conduction:.2f} W,简化重叠损耗 {switching:.2f} W")
从原理到选型,应依次确定实际 V_GS、导通与换流波形、温度和故障运行范围,再对照保证参数与模型。下一篇 功率器件总览 将这些条件扩展到 IGBT、SiC、GaN 等器件,不按单一材料名判断“更快”或“更省电”。