当前位置: 首页 > news >正文

TDengine 数据函数 TAN 用户手册

在这里插入图片描述

TAN 函数

语法

TAN(expr)

功能说明

获得指定字段的正切值。

版本

v3.0.0.0

返回结果类型

DOUBLE

适用数据类型

数值类型。

嵌套子查询支持

适用于内层查询和外层查询。

适用于

表和超级表。

使用说明

  • 如果 expr 为 NULL,返回 NULL。
  • 输入参数按弧度制计算。
  • 只能与普通列、TAG 列、选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
  • 若要将角度转换为弧度,可使用 RADIANS 函数,例如:TAN(RADIANS(45))

示例所用表与数据(可直接复制执行)

-- 建库与使用
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, 0.0, 2266.0),('2024-01-01 10:01:00.000', 12.6, 221, 30.0, 2784.6),('2024-01-01 10:02:00.000',  8.5, 223, 45.0, 1895.5),('2024-01-01 10:03:00.000', 11.2, 222, 60.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, 120.0, 1584.0),('2024-01-01 10:03:00.000', 10.5, 221, -30.0, 2320.5);

基础示例

示例 1: 常量正切计算

-- tan(0) = 0
taos> SELECT TAN(0);tan(0)           |
============================0.000000000000000 |-- tan(π/4) = 1
taos> SELECT TAN(PI()/4);tan(pi()/4)        |
============================1.000000000000000 |-- tan(π/3) ≈ 1.732
taos> SELECT TAN(PI()/3);tan(pi()/3)        |
============================1.732050807568877 |-- tan(π/6) ≈ 0.577
taos> SELECT TAN(PI()/6);tan(pi()/6)        |
============================0.577350269189626 |

示例 2: 角度转弧度计算

-- tan(30°) ≈ 0.577
taos> SELECT TAN(RADIANS(30));tan(radians(30))       |
============================0.577350269189626 |-- tan(45°) = 1
taos> SELECT TAN(RADIANS(45));tan(radians(45))       |
============================1.000000000000000 |-- tan(60°) ≈ 1.732
taos> SELECT TAN(RADIANS(60));tan(radians(60))       |
============================1.732050807568877 |

示例 3: NULL 值处理

taos> SELECT TAN(NULL);tan(null)       |
========================NULL                  |

示例 4: 负角度计算

-- tan(-30°) ≈ -0.577
taos> SELECT TAN(RADIANS(-30));tan(radians(-30))       |
============================-0.577350269189626 |-- tan(-45°) = -1
taos> SELECT TAN(RADIANS(-45));tan(radians(-45))       |
============================-1.000000000000000 |

示例 5: 列数据正切计算

-- 计算相位角的正切值
SELECT ts,phase,TAN(RADIANS(phase)) AS phase_tan
FROM d1001
ORDER BY ts;
           ts            |  phase  |     phase_tan        |
====================================================================2024-01-01 10:00:00.000 |     0.0 |    0.000000000000000 |2024-01-01 10:01:00.000 |    30.0 |    0.577350269189626 |2024-01-01 10:02:00.000 |    45.0 |    1.000000000000000 |2024-01-01 10:03:00.000 |    60.0 |    1.732050807568877 |

智能电表场景示例

示例 6: 功率因数角正切值计算

目的:计算功率因数角的正切值,用于分析无功功率与有功功率的比值关系。

-- tan(φ) = Q/P,其中 Q 为无功功率,P 为有功功率
SELECT ts,phase,TAN(RADIANS(phase)) AS power_factor_tan,CASEWHEN ABS(TAN(RADIANS(phase))) > 0.75 THEN '需要补偿'ELSE '正常'END AS compensation_status
FROM d1001
ORDER BY ts;

应用价值

  • 快速评估无功功率占比
  • 识别需要无功补偿的时段
  • 优化功率因数

示例 7: 阻抗角分析

目的:通过相位角的正切值分析电路的阻抗特性。

-- 计算阻抗角的正切值(电抗与电阻的比值)
SELECT location,AVG(TAN(RADIANS(phase))) AS avg_impedance_tan,STDDEV(TAN(RADIANS(phase))) AS impedance_tan_stddev
FROM meters
WHERE ts >= '2024-01-01 10:00:00'AND ts < '2024-01-01 10:04:00'
GROUP BY location;

应用价值

  • 分析电路阻抗特性
  • 识别感性负载或容性负载
  • 优化电路设计

示例 8: 相位角变化率检测

