
RADIANS 函数
语法
sql
RADIANS(expr)
功能说明
将角度值转换为弧度值。
版本
v3.3.3.0
返回结果类型
DOUBLE
适用数据类型
数值类型。
嵌套子查询支持
适用于内层查询和外层查询。
适用于
表和超级表。
使用说明
- 如果
expr
为 NULL,则返回 NULL。 - 转换公式:radian = degree × π / 180。
- 只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例所用表与数据(可直接复制执行)
sql
-- 建库与使用
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: 常量角度转换
sql
-- 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 值处理
sql
taos> SELECT RADIANS(NULL);
radians(null) |
================
NULL |
示例 3: 数学关系验证
sql
-- 验证 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: 与三角函数配合使用
sql
-- 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: 相位角度转弧度
sql
-- 将电表的相位角度转换为弧度
taos> SELECT ts,
phase AS phase_deg,
RADIANS(phase) AS phase_rad
FROM d1001
ORDER 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: 计算功率因数
sql
-- 根据相位角计算功率因数 (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_level
FROM d1001
ORDER BY ts;
应用价值:
- 监测电网功率因数,及时发现无功功率过大的问题
- 指导无功补偿设备的投切,降低线损
- 避免因功率因数过低被供电部门罚款
示例 7: 有功功率和无功功率分解
sql
-- 根据相位角分解视在功率为有功功率和无功功率
-- 目的:准确计算实际消耗的电能和需要补偿的无功功率
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_power
FROM d1001
ORDER BY ts;
应用价值:
- 准确计量实际消耗的电能(有功功率)
- 评估需要补偿的无功功率大小
- 优化电容器组投切策略
示例 8: 三相不平衡度分析
sql
-- 假设三个电表分别代表三相,分析三相电压相位差
-- 目的:检测三相系统是否平衡,理论上三相相位差应为120度
taos> SELECT location,
AVG(phase) AS avg_phase,
RADIANS(AVG(phase)) AS avg_phase_rad,
STDDEV(phase) AS phase_stddev
FROM meters
WHERE ts >= '2024-01-01 10:00:00'
AND ts < '2024-01-01 10:04:00'
GROUP BY location;
应用价值:
- 及时发现三相不平衡问题
- 预防设备过热和效率下降
- 避免中性线电流过大
示例 9: 谐波分析准备
sql
-- 将相位角转换为弧度,为傅里叶分析准备数据
-- 目的:识别电网中的谐波成分,评估电能质量
taos> SELECT ts,
current,
voltage,
RADIANS(phase) AS phase_rad,
current * COS(RADIANS(phase)) AS i_real,
current * SIN(RADIANS(phase)) AS i_imag
FROM d1002
WHERE ts >= '2024-01-01 10:00:00'
ORDER BY ts;
应用价值:
- 为谐波分析提供基础数据
- 识别电网污染源
- 指导谐波治理方案设计
生产场景应用与目的
场景 A: 电力系统功率因数优化
目的:通过计算功率因数(cos φ),评估电能利用效率,指导无功补偿设备的投切策略,降低电费支出和线路损耗。
示例:
sql
-- 统计各地区的平均功率因数
SELECT location,
AVG(COS(RADIANS(phase))) AS avg_power_factor,
COUNT(*) AS sample_count,
CASE
WHEN AVG(COS(RADIANS(phase))) < 0.85 THEN '需要无功补偿'
ELSE '功率因数良好'
END AS recommendation
FROM meters
WHERE ts >= NOW - 1d
GROUP BY location;
场景 B: 三相电平衡监测
目的:监测三相电压、电流的相位关系,及时发现三相不平衡问题,预防设备损坏和能效下降。
示例:
sql
-- 检查三相相位差是否符合标准(理论值120度 = 2.094弧度)
SELECT _wstart AS time_window,
STDDEV(RADIANS(phase)) AS phase_variation,
CASE
WHEN 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: 谐波污染评估
目的:将相位角数据转换为复数形式(实部和虚部),为傅里叶变换和谐波分析提供基础数据,识别电网中的谐波污染源。
示例:
sql
-- 提取电流的实部和虚部分量用于谐波分析
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函数将角度转换为弧度供后续计算使用。
示例:
sql
-- 计算电压相量(用于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 智能体对数据进行预测与异常检测,提供实时的商业洞察。