Metadata-Version: 2.1
Name: XJTU-TGA
Version: 0.1.6
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyQt5 (>=5.15.0)
Requires-Dist: PyQtWebEngine (>=5.15.0)
Requires-Dist: plotly (>=5.0.0)
Requires-Dist: pandas (>=1.3.0)
Requires-Dist: numpy (>=1.21.0)
Requires-Dist: scipy (>=1.7.0)

# XJTU-TGA 

## 概述
XJTU-TGA 工具是为西安交通大学燃烧学课程中的热重分析实验设计的一个应用程序。该工具基于Python和JavaScript开发，提供了一个直观的界面，用于处理和分析热重分析（TGA）数据。

## 功能
- **数据导入与滤波**：导入原始TGA数据并使用Butter滤波器进行数据滤波。
- **数据自动计算**：自动计算导数热重（DTG）以及实验所需相关数据。
- **特征点和动力区间的选择**：可以通过html控件直观选择特征点和动力区间。
- **分析结果保存与加载**：保存一组数据的分析结果，未来可以通过加载功能恢复所有相关信息。
- **多组数据集动力区间绘图**：支持同时分析多组数据，并将它们的动力区间及拟合直线结果绘制在一张图表上。

## 安装
你可以通过以下命令使用pip安装XJTU-TGA工具：

```shell
pip install XJTU-TGA
```

## 使用说明

### 1. 启动应用程序

> main.py

```python
from XJTU_TGA import run

if __name__ == '__main__':
    run()
```

### 2. 导入txt数据文件

点击**文件->导入**，选择txt数据文件。(该文件绝对路径将保存在用户文件中，**如移动txt数据文件，应打开用户文件后重新导入txt数据文件后保存**)

<img src="image/1.png" style="zoom:25%;" /> 

### 3. 输入试样重量w0

点击**滤波->w0输入**，在弹出的弹窗中输入试样的质量，点击OK。

<img src="image/2.png" style="zoom:25%;" /> 

### 4. 进行滤波参数选择

点击**滤波->参数选择**，进入参数选择界面，滑动下方滑块对滤波参数进行调节。<img src="image/3.png" style="zoom: 25%;" /> 

### 5. 特征点选择

点击**特征->特征点选择**进入特征点选择界面，可通过图形上方的下拉选择框选择指定的特征点类别。

<img src="image/4.png" style="zoom:25%;" /> 

将鼠标放置在特征点附近，**当看到有与特征点对应颜色的悬浮框出现时单机鼠标左键**，此时会看到该特征点变大即为选中；再将鼠标向曲线附近移动，当选中位置出现红色悬浮框时再次单机鼠标左键，可以看到选中特征点移动到了指定的位置，即为特征点更改成功。

<img src="image/5.png" style="zoom:25%;" /> 

### 6. 动力区间选择

点击**特征->动力区间选择**进入动力区间选择界面，两点之间所夹即为动力区间，改变点位置的方法与特征点选择相同，需要注意的是，可以通过辅助线以及辅助线与曲线所夹区域微调动力区间的位置，**通过观察左下角数据显示区域的R值大小可以获取所选动力区间经过拟合后的拟合优劣程度。**

<img src="image/6.png" style="zoom:25%;" /> 

### 7. 保存用户文件

点击**文件->保存**即可将处理后的完整数据保存为`json`文件，再次使用时使用**文件->打开**打开。

<img src="image/7.png" style="zoom:25%;" /> 

### 8. 绘图并保存图像

点击**绘图**查看可绘制的图像，其中的**保存当前图像**用于保存当前界面显示的图像。

<img src="image/8.jpg" style="zoom: 33%;" /> 

 <img src="image/9.jpg" style="zoom:33%;" />

<img src="image/10.jpg" style="zoom: 33%;" /> 

### 9. 采集功能的使用

点击**文件->采集**即可使用采集功能，该功能通过选中多个用户文件将各组数据的动力区间绘制在一张图表上，采集数据完成后点击**h绘图**中的**煤热解动力区间绘图和碳燃烧动力区间绘图即可完成绘图**。

<img src="image/11.jpg" style="zoom:33%;" /> 

<img src="image/12.jpg" style="zoom:33%;" /> 



## 滤波参数选择指南

当使用XJTU-TGA工具中的滤波模块时，可以通过调整以下三个参数来优化滤波效果：`N` (滤波器阶数)、`Wn` (截止频率) 和 `Alpha` (平滑因子)。下面是详细的选择和调整步骤指南。

### 1. Butterworth 滤波器阶数 `N` 的选择
- **初始值**: 推荐从 `N=5` 开始。
- **调整方法**:
  - 如果滤波后的图像仍然存在较多高频噪声（即，曲线波动较大），**增大 `N`** 值，比如尝试 `N=6` 或更高。
  - 如果滤波后的图像变得过于平滑且丢失了信号的细节，**减小 `N`** 值，比如尝试 `N=4` 或更低。

### 2. Butterworth 截止频率 `Wn` 的选择
- **初始值**: 推荐从 `Wn=0.15` 开始。
- **调整方法**:
  - 如果希望滤除更多的高频成分，使得信号更加平滑，可以**减小 `Wn`** 值，比如尝试 `Wn=0.02` 或更低。
  - 如果信号的低频成分也被过多滤除，导致丢失了关键的趋势信息，**增大 `Wn`** 值，比如尝试 `Wn=0.2` 或更高。

### 3. EWMA 平滑因子 `Alpha` 的选择
- **初始值**: 推荐从 `Alpha=0.2` 开始。
- **调整方法**:
  - 如果希望得到更平滑的曲线，可以**减小 `Alpha`** 值，比如尝试 `Alpha=0.2` 或更低，这会更强烈地平滑数据。
  - 如果平滑后的曲线响应过慢，失去了数据的波动性，可以**增大 `Alpha`** 值，比如尝试 `Alpha=0.25` 或更高。

### 参数调整的建议顺序
1. **首先调整 `N` (滤波器阶数)**：找到一个既能去除噪声又能保留信号主要特征的合适阶数。
2. **然后调整 `Wn` (截止频率)**：在找到合适的阶数后，通过调整 `Wn` 来优化信号保留和噪声去除的平衡。
3. **最后调整 `Alpha` (平滑因子)**：在滤波之后，使用EWMA平滑来微调信号的平滑度，确保最终曲线既平滑又能反映原始数据的趋势。