目的:检测相位角正切值的变化,识别负载突变。

-- 检测相位角正切值的突变
SELECT ts,phase,TAN(RADIANS(phase)) AS phase_tan,DIFF(TAN(RADIANS(phase))) AS phase_tan_change
FROM d1001
ORDER BY ts;

应用价值

  • 检测负载突变
  • 识别设备启停事件
  • 预警异常运行状态

示例 9: 三相不平衡分析(正切分量)

目的:利用正切函数分析三相电路的不平衡程度。

-- 计算相位角正切值的标准差评估三相不平衡
SELECT _wstart AS time_window,AVG(TAN(RADIANS(phase))) AS avg_phase_tan,STDDEV(TAN(RADIANS(phase))) AS phase_tan_stddev
FROM meters
WHERE ts >= '2024-01-01 10:00:00'AND ts < '2024-01-01 11:00:00'
INTERVAL(10m);

应用价值

  • 量化三相不平衡程度
  • 评估中性线电流
  • 指导负载调整

示例 10: 功率三角形计算

目的:利用正切值计算无功功率,构建功率三角形。

-- 计算有功功率、视在功率和无功功率
SELECT ts,power AS active_power,voltage * current AS apparent_power,power * TAN(RADIANS(phase)) AS reactive_power,TAN(RADIANS(phase)) AS tan_phi
FROM d1001
ORDER BY ts;

应用价值

  • 完整分析功率关系
  • 计算无功功率需求
  • 指导补偿设备配置

示例 11: 相位角异常检测

目的:检测相位角正切值超出正常范围的情况。

-- 检测相位角正切值异常(过大或过小)
SELECT ts,phase,TAN(RADIANS(phase)) AS phase_tan
FROM meters
WHERE ABS(TAN(RADIANS(phase))) > 2.0  -- 相位角接近±63.43°以上OR phase > 80
ORDER BY ts;

应用价值

  • 识别功率因数过低
  • 检测设备异常运行
  • 触发告警机制

生产场景应用与目的

场景 A: 无功功率监测与补偿

目的:通过相位角的正切值(tan(φ) = Q/P)实时监测无功功率占比,自动调整补偿设备。

示例

-- 实时监测无功功率占比
SELECT location,AVG(power) AS avg_active_power,AVG(power * TAN(RADIANS(phase))) AS avg_reactive_power,AVG(TAN(RADIANS(phase))) AS avg_tan_phi,CASEWHEN AVG(TAN(RADIANS(phase))) > 0.75 THEN '急需补偿'WHEN AVG(TAN(RADIANS(phase))) > 0.48 THEN '建议补偿'ELSE '正常'END AS compensation_level
FROM meters
WHERE ts >= NOW - 15m
GROUP BY location;

场景 B: 负载特性分析

目的:通过正切值分析负载的感性或容性特征。

示例

-- 分析负载特性
SELECT _wstart AS time_window,AVG(TAN(RADIANS(phase))) AS avg_tan_phi,CASEWHEN AVG(TAN(RADIANS(phase))) > 0.1 THEN '感性负载'WHEN AVG(TAN(RADIANS(phase))) < -0.1 THEN '容性负载'ELSE '纯阻性负载'END AS load_type
FROM meters
WHERE ts >= '2024-01-01 00:00:00'AND ts < '2024-01-02 00:00:00'
INTERVAL(1h);

场景 C: 电能质量评估

目的:通过相位角正切值的稳定性评估电能质量。

示例

-- 评估相位角稳定性
SELECT location,STDDEV(TAN(RADIANS(phase))) AS tan_phi_stddev,STDDEV(TAN(RADIANS(phase))) / ABS(AVG(TAN(RADIANS(phase)))) * 100 AS variation_coefficient,CASEWHEN STDDEV(TAN(RADIANS(phase))) > 0.5 THEN '不稳定'ELSE '稳定'END AS stability_status
FROM meters
WHERE ts >= NOW - 1d
GROUP BY location;

注意事项

  1. 输入单位:TAN 函数的输入参数必须是弧度制,如果输入是角度,需使用 RADIANS 函数转换。

  2. 奇点问题:当角度为 ±90°(±π/2 弧度)时,正切值趋向于无穷大,实际计算结果可能非常大。

  3. 精度问题:浮点运算存在精度限制,对于需要高精度的应用需要注意。

  4. 周期性:正切函数是周期函数,周期为 π,即 TAN(x) = TAN(x + πn),其中 n 为整数。

  5. NULL 传播:输入为 NULL 时返回 NULL。

  6. 性能考虑:TAN 是逐行计算的标量函数,在大数据集上建议配合时间过滤和列裁剪。


