news 2026/9/4 6:09:16

Matlab实现1976标准大气模型:从理论推导到工程应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Matlab实现1976标准大气模型:从理论推导到工程应用

简介:这是一份基于1976年美国标准大气模型(U.S. Standard Atmosphere, 1976)实现的MATLAB工程级函数库,专为飞行器设计、气动分析与性能仿真工程师开发,解决多高度点批量计算温度、压力、密度、声速等关键大气参数时缺乏统一、灵活、单位兼容接口的痛点。资源共7个.m文件,构成完整可调用模块:核心函数atmo.m支持标量/向量/矩阵/高维数组输入,集成温度偏移修正、SI/英制单位自由切换、DimensionedVariable类强制单位一致性,并可直接输出动压、马赫数、雷诺数、滞止温度等衍生参数;配套含分段温度、压力、成分计算及测试验证脚本。压缩包仅8KB,轻量高效,代码结构清晰、注释规范,便于嵌入现有仿真流程或教学实验。已有1068人学习下载,适用于航空专业本科生课程设计、研究生课题建模及工业界快速原型开发。

1. 项目缘起:为什么我们需要一个“标准大气”?

如果你从事航空航天、气象、无人机设计,或者任何与高空飞行、弹道计算相关的仿真工作,那么“标准大气”这个概念对你来说一定不陌生。它不是指某一天、某一地的真实大气,而是一个经过国际公认的、描述大气温度、压力、密度、声速等参数随高度变化的数学模型。你可以把它理解为一本“大气参数参考手册”,为全球的工程师和科学家提供了一个统一的、可重复的计算基准。

在众多标准大气模型中,1976年美国标准大气(U.S. Standard Atmosphere, 1976)是应用最广泛、最经典的一个。它定义了从海平面到1000公里高度的完整大气剖面。对于绝大多数工程应用,我们通常只关心其平流层以下的部分(约0-86公里)。这个模型的价值在于,当我们需要计算飞机的升力阻力、导弹的飞行轨迹、或者卫星的轨道衰减时,不需要去查询某个特定时间和地点的、充满不确定性的真实气象数据,而是可以直接调用这个标准模型,确保计算的一致性和可比性。

那么,为什么是Matlab?因为Matlab在科学计算和工程仿真领域的地位无可替代。它强大的矩阵运算能力、丰富的内置函数以及便捷的可视化工具,使得实现和调用1976标准大气模型变得异常高效。网络上确实能找到一些零散的代码片段,但要么功能不全,要么注释不清,要么就是直接调用了某些工具箱里的黑箱函数,让人知其然不知其所以然。今天,我就来从头到尾,手把手带你用Matlab实现一个完整的、可高度自定义的1976标准大气模型计算函数,并深入探讨其中的物理原理、实现细节以及实际应用中的那些“坑”。

2. 模型核心:1976标准大气到底规定了什么?

在动手写代码之前,我们必须吃透模型本身。1976标准大气模型的核心,是基于以下几个基本假设和分层规则来构建的。

2.1 分层结构与温度-高度关系

模型将大气从海平面到86公里高度划分为多个层。在每一层内,温度随高度的变化率(温度梯度,记作 L_b)被假定为常数。这个假设是模型数学表达式的基石。根据温度梯度的正负,各层被定义为:

  1. 对流层(Troposphere): 0 - 11 km。温度随高度升高而线性下降,L_b = -6.5 K/km。
  2. 平流层下层(Lower Stratosphere): 11 - 20 km。温度恒定,L_b = 0 K/km,即等温层。
  3. 平流层上层(Upper Stratosphere): 20 - 32 km。温度随高度升高而线性上升,L_b = +1.0 K/km。
  4. 平流层顶(Stratopause): 32 - 47 km。温度再次恒定,L_b = 0 K/km。
  5. 中间层下层(Lower Mesosphere): 47 - 51 km。温度线性下降,L_b = -2.8 K/km。
  6. 中间层(Mesosphere): 51 - 71 km。温度再次线性下降,L_b = -2.0 K/km。
  7. 中间层顶(Mesopause): 71 - 86 km。温度线性下降,L_b = -?等等,这里有个细节:在86公里处,模型定义的温度是186.87K,但从71km到86km,温度梯度并不是一个简单的整数。我们需要精确计算。

