Skip to content

Commit 2688e8c

Browse files
committed
Added Elko
1 parent 5864504 commit 2688e8c

File tree

14 files changed

+316
-18
lines changed

14 files changed

+316
-18
lines changed

src/Calc/GF/Cone/Cona.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,6 @@ public function analiza($okolje)
380380
foreach ($this->ovoj->transparentneKonstrukcije as $elementOvoja) {
381381
$skupni_Uab += $elementOvoja->U * $elementOvoja->povrsina * $elementOvoja->b * $elementOvoja->stevilo;
382382
$this->povrsinaOvoja += $elementOvoja->povrsina * $elementOvoja->stevilo;
383-
//$this->povrsinaOvoja +=
384-
// $elementOvoja->povrsina * (1 - $elementOvoja->delezOkvirja) * $elementOvoja->stevilo;
385383
$this->transparentnaPovrsina +=
386384
$elementOvoja->povrsina * (1 - $elementOvoja->delezOkvirja) * $elementOvoja->stevilo;
387385
}

src/Calc/GF/Cone/ElementiOvoja/NetransparentenElementOvoja.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,8 @@ private function vplivZemljine()
347347

348348
if ($this->konstrukcija->TSG->tip == 'stena-teren') {
349349
// ekvivalentna debelina stene
350-
// enačba 15 v standardu; TODO: v standardu je brez debelineStene, XLS pa jo upošteva
350+
// enačba 15 v standardu
351+
// TODO: v standardu je brez debelineStene, XLS pa jo upošteva
351352
$d_wb = $this->debelinaStene + $this->tla->lambda() * 1 / $this->konstrukcija->U;
352353

353354
// ekvivalentna debelina tal (floor)

src/Calc/GF/Cone/ElementiOvoja/TransparentenElementOvoja.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,11 +207,6 @@ public function analiza($cona, $okolje)
207207
$P2_stena_d = $W ? $L_stena_d / $W : 0;
208208

209209
// dolžina sence nadstreška
210-
// po standardu je malo drugačna enačba:
211-
// TODO: preveri razlike
212-
// $h_ovh = $H - $H * (($A1 + $B1 * ($zemljepisnaSirina - $deklinacija)) * $P1_ovh +
213-
// ($A2 + $B2 * ($zemljepisnaSirina - $deklinacija)) * $P1_ovh * $P2_ovh);
214-
215210
$h_ovh = $H - $H * (1 + (($A1 + $B1 * ($zemljepisnaSirina - $deklinacija)) * $P1_ovh +
216211
($A2 + $B2 * ($zemljepisnaSirina - $deklinacija)) * $P1_ovh * $P2_ovh));
217212

src/Calc/GF/TSS/OHTSistemi/Podsistemi/GeneratorFactory.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public static function create($type, $options = null)
3535
return new Kotel('PlinskiKotel', $options);
3636
case 'biomasa':
3737
return new Kotel('Biomasa', $options);
38+
case 'elko':
39+
return new Kotel('Elko', $options);
3840
case 'elektricniGrelnik':
3941
return new ElektricniGrelnik($options);
4042
case 'splitHlajenje':
Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace App\Calc\GF\TSS\OHTSistemi\Podsistemi\Generatorji\Izbire;
5+
6+
enum TipElko: string
7+
{
8+
//use \App\Lib\Traits\GetOrdinalTrait;
9+
10+
case StandardniZAvtomatskimDodajanjemGoriva = 'standardniZAvtomatskimDodajanjemGoriva';
11+
12+
/**
13+
* Friendly name
14+
*
15+
* @return string
16+
*/
17+
public function toString()
18+
{
19+
$lookup = [
20+
'Standardni kotel z avtomatskim dodajanjem goriva',
21+
];
22+
23+
return $lookup[0];
24+
}
25+
26+
/**
27+
* Temperaturna omejitev T_h,g,min [°C]
28+
* Tabela 13
29+
*
30+
* @return float
31+
*/
32+
public function temperaturnaOmejitev()
33+
{
34+
$t = [45];
35+
36+
return $t[0];
37+
}
38+
39+
/**
40+
* Izkoristek pri 100%, ni_h_g_Pn
41+
* Tabela 13 ali AH254 v Excelu
42+
*
43+
* @param float $nazivnaMoc Nazivna moč kotla v kW
44+
* @return float
45+
*/
46+
public function izkoristekPolneObremenitve($nazivnaMoc)
47+
{
48+
if ($nazivnaMoc > 400) {
49+
$nazivnaMoc = 400;
50+
}
51+
52+
return match ($this) {
53+
self::StandardniZAvtomatskimDodajanjemGoriva => (84 + 2 * log10($nazivnaMoc)) / 100,
54+
};
55+
}
56+
57+
/**
58+
* Izkoristek pri 30%
59+
* Tabela 13
60+
*
61+
* @param float $nazivnaMoc Nazivna moč kotla v kW
62+
* @return float
63+
*/
64+
public function izkoristekVmesneObremenitve($nazivnaMoc)
65+
{
66+
if ($nazivnaMoc > 400) {
67+
$nazivnaMoc = 400;
68+
}
69+
70+
return match ($this) {
71+
self::StandardniZAvtomatskimDodajanjemGoriva => (80 + 3 * log10($nazivnaMoc)) / 100,
72+
};
73+
}
74+
75+
/**
76+
* povprečna temp. kotla pri testnih pogojih (100% obremenitvi) [°C] (Tabela 14)
77+
* iz tabele je 70 °C za vse tipe kotlov
78+
*
79+
* @return float
80+
*/
81+
public function temperaturaKotlaPolneObremenitve()
82+
{
83+
return 70;
84+
}
85+
86+
/**
87+
* Korekcijski faktor fcor,Pn pri 100% obremenitvi
88+
* Tabela 14
89+
*
90+
* @return float
91+
*/
92+
public function korekcijskiFaktorIzkoristkaPolneObremenitve()
93+
{
94+
$f = [0];
95+
96+
return $f[0];
97+
}
98+
99+
/**
100+
* Povprečna temperatura kotla pri testnih pogojih / vmesni (30%) obremenitvi
101+
* Tabela 15 ali AL256
102+
*
103+
* @return float
104+
*/
105+
public function temperaturaKotlaVmesneObremenitve()
106+
{
107+
$t = [70];
108+
109+
return $t[0];
110+
}
111+
112+
/**
113+
* Korekcijski faktor fcor,Pint pri 30% obremenitvi
114+
* Tabela 15
115+
*
116+
* @return float
117+
*/
118+
public function korekcijskiFaktorIzkoristkaVmesneObremenitve()
119+
{
120+
$f = [0.0004];
121+
122+
return $f[0];
123+
}
124+
125+
/**
126+
* Toplotne izgube kotla v času obratovalne pripravljenosti Qh,g,l,P0 [kW]
127+
* Tabela 16
128+
*
129+
* @param float $nazivnaMoc Nazivna moč kotla v kW
130+
* @return float
131+
*/
132+
public function izgubeStandBy($nazivnaMoc)
133+
{
134+
return match ($this) {
135+
self::StandardniZAvtomatskimDodajanjemGoriva => $nazivnaMoc * (25 - 8 * log10($nazivnaMoc)) / 1000,
136+
};
137+
}
138+
139+
/**
140+
* Specifične toplotne izgube kotla qw,g,70 [-] v odvisnosti od vrsta kotla in nazivne moči w g Pn Q , ,& [kW]
141+
* Tabela 24
142+
*
143+
* @param float $nazivnaMoc Nazivna moč kotla v kW
144+
* @return float
145+
*/
146+
public function izgube70($nazivnaMoc)
147+
{
148+
return match ($this) {
149+
self::StandardniZAvtomatskimDodajanjemGoriva => 14 * pow($nazivnaMoc, -0.28) / 100,
150+
};
151+
}
152+
153+
/**
154+
* Del toplotnih izgub skozi ovoj kotla v času obratovalne pripravljenosti pgn,env
155+
* Tabela 18
156+
*
157+
* @return float
158+
*/
159+
public function faktorIzgubSkoziOvoj()
160+
{
161+
return match ($this) {
162+
self::StandardniZAvtomatskimDodajanjemGoriva => 0.75,
163+
};
164+
}
165+
166+
/**
167+
* delež vrnjenih toplotnih izgub skozi ovoj kotla [-]
168+
*
169+
* @param \App\Calc\GF\TSS\OHTSistemi\Podsistemi\Generatorji\Izbire\VrstaLokacijeNamestitve $lokacija Lokacija namestitve
170+
* @return float
171+
*/
172+
public function delezVrnjenihIzgubSkoziOvoj(VrstaLokacijeNamestitve $lokacija)
173+
{
174+
if ($lokacija == VrstaLokacijeNamestitve::NeogrevanProstor) {
175+
return 1;
176+
}
177+
178+
return match ($this) {
179+
self::StandardniZAvtomatskimDodajanjemGoriva =>
180+
($lokacija == VrstaLokacijeNamestitve::OgrevanProstor ? 0.1 : 0.7),
181+
};
182+
}
183+
184+
/**
185+
* Obremenitev kotla pri testnih pogojih za vmesno obremenitev β_h, g, test, Pint
186+
* Za enačbo 98; Excel AN254
187+
*
188+
* @return float
189+
*/
190+
public function vmesnaObremenitev()
191+
{
192+
return 0.4;
193+
}
194+
195+
/**
196+
* Tabela 17: Moč pomožnih električnih naprav Paux,g [kW]
197+
*
198+
* @param float $nazivnaMoc Nazivna moč kotla
199+
* @param string $obremenitev Obremenitev kotla
200+
* @return float
201+
*/
202+
public function mocPomoznihElektricnihNaprav($nazivnaMoc, $obremenitev)
203+
{
204+
switch ($obremenitev) {
205+
case 'polna':
206+
// AI254
207+
return match ($this) {
208+
self::StandardniZAvtomatskimDodajanjemGoriva => (2.6 * $nazivnaMoc + 60) / 1000,
209+
};
210+
case 'vmesna':
211+
// AI256
212+
return match ($this) {
213+
self::StandardniZAvtomatskimDodajanjemGoriva => (2.2 * $nazivnaMoc + 70) / 1000,
214+
};
215+
case 'min':
216+
return match ($this) {
217+
self::StandardniZAvtomatskimDodajanjemGoriva => 0.015,
218+
};
219+
default:
220+
return 0.0;
221+
}
222+
}
223+
224+
/**
225+
* Vrnjena dodatna električna energija - faktor redukcije ki upošteva vpliv okolice.
226+
*
227+
* @param \App\Calc\GF\TSS\OHTSistemi\Podsistemi\Generatorji\Izbire\VrstaLokacijeNamestitve $lokacija Lokacija namestitve
228+
* @return float
229+
*/
230+
public function faktorRedukcijeVrnjeneEnergije(VrstaLokacijeNamestitve $lokacija)
231+
{
232+
if ($lokacija == VrstaLokacijeNamestitve::OgrevanProstor) {
233+
return 0;
234+
}
235+
236+
if ($lokacija == VrstaLokacijeNamestitve::Kotlovnica) {
237+
return 0.3;
238+
}
239+
240+
return 0.00;
241+
}
242+
}

src/Calc/Hrup/ZunanjiHrup/Fasada.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@ protected function parseConfig($config)
138138
}
139139
$maliElement = new ZunanjiMaliElement(new MaliElement($libMaliElement), $maliElementConfig);
140140
$this->maliElementi[] = $maliElement;
141-
$this->povrsina += $maliElement->povrsina * $maliElement->stevilo;
142141
}
143142
}
144143
break;