数学关系

  • 基本定义:对于直角三角形,tan(θ) = 对边 / 邻边 = sin(θ) / cos(θ)
  • 周期性TAN(x + π) = TAN(x)
  • 奇函数性质TAN(-x) = -TAN(x)
  • 与其他三角函数关系
    • TAN(x) = SIN(x) / COS(x)
    • 1 + TAN²(x) = 1 / COS²(x) = SEC²(x)
  • 和差公式
    • TAN(x + y) = (TAN(x) + TAN(y)) / (1 - TAN(x)TAN(y))
    • TAN(x - y) = (TAN(x) - TAN(y)) / (1 + TAN(x)TAN(y))
  • 倍角公式TAN(2x) = 2TAN(x) / (1 - TAN²(x))
  • 特殊值
    • TAN(0) = 0
    • TAN(π/6) ≈ 0.577
    • TAN(π/4) = 1
    • TAN(π/3) ≈ 1.732
    • TAN(π/2) → ∞(无穷大)

相关函数

  • SIN:正弦函数,TAN(x) = SIN(x) / COS(x)
  • COS:余弦函数,TAN(x) = SIN(x) / COS(x)
  • ATAN:反正切函数,TAN 的反函数
  • RADIANS:角度转弧度,常与 TAN 配合使用
  • PI:返回圆周率 π

函数意义与实际应用价值

数学意义

TAN 函数是三角函数中的基本函数之一,表示角度与直角三角形两边比例的关系。在电力系统中,tan(φ) 直接反映了无功功率与有功功率的比值,是功率分析的重要指标。

实际应用价值

  1. 功率分析

    • 直接计算无功功率(Q = P × tan(φ))
    • 快速评估功率因数
    • 指导无功补偿
  2. 负载特性识别

    • 判断感性或容性负载
    • 分析负载阻抗特性
    • 优化负载配置
  3. 电能质量监测

    • 评估相位稳定性
    • 检测功率因数异常
    • 预警设备故障
  4. 补偿设备控制

    • 实时计算补偿需求
    • 自动调整补偿容量
    • 优化补偿效果
  5. 能效管理

    • 分析无功损耗
    • 优化运行策略
    • 降低电费成本

关于 TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

http://www.dtcms.com/a/544342.html

相关文章:

  • 【数据结构】顺序结构二叉树详解
  • 魔法自助建站网站建设需要准备什么软件
  • 酒吧网站设计大连网站建设ewaylife
  • Oracle_E_Business 远程命令执行漏洞复现(CVE-2025-61882)
  • P1228 地毯填补问题(分治)
  • 苍穹外卖 —— 文件上传和菜品的CRUD
  • 高性能MySql阅读
  • 第3章、MySQL乱码的解决-字符集
  • Ubuntu 安装 Rancher
  • 什么是慢SQL
  • 【人工智能数学基础】多元高斯分布
  • 做网站加入广告联盟做网站的前端是做什么
  • 郑州网页网站制作汕头网站推广优化
  • python电影票房数据可视化分析系统 不同档期电影票房Flask框架 艺恩电影票房网站 requests爬虫(建议收藏)✅
  • webrtc弱网-VivaceUtilityFunction源码分析与算法原理
  • 科技行业ERP系统选择指南:Oracle NetSuite的全面解析
  • 第一个程序HelloWorld
  • 数据分析过程中,发现数值缺失,怎么办?
  • 电商网站设计图海口网站建设好
  • 【自动化测试函数 (上)】Web自动化测试实战精要:定位、操作与窗口管理三部曲
  • 超越传统管理:迈向无感衔接、全域协同的医美运营新范式
  • SUB设备电子狗加密狗开发
  • 1.1 神经网络基本组成
  • HarmonyOS 应用开发:Scroll滚动容器的深度性能优化
  • Java支付对接策略模式详细设计
  • 项目实践6—全球证件智能识别系统(Qt客户端开发+FastAPI后端人工智能服务开发)
  • 微软重磅发布开源引擎Microsoft Agent Framework
  • Qt 高级进阶-MVC架构实现客户端和插件交互(串口案例)
  • 本地部署开源物联网平台 ThingsBoard 并实现外部访问( Windows 版本)
  • leetcode--hot100--思路+知识点(I)