TDengine 数字函数 RADIANS 用户手册
RADIANS 函数
语法
RADIANS(expr)
功能说明
将角度值转换为弧度值。
版本
v3.3.3.0
返回结果类型
DOUBLE
适用数据类型
数值类型。
嵌套子查询支持
适用于内层查询和外层查询。
适用于
表和超级表。
使用说明
- 如果
expr
为 NULL,则返回 NULL。 - 转换公式:radian = degree × π / 180。
- 只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例所用表与数据(可直接复制执行)
-- 建库与使用
CREATE DATABASE IF NOT EXISTS power;
USE power;-- 智能电表表结构(带相位信息)
CREATE STABLE meters (ts TIMESTAMP,current FLOAT,voltage INT,phase FLOAT,power DOUBLE
) TAGS (groupid INT,location VARCHAR(64)
);-- 子表
CREATE TABLE d1001 USING meters TAGS (1, 'California.SanFrancisco');
CREATE TABLE d1002 USING meters TAGS (2, 'California.LosAngeles');-- 写入数据(phase 列存储相位角度,单位:度)
INSERT INTO d1001 VALUES('2024-01-01 10:00:00.000', 10.3, 220, 30.0, 2266.0),('2024-01-01 10:01:00.000', 12.6, 221, 45.0, 2784.6),('2024-01-01 10:02:00.000', 8.5, 223, 60.0, 1895.5),('2024-01-01 10:03:00.000', 11.2, 222, 120.0, 2486.4);INSERT INTO d1002 VALUES('2024-01-01 10:00:00.000', 9.0, 219, 0.0, 1971.0),('2024-01-01 10:01:00.000', 14.0, 222, 90.0, 3108.0),('2024-01-01 10:02:00.000', 7.2, 220, 180.0, 1584.0),('2024-01-01 10:03:00.000', 10.5, 221, -30.0, 2320.5);
基础示例
示例 1: 常量角度转换
-- 180度转弧度 (π)
taos> SELECT RADIANS(180);radians(180) |
========================3.141592653589793 |-- 90度转弧度 (π/2)
taos> SELECT RADIANS(90);radians(90) |
========================1.570796326794897 |-- 0度
taos> SELECT RADIANS(0);radians(0) |
========================0.000000000000000 |-- 负角度
taos> SELECT RADIANS(-90);radians(-90) |
========================-1.570796326794897 |-- 浮点角度
taos> SELECT RADIANS(45.5);radians(45.5) |
========================0.794153278443277 |
示例 2: NULL 值处理
taos> SELECT RADIANS(NULL);radians(null) |
================NULL |
示例 3: 数学关系验证
-- 验证 RADIANS(180) = π
taos> SELECT RADIANS(180), PI();radians(180) | pi() |
==================================================3.141592653589793 | 3.141592653589793 |-- 验证 RADIANS 与 DEGREES 互为反函数
taos> SELECT DEGREES(RADIANS(90));degrees(radians(90)) |
=======================90.000000000000 |taos> SELECT RADIANS(DEGREES(1.5708));radians(degrees(1.5708)) |
===========================1.570800000000000 |
示例 4: 与三角函数配合使用
-- sin(30°) = 0.5
taos> SELECT SIN(RADIANS(30));sin(radians(30)) |
========================0.500000000000000 |-- cos(60°) = 0.5
taos> SELECT COS(RADIANS(60));cos(radians(60)) |
========================0.500000000000000 |-- tan(45°) = 1
taos> SELECT TAN(RADIANS(45));tan(radians(45)) |
========================1.000000000000000 |
智能电表场景示例
示例 5: 相位角度转弧度
-- 将电表的相位角度转换为弧度
taos> SELECT ts, phase AS phase_deg,RADIANS(phase) AS phase_radFROM d1001ORDER BY ts;ts | phase_deg | phase_rad |
==================================================================2024-01-01 10:00:00.000 | 30.000000| 0.523598775598299 |2024-01-01 10:01:00.000 | 45.000000| 0.785398163397448 |2024-01-01 10:02:00.000 | 60.000000| 1.047197551196598 |2024-01-01 10:03:00.000 | 120.000000| 2.094395102393195 |
示例 6: 计算功率因数
-- 根据相位角计算功率因数 (PF = cos(θ))
-- 目的:评估电能利用效率,功率因数越接近1表示电能利用率越高
taos> SELECT ts,phase,RADIANS(phase) AS phase_rad,COS(RADIANS(phase)) AS power_factor,CASE WHEN COS(RADIANS(phase)) >= 0.95 THEN '优秀'WHEN COS(RADIANS(phase)) >= 0.85 THEN '良好'WHEN COS(RADIANS(phase)) >= 0.70 THEN '合格'ELSE '需改进'END AS pf_levelFROM d1001ORDER BY ts;
应用价值:
- 监测电网功率因数,及时发现无功功率过大的问题
- 指导无功补偿设备的投切,降低线损
- 避免因功率因数过低被供电部门罚款
示例 7: 有功功率和无功功率分解
-- 根据相位角分解视在功率为有功功率和无功功率
-- 目的:准确计算实际消耗的电能和需要补偿的无功功率
taos> SELECT ts,current,voltage,phase,current * voltage AS apparent_power,current * voltage * COS(RADIANS(phase)) AS active_power,current * voltage * SIN(RADIANS(phase)) AS reactive_powerFROM d1001ORDER BY ts;
应用价值:
- 准确计量实际消耗的电能(有功功率)
- 评估需要补偿的无功功率大小
- 优化电容器组投切策略
示例 8: 三相不平衡度分析
-- 假设三个电表分别代表三相,分析三相电压相位差
-- 目的:检测三相系统是否平衡,理论上三相相位差应为120度
taos> SELECT location,AVG(phase) AS avg_phase,RADIANS(AVG(phase)) AS avg_phase_rad,STDDEV(phase) AS phase_stddevFROM metersWHERE ts >= '2024-01-01 10:00:00'AND ts < '2024-01-01 10:04:00'GROUP BY location;
应用价值:
- 及时发现三相不平衡问题
- 预防设备过热和效率下降
- 避免中性线电流过大
示例 9: 谐波分析准备
-- 将相位角转换为弧度,为傅里叶分析准备数据
-- 目的:识别电网中的谐波成分,评估电能质量
taos> SELECT ts,current,voltage,RADIANS(phase) AS phase_rad,current * COS(RADIANS(phase)) AS i_real,current * SIN(RADIANS(phase)) AS i_imagFROM d1002WHERE ts >= '2024-01-01 10:00:00'ORDER BY ts;
应用价值:
- 为谐波分析提供基础数据
- 识别电网污染源
- 指导谐波治理方案设计
生产场景应用与目的
场景 A: 电力系统功率因数优化
目的:通过计算功率因数(cos φ),评估电能利用效率,指导无功补偿设备的投切策略,降低电费支出和线路损耗。
示例:
-- 统计各地区的平均功率因数
SELECT location,AVG(COS(RADIANS(phase))) AS avg_power_factor,COUNT(*) AS sample_count,CASEWHEN AVG(COS(RADIANS(phase))) < 0.85 THEN '需要无功补偿'ELSE '功率因数良好'END AS recommendation
FROM meters
WHERE ts >= NOW - 1d
GROUP BY location;
场景 B: 三相电平衡监测
目的:监测三相电压、电流的相位关系,及时发现三相不平衡问题,预防设备损坏和能效下降。
示例:
-- 检查三相相位差是否符合标准(理论值120度 = 2.094弧度)
SELECT _wstart AS time_window,STDDEV(RADIANS(phase)) AS phase_variation,CASEWHEN STDDEV(RADIANS(phase)) > 0.3 THEN '三相不平衡'ELSE '三相平衡正常'END AS balance_status
FROM meters
WHERE groupid IN (1, 2, 3) -- 假设1、2、3代表三相
INTERVAL(10m)
ORDER BY time_window;
场景 C: 谐波污染评估
目的:将相位角数据转换为复数形式(实部和虚部),为傅里叶变换和谐波分析提供基础数据,识别电网中的谐波污染源。
示例:
-- 提取电流的实部和虚部分量用于谐波分析
SELECT ts,current * COS(RADIANS(phase)) AS current_real,current * SIN(RADIANS(phase)) AS current_imag,SQRT(POW(current * COS(RADIANS(phase)), 2) + POW(current * SIN(RADIANS(phase)), 2)) AS current_magnitude
FROM d1001
WHERE ts >= NOW - 1h
ORDER BY ts;
场景 D: 同步相量测量(PMU应用)
目的:在智能电网中,同步相量测量单元(PMU)需要精确的相位信息来监测电网状态,RADIANS函数将角度转换为弧度供后续计算使用。
示例:
-- 计算电压相量(用于PMU数据处理)
SELECT ts,voltage * COS(RADIANS(phase)) AS voltage_real,voltage * SIN(RADIANS(phase)) AS voltage_imag,ATAN(voltage * SIN(RADIANS(phase)) / voltage * COS(RADIANS(phase))) AS phasor_angle
FROM meters
WHERE ts >= NOW - 5m
ORDER BY ts;
注意事项
- 数学常量关系:360° = 2π 弧度,180° = π 弧度,90° = π/2 弧度
- 精度问题:浮点运算存在精度限制,大角度值转换时需注意累积误差
- 角度范围:输入角度没有范围限制,可以是任意正负值,也支持大于360度的角度
- 三角函数配合:TDengine 的三角函数(SIN/COS/TAN)接受弧度作为输入
- 性能考虑:RADIANS 是逐行计算的标量函数,大数据集建议配合过滤条件
- 相位范围:电力系统中相位角通常在 -180° 到 +180° 或 0° 到 360° 范围内
数学关系
- 转换公式:
radian = degree × π / 180
- 反函数:
DEGREES(RADIANS(x)) = x
- 周期性:
RADIANS(x) = RADIANS(x + 360n)
,其中 n 为整数 - 常用值:
- RADIANS(0) = 0
- RADIANS(30) ≈ 0.5236
- RADIANS(45) ≈ 0.7854
- RADIANS(60) ≈ 1.0472
- RADIANS(90) ≈ 1.5708(π/2)
- RADIANS(120) ≈ 2.0944(2π/3)
- RADIANS(180) ≈ 3.1416(π)
函数意义与实际应用价值
数学意义
RADIANS 函数实现角度到弧度的标准数学转换。弧度是国际单位制中角度的标准单位,在数学和物理计算中具有天然优势,因为许多公式在弧度制下形式更简洁。
实际应用价值
-
电力系统分析
- 功率因数计算和优化
- 三相系统平衡度分析
- 有功/无功功率分解
- 谐波分析和电能质量评估
-
相位关系计算
- 准确计算电压、电流的相位差
- 分析设备运行状态
- 检测异常相位漂移
-
能效优化
- 通过功率因数评估指导节能措施
- 优化无功补偿设备投切
- 降低线路损耗
-
故障诊断
- 相位突变检测
- 三相不平衡预警
- 设备异常识别
-
智能电网应用
- 同步相量测量(PMU)
- 广域监测系统(WAMS)
- 电网状态估计
相关函数
- DEGREES:弧度转角度,RADIANS 的反函数
- PI:返回圆周率 π,常与 RADIANS 配合使用
- SIN/COS/TAN:三角函数,接受弧度作为输入
- ASIN/ACOS/ATAN:反三角函数,返回弧度值
本用户手册提供了 RADIANS 函数的完整使用说明,特别针对电力系统中的相位分析、功率因数计算、三相平衡监测等实际需求,方便电力行业用户快速上手并应用于生产环境。
关于 TDengine
TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。
它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。