Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

intro.Rmd 5.5 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
  1. ---
  2. title: "光伏组串离散率算法说明"
  3. author: "Leo"
  4. date: "2019.1.25"
  5. output: html_document
  6. ---
  7. ```{r setup, include=FALSE}
  8. knitr::opts_chunk$set(echo = TRUE)
  9. ```
  10. 基于离散率的光伏组串算法适用于短期故障预警。
  11. 计算频率:一天计算3次:10:00, 13:00, 17:00
  12. 采样频率:5min 采一次数据。
  13. 计算时间范围:07:00 ~ 10:00; 07:00 ~ 13:00; 07:00 ~ 17:00
  14. # 参数列表
  15. * $t_s$: 输入起始时间;
  16. * $t_e$: 输入终止时间;
  17. * $t_f$: 通讯故障最小时长,默认值 30min,不可配置;
  18. * $I_0$: 时间窗起始阈值,默认值 1A,可配置;
  19. * $I_m$: 最高电流值,默认值 12A,不可配置,如果某个组串在时域上的均值大于 $I_m$ (或者小于0),则此组串标记为 通讯故障(前端渲染为灰色);
  20. # 输入和输出
  21. 输入:
  22. DataFrame, 列包括:
  23. *STATION_ID, DEVICE_ID, MONITOR_TIME, VOLTAGE_VALUE, CURRENT_VALUE, POWER_VALUE, TEMPERATURE, IRRADIANCE*
  24. 输出:
  25. DataFrame, 列包括:
  26. * 计算单元ID: str
  27. * 计算时刻:datetime
  28. * 计算结果值:float,离散率或者异常标记(-1代表 通讯故障,-2代表 计算单元无有效值);
  29. * 组串状态:str,异常组串标记,`E1` ~ `E3` 分别代表组串三种异常状态,不同组串间以竖线分隔(避免用逗号分隔造成混淆);
  30. # 应用处理流程
  31. 应用处理包括预处理和后处理两部分计算。
  32. 预处理过程将整体输入数据转换为算子输入,执行并行计算,后处理将计算结果组合为整体输出。
  33. 预处理流程:
  34. 1. 按照 $t_s$ 和 $t_e$ 提取指定时间段内的数据;
  35. 1. 根据 `STATION_ID` 和 `DEVICE_ID` 生成 计算单元ID 和 组串编号;
  36. 1. 根据 计算单元ID 对输入数据分组,每个分组作为算子的输入。
  37. 1. 执行并行计算;
  38. 预处理输出(算子输入)格式:
  39. DataFrame, 列包括:
  40. * 组串编号:str
  41. * 采样时间:datetime
  42. * 电流值:float
  43. * 电压值:float
  44. 后处理流程:
  45. 1. 对于每个算子计算结果,添加 计算单元ID 和 监控时间 $t_e$ 两个字段;
  46. 1. 整合在一个 DataFrame 中输出。
  47. # 算子计算过程
  48. 算子计算过程的输入数据是预处理步骤的输出。
  49. 算子计算过程的输出:DataFrame,列包括:
  50. * 离散率:float
  51. * 组串状态:str
  52. 算子计算流程
  53. 1. 若计算单元中所有组串在 $t_f$ 内直流电流和直流电压值不变(对于组串式逆变器还要加上交流电流、交流电压和有功功率),则整个计算单元标记为 通讯故障,计算结果返回 -1;用滑动窗口方法检测值的不变性,滑动步长为 5min;
  54. 1. 对非通讯故障的计算单元,取所有组串在检测窗口内第一个 $I \ge I_0$ 的时刻,作为所有组串的计算起始时间 $t_1$,和当前计算开始时间 $t_2$组成计算区间 $[t_1, t_2]$。如果整个计算区间内没有大于的值,返回值-2,代表此计算单元“无有效值”。
  55. 1. 对非通讯故障的计算单元内的每个组串做如下操作:
  56. 在 $[t_1, t_2]$ 内筛选电流值,如果 $I \notin [-0.5A, 12A]$ 则剔除该条数据;
  57. 如果 $I \in [-0.5A, 0.1A]$ 则置为0;
  58. 如果 $I \in [0.1A, 12A]$ 保留原数据不变;
  59. 如果筛选后无数据剩余,则该组串标记为 -3,表示 组串无数据,不参与后续计算;
  60. 1. 对处理后的每个计算单元,求所有有效组串的电流平均值 $I_{str}$,
  61. 再求计算单元的总体电流平均值 $I_u = \frac{\sum I_{str}}{no. of. strings}$,(角标 $u$ 表示 计算单元 unit)
  62. 如果 $I_u \lt I_0$,整个计算单元标记为“无有效值”,返回 -2;
  63. 1. 对筛选后剩余的计算单元中的每个组串计算 $[t_1, t_2]$ 上的平均功率 $\bar P_s$:
  64. 首先算出平均电流 $\bar I$ 和平均电压 $\bar V$,$\bar P_s = \bar I \times \bar V$;
  65. 1. 得到计算单元在 $[t_1, t_2]$ 内的功率平均值 $\bar P_u = \frac{\sum \bar P_s}{no. of. strings)}$;
  66. 1. 计算并输出单元离散率:$d = \frac{\sqrt{\sum (\bar P_s - \bar P_{cal}) ^ 2 }}{\bar P_{cal}}$
  67. 1. 若 $d \ge 20\%$,将此计算单元内 $P_s$ 最小值对应的组串 $s_{Imin}$ 标记为 异常1(界面红色标记);
  68. 若 $10\% \lt d \lt 20\%$,将此计算单元内 $P_s$ 最小值对应的组串 $s_{Imin}$ 标记为 异常2(界面橙色标记);
  69. 若 $5\% \lt d \lt 10\%$,将此计算单元内 $P_s$ 最小值对应的组串 $s_{Imin}$ 标记为 异常3(界面黄色标记);
  70. 若 $d \le 5\%$,将此计算单元内各个组串标记为正常,计算结束。
  71. 1. 重复计算 $d$ 值,直到计算结束,
  72. 1. 收集每轮计算中组串状态变化,整合为空格分隔的字符串,输出到该计算单元的 组串状态 列中。
  73. # 术语定义
  74. * 检测窗口:算子一次计算中使用的数据在时间上的跨度,例如7:00 ~ 10:00,或者 7:00 ~ 17:00;
  75. * 计算频率:算子执行的频率;
  76. * 采样频率:检测窗口内,相邻两个数据点在时间上的跨度;
  77. * 计算单元:一组光伏组串形成的彼此独立的计算单位,对于集中式场站,计算单元等价于汇流箱,
  78. 对于分布式场站,计算单元等价于逆变器,计算单元的ID由场站名称、小室编号、
  79. 逆变器(汇流箱)编号组成。
  80. # 参考资料
  81. * [Coefficient of variation](https://en.wikipedia.org/wiki/Coefficient_of_variation):
  82. $CV = \frac{\sigma_u}{\bar P_u}$(其中 $\sigma_u$ 是 $p_s$ 的标准差,这个值与离散率的比值为常数);
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...