每一层的边界高度(H_b)和边界温度(T_b)都是模型预先定义好的。例如,海平面(H=0)的标准温度为T0 = 288.15 K (15°C),标准压力为P0 = 101325 Pa,标准密度为ρ0 = 1.225 kg/m³

2.2 气压与密度计算的物理基础

知道了温度分布,如何求气压和密度?这里需要用到流体力学的静力学方程和理想气体状态方程。

对于一层内温度线性变化(L_b ≠ 0)的情况,气压计算公式的推导来自流体静力学平衡和理想气体定律的积分。公式如下:

P = P_b * (T_b / (T_b + L_b * (H - H_b)))^(g0 * M / (R* L_b))

对于等温层(L_b = 0),公式则简化为指数形式:

P = P_b * exp( -g0 * M * (H - H_b) / (R * T_b) )

其中:

  • P是所求高度H的气压。
  • P_b,T_b,H_b是该层底部的参考气压、温度和高度。
  • L_b是该层的温度梯度(K/m,注意单位转换)。
  • g0 = 9.80665 m/s²是海平面重力加速度。
  • M = 0.0289644 kg/mol是干燥空气的摩尔质量。
  • R = 8.31432 J/(mol·K)是通用气体常数。

注意:这里的R是通用气体常数,而干燥空气的气体常数R_air = R / M ≈ 287.05 J/(kg·K)。在公式推导中,使用RM的组合更为常见。

得到气压P和温度T后,密度ρ直接通过理想气体状态方程变形得到:

ρ = P * M / (R * T)

声速a的计算则基于热力学公式,对于理想气体,a = sqrt(γ * R_air * T),其中γ = 1.4是空气的比热容比。

理解了这些,我们就掌握了模型的“灵魂”。接下来,就是用Matlab将这些数学公式严谨地、高效地实现出来。

3. 从公式到代码:手把手构建Matlab函数

我们的目标是创建一个名为atmosisa1976的函数,它接收一个高度值(或高度数组),返回对应的大气温度、气压、密度和声速。我们将采用面向过程但结构清晰的函数式编程。

3.1 函数框架与常量定义

首先,我们定义函数的输入输出和必要的物理常数。一个好的习惯是把所有常数集中定义在函数开头,方便检查和修改。

function [T, P, rho, a] = atmosisa1976(h) %ATMOSISA1976 计算1976美国标准大气参数。 % [T, P, RHO, A] = ATMOSISA1976(H) 根据1976美国标准大气模型, % 计算给定几何高度 H (米) 上的温度 T (K)、气压 P (Pa)、 % 密度 RHO (kg/m^3) 和声速 A (m/s)。 % H 可以是标量或数组。 % 定义物理常数 g0 = 9.80665; % 重力加速度, m/s^2 R = 8.31432; % 通用气体常数, J/(mol*K) M = 0.0289644; % 空气摩尔质量, kg/mol R_air = R / M; % 干燥空气气体常数, J/(kg*K) gamma = 1.4; % 空气比热容比 % 海平面基准值 T0 = 288.15; % K P0 = 101325.0; % Pa rho0 = 1.225; % kg/m^3 % 定义大气分层 (高度 H_b 单位: m, 温度 T_b 单位: K, 温度梯度 L_b 单位: K/m) % 格式: [H_b, T_b, L_b] layers = [ 0, T0, -0.0065; % 0: 对流层 11000, 216.65, 0.0; % 1: 平流层下层 (等温) 20000, 216.65, 0.001; % 2: 平流层上层 32000, 228.65, 0.0028; % 3: 平流层顶 (等温)? 等等,这里需要核对 47000, 270.65, 0.0; % 4: 中间层下层 (等温)? 再次核对 51000, 270.65, -0.0028; % 5: 中间层下层 71000, 214.65, -0.002; % 6: 中间层 84852, 186.87, 0.0 % 7: 中间层顶 (模型定义到86km,但精确值是84852m) ]; % 注意:上面的 layers 表格数据是不完整的,我们将在下一步完善。

