TDengine 数学函数 PI 用户手册
PI 函数
语法
PI()
功能说明
- 返回圆周率常量 π,约等于 3.141592653589793。
- 为确定性标量函数,可在任意数值表达式中参与计算。
版本
- v3.3.3.0
返回结果类型
- DOUBLE
适用数据类型
- 无参数
嵌套子查询支持
- 适用于内层查询和外层查询
适用于
- 表和超级表
使用说明
- PI() 无参数、对所有行返回同一常量。
- 常与三角函数(SIN/COS/TAN)、弧度/角度换算(手工使用 x180/PI() 或 xPI()/180)配合。
- 只能与普通列、选择(Selection)、投影(Projection)一起使用,不与聚合(Aggregation)在同一层直接混用。
示例所用表与数据(可直接复制执行)
-- 建库与使用
CREATE DATABASE IF NOT EXISTS power;
USE power;-- 智能电表表结构(按要求)
CREATE STABLE meters (ts TIMESTAMP,current FLOAT,voltage INT,power DOUBLE
) TAGS (groupid INT,location VARCHAR(64)
);-- 子表
CREATE TABLE d1001 USING meters TAGS (1, 'SF');
CREATE TABLE d1002 USING meters TAGS (2, 'LA');-- 写入数据
INSERT INTO d1001 VALUES('2024-01-01 10:00:00.000', 10.3, 220, 2266.0),('2024-01-01 10:01:00.000', 12.6, 221, 2784.6),('2024-01-01 10:02:00.000', 8.5, 223, 1895.5);INSERT INTO d1002 VALUES('2024-01-01 10:00:00.000', 9.0, 219, 1971.0),('2024-01-01 10:01:00.000', 14.0, 222, 3108.0),('2024-01-01 10:02:00.000', 7.2, 220, 1584.0);
使用示例
1) 基础用法(常量与三角函数)
-- 返回 π 常量
SELECT PI();-- 经典值:sin(π/2)=1, cos(π)= -1
SELECT SIN(PI()/2) AS sin_half_pi, COS(PI()) AS cos_pi;
2) 弧度与角度换算
-- 将 180° 转为弧度:π = 180° * π / 180
SELECT 180 * PI() / 180 AS pi_by_degree;-- 将弧度转为角度:x(弧度) * 180 / π
SELECT (PI()/3) * 180 / PI() AS deg_of_pi_over_3;
3) 基于功率因数角(电力分析)计算
目的
- 利用 P≈V·I·cosφ,反推功率因数角 φ;用 φ(弧度) 与 φ(角度) 评估功率因数状态、无功补偿需求等。
-- φ_rad = ACOS(P/(V*I))
-- φ_deg = φ_rad * 180 / PI()
SELECTts,current,voltage,power,ACOS(power/(voltage*current)) AS phi_rad,ACOS(power/(voltage*current)) * 180 / PI() AS phi_deg
FROM d1001
WHERE voltage*current > 0;
4) 交流角频率/周期计算(50/60Hz)
目的
- 由频率 f 计算角频率 ω=2·π·f 与周期 T=1/f,用于采样策略、信号分析与滤波设计。
-- 50Hz
SELECT 2*PI()*50 AS omega_50, 1.0/50 AS period_50;-- 60Hz
SELECT 2*PI()*60 AS omega_60, 1.0/60 AS period_60;
5) 与表列组合的表达式示例
目的
- 在查询中直接引用 π 常量与列混合运算,形成可读、可维护的物理量表达式。
-- 以“角频率*采样间隔”的形式构建一个无量纲相位步长(示例中采样间隔假设 1/100 秒)
SELECTts,voltage,current,power,2*PI()*50*(1.0/100) AS phase_step_50hz
FROM d1002
ORDER BY ts;
生产场景应用与函数意义
-
交流电分析与控制
- 目的:通过 ω=2·π·f、φ(功率因数角) 进行滤波器设计、相位补偿、谐波分析与无功优化。
- 意义:PI() 提供标准数学常量,保证公式书写直观、表达严谨。
-
旋转/振动工况换算
- 目的:在转速换算(rad/s 与 RPM)、周期性信号相位步长计算中直接使用 π,减少硬编码常量风险。
- 意义:统一工程计算口径,提高可维护性与跨团队理解成本。
-
测试与可视化
- 目的:在报表或快速诊断 SQL 中构造标准角度/弧度换算与三角函数校验表达式。
- 意义:便于数据侧快速验证算法假设与阈值。
注意事项
- PI() 为零参常量函数,结果为 DOUBLE。
- 与聚合列同选时需遵循 SQL 分组规则。
关于 TDengine
TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。