src/Calc/Hrup/ZunanjiHrup/ZunanjiMaliElement.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
class ZunanjiMaliElement
1010
{
1111
public string $idMaliElement;
12-
public float $povrsina = 0;
1312
public ?float $dolzina;
1413
public int $stevilo = 1;
1514
public array $R = [];

src/Command/Hrup/IzracunElementov.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
namespace App\Command\Hrup;
55

66
use App\Calc\Hrup\Elementi\Konstrukcija;
7+
use App\Calc\Hrup\Elementi\MaliElement;
78
use App\Calc\Hrup\Elementi\OknaVrata;
89
use App\Core\App;
910
use App\Core\Command;
@@ -59,5 +60,22 @@ public function run($projectId = null)
5960

6061
App::saveProjectCalculation('Hrup', $projectId, 'elementi' . DS . 'oknaVrata', $oknaVrataOut);
6162
}
63+
64+
$maliElementiIn = App::loadProjectData('Hrup', $projectId, 'elementi' . DS . 'maliElementi');
65+
if (!empty($maliElementiIn)) {
66+
//if (!$this->validateSchema(json: $maliElementiIn, schema: 'maliElementi', area: 'Hrup')) {
67+
// return;
68+
//}
69+
$maliElementiOut = [];
70+
foreach ($maliElementiIn as $maliElementConfig) {
71+
$maliElement = new MaliElement($maliElementConfig);
72+
$maliElement->analiza();
73+
$maliElementiOut[] = $maliElement->export();
74+
}
75+
if (count($maliElementiOut) == 0) {
76+
throw new \Exception('Mali elementi ne obstajajo.');
77+
}
78+
App::saveProjectCalculation('Hrup', $projectId, 'elementi' . DS . 'maliElementi', $maliElementiOut);
79+
}
6280
}
6381
}

