热力学知识引导的神经网络输入重参数化:超临界燃烧模拟新方法
在超临界燃烧模拟中准确预测真实流体的热力学性质一直是计算流体力学领域的核心挑战。传统方法如状态方程计算虽然理论成熟但计算成本高昂难以满足工程实时性需求。近年来基于神经网络的热力学性质预测方法展现出巨大潜力但输入参数的选择和表征直接影响模型的精度和泛化能力。本文将深入探讨热力学知识引导的输入重参数化技术分享一套完整的神经网络预测框架涵盖理论基础、数据预处理、模型构建到实际应用的全流程。1. 超临界燃烧与热力学性质预测背景1.1 超临界燃烧的特殊性超临界燃烧是指流体在超过其临界点临界温度和临界压力条件下发生的燃烧过程。在这种状态下流体既不是传统意义上的气体也不是液体而是呈现出独特的物理性质。超临界流体的密度接近液体但粘度和扩散系数更接近气体这种特殊性导致传统燃烧模型难以准确描述其热力学行为。在航空航天推进、超临界发电等工程领域超临界燃烧的精确模拟对系统设计和优化至关重要。然而超临界区域的热力学性质计算异常复杂状态方程如Peng-Robinson、Soave-Redlich-Kwong等虽然能够描述真实流体行为但需要迭代求解计算量巨大。1.2 神经网络预测的优势与挑战神经网络通过学习大量数据中的复杂非线性关系能够建立输入参数与热力学性质之间的映射函数。与传统数值方法相比神经网络预测具有计算速度快、无需迭代求解的优势特别适合嵌入CFD代码中进行实时计算。但是神经网络预测面临两个主要挑战一是输入特征的物理意义不明确可能导致模型泛化能力差二是超临界区域性质变化剧烈网络难以捕捉突变行为。热力学知识引导的输入重参数化正是为了解决这些问题而提出的技术路线。2. 热力学知识引导的输入重参数化原理2.1 重参数化的核心思想输入重参数化的本质是将原始物理参数如温度、压力、组分浓度通过热力学知识转换为更具物理意义的特征表示。这种转换基于对热力学系统本质的理解目的是让神经网络更容易学习到正确的物理规律。例如在超临界区域直接使用温度T和压力P作为输入可能不是最优选择因为热力学性质在临界点附近呈现强烈的非线性。通过引入对比温度T/T_critical和对比压力P/P_critical等无量纲参数可以更好地表征流体状态相对于临界点的位置。2.2 常用重参数化方法基于对应状态原理的重参数化是常用方法之一。该原理认为所有流体在相同的对比状态下具有相似的热力学性质。因此可以将具体流体的参数转换为对比参数使神经网络能够学习通用的热力学规律。另一种重要方法是基于热力学势函数的特征构造。例如引入亥姆霍兹自由能、吉布斯自由能等热力学势的导数关系构造出与目标性质直接相关的输入特征。这种方法能够显式地引入热力学一致性约束。3. 神经网络预测框架搭建3.1 环境准备与工具选择本文示例使用Python 3.8和PyTorch框架同时需要科学计算库NumPy和数据处理库Pandas。建议使用Anaconda环境管理工具创建独立的工作环境。# 创建conda环境 conda create -n thermo_nn python3.8 conda activate thermo_nn # 安装核心依赖 pip install torch1.9.0 numpy pandas scikit-learn matplotlib对于热力学计算可以结合CoolProp库获取准确的热力学性质数据用于训练和验证pip install coolprop3.2 数据准备与预处理神经网络预测的质量很大程度上取决于训练数据的质量和代表性。对于超临界燃烧应用需要覆盖广泛的温度、压力和组分空间。import numpy as np import pandas as pd from coolprop.CoolProp import PropsSI def generate_thermodynamic_data(fluids, T_range, P_range, compositions): 生成多组分流体的热力学性质数据 data [] for fluid in fluids: for T in np.linspace(T_range[0], T_range[1], 100): for P in np.linspace(P_range[0], P_range[1], 100): for comp in compositions: try: # 获取密度、焓、熵等性质 density PropsSI(D, T, T, P, P, fluid) enthalpy PropsSI(H, T, T, P, P, fluid) entropy PropsSI(S, T, T, P, P, fluid) cp PropsSI(CPMASS, T, T, P, P, fluid) data.append({ fluid: fluid, temperature: T, pressure: P, composition: comp, density: density, enthalpy: enthalpy, entropy: entropy, heat_capacity: cp }) except: continue return pd.DataFrame(data) # 示例数据生成 fluids [Water, Methane, CarbonDioxide] T_range [300, 1000] # K P_range [1e6, 30e6] # Pa compositions [1.0] # 纯组分示例 thermo_data generate_thermodynamic_data(fluids, T_range, P_range, compositions)3.3 输入特征的重参数化实现基于热力学知识构造更有物理意义的输入特征def thermodynamics_informed_reparameterization(df, critical_properties): 应用热力学知识引导的输入重参数化 df_reparam df.copy() # 获取临界参数 Tc critical_properties[Tc] # 临界温度 Pc critical_properties[Pc] # 临界压力 # 计算对比参数 df_reparam[reduced_temperature] df[temperature] / Tc df_reparam[reduced_pressure] df[pressure] / Pc # 引入偏心因子相关特征 omega critical_properties[acentric_factor] df_reparam[acentric_correction] omega * np.log(df_reparam[reduced_pressure]) # 基于对应状态原理的进一步变换 df_reparam[state_function] (df_reparam[reduced_temperature] - 1) / \ np.sqrt(df_reparam[reduced_temperature]) return df_reparam # 临界参数示例以水为例 water_critical {Tc: 647.096, Pc: 22.064e6, acentric_factor: 0.344} # 应用重参数化 reparam_data thermodynamics_informed_reparameterization(thermo_data, water_critical)4. 神经网络模型设计与训练4.1 网络架构选择针对热力学性质预测采用全连接神经网络架构但需要根据重参数化后的特征维度进行调整import torch import torch.nn as nn import torch.optim as optim from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split class ThermodynamicsNN(nn.Module): 热力学性质预测神经网络 def __init__(self, input_dim, hidden_dims, output_dim): super(ThermodynamicsNN, self).__init__() layers [] # 输入层 layers.append(nn.Linear(input_dim, hidden_dims[0])) layers.append(nn.ReLU()) # 隐藏层 for i in range(len(hidden_dims)-1): layers.append(nn.Linear(hidden_dims[i], hidden_dims[i1])) layers.append(nn.ReLU()) # 输出层 layers.append(nn.Linear(hidden_dims[-1], output_dim)) self.network nn.Sequential(*layers) def forward(self, x): return self.network(x) # 模型参数配置 input_dim 5 # 重参数化后的特征维度 hidden_dims [64, 128, 64] # 隐藏层维度 output_dim 4 # 预测的性质数量密度、焓、熵、比热 model ThermodynamicsNN(input_dim, hidden_dims, output_dim)4.2 数据预处理与训练循环正确的数据预处理对神经网络性能至关重要def prepare_training_data(reparam_data, target_columns): 准备训练数据 # 选择输入特征 feature_columns [reduced_temperature, reduced_pressure, acentric_correction, state_function, composition] X reparam_data[feature_columns].values y reparam_data[target_columns].values # 数据标准化 X_scaler StandardScaler() y_scaler StandardScaler() X_scaled X_scaler.fit_transform(X) y_scaled y_scaler.fit_transform(y) return train_test_split(X_scaled, y_scaled, test_size0.2, random_state42) # 准备数据 target_cols [density, enthalpy, entropy, heat_capacity] X_train, X_test, y_train, y_test prepare_training_data(reparam_data, target_cols) # 训练配置 criterion nn.MSELoss() optimizer optim.Adam(model.parameters(), lr0.001) scheduler optim.lr_scheduler.ReduceLROnPlateau(optimizer, patience10) def train_model(model, X_train, y_train, X_test, y_test, epochs1000): 模型训练函数 train_losses [] test_losses [] X_train_tensor torch.FloatTensor(X_train) y_train_tensor torch.FloatTensor(y_train) X_test_tensor torch.FloatTensor(X_test) y_test_tensor torch.FloatTensor(y_test) for epoch in range(epochs): # 训练模式 model.train() optimizer.zero_grad() outputs model(X_train_tensor) train_loss criterion(outputs, y_train_tensor) train_loss.backward() optimizer.step() # 评估模式 model.eval() with torch.no_grad(): test_outputs model(X_test_tensor) test_loss criterion(test_outputs, y_test_tensor) train_losses.append(train_loss.item()) test_losses.append(test_loss.item()) if epoch % 100 0: print(fEpoch {epoch}, Train Loss: {train_loss.item():.6f}, Test Loss: {test_loss.item():.6f}) # 学习率调整 scheduler.step(test_loss) return train_losses, test_losses # 开始训练 train_losses, test_losses train_model(model, X_train, y_train, X_test, y_test)5. 模型验证与超临界燃烧应用5.1 预测精度评估训练完成后需要全面评估模型在超临界区域的预测精度def evaluate_model(model, X_test, y_test, y_scaler): 模型评估函数 model.eval() with torch.no_grad(): predictions model(torch.FloatTensor(X_test)) predictions predictions.numpy() # 反标准化 predictions_actual y_scaler.inverse_transform(predictions) y_test_actual y_scaler.inverse_transform(y_test) # 计算各项指标的相对误差 relative_errors np.abs((predictions_actual - y_test_actual) / y_test_actual) mean_errors np.mean(relative_errors, axis0) print(各性质预测平均相对误差:) properties [密度, 焓, 熵, 比热] for prop, error in zip(properties, mean_errors): print(f{prop}: {error*100:.2f}%) return predictions_actual, y_test_actual # 执行评估 predictions, actuals evaluate_model(model, X_test, y_test, y_scaler)5.2 超临界燃烧集成示例将训练好的神经网络模型集成到燃烧模拟中class NeuralThermodynamicsModel: 神经网络热力学模型类 def __init__(self, model, feature_scaler, target_scaler, critical_props): self.model model self.feature_scaler feature_scaler self.target_scaler target_scaler self.critical_props critical_props def calculate_properties(self, T, P, composition): 计算给定状态的热力学性质 # 重参数化 Tr T / self.critical_props[Tc] Pr P / self.critical_props[Pc] omega self.critical_props[acentric_factor] acentric_corr omega * np.log(Pr) state_func (Tr - 1) / np.sqrt(Tr) # 构造输入特征 features np.array([[Tr, Pr, acentric_corr, state_func, composition]]) features_scaled self.feature_scaler.transform(features) # 神经网络预测 self.model.eval() with torch.no_grad(): predicted_scaled self.model(torch.FloatTensor(features_scaled)) # 反标准化 predicted self.target_scaler.inverse_transform(predicted_scaled.numpy()) return { density: predicted[0][0], enthalpy: predicted[0][1], entropy: predicted[0][2], heat_capacity: predicted[0][3] } # 使用示例 thermo_model NeuralThermodynamicsModel(model, X_scaler, y_scaler, water_critical) # 在CFD循环中调用 def cfd_time_step(current_state, thermo_model): CFD时间步计算示例 T, P, comp current_state[T], current_state[P], current_state[composition] # 快速获取热力学性质 properties thermo_model.calculate_properties(T, P, comp) # 使用性质继续CFD计算 # ... 其他CFD计算逻辑 return updated_state6. 常见问题与解决方案6.1 训练收敛问题在热力学性质预测中经常遇到的训练问题包括梯度爆炸、损失震荡等。这些问题通常与数据分布和网络结构有关。梯度裁剪策略# 在训练循环中添加梯度裁剪 torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm1.0)学习率调整# 使用更精细的学习率调度 scheduler optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_010, T_mult2)6.2 临界区域预测精度不足临界点附近性质变化剧烈需要特殊处理def critical_region_enhancement(training_data, critical_point, enhancement_radius0.1): 临界区域数据增强 Tc, Pc critical_point[T], critical_point[P] # 在临界点附近增加采样密度 critical_mask (np.abs(training_data[temperature] - Tc) / Tc enhancement_radius) \ (np.abs(training_data[pressure] - Pc) / Pc enhancement_radius) critical_data training_data[critical_mask].copy() enhanced_data critical_data.sample(frac5, replaceTrue) # 5倍增强 return pd.concat([training_data, enhanced_data])6.3 多组分系统扩展对于实际燃烧应用需要处理多组分混合物def mixture_reparameterization(components, fractions, critical_properties): 多组分系统重参数化 # 计算混合物的虚拟临界参数 Tc_mix np.sum([frac * props[Tc] for frac, props in zip(fractions, critical_properties)]) Pc_mix np.sum([frac * props[Pc] for frac, props in zip(fractions, critical_properties)]) omega_mix np.sum([frac * props[acentric_factor] for frac, props in zip(fractions, critical_properties)]) return {Tc: Tc_mix, Pc: Pc_mix, acentric_factor: omega_mix}7. 性能优化与最佳实践7.1 计算效率优化在CFD应用中神经网络评估需要极高的计算效率# 使用TorScript优化推理速度 def optimize_model_for_inference(model, example_input): 模型推理优化 model.eval() traced_model torch.jit.trace(model, example_input) traced_model.save(thermo_model_optimized.pt) return traced_model # 批量处理优化 def batch_property_calculation(thermo_model, T_array, P_array, comp_array): 批量计算优化 # 向量化重参数化 Tr_array T_array / thermo_model.critical_props[Tc] Pr_array P_array / thermo_model.critical_props[Pc] # 批量预测 batch_features np.column_stack([Tr_array, Pr_array, thermo_model.critical_props[acentric_factor] * np.log(Pr_array), (Tr_array - 1) / np.sqrt(Tr_array), comp_array]) batch_features_scaled thermo_model.feature_scaler.transform(batch_features) with torch.no_grad(): batch_predictions thermo_model.model(torch.FloatTensor(batch_features_scaled)) return thermo_model.target_scaler.inverse_transform(batch_predictions.numpy())7.2 热力学一致性保证神经网络预测必须满足热力学一致性要求def thermodynamic_consistency_loss(predictions, inputs, model): 热力学一致性损失函数 # 自动微分验证Maxwell关系 T inputs[:, 0] # 温度 P inputs[:, 1] # 压力 # 计算导数并验证一致性 # 这里需要根据具体的热力学关系实现 consistency_error 0.0 return consistency_loss # 在训练中结合一致性约束 def physics_informed_training_loss(predictions, targets, inputs, model, alpha0.1): 物理信息引导的损失函数 mse_loss nn.MSELoss()(predictions, targets) consistency_loss thermodynamic_consistency_loss(predictions, inputs, model) return mse_loss alpha * consistency_loss7.3 生产环境部署建议在实际工程应用中需要考虑以下关键因素版本控制与可复现性固定所有依赖库版本保存训练数据、预处理参数和模型权重记录所有超参数和训练配置误差监控与容错class RobustThermodynamicsPredictor: 鲁棒的热力学预测器 def __init__(self, primary_model, fallback_modelNone, error_threshold0.1): self.primary_model primary_model self.fallback_model fallback_model # 传统方法作为备用 self.error_threshold error_threshold def predict_with_fallback(self, inputs): 带备用方案的预测 try: predictions self.primary_model.predict(inputs) # 检查预测结果的合理性 if self._check_prediction_quality(predictions): return predictions elif self.fallback_model is not None: return self.fallback_model.calculate(inputs) else: raise ValueError(预测结果不合理且无备用方案) except Exception as e: if self.fallback_model is not None: return self.fallback_model.calculate(inputs) else: raise e def _check_prediction_quality(self, predictions): 检查预测质量 # 实现物理合理性检查逻辑 return True热力学知识引导的输入重参数化技术为超临界燃烧模拟提供了新的解决方案。通过将物理洞察融入神经网络设计不仅提高了预测精度还增强了模型的泛化能力和物理合理性。在实际应用中建议从简单系统开始验证逐步扩展到复杂多组分燃烧场景同时建立完善的质量监控机制。

