You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab绘图无曲线显示求助:电子浓度与1/T关系图

问题原因及修正方案

核心错误点

  • 未定义变量Nv:代码计算电子浓度时用到了价带有效状态密度Nv,但常量部分仅定义了导带的Nc,Matlab会直接报错,无法生成有效数据。
  • 单位不匹配导致数值异常:k的单位是J/K,而Eg用的是eV,两者单位不统一,计算Eg./(2*k*T)时会得到极大的负数值,使得exp()结果趋近于0,ln(n)变成-Inf,绘图时全是无穷小值,自然看不到曲线。
  • 电子浓度公式错误:你当前用的是本征载流子浓度ni的计算公式,但n型半导体的电子浓度在多数温度区间(非本征区)应近似等于掺杂浓度Nd,仅高温本征激发占主导时才用ni的公式。
  • 坐标轴标注错误:ylabel写的是ln(N_D),但实际绘制的是ln(n),标注与数据不符。

修正后的代码

% Constants
k = 1.38e-23;          % Boltzmann's constant (J/K)
eV_to_J = 1.602e-19;   % Conversion factor from eV to J
Eg = 1.12 * eV_to_J;   % Energy band gap of silicon (J)
Nc = 2.8e19;           % Effective density of states in conduction band (cm^-3)
Nv = 1.04e19;          % Effective density of states in valence band (cm^-3)
Nd = 1e16;             % Doping concentration (cm^-3)

% Temperature range
T = linspace(100, 1000, 100);  % Temperature range from 100 K to 1000 K

% Calculate intrinsic carrier concentration
ni = sqrt(Nc * Nv) * exp(-Eg./(2*k*T));

% Electron concentration for n-type doping: 区分非本征区和本征区
n = max(Nd, ni);  % 低温非本征区n≈Nd,高温本征区n≈ni

% Calculate ln(n)
ln_n = log(n);

% Calculate 1/T
inv_T = 1 ./ T;

% Plot
plot(inv_T, ln_n, 'r', 'LineWidth', 2);
xlabel('1/T (K^{-1})');
ylabel('ln(n) (cm^{-3})');
title('ln(Electron Concentration) vs. 1/T for Silicon');
grid on;

修正说明

  • 补充定义硅的价带有效状态密度Nv(典型值为1.04e19 cm^-3),同时添加eV到J的转换,确保Eg与k单位统一。
  • 修正n型半导体电子浓度的计算逻辑:用max(Nd, ni)模拟实际物理过程——低温下掺杂完全电离,电子浓度等于掺杂浓度;高温下本征激发占主导,电子浓度趋近于本征载流子浓度。
  • 修正ylabel标注,使其与绘制的数据匹配。

内容的提问来源于stack exchange,提问作者Homer Jay Simpson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:46:07