HelioCoreNode动态模拟与可视化

📅 2026/7/12 2:04:47
HelioCoreNode动态模拟与可视化
这段代码定义了一个用于模拟和可视化 HelioCoreNode 系统动态的Experiment类。其核心功能是初始化一个节点注入扰动运行模拟并绘制关键状态变量的时间演化图。###核心类与方法解析####1.Experiment数据类使用dataclass装饰器定义用于封装单次实验的所有参数和配置。属性类型描述默认值namestr实验名称用于图表标题。无rho_0float状态变量rho的初始值。无alpha_0float状态变量alpha的初始值。无delta_rhofloat对rho施加的扰动大小。无delta_alphafloat对alpha施加的扰动大小。无Tfloat模拟的总时长。20.0dtfloat数值积分的时间步长。0.01rho_cfloatrho的临界值用于计算距离和绘制参考线。1.0alpha_cfloatalpha的临界值。0.5etafloat系统参数可能代表阻尼或耦合强度。0.32.run(self) - Tuple[np.ndarray, List[dict]]方法执行完整的模拟流程返回时间序列和状态历史记录。初始化节点使用给定的初始参数创建HelioCoreNode实例。生成时间网格创建从0到T步长为dt的时间数组。注入扰动调用节点的perturb方法施加(delta_rho, delta_alpha)扰动。时间步进循环在每个时间步调用节点的step方法进行状态更新并通过observe方法记录当前时刻的状态快照。返回结果返回时间数组times和状态历史记录列表history。3.plot(self, times, history)方法根据模拟结果生成三合一子图可视化系统动态。子图1 (rho(t))绘制rho随时间的变化曲线并添加rho_c临界值的红色虚线作为参考。子图2 (gamma(t))绘制gamma可能是一个衍生指标如增长率或比率随时间的变化曲线并添加gamma1的绿色点线作为临界参考。子图3 (距离)绘制系统状态与临界点之间的距离dist_to_critical推测为|rho - rho_c|随时间的变化。所有子图共享X轴时间并添加网格和图例。最终图表以实验名称name作为总标题。关键依赖与假设HelioCoreNode类代码的核心逻辑依赖于一个未在此提供的HelioCoreNode类。该类必须至少包含以下方法__init__(rho, alpha, rho_c, alpha_c, eta): 构造函数。perturb(delta_rho, delta_alpha): 施加扰动。step(dt): 执行一个时间步的状态更新。observe(t): 返回当前时刻状态字典至少包含rho,gamma,dist_to_critical键。数值积分step方法内部应实现了系统动力学方程如常微分方程的数值求解如欧拉法。模拟目的此实验框架常用于研究非线性系统在临界点附近的稳定性、对扰动的响应弛豫或发散以及相变行为。典型使用示例# 假设 HelioCoreNode 类已定义 exp Experiment( nameStability Test near Critical Point, rho_00.9, alpha_00.48, delta_rho0.05, delta_alpha0.02, T50.0, dt0.02 ) # 运行模拟 times, history exp.run() # 绘制结果 fig exp.plot(times, history) plt.show()此代码将模拟初始状态为(0.9, 0.48)的节点受到(0.05, 0.02)扰动后在50秒内的演化过程并可视化rho、gamma及与临界点距离的变化。