相关新闻

MS-ResMTUNet:全切片图像中癌组织分割的深度学习新方法

MS-ResMTUNet:全切片图像中癌组织分割的深度学习新方法

1. 论文核心内容解析 这篇论文提出了一种名为MS-ResMTUNet的新型深度学习架构,专门用于全切片图像(WSI)中浸润性癌组织的自动分割任务。作为病理学图像分析领域的前沿研究,该工作主要解决了三个关键问题: 全切片图像的超高分辨率带来的计算挑…

2026/7/26 10:39:29阅读更多 →
Coordino安全配置:保护你的问答平台免受常见攻击

Coordino安全配置:保护你的问答平台免受常见攻击

Coordino安全配置:保护你的问答平台免受常见攻击 【免费下载链接】Coordino Self-hosted Knowledge Software your question & answer system written on top of the CakePHP Framework 项目地址: https://gitcode.com/gh_mirrors/co/Coordino Coordino是…

2026/7/26 10:37:28阅读更多 →
C55x DSP上LMS自适应滤波与卷积编码的指令级优化实战

C55x DSP上LMS自适应滤波与卷积编码的指令级优化实战

1. 项目概述与核心价值在嵌入式数字信号处理领域,尤其是在对功耗、成本和实时性有严苛要求的场景里,如何将复杂的算法高效地“翻译”成芯片能理解并快速执行的指令,是每个工程师都会面临的硬核挑战。今天,我想结合自己过去在通信和…