这里我故意留下了一个“坑”。如果你直接搜索“1976 standard atmosphere layers”,可能会得到几个略有差异的表格。一个关键的实操心得是:必须使用官方原始文献或高度可信的来源(如NASA技术报告)来定义分层数据。我见过很多网上代码因为层边界或温度梯度的一个微小错误,导致在特定高度(比如30km附近)的计算结果出现可察觉的偏差。为了本文的准确性,我查阅了NASA RP-1350文档,以下是修正后的精确分层数据:

% 修正后的精确分层数据 (0-86km) layers = [ 0, 288.15, -0.0065; % 0: 对流层 11000, 216.65, 0.0; % 1: 平流层下层 (等温) 20000, 216.65, 0.001; % 2: 平流层上层 32000, 228.65, 0.0028; % 3: 平流层顶 47000, 270.65, 0.0; % 4: 中间层下层 (等温) 51000, 270.65, -0.0028; % 5: 中间层下层 71000, 214.65, -0.002; % 6: 中间层 84852, 186.87, 0.0 % 7: 中间层顶 (86km以内最后一层) ]; % 注意:86km以上模型还有定义,但需要用到不同的温度梯度公式和分子量变化, % 本文聚焦于86km以下最常见的工程应用。

3.2 核心计算逻辑与向量化实现

接下来是核心部分:对于输入的每一个高度h,判断它属于哪一层,然后应用对应的公式计算。为了提高Matlab的运算效率,我们应该尽量使用向量化操作,避免在循环中进行大量的标量计算。

% 初始化输出数组,与输入h同尺寸 T = zeros(size(h)); P = zeros(size(h)); rho = zeros(size(h)); a = zeros(size(h)); % 为了向量化,我们需要对每个高度点确定其所在层。 % 这里使用 discretize 函数,它比多层if-else或循环更高效。 % 注意:discretize 需要 edges,我们的 edges 是每层的底边界和顶边界。 layer_edges = [layers(:,1); inf]; % 添加一个无穷大作为最后一层的上界 num_layers = size(layers, 1); % 获取每个高度点所在的层索引 (1 到 num_layers) layer_idx = discretize(h, layer_edges); % 对于输入h中的每一个高度点进行批量计算 for i = 1:num_layers % 找到所有属于第i层的高度点索引 idx = (layer_idx == i); if ~any(idx) continue; % 如果没有高度点在这一层,跳过 end % 提取该层的基准参数 H_b = layers(i, 1); T_b = layers(i, 2); L_b = layers(i, 3); % 计算这些高度点相对于该层底的高度差 delta_h = h(idx) - H_b; % 计算温度 T = T_b + L_b * delta_h T(idx) = T_b + L_b * delta_h; % 计算气压 if abs(L_b) < 1e-10 % 处理等温层 L_b ≈ 0 % 等温层公式: P = P_b * exp( -g0 * M * delta_h / (R * T_b) ) % 但我们需要 P_b,即该层底部的气压。我们需要从海平面开始递推。 % 因此,我们不能直接在这里计算P,需要先知道P_b。 % 这提示我们需要一个更系统的计算顺序:必须从海平面开始,一层一层往上算。 else % 非等温层公式: P = P_b * (T_b / T)^(g0*M/(R*L_b)) % 同样,我们需要 P_b。 end end

上面的代码揭示了一个关键问题:气压P的计算依赖于上一层的底部气压P_b。这意味着我们不能独立地计算每个高度点的气压,而必须采用“积分”或“递推”的方式,从海平面开始,利用每一层的公式,计算出该层顶部的气压,作为下一层的底部气压。这是一个常见的实现陷阱。

3.3 递推计算与完整函数实现

我们需要调整策略。一种高效且清晰的方法是:先为所有层边界计算出精确的温度和气压,然后对于任意高度点,先定位其所在层,再利用该层的底部边界参数和公式进行插值计算。

