Как самому расчитать и сделать заземляющее устройство -- контур заземления
Использована методика учебника для вузов
- Атабеков Вильм Борисович. Заземляющие устройства электрических сетей и подстанций. Справочник. М., Стройиздат -- 1967
Как сделать заземляющее устройство
Последовательность работы:
- Выкопать траншею глубиной 0,5-1 метр, длину -- взять из произведённого расчёта;
- Вертикальные заземлители (круг диметром более 16 мм, труба ДУ больше 40 мм, уголок с полкой не менее 50 мм) забить в траншее через удвоенную их длину -- взять из произведённого расчёта;
- Проложить горизонтальный заземлитель ( полоса, арматура: суммарное сечение не менее 160 мм2) от мачты к каждому вертикальному заземлителю;
- Соединить всё электросваркой ( длина непрерывного сварочного шва должна быть более 100 мм);
- Прокрасить все сварочные швы битумным лаком ( БТ-577 или подобным) ;
- Сравнить с фото выше, если что-то не так -- переделать;
- Сфотографировать и нарисовать всё на плане сверху с привязками к окружающим предметам (мачта, угол здания, дерево и т.п.) для будущего ремонта и проверки:
- Засыпать траншею мягким грунтом;
- Провести замер растекания постоянного тока заземляющего устройства.
Как сделать расчёт контура
Последовательность работы:
- Запустить на выполнение в терминале:
go run kontur.go. - Внести входные данные
- Получить первый результат и скорректировать входные данные
- Повторять шаг 3 до получения нужного результата
- Распечатать или записать результат и приступить выполнению работ.
Потратив время на уточнение данных, можно получить реальную экономию железа и объёмов работ.
Библиотечный файл на Go
package kdoc
/*import(
"e;fmt"e;
)
*/
func Grunt( ) string {
s:=`
------------------------------
Удельное
сопротивление Грунт
Ом/метр
-------------------------------
10 Смешанный грунт (глина+щебень+известняк)
20 Торф
30 Чернозем
50 Садовая земля
70 Глина (слой 8-10м, далее скала,гравий)
100 Суглинок
300 Супесок
500 Песок влажностью 10%
2000 Песок сухой
2500 Гравий, щебень
4000 Каменистые почвы
`
return s
}
func Line1( ) string {
s:=`
Вертикальный заземлитель:
Кол-во Коэф. Коэф. Коэф.
заземл. экранир. экранир. экранир.
при кратн. при кратн. при кратн.
расст/дл=1 расст/дл=2 расст/дл=3
------------------------------------------------
2 0.84-0.87 0.90-0.92 0.93-0.95
3 0.76-0.80 0.85-0.88 0.90-0.92
5 0.67-0.72 0.79-0.83 0.85-0.88
10 0.56-0.62 0.72-0.77 0.79-0.83
15 0.51-0.56 0.66-0.73 0.76-0.80
20 0.47-0.50 0.65-0.70 0.74-0.79
------------------------------------------------
Горизонтальный заземлитель:
Кол-во Коэф. Коэф. Коэф.
верт. экранир. экранир. экранир.
заземл. при кратн. при кратн. при кратн.
расст/дл=1 расст/дл=2 расст/дл=3
------------------------------------------------
4 0.77 0.89 0.92
8 0.67 0.79 0.85
10 0.62 0.75 0.82
20 0.42 0.56 0.68
30 0.31 0.46 0.58
50 0.21 0.36 0.49
------------------------------------------------
`
return s
}
func Line2( ) string {
s:=`
Кол-во Коэф. Коэф. Коэф.
заземл. экранир. экранир. экранир.
при кратн. при кратн. при кратн.
расст/дл=1 расст/дл=2 расст/дл=3
------------------------------------------------
4 0.66-0.72 0.76-0.80 0.84-0.86
6 0.58-0.65 0.71-0.75 0.78-0.82
10 0.52-0.58 0.66-0.71 0.74-0.78
20 0.44-0.50 0.61-0.66 0.68-0.73
40 0.38-0.44 0.55-0.61 0.64-0.69
60 0.36-0.42 0.52-0.58 0.62-0.67
------------------------------------------------
Горизонтальный заземлитель:
Кол-во Коэф. Коэф. Коэф.
верт. экранир. экранир. экранир.
заземл. при кратн. при кратн. при кратн.
расст/дл=1 расст/дл=2 расст/дл=3
------------------------------------------------
4 0.45 0.55 0.70
8 0.36 0.43 0.60
10 0.34 0.40 0.56
20 0.27 0.32 0.45
30 0.24 0.30 0.41
50 0.21 0.28 0.37
------------------------------------------------
`
return s
}
func Info( ) string {
s:=`
Источник -- Атабеков Вильм Борисович. Заземляющие устройства электрических сетей и подстанций. Справочник. М., Стройиздат -- 1967
Автор Абдуразаков О.Х.: olab@email.su
`
return s
}
func Tabl(){
}
Главный файл kontur.go
package main
import (
"e;flag"e;
"e;fmt"e;
"e;os"e;
"e;math"e;
"e;./kdoc"e;
)
var VERSION="e;0-5.5"e;
var r_gorizont = 0.0
type Kontur struct {
n float64 //кол-во верт. заз.
ro float64 // удельное сопротивление грунта
r_kont float64 //R контура
nu float64 //коэф.экранир. верт. заз.
nu_pol float64 //коэф.экранир. гор. заз.
l float64 //длина верт. заземлителя
r_zazeml float64 // R верт. заземлителя
d float64 // диаметр верт. заз.
k_kratn float64 // коэф.кратности
lpol float64 // длина полосы
h float64 //глубина заложения полосы
b float64 //ширина полосы
r_pol float64 //R полосы
}
func (k *Kontur) rz() float64 {
ln:=math.Log(4*k.l/k.d)
// fmt.Println(ln)
k.r_zazeml=(k.ro/(6.28*k.l))*ln
fmt.Printf( "e;%12.3f Ом -сопротивление 1-го верт.заземлителяn"e;,k.r_zazeml )
return k.r_zazeml
}
func (k *Kontur) rpol() float64 { //R полосы
ln:=math.Log( ( 2*k.lpol*k.lpol ) / ( k.b*k.h ) )
// fmt.Println(ln)
k.r_pol=( k.ro/( 6.28*k.lpol ) )*ln
fmt.Printf( "e;%12.3f Ом -сопротивление горизонтального заземлителяn"e;,k.r_pol)
return k.r_pol
}
func (k *Kontur) nf(){ //кол-во заземлителей
k.n = float64( int( k.r_zazeml/( k.nu*k.r_kont ) ) )
fmt.Printf("e;%12d шт. заземлителейn"e;,int(k.n))
}
func (k *Kontur) area() float64 {
var a float64
if( r_gorizont == 0 ) { a = k.l*k.l*k.n
} else { a = 2*k.l*k.lpol }
return a
}
func (k *Kontur) len() float64 {
return k.l*k.n
}
var k=new(Kontur)
func main() {
kl := flag.Float64("e;l"e;, 1.5, "e;длина заземлителя,м"e;)
gorizont := flag.Int64( "e;gorizont"e;, 1, "e;0 - не учитывать горизонтальный заземлитель"e; )
knu := flag.Float64("e;nu"e;, 0.42, "e;коэф. экранирования верт. заземлителя"e;)
knu_pol := flag.Float64("e;nu_pol"e;, 0.21, "e;коэф. экранирования гориз. заземлителя"e;)
kkr := flag.Float64("e;kr"e;, 1, "e;коэф. кратности длины верт.заземлителя к расстоянию между заземлителями (шага)"e;)
kro := flag.Float64("e;ro"e;, 300, "e;удельное сопротивление грунта, ом/м"e;)
kd := flag.Float64("e;d"e;, 0.063, "e;диаметр верт. заземлителя,м"e;)
kb := flag.Float64("e;b"e;, 0.040, "e;ширина гориз. заземлителя ( полосы ),м"e;)
kh := flag.Float64("e;h"e;, 0.7, "e;глубина гориз. заземлителя ( полосы ),м"e;)
kr_kont:= flag.Float64("e;R"e;, 4, "e;сопротивление контура,ом"e;)
k_doc := flag.String("e;doc"e;, "e;"e;, "e;grunt грунт line в_линию kontur по_контуру info инфо"e;)
flag.Parse()
if( *k_doc=="e;grunt"e;||*k_doc=="e;грунт"e; ){
fmt.Println( kdoc.Grunt() )
os.Exit( 0 )
}
if( *k_doc=="e;line"e;||*k_doc=="e;в_линию"e; ){
fmt.Println( kdoc.Line1() )
os.Exit( 0 )
}
if( *k_doc=="e;kontur"e;||*k_doc=="e;по_контуру"e; ){
fmt.Println( kdoc.Line2() )
os.Exit( 0 )
}
if( *k_doc=="e;info"e;||*k_doc=="e;инфо"e; ){
fmt.Println( kdoc.Info() )
os.Exit( 0 )
}
k.l = *kl
k.nu = *knu
k.nu_pol = *knu_pol
k.k_kratn = *kkr
k.ro = *kro
k.d = *kd
k.b = *kb
k.h = *kh
k.r_kont= *kr_kont
fmt.Println()
fmt.Println("e;version"e;,VERSION)
fmt.Println("e;-doc grunt -получение справки по грунтам"e;)
fmt.Println("e;-doc line -получение справки по коэф. линейного контура"e;)
fmt.Println("e;-doc kontur -получение справки по коэф. замкнутого контура"e;)
fmt.Println("e;-doc info -получение справки "e;)
fmt.Println()
fmt.Println("e;Входные данные:"e;)
fmt.Printf("e;%12.3f м -длина верт.заземлителяn"e;, k.l )
fmt.Printf("e;%12.3f -коэф. экранирования верт.заземлителяn"e;,k.nu)
fmt.Printf("e;%12.3f -коэф. экранирования гор.заземлителя( полосы )n"e;, k.nu_pol )
fmt.Printf("e;%12.3f -коэф. кратности шага заземлителейn"e;, k.k_kratn )
fmt.Printf("e;%12.3f Ом/м -удельное сопротивление грунтаn"e;, k.ro )
fmt.Printf("e;%12.3f м -диаметр верт.заземлителяn"e;, k.d )
fmt.Printf("e;%12.3f м -ширина гор.заземлителя ( полосы )n"e;, k.b )
fmt.Printf("e;%12.3f м -глубина заложения гор.заземлителя ( полосы )n"e;, k.h )
fmt.Printf("e;%12.3f Ом -начальное сопротивление контураn"e;, k.r_kont )
fmt.Println()
fmt.Println("e;Выходные данные:"e;)
k.rz()
k.nf()
k.lpol = k.len()*k.k_kratn
if( *gorizont == 1 ){
r_gorizont=k.rpol()/k.nu_pol
// fmt.Println( r_gorizont,k.r_kont )
k.r_kont = ( r_gorizont * k.r_kont ) / ( r_gorizont + k.r_kont )
// fmt.Println(r_gorizont,k.r_kont )
}
fmt.Printf("e;%12.3f м -общая длина вертикальных заземлителейn"e;, k.len())
if( *gorizont == 1 ) {
fmt.Printf( "e;%12.3f м -общая длина горизонтального заземлителяn"e;, k.lpol )
}
fmt.Printf( "e;%12.3f м2 -площадь растекания, используемая контуромnn"e;, k.area())
fmt.Printf( "e;%12.3f Ом -расчетное сопротивление контура nn"e;,k.r_kont )
}
Makefile
all: go run kontur.go -doc grunt b: go build kontur.go
Результат расчёта
version 0-5.5
-doc grunt -получение справки по грунтам
-doc line -получение справки по коэф. линейного контура
-doc kontur -получение справки по коэф. замкнутого контура
-doc info -получение справки
Входные данные:
2.000 м -длина верт.заземлителя
0.730 -коэф. экранирования верт.заземлителя
0.450 -коэф. экранирования гор.заземлителя( полосы )
3.000 -коэф. кратности шага заземлителей
20.000 Ом/м -удельное сопротивление грунта
0.050 м -диаметр верт.заземлителя
0.040 м -ширина гор.заземлителя ( полосы )
0.500 м -глубина заложения гор.заземлителя ( полосы )
2.000 Ом -начальное сопротивление контура
Выходные данные:
8.081 Ом -сопротивление 1-го верт.заземлителя
5 шт. заземлителей
1.211 Ом -сопротивление горизонтального заземлителя
10.000 м -общая длина вертикальных заземлителей
30.000 м -общая длина горизонтального заземлителя
120.000 м2 -площадь растекания, используемая контуром
1.147 Ом -расчетное сопротивление контура
version 0-5.5
-doc grunt -получение справки по грунтам
-doc line -получение справки по коэф. линейного контура
-doc kontur -получение справки по коэф. замкнутого контура
-doc info -получение справки
Входные данные:
1.000 м -длина верт.заземлителя
0.740 -коэф. экранирования верт.заземлителя
0.560 -коэф. экранирования гор.заземлителя( полосы )
3.000 -коэф. кратности шага заземлителей
500.000 Ом/м -удельное сопротивление грунта
0.025 м -диаметр верт.заземлителя
0.040 м -ширина гор.заземлителя ( полосы )
1.000 м -глубина заложения гор.заземлителя ( полосы )
60.000 Ом -начальное сопротивление контура
Выходные данные:
404.074 Ом -сопротивление 1-го верт.заземлителя
9 шт. заземлителей
30.973 Ом -сопротивление горизонтального заземлителя
9.000 м -общая длина вертикальных заземлителей
27.000 м -общая длина горизонтального заземлителя
54.000 м2 -площадь растекания, используемая контуром
28.780 Ом -расчетное сопротивление контура
Расход стали ( с учетом обвязки фундамента ) :
18 м уголок 25 или круг 22
24 м уголок 50
108 м полоса 40х4
Расход торфа:
8 м3 для контура ТП
Расход земляных работ:
27 м3 выемки для траншей
5 м3 выемки для мачт
3 м3 выемки для фундамента
8 м3 перемещения через пути
35 м3 обратной засыпки
11 м3 планировки
Подъемно-транспортные работы:
2 мачты
4 ФБС
8 м3 торфа с перемещением через пути
Эпилог
Функции программы документированы, переменные имеют доступные имена.
Но если понадобится помощь -- обращайтесь