Our life is impossible to imagine without electricity. But they consume electricity everywhere, and usually produce it only at power plants.
Electricity to consumers from power plants has to be transmitted over long distances.
The transmission of energy over long distances is quite a complex problem. Approximately 20% of the generated energy is lost during transmissions.
I live in Russia, in the North Caucasus. In our region, the delivery and distribution of electricity is carried out by the company PJSC "Rosseti North Caucasus".
PJSC "Rosseti North Caucasus" provides electricity on the territory of a total area of 246.4 thousand square kilometers (1.4% of the territory of Russia) with a population of 9.82 million people (6.69 % of the population of Russia). The company's production capacity consists of 30, 470 substations with a total capacity of 17, 720 MVA, and the length of overhead and cable power lines is 132, 900 km.
Unfortunately, very often there are accidents associated with unfavorable climatic conditions (strong wind, snowfall, avalanches in the mountains), which leads to power outages.
The central office of PJSC ROSSETI North Caucasus has access to the waveforms generated at substations in case of accidents. They are analyzed by the staff. The speed of work is sometimes low, due to the fact that you need to analyze a lot of data. It is necessary to automate the process of collecting analysis and storage, followed by AI analysis to make decisions and collect the most necessary data.
System algorithm for process automation
1. Receiving data from substations via ftp in automatic mode
2. Reading data from COMTRADE files (.cfg and.dat) and uploading it to databases
3. Data collection for the subsequent creation of an ML model for making decisions about the nature of accidents.
4. Determination of the result on the nature of accidents using a trained ML model.
5. Informing interested parties about the accident by SMS.
As a device for obtaining waveforms, analyzing and determining the nature of the accident, you can use a device based on QuickFeather Development Kits.
To train the model for recognizing the nature of an accident, we will use the SensiML Data Capture Lab and the SensiML Analytics Toolkit.
SensiML Analytics Toolkit (https://sensiml.com/), is a platform for end-to-end development, covering data collection, labeling, automatic creation of algorithms and firmware, and testing. You need to register here.
SensiML Data Capture Lab is an application that allows you to capture data from a device and transfer it to a host computer, where it can then be processed and exported to the SensiML Analytics Toolkit. Download the app from the page https://sensiml.com/download/. Authorization in the program with a username and password for the SensiML Analytics Toolkit.
Model training.
I have available waveform data obtained from substations during accidents. The data is saved in the AURA format and the international COMTRADE format.
Here is an example of an oscillogram for a three-phase short circuit (AURA format)
The COMTRADE format (IEEE Standard Common Format for Trancient Data Exchange for Power Systems) is an international format designed to store information about the values and parameters of electrical signals.
The format standardizes the process of obtaining, analyzing, and exchanging waveforms of various accidents, tests (or transmitting test data) between different equipment manufacturers and operating organizations.
COMTRADE is developed by the IEEE (Institute of Electrical and Electronics Engineers, USA). Also known as:
* C37.111-1991 IEEE
• C37.111-2013 IEEE
• IEC 60255-24 Ed.2
The waveform is represented by two files with the same name but different extensions (for example, osc1. cfg osc1. dat):
• with the.cfg extension - information about the format.dat, frequency, duration, number of channels and their type.
• with the extension.dat-recorded samples in text format or binary format.
Data file (*. dat)Contains samples of analog and digital channels.
The file is named the same as the configuration file, but has the extension.dat.
FORMAT of a single waveform line:
1st number: contains the number of the data sample - an integer (counting from 1). The
2nd number: the time in microseconds from the beginning of the waveform.
3rd and others: contain values that represent analog signals (voltages and currents) and discrete signals (their values at the time of sampling).
The units in which the values of analog signals (currents and voltages) are represented are written in the configuration file, in the line belonging to the signal (the number of the configuration line is the number of the column in the data). Subsequent selections are separated by carriage returns and line feeds.
ASCII data value FORMAT:
The data values must be presented in the format of a six-digit integer (I6), separated by commas. Discrete signals (I1) are represented by ones and zeros.
1st number: for example 000002
2nd number: for example 000015
3rd and others: for example 000111, 000314, 0, 1
BINARY data value FORMAT:¶
Fixed-length records - all values of 16-bit signed integers, except for the record number and microsecond offset-they are 32-bit unsigned integers.
1st number: 32bit unsigned integer
2nd number: 32bit unsigned integer.
3rd and others: 16-bit signed integers
1 16-bit analog channel 1 1-bit digital channel
Configuration file (*. cfg)
Describes the oscillography settings.
The COMTRADE configuration files contain the following information:
1. name and designation of the station;
2. station_name, id<CR, LF>
where:
station_name unique registrar name
id unique registrar number
3. number and type of channels.;
4. TT, nnt, nnt<CR, LF> (for example 17, 7 A, 7D)
where:
TT total number of channels
nn channel number
t input type (A-analog / B-Discrete)
5. Channel names, modules, and conversion coefficients, each channel corresponds to a string of the form:
analog channel:
nn, id, p, cccccc, uu, a, b, skew, min, max < CR, LF>
discrete channel:
nn, id, m<CR, LF>
where:
nn channel number
id channel id
p channel phase
id sssssc circuit / component that is controlled by
uu unit of measurement in the channel (kV, kA, etc.)
a real number (see note)
b is a real number. (see note)
skew is a real number. Time shift (in ms) in the channel from the start of the reference
min is an integer equal to the minimum value (the lower limit of the range) for the samples of this channel.
max is an integer equal to the maximum value (the upper limit of the range) for samples of this channel.
m (0 or 1) is the normal state of this channel (applies only to discrete channels).
Note
In the file.the dat value of x corresponds to (ah+b). Ie:
o a-calibration
o b-offset
Thus, the analog channels are recorded from the file.dat is translated into units of measurement uu.
The phase, circuit component, and conversion factors are not needed for discrete channels and are therefore omitted.
6. network frequency;
7. lf<CR, LF>
where:
lf frequency in Hz (50 or 60)
8. sampling frequency and number of samples at this frequency; the Total number of sampling frequencies followed by a list containing each of the sampling frequency and the number of the last sample for a given speed.
9. nrates<CR, LF>
10. sssssl, endsampl<CR, LF>
11. sssss2, endsamp2<CR, LF>
12....
13. sssssn, endsampn<CR.LF>
where: nrates
the number of different sampling rates in the data file
ssssss1-sssssn sampling rate in Hz
endsampl-endsampn is the number of the last sample for this speed.
14. Two date/time stamps:
o for the first value in the data file
o for the start-up time.
15. mm/dd/yy, hh:mm:ss.ssssss<CR, LF>
16. mm/dd/yy, hh:mm:ss.ssssss<CR, LF>
where:
mm month (01-12)
dd day of the month (01-31)
yy last two digits of the year
hh hours (00-23)
mm minutes (00-59)
ss. ssssss seconds (0 s to 59.999999 s)
17. file type.
Identified as an ASCII file by the ft ID:
ft<CR, LF>
where:
ft ASCII or BINARY
The configuration file (*. cfg)has the following structure:
station_name, rec_dev_id, rev_year
TT, ##A, ##D
An, ch_id, ph, ccbm, uu, a, b, skew, min, max, primary, secondary, PS
An, ch_id, ph, ccbm, uu, a, b, skew, min, max, primary, secondary, PS
An, ch_id, ph, ccbm, uu, a, b, skew, min, max, primary, secondary, PS
An, ch_id, ph, ccbm, uu, a, b, skew, min, max, primary, secondary, PS
lf
nrates
samp, endsamp
dd/mm/yyyy, hh:mm:ss.ssssss
dd/mm/yyyy, hh:mm:ss.ssssss
ft
timemult
Example of a.cfg file (for the waveform in the figure above)
ДАГЭНЕРГО ДЭС ВЛ-Дербентская,522,2013
46,14A,32D
1,Ua_330 kV_ВЛ-330-Дерб.,A,330 kV ВЛ-330-Дерб.,kV,0.00023570,0,0,-512,512,3300.0000,1,S
2,Ub_330 kV_ВЛ-330-Дерб.,B,330 kV ВЛ-330-Дерб.,kV,0.00023702,0,121,-512,512,3300.0000,1,S
3,Uc_330 kV_ВЛ-330-Дерб.,C,330 kV ВЛ-330-Дерб.,kV,0.00023570,0,247,-512,512,3300.0000,1,S
4,3U0_330 kV_ВЛ-330-Дерб.,,330 kV ВЛ-330-Дерб.,kV,0.00050810,0,376,-512,512,1907.5000,1,S
5,Ia_330 kV_ВЛ-330-Дерб.,A,330 kV ВЛ-330-Дерб.,kA,0.00000817,0,681,-512,512,1000.0000,1,S
6,Ib_330 kV_ВЛ-330-Дерб.,B,330 kV ВЛ-330-Дерб.,kA,0.00000817,0,985,-512,512,1000.0000,1,S
7,Ic_330 kV_ВЛ-330-Дерб.,C,330 kV ВЛ-330-Дерб.,kA,0.00000808,0,936,-512,512,1000.0000,1,S
8,3I0_330 kV_ВЛ-330-Дерб.,,330 kV ВЛ-330-Дерб.,kA,0.00000813,0,1145,-512,512,1000.0000,1,S
9,Ua_330 kV_ВЛ-330-09,A,330 kV ВЛ-330-09,kV,0.00023247,0,991,-512,512,3300.0000,1,S
10,Ub_330 kV_ВЛ-330-09,B,330 kV ВЛ-330-09,kV,0.00023375,0,1124,-512,512,3300.0000,1,S
11,Uc_330 kV_ВЛ-330-09,C,330 kV ВЛ-330-09,kV,0.00023440,0,1239,-512,512,3300.0000,1,S
12,Ia_330 kV_ВЛ-330-09,A,330 kV ВЛ-330-09,kA,0.00001219,0,1672,-512,512,1000.0000,1,S
13,Ib_330 kV_ВЛ-330-09,B,330 kV ВЛ-330-09,kA,0.00001219,0,1946,-512,512,1000.0000,1,S
14,Ic_330 kV_ВЛ-330-09,C,330 kV ВЛ-330-09,kA,0.00001241,0,1947,-512,512,1000.0000,1,S
1,Выход ПРД (Uпрд)_дискреты_ДФЗ-503 ВЛ-330-Дерб.,,дискреты ДФЗ-503 ВЛ-330-Дерб.,0
2,Ток ПРМ (Iпрм)_дискреты_ДФЗ-503 ВЛ-330-Дерб.,,дискреты ДФЗ-503 ВЛ-330-Дерб.,0
3,Работа 2-й гр.вых.реле ВЛ-Дерб._дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
4,Работа 1-й гр.вых.реле_дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
5,Ток ПРД (IПРД)_дискреты_ДФЗ-504 ВЛ-330-09,,дискреты ДФЗ-504 ВЛ-330-09,0
6,Ток ПРМ (IПРМ)_дискреты_ДФЗ-504 ВЛ-330-09,,дискреты ДФЗ-504 ВЛ-330-09,0
7,Пуск ПРД (1РП)_дискреты_ДФЗ-504 ВЛ-330-09,,дискреты ДФЗ-504 ВЛ-330-09,0
8,Останов ПРД_дискреты_ДФЗ-503 ВЛ-330-Дерб.,,дискреты ДФЗ-503 ВЛ-330-Дерб.,0
9,Откл.полож.ф"А" ВД-1_дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
10,Откл.полож.ф"В"ВД-1_дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
11,Откл.полож.ф"С"ВД-1_дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
12,Откл.полож.ф"А"ВД-2_дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
13,Откл.полож.ф"В"ВД-2_дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
14,Откл.полож.ф"С"ВД-2_дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
15,Запрет ТАПВ ВД-1_дискреты_АПВ-503 ВЛ-330-Дерб.,,дискреты АПВ-503 ВЛ-330-Дерб.,0
16,Запрет ТАПВ ВД-2_дискреты_АПВ-503 ВЛ-330-Дерб.,,дискреты АПВ-503 ВЛ-330-Дерб.,0
17,Пуск КРБ-126_дискреты_ДЗ-503 ВЛ-330-09,,дискреты ДЗ-503 ВЛ-330-09,0
18,Конт.пуск от АОЗ-2 с меньшей выдержкой времени_дискреты_ВЛ-330-Дерб.,,дискреты ВЛ-330-Дерб.,0
19,Резерв1,0,Резервные,0
20,Резерв2,0,Резервные,0
21,Резерв3,0,Резервные,0
22,Резерв4,0,Резервные,0
23,Резерв5,0,Резервные,0
24,Резерв6,0,Резервные,0
25,Резерв7,0,Резервные,0
26,Резерв8,0,Резервные,0
27,Резерв9,0,Резервные,0
28,Резерв10,0,Резервные,0
29,Резерв11,0,Резервные,0
30,Резерв12,0,Резервные,0
31,Резерв13,0,Резервные,0
32,Резерв14,0,Резервные,0
50
1
500,4056
02/07/2018,23:52:14.000000
02/07/2018,23:52:14.000000
ASCII
1
3,3
0,0
Фрагмент файла.dat
0000000001,0000000000,-58.000000,-282.000000,323.000000,-3.000000,29.000000,-15.000000,-15.000000,0.000000,70.000000,-358.000000,259.000000,-13.000000,14.000000,1.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000002,0000001999,164.000000,-362.000000,176.000000,2.000000,20.000000,4.000000,-26.000000,1.000000,242.000000,-356.000000,75.000000,-18.000000,5.000000,14.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000003,0000003998,308.000000,-295.000000,-46.000000,2.000000,11.000000,17.000000,-25.000000,0.000000,363.000000,-221.000000,-163.000000,-11.000000,-5.000000,17.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000004,0000005997,359.000000,-125.000000,-235.000000,1.000000,-10.000000,29.000000,-16.000000,0.000000,329.000000,-8.000000,-321.000000,0.000000,-16.000000,16.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000005,0000007996,253.000000,117.000000,-354.000000,2.000000,-23.000000,23.000000,3.000000,1.000000,166.000000,210.000000,-368.000000,11.000000,-20.000000,7.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000006,0000009995,57.000000,285.000000,-323.000000,3.000000,-28.000000,13.000000,16.000000,1.000000,-70.000000,356.000000,-261.000000,13.000000,-14.000000,-2.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000007,0000011994,-162.000000,362.000000,-176.000000,-1.000000,-21.000000,-7.000000,29.000000,1.000000,-243.000000,355.000000,-73.000000,18.000000,-6.000000,-15.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000008,0000013993,-310.000000,296.000000,48.000000,-2.000000,-10.000000,-18.000000,26.000000,1.000000,-364.000000,222.000000,163.000000,11.000000,5.000000,-17.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000009,0000015992,-360.000000,127.000000,234.000000,0.000000,11.000000,-30.000000,16.000000,0.000000,-329.000000,8.000000,320.000000,1.000000,17.000000,-16.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000010,0000017991,-252.000000,-116.000000,354.000000,-1.000000,23.000000,-23.000000,-1.000000,1.000000,-168.000000,-211.000000,368.000000,-11.000000,20.000000,-7.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0000000011,0000019990,-58.000000,-283.000000,324.000000,-3.000000,29.000000,-14.000000,-14.000000,0.000000,70.000000,-358.000000,260.000000,-13.000000,14.000000,1.000000,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0
We copy the data in Data Capture Lab from csv files
File --> Import Files --> CSV Files
But first you need to create a data transfer device plugin
Device plugins are a list of properties (. ssf file) that describe how the DCL will collect data from the device.
Creating the auracsvdata.ssf file in a text editor
{
"name": "Aura_csv_data_UI",
"uuid": "f614edcc-58fe-4534-95b7-1355447308e8",
"collection_methods": [
{
"name": "live",
"display_name": "Live Stream Capture",
"storage_path": null,
"is_default": true
}
],
"device_connections": [
{
"display_name": "Serial Port",
"value": 1,
"is_default": true,
"serial_port_configuration": {
"com_port": null,
"baud": 460800,
"stop_bits": 1,
"parity": 0,
"handshake": 0,
"max_live_sample_rate": 3301
}
}
],
"capture_sources": [
{
"max_throughput": 0,
"name": "UIdata",
"part": "AURA",
"sample_rates": [
500
],
"is_default": true,
"sensors": [
{
"column_count": 9,
"is_default": true,
"column_suffixes": [
"t",
"Ua",
"Ub",
"Uc",
"U0",
"Ia",
"Ib",
"Ic",
"I0"
],
"type": "csvdata",
"parameters": [],
"sensor_id": 1229804865,
"can_live_stream": true
}
]
}
],
"is_little_endian": true
}
And import
Edit --> Import Device Plugin, specify the path to the ssf file
Next, We create a data acquisition device Sensor1, where we select our Device
Now we import the data
File --> Import Files --> CSV Files
Selecting columns to import
And import
In the Capture Properties section, create labels (AddLabels)
And Metadata – Class (Train и Test)
We select fragments for labels in all files
This data is synced to the SensiML cloud.
Now go to Analytics Studio, an application in the cloud that filters and optimizes data from tagged sensors using machine learning algorithms. It generates a model (SensiML Knowledge Pack) ready for device firmware.
Go to Analytics Studio and select the project
And try to create a model
Here I encountered errors that I could not overcome at the moment
I have not progressed further, but I hope to finish it yet.
Comments
Please log in or sign up to comment.