src/Command/Hrup/IzracunZunanjegaHrupa.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public function run($projectId = null)
2727

2828
$konstrukcije = App::loadProjectCalculation('Hrup', $projectId, 'elementi' . DS . 'konstrukcije');
2929
$oknaVrata = App::loadProjectCalculation('Hrup', $projectId, 'elementi' . DS . 'oknaVrata');
30+
$maliElementi = App::loadProjectCalculation('Hrup', $projectId, 'elementi' . DS . 'maliElementi');
3031

3132
/** @var array $prostoriIn */
3233
$prostoriIn = App::loadProjectData('Hrup', $projectId, 'zunanjiHrup');
@@ -38,6 +39,7 @@ public function run($projectId = null)
3839
$elementi = new \stdClass();
3940
$elementi->konstrukcije = $konstrukcije;
4041
$elementi->oknaVrata = $oknaVrata;
42+
$elementi->maliElementi = $maliElementi;
4143

4244
$prostoriOut = [];
4345
foreach ($prostoriIn as $prostorConfig) {

src/Command/Hrup/PdfIzvoz.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public function run($projectId = null)
3030
$view->set('splosniPodatki', App::loadProjectData('Hrup', $projectId, 'splosniPodatki'));
3131
$view->set('konstrukcije', App::loadProjectCalculation('Hrup', $projectId, 'elementi' . DS . 'konstrukcije'));
3232
$view->set('oknaVrata', App::loadProjectCalculation('Hrup', $projectId, 'elementi' . DS . 'oknaVrata'));
33+
$view->set('maliElementi', App::loadProjectCalculation('Hrup', $projectId, 'elementi' . DS . 'maliElementi'));
3334
$view->set('prostori', App::loadProjectCalculation('Hrup', $projectId, 'zunanjiHrup'));
3435
$view->set('udarniHrup', App::loadProjectCalculation('Hrup', $projectId, 'udarniHrup'));
3536
$view->set('zracniHrup', App::loadProjectCalculation('Hrup', $projectId, 'zracniHrup'));

0 commit comments

Comments
 (0)