function [T, P, rho, a] = atmosisa1976(h) % ... (常数和分层定义与之前相同) ... % --- 步骤1: 计算所有层边界的温度和气压 --- num_boundaries = size(layers, 1) + 1; % 层数+1个边界(从第0层底到最后层顶) H_boundaries = zeros(num_boundaries, 1); T_boundaries = zeros(num_boundaries, 1); P_boundaries = zeros(num_boundaries, 1); % 第一个边界:海平面 H_boundaries(1) = layers(1,1); T_boundaries(1) = layers(1,2); P_boundaries(1) = P0; % 递推计算后续边界 for i = 1:size(layers, 1) H_b = layers(i, 1); T_b = layers(i, 2); L_b = layers(i, 3); P_b = P_boundaries(i); % 当前层底部的气压 % 当前层顶部的高度(即下一层的底部高度) if i < size(layers, 1) H_t = layers(i+1, 1); else % 如果是最后一层,我们计算到模型上限86km H_t = 86000; % 或 layers(i,1)+一个足够大的值,用于覆盖输入范围 end H_boundaries(i+1) = H_t; delta_h = H_t - H_b; T_t = T_b + L_b * delta_h; T_boundaries(i+1) = T_t; % 计算顶部气压 if abs(L_b) < 1e-10 % 等温层 P_t = P_b * exp( -g0 * M * delta_h / (R * T_b) ); else % 非等温层 exponent = g0 * M / (R * L_b); P_t = P_b * (T_b / T_t)^exponent; end P_boundaries(i+1) = P_t; end % --- 步骤2: 对输入高度h进行插值计算 --- T = zeros(size(h)); P = zeros(size(h)); for i = 1:numel(h) hi = h(i); % 找到hi所在的层索引 layer_index = find(hi >= layers(:,1), 1, 'last'); if isempty(layer_index) % 如果高度低于0,可以按最底层外推,但通常报错或给NaN % 这里简单地赋值为海平面值 layer_index = 1; hi = max(hi, layers(1,1)); elseif hi > H_boundaries(end) % 如果高度超过86km,可以按最上层外推或报错。这里我们限制计算。 warning('输入高度 %.2f m 超过86km,结果可能不准确。', hi); layer_index = size(layers, 1); hi = min(hi, H_boundaries(end)); end % 获取该层的基准参数 H_b = layers(layer_index, 1); T_b = layers(layer_index, 2); L_b = layers(layer_index, 3); P_b = P_boundaries(layer_index); % 使用递推计算出的该层底部气压 % 计算该高度点的温度 delta_h = hi - H_b; T(i) = T_b + L_b * delta_h; % 计算该高度点的气压 if abs(L_b) < 1e-10 P(i) = P_b * exp( -g0 * M * delta_h / (R * T_b) ); else exponent = g0 * M / (R * L_b); P(i) = P_b * (T_b / T(i))^exponent; end end % --- 步骤3: 计算密度和声速 --- rho = P * M ./ (R * T); % 注意使用点除 ./ a = sqrt(gamma * R_air * T); end

这个版本已经是一个功能完整的实现。它采用了“先计算边界,再插值”的策略,逻辑清晰,并且通过循环numel(h)来处理输入数组。对于非常大的高度数组,你还可以进一步优化,例如将最内层的循环向量化,但当前版本在可读性和性能之间取得了很好的平衡。

4. 验证、可视化与常见问题排查

函数写好了,但我们怎么知道它是对的?我们需要验证。

4.1 如何验证计算结果的正确性?

最直接的方法是与权威数据对比。你可以从NASA官网或一些教科书后附表中找到1976标准大气的标准值表(例如,每公里高度的T, P, ρ值)。我们选取几个关键高度进行验证:

% 验证脚本 test_altitudes = [0, 11000, 20000, 32000, 47000, 51000, 71000, 84852]'; [T_calc, P_calc, rho_calc, a_calc] = atmosisa1976(test_altitudes); % 已知的标准值 (来自NASA RP-1350,仅示例部分) T_std = [288.15, 216.65, 216.65, 228.65, 270.65, 270.65, 214.65, 186.87]'; P_std = [101325, 22632, 5474.9, 868.02, 110.91, 66.939, 3.9564, 0.3734]'; % Pa rho_std = [1.2250, 0.36391, 0.08803, 0.01322, 0.00143, 0.00086, 0.000064, 0.000006]'; % kg/m^3 % 计算相对误差 T_err = abs(T_calc - T_std) ./ T_std * 100; P_err = abs(P_calc - P_std) ./ P_std * 100; rho_err = abs(rho_calc - rho_std) ./ rho_std * 100; fprintf('高度(m)\t温度误差%%\t气压误差%%\t密度误差%%\n'); for i = 1:length(test_altitudes) fprintf('%8.0f\t%8.4f\t%8.4f\t%8.4f\n', test_altitudes(i), T_err(i), P_err(i), rho_err(i)); end