2026/7/26 10:37:28阅读更多 →
GG3M AI:小样本学习与动态架构的行业实践

GG3M AI:小样本学习与动态架构的行业实践

1. GG3M AI的技术定位与市场价值GG3M AI(鸽姆人工智能)作为新一代智能系统,其核心设计理念聚焦于解决传统AI模型在复杂场景下的三个关键痛点:多模态理解深度不足、小样本学习效率低下以及实时决策能力薄弱。我们团队在金融风控领域…

2026/7/27 2:38:52阅读更多 →
AIBridge智能体技能中心:解决AI协同与碎片化难题

AIBridge智能体技能中心:解决AI协同与碎片化难题

1. 项目背景与核心价值OoderAgent技能中心(AIBridge)是当前智能体技术领域的一次重要实践探索。这个平台本质上构建了一个开放式的技能交换中枢,让不同AI智能体能够像人类专家团队那样进行能力互补。想象一下医院里的多学科会诊场景——内科医…

2026/7/27 2:38:52阅读更多 →
零基础构建本地AI聊天机器人:Python与Ollama实践

零基础构建本地AI聊天机器人:Python与Ollama实践

1. 项目概述:零基础构建本地AI聊天机器人2026年的AI技术已经深入到日常生活的每个角落,但大多数人对AI应用的理解仍停留在调用云端API的阶段。实际上,借助现代工具链,任何人都能在自己的电脑上运行一个完全本地的AI聊天机器人。这…

