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

TDengine 数据函数 SIN 用户手册

在这里插入图片描述

SIN 函数

语法

SIN(expr)

功能说明

获得指定字段的正弦值。

版本

v3.0.0.0

返回结果类型

DOUBLE

适用数据类型

数值类型。

嵌套子查询支持

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

适用于

表和超级表。

使用说明

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

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

-- 建库与使用
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, 60.0, 1895.5),('2024-01-01 10:03:00.000', 11.2, 222, 90.0, 2486.4);INSERT INTO d1002 VALUES('2024-01-01 10:00:00.000',  9.0, 219, 45.0, 1971.0),('2024-01-01 10:01:00.000', 14.0, 222, 120.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: 常量正弦计算

-- sin(0) = 0
taos> SELECT SIN(0);sin(0)           |
============================0.000000000000000 |-- sin(π/6) = 0.5
taos> SELECT SIN(PI()/6);sin(pi()/6)        |
============================0.500000000000000 |-- sin(π/4) ≈ 0.707
taos> SELECT SIN(PI()/4);sin(pi()/4)        |
============================0.707106781186548 |-- sin(π/2) = 1
taos> SELECT SIN(PI()/2);sin(pi()/2)        |
============================1.000000000000000 |-- sin(π) ≈ 0
taos> SELECT SIN(PI());sin(pi())         |
============================0.000000000000000 |

示例 2: 角度转弧度计算

-- sin(30°) = 0.5
taos> SELECT SIN(RADIANS(30));sin(radians(30))       |
============================0.500000000000000 |-- sin(45°) ≈ 0.707
taos> SELECT SIN(RADIANS(45));sin(radians(45))       |
============================0.707106781186548 |-- sin(60°) ≈ 0.866
taos> SELECT SIN(RADIANS(60));sin(radians(60))       |
============================0.866025403784439 |-- sin(90°) = 1
taos> SELECT SIN(RADIANS(90));sin(radians(90))       |
============================1.000000000000000 |

示例 3: NULL 值处理

taos> SELECT SIN(NULL);sin(null)       |
========================NULL                  |

示例 4: 负角度计算

-- sin(-30°) = -0.5
taos> SELECT SIN(RADIANS(-30));sin(radians(-30))       |
============================-0.500000000000000 |-- sin(-90°) = -1
taos> SELECT SIN(RADIANS(-90));sin(radians(-90))       |
============================-1.000000000000000 |

智能电表场景示例

示例 5: 交流电瞬时值计算

目的:根据相位角计算交流电压或电流的瞬时值,用于波形分析。

-- 计算电压瞬时值 v(t) = Vm * sin(ωt + φ)
-- 假设电压幅值为 311V (220V * √2)
SELECT ts,voltage,phase,311 * SIN(RADIANS(phase)) AS instantaneous_voltage
FROM d1001
ORDER BY ts;

应用价值

  • 分析交流电波形特征
  • 检测电压畸变和谐波
  • 评估电能质量

示例 6: 功率因数分解

目的:利用相位角的正弦值计算无功功率分量。

-- 计算有功功率和无功功率
-- P = S * cos(φ), Q = S * sin(φ)
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;

应用价值

  • 精确计算无功功率
  • 优化无功补偿策略
  • 降低线路损耗

示例 7: 三相电压不平衡度分析

目的:分析三相电压的正弦分量,评估三相不平衡程度。

-- 计算三相电压的虚部(正弦分量)
SELECT location,AVG(voltage * SIN(RADIANS(phase))) AS avg_voltage_imaginary,STDDEV(voltage * SIN(RADIANS(phase))) AS voltage_imag_deviation
FROM meters
WHERE ts >= '2024-01-01 10:00:00'AND ts < '2024-01-01 10:04:00'
GROUP BY location;

应用价值

  • 检测三相不平衡
  • 预防中性线过流
  • 保护电气设备

示例 8: 谐波分量提取(修正版)

目的:通过正弦函数提取基波和谐波分量,用于谐波分析。

-- 提取基波的正弦分量
-- 使用相位角直接计算正弦分量
SELECT ts,current,current * SIN(RADIANS(phase)) AS current_sin_component,voltage * SIN(RADIANS(phase)) AS voltage_sin_component
FROM d1001
WHERE ts >= '2024-01-01 10:00:00'
ORDER BY ts
LIMIT 100;

应用价值

  • 识别谐波污染源
  • 评估电能质量
  • 设计滤波器

示例 9: 相量图绘制数据准备

目的:计算电压和电流的正弦分量,为绘制相量图提供数据。

-- 计算电压和电流的正弦分量(虚部)
SELECT ts,voltage * COS(RADIANS(phase)) AS voltage_real,voltage * SIN(RADIANS(phase)) AS voltage_imag,current * COS(RADIANS(phase)) AS current_real,current * SIN(RADIANS(phase)) AS current_imag
FROM d1001
ORDER BY ts;

应用价值

  • 可视化电压电流关系
  • 分析功率传输特性
  • 故障诊断

示例 10: 周期性负载建模

目的:利用正弦函数模拟周期性负载变化,用于负载预测。

-- 模拟一天24小时的周期性负载曲线
-- 使用时间戳的小时部分计算相位
SELECT ts,power AS actual_power,2000 + 1000 * SIN(RADIANS((CAST(ts AS BIGINT) % 86400000 / 3600000 - 6) * 15)) AS predicted_power
FROM d1001
ORDER BY ts;

应用价值

  • 负载预测和规划
  • 优化发电调度
  • 需求侧管理

示例 11: 电压暂降分析

目的:分析电压暂降事件中的相位变化,评估暂降严重程度。

-- 计算电压的正弦分量变化率
SELECT ts,voltage,phase,voltage * SIN(RADIANS(phase)) AS voltage_sine_component,ABS(voltage * SIN(RADIANS(phase))) / CASE WHEN ABS(voltage) > 0 THEN ABS(voltage) ELSE 1 END AS sine_ratio
FROM meters
WHERE voltage < 200  -- 电压偏低
ORDER BY ts;

应用价值

  • 量化电压暂降影响
  • 评估敏感设备风险
  • 优化电压调节策略

生产场景应用与目的

场景 A: 三相电功率分析

目的:在三相电力系统中,通过正弦和余弦函数分解有功功率和无功功率,优化电能传输效率。

示例

-- 计算三相系统的总有功功率和总无功功率
SELECT location,SUM(current * voltage * COS(RADIANS(phase))) AS total_active_power,SUM(current * voltage * SIN(RADIANS(phase))) AS total_reactive_power,SUM(current * voltage * SIN(RADIANS(phase))) / SUM(current * voltage * COS(RADIANS(phase))) AS power_factor_tan
FROM meters
WHERE ts >= '2024-01-01 10:00:00'AND ts < '2024-01-01 10:04:00'
GROUP BY location;

场景 B: 谐波污染评估

目的:利用正弦函数分析电流和电压的波形特征,识别谐波污染源并评估其对电网的影响。

示例

-- 计算电流的正弦和余弦分量用于谐波分析
SELECT ts,current,current * SIN(RADIANS(phase)) AS current_imag,current * COS(RADIANS(phase)) AS current_real,SQRT(POW(current * SIN(RADIANS(phase)), 2) + POW(current * COS(RADIANS(phase)), 2)) AS current_magnitude
FROM d1001
WHERE ts >= '2024-01-01 10:00:00'AND ts < '2024-01-01 10:01:00'
ORDER BY ts;

场景 C: 同步相量测量(PMU)

目的:在智能电网的同步相量测量单元(PMU)中,使用正弦和余弦函数将相量分解为实部和虚部。

示例

-- 计算电压相量的实部和虚部
SELECT ts,voltage * COS(RADIANS(phase)) AS phasor_real,voltage * SIN(RADIANS(phase)) AS phasor_imag,SQRT(POW(voltage * COS(RADIANS(phase)), 2) + POW(voltage * SIN(RADIANS(phase)), 2)) AS phasor_magnitude,ATAN(voltage * SIN(RADIANS(phase)) / voltage * COS(RADIANS(phase))) AS phasor_angle
FROM meters
WHERE ts >= NOW - 5m
ORDER BY ts;

场景 D: 无功补偿优化

目的:通过计算无功功率分量(Q = V * I * sin(φ)),指导电容器组的投切,优化功率因数。

示例

-- 计算需要补偿的无功功率
SELECT _wstart AS time_window,AVG(current * voltage * SIN(RADIANS(phase))) AS avg_reactive_power,CASEWHEN AVG(current * voltage * SIN(RADIANS(phase))) > 500 THEN '需要补偿'ELSE '无需补偿'END AS compensation_status
FROM meters
WHERE ts >= '2024-01-01 00:00:00'AND ts < '2024-01-02 00:00:00'
INTERVAL(15m);

场景 E: 电能质量监测

目的:通过监测相位角的正弦值变化,及时发现电压闪变、谐波畸变等电能质量问题。

示例

-- 监测相位角正弦值的标准差,识别电能质量异常
SELECT location,STDDEV(SIN(RADIANS(phase))) AS phase_sin_stddev,CASEWHEN STDDEV(SIN(RADIANS(phase))) > 0.1 THEN '电能质量异常'ELSE '电能质量正常'END AS quality_status
FROM meters
WHERE ts >= NOW - 1h
GROUP BY location;

注意事项

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

  2. 精度问题:浮点运算存在精度限制,对于需要高精度的应用(如PMU),需要注意精度累积误差。

  3. 周期性:正弦函数是周期函数,周期为 2π,即 SIN(x) = SIN(x + 2πn),其中 n 为整数。

  4. 取值范围:SIN 函数的返回值范围为 [-1, 1]。

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

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


数学关系

  • 基本定义:对于直角三角形,sin(θ) = 对边 / 斜边
  • 周期性SIN(x + 2π) = SIN(x)
  • 奇函数性质SIN(-x) = -SIN(x)
  • 与余弦关系SIN²(x) + COS²(x) = 1
  • 和差公式
    • SIN(x + y) = SIN(x)COS(y) + COS(x)SIN(y)

关于 TDengine

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。

它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。

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

相关文章:

  • 无人机多光谱在高山松地上生物量估测的研究应用进展
  • Spring Boot3零基础教程,Kafka 小结,笔记79
  • LiveQing视频推流点播流媒体功能-支持RTSP推流支持rtmp推流无人机rtmp推流无人机rtsp推流
  • 做化妆品代理在那些网站比较多江苏公司响应式网站建设报价
  • RAG文档切片新方案HiChunk:LLM重构RAG文档分块
  • mybatis的sql中,如果一个条件column=#{column},column的值为null时,会不会匹配出column is null 的记录
  • 购物商城系统搭建实战指南
  • 怎么做网站挣钱做一下网站收购废钢
  • 专业移动微网站建设玖玖建筑网
  • 无锡建行网站网站加速cdn
  • kafka使用-admin创建
  • 渗透测试中常见的网络端口
  • 超市进销存系统管理源码 超市管理系统源码
  • Python 文件常数引用
  • 钦州电商网站建设南京网络建站公司
  • TCP数据中转服务器/广播服务器(高并发TCP服务广播)winform.netcore(net8)
  • 实验室温湿度高精度采集与监控中心集中管理实施细则
  • set和map的封装(C++)
  • Python机器学习---7.实战案例:幸福指数分析
  • 大型网站建设淮安公司网站建设
  • 重庆简约型网站开发价格做教程网站资源放哪里有
  • axios封装实例
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(8):阶段复习
  • RabbitMQ死信队列详解
  • 信息消除不确定性的多维解析
  • Day12:Python实现邮件自动发送
  • 点亮LED
  • 家乡ppt模板免费下载网站地图 添加到网站
  • JMeter直连数据库的使用案例1
  • 网站备案ip查询系统上海十大营销策划公司排名