如果误差在万分之几(0.0x%)以内,通常就可以认为实现是正确的。气压和密度由于是指数关系,对计算精度更敏感,要特别关注。

4.2 结果可视化:绘制大气剖面图

一张图胜过千言万语。绘制温度、气压、密度随高度的变化曲线,能直观检查模型的连续性,也是项目报告或演示的必备。

% 生成一个密集的高度数组 h_plot = linspace(0, 85000, 1000)'; [T_plot, P_plot, rho_plot, a_plot] = atmosisa1976(h_plot); % 创建多子图 figure('Position', [100, 100, 1200, 800]); subplot(2,2,1); semilogy(T_plot, h_plot/1000, 'b-', 'LineWidth', 1.5); % 高度转换为km grid on; xlabel('温度 (K)'); ylabel('高度 (km)'); title('1976标准大气 - 温度剖面'); subplot(2,2,2); loglog(P_plot, h_plot/1000, 'r-', 'LineWidth', 1.5); grid on; xlabel('气压 (Pa)'); ylabel('高度 (km)'); title('1976标准大气 - 气压剖面'); % 注意:气压跨越多个数量级,使用对数坐标更合适。 subplot(2,2,3); loglog(rho_plot, h_plot/1000, 'g-', 'LineWidth', 1.5); grid on; xlabel('密度 (kg/m^3)'); ylabel('高度 (km)'); title('1976标准大气 - 密度剖面'); subplot(2,2,4); plot(a_plot, h_plot/1000, 'm-', 'LineWidth', 1.5); grid on; xlabel('声速 (m/s)'); ylabel('高度 (km)'); title('1976标准大气 - 声速剖面');

运行这段代码,你会得到四张标准的、可用于学术或工程报告的专业图表。从图中你可以清晰地看到:温度在对流层下降,在平流层先等温后上升;气压和密度随高度近似指数衰减;声速则主要跟随温度的开方变化。

4.3 你可能遇到的“坑”与解决方案

  1. 精度问题:在等温层(L_b=0)使用非等温层公式,会导致除以零的错误。代码中通过判断abs(L_b) < 1e-10来避免。这是一个关键的保护性编程技巧。

  2. 高度输入范围:我们的函数默认处理0-86km。如果输入负高度或超过86km的高度怎么办?上面的代码给出了简单的警告和截断处理。在工业级代码中,你可能需要更严谨的错误处理,比如抛出异常或返回NaN。

  3. 单位混淆:这是最常见的错误来源。模型定义中,温度梯度L_b通常是K/km,但在公式中需要转换为K/m。我们的分层表格直接使用了K/m(-0.0065 而不是 -6.5)。务必在注释中明确单位。

  4. 常数取值:不同的资料中,重力加速度g0、气体常数R、摩尔质量M的取值可能在小数点后几位有细微差别。这会导致最终结果,尤其是高层的气压和密度,出现微小偏差。建议在函数开头明确注释常数来源(例如“依据NASA RP-1350”),以确保结果的可复现性。

  5. 向量化与循环的权衡:我们的最终实现为了清晰,对每个输入高度点进行了循环。如果h是百万级别的数组,这会成为性能瓶颈。一个进阶的优化是使用arrayfun或完全向量化的方案,通过meshgridbsxfun(对于旧版本Matlab)来避免循环。但对于大多数应用,当前版本的性能已经足够。

5. 超越标准模型:实际工程应用中的扩展

实现标准模型只是第一步。在实际工程中,我们往往需要对其进行调整和扩展。

5.1 非标准日与温度偏移

标准大气代表的是“平均”状态。实际大气每天都在变化。一个常见的修正是引入“温度偏移”(Delta-T)。例如,一个“+10°C”的非标准日,意味着整个大气温度剖面在标准值上整体上移了10°C(注意是10°C,即10K)。这会影响密度和气压。

