---
title: "用TESS光变检验红巨星模型"
description: "从HD128279光变联合估计模态频率，再和八份原始结构新算的本征模比较，复查窗口、噪声与表面修正。"
canonical_url: "https://sandboxphysics.com/zh/stories/stellar-seismology/tess-red-giant-model/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/stellar-seismology/tess-red-giant-model/"
last_modified: "2026-11-03"
---

[读懂恒星内部](https://sandboxphysics.com/zh/stories/stellar-seismology/)

AC26 · L3

# 用TESS光变检验红巨星模型

Sandbox Physics · 2026-11-03

这次比较可以从真实光变文件一路走到可见的径向、偶极节奏，再走到同一颗星的许可模型。把Lindsay等人2025年的arXiv2507.01091v1放在旁边：图3、表3和图5分别连接观测、模态身份与模型比较。配套Python包能离线复算这里的小型数据分析。

## 开始前需要什么

先读“从明暗曲线读出振动模态”，或熟悉时间序列与基础Python。复算需要NumPy、SciPy和Matplotlib，固定科学输入已完整随包提供。

## 从两段确定的观测开始

HD128279的目标编号是TIC13727。包里放入原始TESS SPOC第38和65扇区光变，来源发布号分别为55和98，文件名保留完整产品身份。不要换成附近恒星、另一种去趋势产品，或方便演示的光变。

先看主文件头：TICID指明恒星，SECTOR指明观测扇区。TIME是以日计的重心动力学时，零点为BJD2457000。PDCSAP\_FLUX是校准孔径流量，单位为电子每秒，另有对应误差列。QUALITY是位标记，不是另一种亮度。

严格练习只保留质量标记为零、时间与流量有限、流量误差有限且为正的样本。第38扇区留下18248个，第65扇区留下16819个。筛选前先验证文件SHA和每个FITS数据单元的校验和；再根据质量标记，判断完整文件里的哪些观测适合留下。

```
python3 verify_inputs.py .
PYTHONDONTWRITEBYTECODE=1 PYTHONWARNINGS=error::RuntimeWarning python3 science/replay.py --inputs input --out-dir rerun
```

对应阅读：Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · MAST public data use and acknowledgment

## 让两年空档留在方法里

两段扇区跨度合计约51.8天，首尾保留时刻却相隔近760天。沿实际时间画光变，巨大的空档马上就能看见。填零会制造观测，把空档压掉则会改变频率窗口。

每段先除以自己的流量中位数，把变化表示为百万分之一，再减去拟合的均值和线性趋势，并保存这个处理选择。现象搜索分别计算两段Lomb–Scargle周期图，再平均功率；它把长空档两侧当作独立随机记录，没有假定恒星保存了两年相位。

这里的周期图采用残差平方和下降统计量，按样本数归一，再除以局部滑动中位数背景，图上比值无量纲。图上比值无量纲。要用它构造概率模型，还需处理密集频率格之间的关联。

对应阅读：Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · MAST public data use and acknowledgment

## 找到径向阶梯，再看它多容易移动

先盲看谱的相关，能得到接近15.8微赫兹的间隔备选值。再打开四个发表径向模态附近，在0.02微赫兹网格上，平均周期图的接收系局部最高点约为177.000、192.740、208.880和225.480微赫兹。这些位置直接来自保存观测。

接着分别只用一个扇区。第38扇区的首个局部最高点落在176.40附近，第65扇区最后一个搜索最高点落在224.66附近，而且碰到了搜索边缘。后一段数据在这个窗口内，没有给出可靠的孤立峰顶。两段平均后更清楚，不代表每个单段最高点都成了精密模态测量。

程序还比较只减常数的PDC处理与线性去趋势的SAP处理。例如，SAP把第三个最高点放在209.08附近，默认PDC结果则是208.88。这些差别属于处理和随机激发的敏感性，不是几份独立置信区间。

局部最高点受到寿命、混叠、噪声和窗口共同影响。发表表格里的0.234微赫兹频率误差，来自论文分析及其采用的下限，属于外部模态表，不能移给这里的局部最高点。

$$
\overline{\Delta\nu}_{\rm four\ peaks}=\frac{225.480-177.000}{3}\,\mathrm{\mu Hz}=16.160\,\mathrm{\mu Hz}
$$

这是横跨四个局部最高点的平均间隔，定义不同于盲相关备选值和论文拟合的整体大间隔。

对应阅读：Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

## 让目录与望远镜使用同一个频率系

HD128279发表频率已经校正恒星的视向速度，光变周期图却描述接收到的节奏。重心时间修正处理观测者位置的变化，并不会自动消去恒星自身的视向速度。

采用来源给出的Gaia视向速度，每秒负75.68千米，再使用下方的相对论因子。这颗星在接近我们，发射频率略低于收到的频率。只校正一次，同时保留两列。

例如，来源径向频率176.918微赫兹，在接收系里约为176.963微赫兹。直接拿176.918去比观测中的177.000，就混用了参考系。修正虽小，却会系统地作用于整列模态。

$$
\nu_{\rm emitted}=\nu_{\rm received}\sqrt{\frac{1+\beta}{1-\beta}},\qquad\beta=v_{\rm radial}/c
$$

正视向速度表示远离。来源分析对频率误差也乘同一因子，这里不把该误差赋给现象搜索的最高点。

对应阅读：Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

## 看看径向峰之间多出的节奏

来源表把八个峰辨认为偶极模态。平均TESS谱里，按这些来源位置搜索，可以在184.22与185.72、200.00与201.66微赫兹附近找到局部最高点。一个径向间隔里出现不止一个偶极候选，外部模态身份与附近实测功率共同支持混合模图景。

这里要保留辨认步骤：角向阶数来自发表表格，局部最高点来自我们处理的光变。除过背景的峰高，不是盲搜索的假警报概率；混叠也能挪动最高点，稀疏序列还不足以唯一安排每个纯重力模的径向阶数。

Kepler扩展使用KIC3860179第7至9季度DR25。质量筛选后分别留下3700、2780和4283个样本，在275.69天里保留实际间断。随包程序真正计算谱相关，最强间隔备选值为15.16微赫兹，来源目录值为15.200537。预研中不同背景与频率格曾给出15.18；方法变化也要跟着数值保存。

这颗Kepler星的偶极bin\_points文件只给出15个粗略种子，没有拟合误差。例如，193.4616附近种子对应的局部最高点约193.46，而195.2116附近搜索得到195.40。附近别的方位分量或噪声也可能赢过原峰。程序保留这些候选，不把相邻周期差直接改叫测得的纯重力模间隔或核心转速。

对应阅读：Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive · Li, Deheuvels & Ballot, Zenodo13207485 v2

## 把十六个成分放进同一个模型

打开real-multimode-fit.json。supports保存来源给出的四个径向、八个偶极、四个四极身份，以及各自0.65微赫兹的搜索半宽。接下来读取estimatesByAssumedLifetime：其中的频率与强度，来自我们对保存光变的共同拟合。

程序按实际质量掩码形成逐扇区窗口，把随机阻尼振子的曝光协方差变成平均功率，再加上相邻模态和局部背景。在8天阻尼时间假设下，一对偶极分量为184.186与185.936微赫兹；改为2天，则为184.379与185.969。0.5天时有多条弱成分或边界解。

两个扇区的功率分别进入拟合。快速计算把保留时刻放到最近的120秒采样位置，原时刻直接Fourier投影用来检查这一近似；这次两种处理的拟合频率最多相差0.0198微赫兹。曝光、阻尼和背景仍是声明的模型条件。

拟合差异量只负责寻找一组峰位。密集谱格有关联，程序没有把它们当成独立数据来生成精密后验。后面的注入实验会直接检查，在这些窗口里能把峰位找得多准。

```
python3 science/fit_real_modes.py --inputs input --out rerun/real-multimode-fit.json
```

对应阅读：Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

## 读同一颗星的完整内部结构

许可源档提供一条固定初始物理的HD128279轨迹，包含327行history和327个GYRE结构。科学包放入完整history/index及八个选定完整剖面。history起点已经过了主序，年龄列是模型的恒星绝对年龄，不是这个文件开始保存后的经过时间。

profile269对应来源模型546，半径约3.79976个太阳半径，有效温度5458.11开尔文，光度11.5445个太阳光度，与发表最佳模型的属性在其给定精度内相符。轨迹年龄为约125亿年，它属于这个固定模型族。

积分前先读GYRE101文件头和单位：半径为厘米，压力为barye，密度为克每立方厘米，Gamma1无量纲。按下式计算声速。文件最外侧的大气点超过了文件头给出的光球半径，因此积分到哪一层必须说清。

这个剖面积分到光球，得到的高阶声学间隔约17.4801微赫兹；把给定大气一起算进去，则为16.5624。外层虽然薄，声速却慢，仍会显著增加声程。它们都不自动等于有限阶径向模态的间隔。

$$
c(r)=\sqrt{\Gamma_1P/\rho},\qquad\tau_{\rm acoustic}=\int\frac{dr}{c(r)},\qquad\Delta\nu_{\rm asym}=\frac{1}{2\tau_{\rm acoustic}}
$$

积分终点属于模型定义。CGS长度和声速要一起换算，传播时间才能正确保留为秒。

对应阅读：Lindsay et al., Zenodo15102877 v1 model/observed-mode archive · GYRE MESA file format version 1.01 · Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams

## 把名字相近、定义不同的量分开比较

history里叫delta\_nu的列尤其容易看错。原inlist明确开启get\_delta\_nu\_from\_scaled\_solar，327个值都按同一个太阳平均密度归一化变化，常数约134.650015微赫兹。它们不是GYRE本征频率；profile269的这个缩放值是15.94972。

发表的四个未修正GYRE径向频率，平均相邻差为16.17053微赫兹，修正后为16.20265。来源观测四峰平均是16.15882，这里接收系局部最高点平均则为16.16000。论文整体拟合的大间隔是15.87，盲相关备选值为15.8。每个数都要连着定义与频段一起读。

最佳模型表里的修正、未修正偶极列，行序并不一致。逐行相减，会制造巨大的假表面频移。程序只比较关联正确的修正模型/观测行，未修正偶极频移要先匹配模态身份，不能先填一个看似方便的答案。

这些外部频率适合检查定义。沿轨迹比较我们自己的峰位，还需要对每份内部结构重新求模态，下一步就做这件事。

对应阅读：Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

## 让八份结构各自算出一组模态

model-grid目录保存八份原始结构经过GYRE7.2.1新算的本征频率、模态惯量和声学、重力节点数。完整绝热振动方程容许声学腔与重力腔耦合，两类节点数帮助辨认混合模分支，惯量反映相同表面归一化下需要带动多少恒星物质。

先检查相邻profile267、269、271。它们分别得到145、145、147条计算域内模态。改用更高阶积分、加倍空间网格权重和频率扫描后，节点身份与总数全部保持，最大频差约0.00182微赫兹。这个数检验求解器的离散误差，观测误差还要另算。

compare\_model\_grid.py读取我们的fittedEmittedMicroHz，按已知角向阶数作一对一频率匹配。以8天拟合为例，267、269、271的十六模原频率均方根残差约为1.3815、0.2998、1.0270微赫兹。打开每个匹配旁的三个备选分支，比较它们的惯量和节点数；密集重力模会给频率匹配许多机会，单靠最近距离不能决定可观测性。

再只用四个径向估计校准两项惯量加权表面修正，相应距离变为0.5236、0.2762、0.3849。若阻尼假设改为0.5天，这种修正后的最小距离会转到271。表面修正能吸收一部分结构差别，读者应把两种比较并排看。这里的距离没有使用真实频率误差构成似然。

默认离线复算读取这些固定GYRE输出，并重新分析光变、比较模型。tools/GYRE-rebuild.md另给实际重算命令，需要已经安装GYRE；完整结构与输入文件均随包保存。研究执行记录证明这一步确实跑过，默认离线复算则不自动安装或执行它。轨迹年龄始终是固定初始物理下的模型属性。

```
python3 science/compare_model_grid.py --inputs input --fit rerun/real-multimode-fit.json --grid model-grid --refined model-refined --out rerun/real-mode-grid-comparison.json
```

对应阅读：GYRE7.2.1 official release and source · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive · Ball & Gizon 2014, A new correction of stellar oscillation frequencies for near-surface effects

## 用已知真值检查容易认错的地方

multimode-injection-calibration.json保存三组各96次实验。独立程序用数值曝光积分和高斯随机过程生成测量，保留实际质量缺测，再由拟合程序读取保存的谱功率。真频率单独存放，只在最后评价误差时使用。

第一组采用8天寿命，另两组检查短寿命失配和挤在一起的偶极对。前48次的误差分位数给出经验区间，后48次独立检验，最差一条模态只覆盖38次。背景在这些注入里是声明幅度的白测量噪声；实验没有校准真实红背景或盲搜索的假警报概率。

再从新算的profile269选定十六个模态频率，按同样窗口、曝光和声明的光度振幅生成48份观测。原频率比较48次都选到269；允许表面修正后，45次选269，1次选267，2次选271。这检验指定频率图样的恢复，也给出了相邻结构被认错的具体例子。

打开重新生成的real-lightcurve-to-grid.png：上图把真实谱与平均谱模型叠在一起，中图按15.8微赫兹折叠我们估计的峰位，下图比较三份相邻结构。每条曲线连着自己的寿命和表面项假设，图上没有由单轨迹推出的精密年龄误差棒。

对应阅读：Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · GYRE7.2.1 official release and source

## 检查曝光，再保存整条计算

文件头说明一次采样由许多短帧组成。对于190微赫兹，标称TESS帧梳的振幅响应约0.999145，Kepler长采样则约0.824924，功率响应还要平方。程序比较了标称逐帧梳、覆盖整段采样的矩形曝光，以及只按积分时间总和构造的矩形曝光。

TESS还记录死时间与处理相关因子，但没有提供每次保留短帧的完整权重，因此均匀帧梳只是标称近似。文件头EXPOSURE是以日计的总曝光，不是一帧长度，也不能当成单次采样时长，或再次乘进已经校准的流量。

复算保留原文件、掩码、来源参照、候选搜索、敏感性和各类间隔定义。最后的输出检查逐项比对数值，同时留下已知模态覆盖不足的例子。这样得到的是可重走的观测到模型比较，并能清楚看见完整恒星推断还需要哪些信息。

对应阅读：MAST public data use and acknowledgment · Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams

## 练习与解释性答案

1. 为什么短寿命假设下，表面修正后的最小距离转到271，还不能据此宣布恒星年龄换成271的年龄？

   展开解释

   寿命改变从光变估计的峰位，表面项又能吸收一部分结构频移；密集重力模还提供多个匹配分支。这次翻转表明条件假设影响比较结果。模型集合只沿一条固定初始物理轨迹取样，距离也没有转成经过真实误差验证的年龄概率。

2. 为什么四个观测径向峰的平均间隔，可以不同于论文整体大间隔？

   展开解释

   它们的定义、频率权重不同，有限阶模态的间隔也会随频段改变。这里四峰平均为16.160微赫兹，论文整体值为15.87，应保留各自标签和频段，强行相等就改变了结果。

3. 哪两个保存量能立刻说明TESS没有连续观察760天的随机运动？

   展开解释

   实际时间序列显示长空档，两段扇区跨度合计却只有约51.8天。连接两段随机运动时，还要考虑模态寿命。

4. profile269匹配发表最佳半径，也给出年龄，为什么仍不是独立测得的年龄区间？

   展开解释

   它属于一条指定初始物理的轨迹，单条轨迹没有代表其他质量、成分、混合与模型不确定性，完整优化集合也不在这里。

## 动手检验预测

### [改变内部一层，读出模态变化](https://sandboxphysics.com/zh/labs/stellar-oscillation-modes/)

1. 打开真实数据区域，选择TESS，找到橙色径向参照和其他来源标记的模态。
2. 切到Kepler，比较更丰富的频率结构，并分清真实模型声速图与可操纵的声学示意。
3. 运行独立包，先看一个碰到搜索边缘的失败例和一种处理敏感性，再决定能怎样解释峰位。

## 独立科学复算材料

[下载科学复算ZIP](https://sandboxphysics.com/stories/stellar-seismology/materials/stellar-seismology-science.zip) · [阅读安装与来源说明](https://sandboxphysics.com/stories/stellar-seismology/materials/README.md)

独立包包含完整的小型观测和许可清晰的模型成员，已知真值与真实数据练习均可离线复算，无需网站或恒星演化工具。

[上一篇：从明暗曲线读出振动模态](https://sandboxphysics.com/zh/stories/stellar-seismology/lightcurves-modes-and-windows/) [下一篇：怎样从混合模读出核心转动](https://sandboxphysics.com/zh/stories/stellar-seismology/mixed-modes-core-rotation/)

## 来源与计算范围

1. [GYRE7.2.1 official release and source](https://github.com/rhdtownsend/gyre/releases/tag/v7.2.1)

   固定求解器版本；从八个原始结构实际重算完整绝热径向、偶极和四极频率、惯量与声学/重力节点，科学包附构建方法、原件SHA256与执行记录。

2. [GYRE MESA file format version 1.01](https://gyre.readthedocs.io/en/stable/ref-guide/stellar-models/mesa-file-format-v1.01.html)

   完整许可结构成员采用的文件头、逐列定义与CGS单位。

3. [Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams](https://arxiv.org/html/2507.01091v1)

   固定arXiv2507.01091v1；第II.2、III、V.3、V.4节，图3/5、表3/4/6和附录A；已发表于ApJ 989, 189，完整优化和年龄误差属于外部发表结果。

4. [Lindsay et al., Zenodo15102877 v1 model/observed-mode archive](https://zenodo.org/records/15102877)

   元数据明确CC-BY4；选取的HD128279观测、history/index、八个GYRE结构和发表模态表完整核验；只有一条初始物理轨迹，不含840轨迹优化集。

5. [Li, Deheuvels & Ballot, Zenodo13207485 v2](https://zenodo.org/records/13207485)

   CC-BY4旋转目录及KIC3860179选定模态文件；偶极bin\_points仅是粗略种子，l0/l2拟合表另含误差，含混的辅助列不用于拟合。

6. [MAST public data use and acknowledgment](https://stdatu.stsci.edu/publishing/data-use)

   按MAST产品URI取得原任务PUBLIC产品，保留NASA/Kepler/TESS/SPOC/STScI致谢与固定数据发布版本。

7. [Ball & Gizon 2014, A new correction of stellar oscillation frequencies for near-surface effects](https://arxiv.org/abs/1408.0986)

   按模态惯量加权的逆频率/三次频率表面项；具体应用读Lindsay2025附录A。原论文有勘误DOI10.1051/0004-6361/201424325e；课程不声称独立复现全文。