2026/7/27 2:38:52阅读更多 →
Claude Opus 5性价比突破:AI大模型成本优化与工程实践

Claude Opus 5性价比突破:AI大模型成本优化与工程实践

如果你最近在关注 AI 大模型的价格战,可能会注意到一个趋势:性能提升的同时,成本正在快速下降。但 Anthropic 最新发布的 Claude Opus 5 真正值得开发者关注的,不是它“又变强了”,而是它用了一种更聪明的方式——以 F…

2026/7/27 2:38:52阅读更多 →
TMS320VC5502 DSP核心架构解析:内存映射、引脚复用与系统设计实战

TMS320VC5502 DSP核心架构解析:内存映射、引脚复用与系统设计实战

1. 项目概述:深入理解TMS320VC5502的架构核心在嵌入式信号处理领域,选对一颗DSP只是第一步,真正决定项目成败的,往往是对其内部架构的深刻理解和灵活运用。TMS320VC5502(以下简称5502)作为TI C55x系列中的经…

2026/7/27 2:38:52阅读更多 →
数据标注实战|医疗文本NER命名实体标注全流程|AI训练师项目案例

数据标注实战|医疗文本NER命名实体标注全流程|AI训练师项目案例

数据标注实战|医疗文本NER命名实体标注全流程|AI训练师项目案例 摘要:本案例以医疗文本为对象,完整演示NER命名实体识别的数据标注全流程,涵盖标注规范制定、Label Studio工具配置、双人标注与Cohen Kappa一致性检验、数据质量评估。文章基于真实项目场景,提供可运行的Py…

2026/7/27 2:36:52阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/27 1:14:34阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/27 1:14:52阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/27 1:14:56阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:24阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:24阅读更多 →
2007-2023年各市区县生态文明建设示范区DID

2007-2023年各市区县生态文明建设示范区DID

数据简介 自改革开放以来,我国依赖高投入、高资源消耗和高污染等传统发展模式实现了经济短期内的快速增长, 然而这也导致了严重的生态环境危机。因此,国家有力于推动企业高质量经济发展,协同生态保护的方针,从而从201…

2026/7/27 0:00:24阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/26 19:05:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/26 19:05:21阅读更多 →