如何修改我们的函数?我们可以在计算温度后,加入一个偏移量delta_T,然后再用修正后的温度去重新计算气压和密度吗?不行!因为气压和密度的计算公式依赖于温度剖面的原始形状(温度梯度)。一个更工程化的做法是:保持各层的温度梯度L_b不变,但调整每层的基准温度T_b。这通常通过指定海平面温度偏移来实现,然后假设这个偏移量随高度保持不变或按某种规则衰减。这是一个更复杂的主题,但你可以通过修改T_b数组来初步探索。

5.2 与Simulink/Simscape集成

很多动态仿真需要在Simulink中进行。你可以将我们的atmosisa1976函数封装成一个Matlab Function BlockS-Function,作为气动环境模块集成到你的飞行器模型中。更高级的做法是利用 Aerospace Blockset 中自带的COESA Atmosphere Model模块,它已经实现了1976和后续的大气模型。自己实现函数的价值在于:第一,你完全理解其内部机制,可以自定义;第二,当你的部署环境没有Aerospace工具箱时,你依然可以运行仿真。

5.3 用于飞行性能计算示例

假设我们要计算一架飞机在不同高度的最大升力。升力公式为L = 0.5 * ρ * V^2 * S * Cl_max。其中密度ρ随高度剧烈变化。

% 示例:计算不同高度下,相同空速和迎角产生的升力比(相对于海平面) altitudes = [0, 5000, 10000, 15000]; % 米 [~, ~, rho, ~] = atmosisa1976(altitudes); V = 100; % 空速, m/s S = 50; % 机翼面积, m^2 Cl_max = 1.5; % 最大升力系数 L = 0.5 * rho * V^2 * S * Cl_max; L_ratio = L / L(1); % 相对于海平面的升力比 figure; plot(altitudes/1000, L_ratio, 'o-', 'LineWidth', 2, 'MarkerSize', 8); xlabel('高度 (km)'); ylabel('升力比 (相对于海平面)'); title('标准大气下升力随高度衰减'); grid on;

从结果图中,你能直观地看到,在10公里高度,空气密度只有海平面的约三分之一,这意味着在相同空速下,飞机能产生的最大升力也只剩下三分之一。这解释了为什么喷气客机需要在平流层下部巡航——那里空气稀薄,阻力小,但为了保证升力,必须飞得更快(V^2项补偿ρ的下降)。

通过这个完整的从理论到实现,再到验证和应用的旅程,我希望你不仅获得了一个可以直接复制使用的Matlab函数,更重要的是理解了1976标准大气模型背后的物理原理、数学推导和工程实现的种种细节。下次当你在仿真中调用大气参数时,你会清楚地知道每一个数字从何而来,以及如何根据实际需求去调整它。这才是工程师的核心能力。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 6:08:13

智能笔记管理系统:从课程作业到个人知识中枢的完整实现指南

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

作者头像 李华
网站建设 2026/9/4 6:07:52

指针03——字符、数组、函数指针

1.字符指针变量字符指针是char*类型&#xff0c;下边是基本用法#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main() {char ch d;char* pc &ch;return 0; }这就是最基础的用法&#xff0c;一个字符类型存一个字符&#xff0c;取地址后地址保存在pc字符…

作者头像 李华
网站建设 2026/9/4 6:07:00

51单片机智能鱼缸工程实践:从Proteus仿真到实物闭环

简介&#xff1a;本资源是一套面向高校电子类、自动化专业本科生的51单片机毕业设计完整方案&#xff0c;聚焦智能鱼缸控制系统开发&#xff0c;解决传统鱼缸人工管理效率低、缺乏远程监控与智能响应的问题。项目基于STC89C52等主流51单片机&#xff0c;集成ESP8266 WiFi模块实…

作者头像 李华
网站建设 2026/9/4 6:06:41

从零开始的敲代码生活--Linux应用软件(线程)

一、线程的概念线程是轻量级的进程&#xff0c;用于实现多任务并发。线程&#xff1a;操作系统CPU任务调度的最小单位进程&#xff1a;操作系统资源分配的最小单位二、线程的创建线程隶属于某一个进程&#xff0c;由所属进程创建。线程会分配独立栈空间&#xff08;默认8M&…

作者头像 李华
网站建设 2026/9/4 6:05:06

MOS管从原理到实战:结构、工作区、选型与开关电路设计

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

作者头像 李华
网站建设 2026/9/4 6:04:23

28 while循环

1、知识点 2、小结 3、案例

作者头像 李华