Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - adamst

Strony: 1 2 3 [4] 5 6 ... 8
91
Na warsztacie / Odp: Odp: Exe - konwersja na C++
« dnia: 08 Kwietnia 2017, 06:50:50 »
W kiblu przetwornicę załącza się i wyłącza przełącznikami impulsowymi. Dodatkowo przełącznik wyłączający służy jako odblok przekaźnika nadmiarowego przetwornicy. Przełącznik załączający zaś pełni dwie funkcje - załącza przekaźnik przerzutowy przetwornicy, oraz - gdy jest w pozycji załączonej - bocznikuje część uzwojenia prądowego przekaźnika nadmiarowego, podnosząc jego próg zadziałania. Dlatego w realu należy go trzymać w górze do pełnego rozruchu przetwornicy, inaczej może wyrzucić nadmiarowy, ponieważ prąd rozruchowy silnika jest większy niż normalny. Podczas uruchamiania z szafy funkcję tę pełni przycisk - aby załączyć przetwornicę z szafy należy trzymając wciśnięty ów przycisk ręcznie przełączyć przekaźnik przerzutowy przetwornicy.

92
Na warsztacie / Odp: Odp: Exe - konwersja na C++
« dnia: 27 Lutego 2017, 07:44:20 »
Proponowałbym uzależnić zapalanie świateł w pojeździe od obecności w nim maszynisty. To powinno w miarę sprawnie obejść problem.

93
Na warsztacie / Odp: Odp: Exe - konwersja na C++
« dnia: 19 Lutego 2017, 18:56:09 »
O, to 45 to faktycznie było dość wąsko. W trainz jeżdżę sobie domyślnie na 55 - nie ma jeszcze efektu rybiego oka, da się ogarnąć pulpit kibelka, i co najwyżej leciutko trzeba się wychylić żeby zerknąć na prędkościomierz. Najgorszy jest SN61 - tam jest tak ciasno, że żadna kamera nie poradzi ;-)

94
Na warsztacie / Odp: Planowane zmiany w exe
« dnia: 17 Lutego 2017, 14:01:02 »
Jak dla mnie dość dobrze sprawdza się system trainzowy - tzn. jako podstawę mamy klikanie elementów myszą - kursor jest widoczny cały czas. Aby kręcić głową przytrzymuje się PPM. Uzupełnieniem powinny być skróty klawiszowe dla funkcji, które naturalnie powinny być "pod ręką" - czyli nastawnik, hamulce, syrena i czuwak. Natomiast rzeczy "konfiguracyjno-uruchomieniowe" typu światła czy różne rzeczy do włączenia podczas uruchamiania jak najbardziej nadają się do obsługi myszką.

95
Bieżące Symulatorowe / Odp: Propozycje i sugestie
« dnia: 17 Grudnia 2016, 21:01:48 »
Jeżeli to kogoś pocieszy, to Trainz też nie wykrywa kolizji z samochodami ;-) Za to najechanie z dużą prędkością na inny skład zwykle powoduje wykolejenie.

96
Pomoc doraźna / Odp: Tablice relacyjne dla EN57
« dnia: 15 Grudnia 2016, 22:14:05 »
Może są zapisane z kompresję RLE? W ten sposób GIMP domyślnie zapisuje pliki tga. Nie wiem, czy Maszyna je łyka - Trainz np ich nie toleruje, musi być TGA nieskompresowane. Trzeba przy eksporcie z GIMPa odhaczyć pole kompresji.

97
Tabor kolejowy / Odp: Oryginalna kabina EP09
« dnia: 30 Listopada 2016, 13:20:03 »
"Zwykła dioda", która świeci to właśnie LED - znany od lat '60 :-) To że obecnie się to kojarzy głównie z telewizorami czy sprzętem oświetleniowym, to rzecz wtórna ;-)

98
Poszukuję, chcę zrobić / Odp: Poszukiwany spec od przezroczystości.
« dnia: 29 Listopada 2016, 14:36:41 »
Ja takie tekstury podświetlenia przygotowuję w ten sposób, że nakładam warstwę "oświetlającą" na teksturę miernika z typem "twarde światło", z czarnym tłem. Samo "światło" uzyskuję różnie - albo gradient, albo efekty świetlne z gimpa, zależy co podpasuje. Na koniec - "zamiana koloru na alfę", wskazujemy czarny - i w ten sposób dostaję teksturę, w której to co nieoświetlone/ciemne jest przezroczyste. Tak przygotowane podświetlenie ładnie się potem nakłada na zwykłe mierniki.

99
Na warsztacie / Odp: Odp: Exe - konwersja na C++
« dnia: 28 Października 2016, 10:17:12 »
Szczerze powiedziawszy to nie wiem. Sterowanie jest bodajże zaszyte gdzieś w kodzie przy pomocy skanowania wejścia. Klawiaturę trzeba będzie zostawić i to jest pytanie jak to zrobić wtedy inaczej, a raczej jak wprowadzić alternatywę.

Osobiście widziałbym mechanizm takiego rodzaju, że w trakcie skanowania wejścia naciśnięcie/zwolnienie klawisza generuje jakieś tam komunikaty w rodzaju "KeyXXXOn/KeyXXXOff", natomiast ich powiązanie z konkretnymi funkcjami pojazdu dokonywałoby się np z poziomu mmd.

100
Bieżące Symulatorowe / Odp: Akcja optymalizacja
« dnia: 24 Października 2016, 21:06:50 »
Zmniejszenie diffuse poprawia sytuację przy oświetleniu kierunkowym do bólu (zachód słońca itd.) ale drzewa za dnia są za ciemne. Inna sprawa że mam nieodparte wrażenie, że są źle ustawione źródła światła w atmo.

Ano właśnie - nie da się zwiększyć ambientu w atmo, żeby nie były za ciemne? W Trainz w sumie czasem i tak robiłem, jak mi się nie chciało przerabiać całego zielska użytego na trasie. W ustawieniach sesji "wyłączałem słońce", a zostawiałem właśnie tylko światło ambient ustawione na biało. Wtedy wszystko po prostu wyglądało jak w pochmurny dzień, ale za to billboardowa roślinność nie świeciła się, i nie ujawniała tak bardzo swojej natury.

101
Bieżące Symulatorowe / Odp: Akcja optymalizacja
« dnia: 24 Października 2016, 07:44:44 »
Likwidacja oświetlenia kierunkowego dla drzewek ze skrzyżowanych plane to bardzo słuszne posunięcie. W Trainzie jest z nimi taki sam problem, i też zostawienie im tylko składowej Ambient w materiałach znacznie poprawia ich wygląd.

102
Bieżące kolejowe / Odp: Mechanik EN57
« dnia: 04 Października 2016, 07:26:57 »
Zapewne chodzi o DOSBoxa - https://www.dosbox.com/

103
Bieżące kolejowe / Odp: Terminale PKP z lat 90tych
« dnia: 02 Kwietnia 2016, 21:55:06 »
Pamiętam, że były tam chyba monitory Neptun 156. I, sądząc po czcionce znaków wyświetlanych na ekranie, były one zbudowane na bazie jakiegoś 8-bitowca.
Na "hydralu" są dwa zdjęcia z holu Wrocławia Głównego w 1990 roku, niestety tekstu na ekranie nie widać. Pamiętam, że były też na dworcu Wałbrzych Miasto.

http://dolny-slask.org.pl/5940261,foto.html?idEntity=547925
http://dolny-slask.org.pl/5940263,foto.html?idEntity=547925

104
No to nie mogła to być 23, bo 23 ma czerwono-niebiesko-białe malowanie Cargo :-) Ta ostatnio zezłomowana, to była EP05-01.

105
Pomoc w tworzeniu / Odp: Elementy kabiny lokomotywy
« dnia: 11 Marca 2016, 06:05:16 »
@MarcinW - o semafory może uderz do Radka Bacha, o ile jego produkcje Ci się podobają - myślę, że bezproblemowo by je udostępnił:
http://trainz.krb.com.pl/?semafory-i-tarcze-ksztaltowe-na-kuid-chestera,161
http://trainz.krb.com.pl/?semafory-ksztaltowe-do-bramki-%28krotkie%29,120

106
Pomoc w tworzeniu / Odp: Elementy kabiny lokomotywy
« dnia: 06 Marca 2016, 12:27:17 »
Po raz kolejny trzeba poprawiać 70% dodatków, popsuli znowu kompatybilność skryptów, a nowy silnik - przynajmniej u mnie - ma tragiczną wydajność. Aby osiągnąć 25FPS muszę zjechać z detalami na minimum, a wtedy wygląda dużo gorzej, niż stare wersje. Dlatego wciąż siedzę na TS2010 - bo w nim na średnio-wysokich ustawieniach mam spokojnie 30FPS w 1080p, a na lżejszych trasach nawet 60.

107
Pomoc w tworzeniu / Odp: Elementy kabiny lokomotywy
« dnia: 06 Marca 2016, 12:21:02 »
Spawanie też jest konieczne dlatego, że przy konwersji z *.im do 3ds całe spawanie i wygładzanie jest niestety gubione - nawet, gdy pierwotny model je posiadał.

108
Pomoc w tworzeniu / Odp: Elementy kabiny lokomotywy
« dnia: 06 Marca 2016, 12:12:31 »
Dla Trainza - z wyjątkiem najnowszej wersji, która ma inne wady - nie warto, bo kabiny mają tylko światło ambient.

109
Pomoc w tworzeniu / Odp: Elementy kabiny lokomotywy
« dnia: 06 Marca 2016, 08:54:21 »
W Trainzie nie narzekają, że jest zbyt ciężki?

Pierwszy raz widzę na oczy te modele, ale narzekałbym :P Ładne, ale istotnie dla Trainza raczej za ciężkie. Może w Maszynie się sprawdzą :-)

110
To z Railworksa to chyba z shaderów korzysta - i jest to naprawdę fajny efekt. Ja w Trainzie, który takich opcji nie ma, a silnik graficzny ma strasznie archaiczny, robię prymitywne obejście przy pomocy tekstur. Mam trzy wymienne submodele szyb - suchą, zalaną, i zalaną-przetartą wycieraczką. I wyświetlam je w zależności od sytuacji. Wygląda to np tak:

111
Do elektrowozów można wprowadzić zmiany w CircuitRes, czyli rezystancji szeregowej obwodu głównego. Pozwoli to zasymulować "zajechaną" siódemkę, gdzie z powodu zwiększonej rezystancji w obwodzie np. na zużytych stykach styczników można zaobserwować wyraźny spadek mocy. Temat wspomniany w tym wątku:
http://eu07.pl/forum/index.php/topic,26368.0.html

Inna rzecz, że opowieści z jazdy (i film), które znam, wskazują na to, że obecnie część lokomotyw nie trzyma parametrów fabrycznych.

No ja słyszałem i widziałem, że przy napięciu w sieci 3kV można ostatni bocznik włączyć przy 65–70 km/h… Odpowiada to dodatkowej rezystancji w obwodzie głównym ok. 0,5–0,8 Ω.

112
W mojej trainzowej SU45 wygląda to następująco (może uda mi się nie pomieszać):
 - silniki trakcyjne mają fizykę liczoną tak, jak Maszynowe elektrowozy (parametry fi,Isat,mfi,mIsat dostałem od youBy'a)
 - prądnica ma charakterystykę również opracowaną przez youBy'a, która uwzględnia zależność napięcia od prądu obciążenia, prądu wzbudzenia i obrotów
 - prąd wzbudzenia jest funkcją napięcia wzbudnicy (proporcjonalne do obrotów) oraz oporu w obwodzie wzbudzenia, ten ostatni jest częściowo regulowany przez regulator Woodwarda, a część oporów jest przełączana przez styczniki pozycji wstępnych sterowane nastawnikiem

I teraz, silnik spalinowy i regulator obrotów:
Nastawnik ustala dla danej pozycji zadane obroty silnika. Podstawowym parametrem silnika jest "moc brutto" - jest to moc silnika w funkcji obrotów odczytana z charakterystyki - w praktyce dla silnika 2112SSF daje się to z bardzo dobrym przybliżeniem opisać odcinkiem paraboli (w zakresie powyżej 500rpm). Aby uzyskać aktualną moc oddawaną przez silnik na wale, mnożę "moc brutto" przez "gaz", czyli zmienną opisującą relatywne położenie listwy paliwowej względem położenia znamionowego dla danej pozycji - normalnie jest to 1. Od tak wyliczonej mocy odejmowane są wszystkie obciążenia (silniki trakcyjne, maszyny pomocnicze, ogrzewanie, no i opory samego silnika), i wynik tego bilansu określa nam przyspieszenie lub opóźnienie silnika - tzn. przy nadwyżce mocy obroty będą wzrastały, a przy przeciążeniu - spadały. I tutaj wkracza nam regulator Woodwarda, tj. regulator mocy i obrotów. Dąży on do utrzymania obrotów znamionowych dla danej pozycji. W momencie wykrycia odchyłki obrotów silnika od wartości znamionowej zmienia on położenie listwy paliwowej (zmienna "gaz") aby dopasować moc silnika do aktualnego obciążenia. Równolegle, po wykryciu wychylenia listwy paliwowej od pozycji znamionowej (czyli "gaz" != 1), reguluje on wzbudzenie prądnicy (zmieniając wartość regulowanej rezystancji w obwodzie wzbudzenia), tak aby obciążenie odpowiadało mocy znamionowej. Te operacje są wykonywane aż układ nie powróci do stanu równowagi, czyli obroty równe obrotom znamionowym dla danej pozycji, a "gaz" równy 1 - co oznacza że obciążenie odpowiada mocy znamionowej silnika.

Opracowałem również uproszczony model cieplny silnika, z wymianą ciepła silnik <> woda w głównym obiegu, silnik <> otoczenie, silnik <> olej, olej <> woda w obiegu pomocniczym, woda w obiegu głównym <> otoczenie (przez chłodnicę 1), woda w obiegu pomocniczym <> otoczenie (chłodnica 2). Współczynniki wymiany ciepła w chłodnicy są modyfikowane przez załączenie wentylatorów i żaluzji (z uwzględnieniem prędkości obrotowej wentylatora w pierwszym przypadku i prędkości jazdy w drugim), sterowane termostatami.

Fragmenty kodu - starałem się pokomentować, żeby mniej-wiecej było wiadomo o co chodzi:
class dane
{
//opory w obwodzie wzbudzenia
public float RO;

public float R1;
public float R2;
public float R3;
public float R4;
public float R5;

public float RRW;

//nastawy przekaźnika nadmiarowego i przekaźnika bocznikowania
public float Imax;
public float Imin;
public float Iminb;

//parametry paraboli mocy silnika spalinowego
public float a;
public float c;

//parametry silników trakcyjnych
public float fi0, fi1, fi2, fi3, Isat0, Isat1, Isat2, Isat3, mfi0, mfi1, mfi2, mfi3, mIsat0, mIsat1, mIsat2, mIsat3;
};

/ciach/

// zmienne przekaznikow i stycznikow
        public bool PZB2,PWB,PCZ,PR,PPT,PZZ,PA,PWZ,PZS,PPR,PT,PUW1,PUW2,PTC1,PTC2,PZB1,PPB1,PPB2,SPL,SWP,SWW,SPP,SP0,SWM,SW1,SW2,SRW1,SRW2,SPW,SWR,PB,SB1,SB2,SB3,RW,SWMx,PWMin = 0;
        public int SP1,SP2,SP3,SST,SP4 = 0;
        public bool SLB = 0;  //stycznik ladowania baterii
        //ich PODPIERACZE
        public bool PZB2p,PWBp,PCZp,PRp,PPTp,PZZp,PAp,PWZp,PZSp,PPRp,PTp,PUW1p,PUW2p,PTC1p,PTC2p,PZB1p,PPB1p,PPB2p,SPLp,SWPp,SWWp,SPPp,SP0p,SP1p,SP2p,SP3p,SWMp,SW1p,SW2p,SRW1p,SRW2p,SPWp,SWRp;

/ciach/

//termodynamika ;-)
        public float Cw = 4.189, qs = 44700, Cs, Qs, Ts, kfs, dTss;
        public float kf, kw, kv, gw, gw3, gwmin, gwmax, Ge, Qd, Qch, Qp, dTs, dTch, Twy, Twe, Te, Tsr, gw2, gwmin2, gwmax2, Qch2, dTs2, dTch2, Twy2, Twe2, Tsr2, kf2, To, dTo, Co;
        public bool wentylator1, zaluzje1, wentylator2, zaluzje2, obieg, TCH1, TW1, TW2, TCH2, TW3;



/ciach/

// fragment głównej pętli odpowiedzialny za termostaty i przekaźnik awarii (uniemożliwia rozruch/zrzuca obroty na bieg jałowy)

obieg = ((temperatura1 > 71) or (obieg and temperatura1 > 66)) and (silnik > 0 or pompa_wodna == true);
TCH1 = (((temperatura1 > 82) or (TCH1 and temperatura1 > 74)) and (silnik > 0) and !bezpompy and (Vb > 70) and !awaria_chlodzenia) or chlodzenie;
TW1 = (temperatura1 > 90) or (TW1 and temperatura1 > 81);
TW2 = ((silnik != 0) and (temperatura1 > 30)) or (temperatura1 > 40);
TCH2 = (((temperatura2 > 60) or (TCH2 and temperatura2 > 50)) and (silnik > 0)and !bezpompy and (Vb > 70) and !awaria_chlodzenia) or chlodzenie;
TW3 = (temperatura2 > 70) or (TW3 and temperatura2 > 66);

sd.c.PT = (!TW1 and !TW3 and TW2 and !awaria_termostatow) or sd.c.PTp;
sd.c.PPT = !sd.c.PT and !sd.c.PPTp;
sd.c.PA = (!zamkniecie or niedomkniecie or sd.c.PPT) and !sd.c.PAp;

/ciach/

//bilans cieplny silnika
//Ge - ilość paliwa spalonego w danym kroku czasowym - obliczona na podstawie charakterystyk
//Qd - ciepło wytwarzane w silniku - obliczone jako energia spalonego paliwa minus moc użyteczna

thread void termo()
{
float kfo = 25;
for ( ; ;)
{
qs = 44700;
Cw = 4.189;
Co = 1.885;
kw = 0.35;
kv = 0.6;
gwmin = 400;
gwmax = 4000;
gwmin2 = 400;
gwmax2 = 4000;
Cs = 11000;
kfs = 80;


   gw = gwmin + (rpm/1500)*(gwmax-gwmin) + (float)pompa_wodna * 1000;
   gw3 = gwmin + (rpm/1500)*(gwmax-gwmin);
      gw2 = gwmin2 + (rpm/1500)*(gwmax2-gwmin2) + (float)pompa_wodna * 1000;
rpmw = 80 * rpm / ((0.5 * rpm) + 500);
kf = (float)obieg * (((kw * (float)wentylator1)) * rpmw + (kv * ((float)zaluzje1 + 0.7) * Math.Fabs(predkosc) / 3.6)+ 3) + 3;
kf2 = (((kw * (float)wentylator2)) * rpmw + (kv * ((float)zaluzje2 + 0.7) * Math.Fabs(predkosc) / 3.6)) + 3;
Ge = (float)(silnik > 0)*(0.21 * mocsilnika + 12) / 3600;
if (typ=="SP45")
Qp = (float)(podgrzewacz and pompa_wodna and (Twy < 55) and (Twy2 < 55)) * 1000;
else
Qp = (float)(podgrzewacz and pompa_wodna and (Twy < 60) and (Twy2 < 60)) * 1000;

Qd = qs * Ge - obciazenie;
Qs = (Qd - (kfs * (Ts - Tsr)) - (15 * (0.2 + 0.8 * (float)okienko) * (Ts - Te)));            //silnik oddaje czesc ciepla do wody chlodzacej, a takze pewna niewielka czesc do otoczenia, modyfikowane przez okienko
dTss = Qs / Cs;
Ts = Ts + (dTss * 0.5);
dTo = ((kfo * (Ts - To)) - (kfs * (0.2 * (float)(cisnienie > 0.01) + 0.1) * (To - Tsr2))) / (gw3 * Co);  // olej oddaje ciepło do wody gdy krazy przez wymiennik ciepla == wlaczona pompka lub silnik
To = To + (dTo * 0.5);

dTs = ((kfs * (Ts - Tsr))) / (gw * Cw);
dTs2 = ((kfs * (0.2 * (float)(cisnienie > 0.01) + 0.1) * (To - Tsr2))) / (gw2 * Cw);
Qch = -kf * (Tsr - Te) + Qp;
Qch2 = -kf2 * (Tsr2 - Te) + (80 * (float)(podgrzewacz_zawor == true) * (Twy - Tsr2));  //przy otwartym kurku B mały obieg jest dogrzewany przez duży - stosujemy przy korzystaniu z podgrzewacza oraz w zimie
dTch = Qch / (gw * Cw);
dTch2 = Qch2 / (gw2 * Cw);
Twe = Twy + (dTch * 0.5);
Twy = Twe + (dTs * 0.5);
Tsr = 0.5 * (Twy + Twe);
Twe2 = Twy2 + (dTch2 * 0.5);
Twy2 = Twe2 + (dTs2 * 0.5);
Tsr2 = 0.5 * (Twy2 + Twe2);

temperatura1 = Twy;
temperatura2 = Twy2;
fuelConsumed = fuelConsumed + (Ge * 0.5);

            while(fuelConsumed >= 0.83)
            {
                fuelConsumed = fuelConsumed - 0.83;
                fuelQueue.DestroyProductMatching(null,1);
            }//if

Sleep(0.5);
}
}

/ciach/

//głowny wątek fizyki
//zmienna "silnik" to określenie fazy pracy silnika. 0 - zgaszony, 1 - normalna praca, 2 - rozruch, faza I, 3 - rozruch, faza II - zapłon.

thread void regulator()
{
float bilans,opory,drpm,arpm,rpm_doc;
for ( ; ; )
{
bool dodajgazu = ((rpm_zadane > 696) and (pozycja < (pozycja_zadana - 1)));

// sprawdzenie mocy i regulacja napiecia
prad_razem = prad_silnika[1] + prad_silnika[2] + prad_silnika[3] + prad_silnika[4] + prad_silnika[5] + prad_silnika[6];
                        moc = napiecie * Math.Fabs(prad_razem);
                        if ((gaz > 0.03 and !dodajgazu) or PZB1 == 1 or nastawnik < 2)
                           {
                           if (PZB1 == 1)
                                woodward = woodward - 0.04;
                           if (PZB1 == 0)
                                woodward = woodward - 0.002;
                           }
                        if ((gaz < 0 or dodajgazu) and PZB1 == 0)
                           woodward = woodward + 0.005;
                        if (woodward < 0)
                           woodward = 0;
                        if (woodward > 1)
                           woodward = 1;

//sterowanie bocznikami:

SWMx = (woodward > 0.98) and !PWB and SPL and SLB;
PWMin = (woodward < 0.003) or (PWMin and (woodward < 0.01));
PB = (Math.Fabs(prad_silnika[3]) > parametry.Imin or (PB and Math.Fabs(prad_silnika[3]) > parametry.Iminb));
bool PZB1pom = PZB1 or SWMx;
PWB = (PB or nastawnik < 11 or !SPL) and !sd.c.PWBp and nastawnik != 0;
PZB1 = ((sd.c.bocznik_enable == 1) and !PWB and !PZB2 and PZB1pom and !SB3 and (sd.c.OSW == 3) and (sd.c.OST == 0)) and SPL and (!SB1 or (SB1 and PPB1 and !SB2) or (SB2 and PPB2));
PZB2 = (PWMin and !PWB and SPL) or sd.c.PZB2p;
PPB1 = (predkosc > 11.11) and nastawnik > 7 ;
PPB2 = (predkosc > 13.88);
SB3 = SB1 and SB2 and (SB3 or (PZB2 and PPB2)) and !PWB and SPL and PPB2;
SB2 = SB1 and (SB2 or (PZB2 and PPB1)) and (PPB2 or !PWB) and SPL and PPB1;
SB1 = (SB1 or PZB2) and (PPB1 or !PWB);

//wyliczenie mocy na wale silnika:

if (rpm > 550)
{
mocbrutto = 0.15 * rpm + (((parametry.a * rpm * rpm) + parametry.c) / 1.36);  //parabola mocy, działa w zakresie obrotów roboczych

}
if (rpm < 551)
{
mocbrutto = 0.029 * rpm;   //dla zakresu poniżej, przybliżenie liniowe. W zasadzie ma znaczenie tylko przy rozruchu
}

mocsilnika = (1 + gaz) * mocbrutto;

if (silnik == 0)
   obciazenie = 0;
if (silnik == 1)
   obciazenie = ((moc / 950) + mocgrzania + 70);
if (silnik > 1 and rpm_zadane > 0)
   obciazenie = 80;
mocrozrusznika = (float)(silnik == 2) * 0.04 * rpm;

if (silnik == 2 and rpm_zadane > 100)    //obliczenie rezystancji zastępczej prądnicy w trakcie rozruchu - używane do obliczenia prądu rozruchowego i rozładowania baterii
           Rroz = 0.1 + 0.0002 * rpm;
else
    Rroz = 99999;

if (rpm > 0 and silnik == 0)
    rpm = rpm - 1;
if (rpm < rpm_docelowe and silnik == 2)
    rpm = rpm + 2;
if (silnik == 2 and rpm_zadane > 0)
    rpm = rpm + 0.4;
if (silnik == 3 and rpm < rpm_docelowe)
    rpm = rpm + 10;


 bilans = (mocsilnika - obciazenie + mocrozrusznika);
 opory = 0.15 * rpm;
 arpm = bilans - opory;
 drpm = arpm * 1.5;
 if (silnik == 1)
  rpm = rpm + 0.05 * drpm;  //0.05 - dt, czyli krok czasowy tej pętli
if (rpm < 0)
   rpm = 0;
if (silnik == 1 and rpm < 600)
 rpm = 600;


  rpm_docelowe = rpm_zadane + 1.5 * (mocsilnika - obciazenie + mocrozrusznika);
  rpm_doc = Math.Fmin(rpm+(rpm_zadane/(rpm+0.01))*65,rpm_zadane);

if (mocbrutto > 0)
 dgaz = ((obciazenie + 0.15 * rpm_doc * (rpm_doc/(rpm+0.01)))/mocbrutto) - 1;

if (Math.Fabs(rpm_zadane - rpm) > 40)  //przy dużych odchyłkach regulator zmienia dawkę paliwa szybciej.
 gaz = 0.5 * gaz + 0.5 * dgaz;
else
 gaz = 0.9*gaz + 0.1 * dgaz;

  if (gaz < -1)
     gaz = -1;
  if (gaz > 1)
     gaz = 1;

/ciach/


// wyliczenie pradu



float prad_nowy;

for (silniki = 6; silniki > 0; silniki--)
                        {
// prądnica
                        if (SPL and nastawnik > 1 and baterie and WSG and WSW)
                        {
                        Uw = (190 * rpm) / 1500;
                        if (rpm > 0)
                            pIsat = 8 * 1500 / rpm;
                        RRW = parametry.RRW * (1 - woodward);
                        RWO = (parametry.R1 * (1 - SP3)) + (parametry.R2 * (1 - SP2)) + (parametry.R3 * (1 - SP1)) + (parametry.R4 * SP4) + (parametry.R5 * SST);
                        Rp = parametry.RO + RWO + RRW + 3.56;
                        pfi = 0.88;
                        I0 = Uw / Rp;
                        if ((I0 - aS *  (prad_razem * nawrotnik) + pIsat) != 0)
                        sem = (rpm * pfi * (I0 + Ir - aS * (prad_razem * nawrotnik)) / (I0 - aS *  (prad_razem * nawrotnik) + pIsat));
                         else
                        {
                         sem = 0;
                           PN[silniki] = true;
                           prad_silnika[silniki] = 0;
                           SPL = false;
                        }
                           napiecie = 0.9 * napiecie + 0.1 * sem;
// silniki trakcyjne

                        Isf = nawrotnik * Isat;
                        U = nawrotnik * napiecie;
                        R = 0.2;
                        b = R * Isf + Mn * fi * obroty - U;
                        delta = b * b + 4 * U * Isf * R;

                        if (delta >= 0)
                             prad_nowy = (-1 * b + nawrotnik * Math.Sqrt(delta)) / (2 * R);

                        }
                        else
                        {
                           sem = 0;
                           napiecie = sem;
                           prad_nowy =  0;
                        }

                    prad_silnika[silniki] = (0.9 * prad_silnika[silniki] + 0.1 * prad_nowy) * (float)(SL[silniki] and SPL);
                        if (Math.Fabs(prad_silnika[silniki]) > parametry.Imax or (awaria_silnika[silniki] == true and SE[silniki] == true)) {
                           PN[silniki] = true;
                           prad_silnika[silniki] = 0;
                           SPL = false;
                           }

                        moment[silniki] = mfi * Math.Fabs(prad_silnika[silniki]) * (1 - 1/((Math.Fabs(prad_silnika[silniki]) / mIsat)+1));
                        }

//wyliczanie sily
                           sila = Math.Fabs(2 * (moment[1] + moment[2] + moment[3] + moment[4] + moment[5] + moment[6])/(1000 * 1.1 * 0.29));
                            prad = prad_silnika[6];        //dla amperomierza w szafie

/ciach/

Sleep(0.05);
}
}

- tak to wygląda w praktyce, nagrywane parę dni temu. Widać tu np. chwilowe spadki obrotów w momencie załączania boczników - co oznacza skokowy wzrost obciążenia, bo jest podparty przekaźnik PZB2, więc nie ma odwzbudzenia prądnicy przed załączeniem bocznika. Gdybym jechał bez podparcia, z pełną automatyką bocznikowania, to z kolei w momentach załączania boczników miałbym spadek napięcia do wartości minimalnej i chwilowy podskok obrotów.

113
O ile wiem youby pracuje/pracował nad nową fizyką spal-ele w ramach DizelPacka2. Korzystałem z jego wskazówek tworząc swoją fizykę spal-ele dla SU45 w Trainz.

114
Poszukuję, chcę zrobić / Odp: Zdjęcie tablicy NN w ET21
« dnia: 14 Lipca 2015, 09:20:15 »
Czy mogę również wykorzystać zdjęcie @ST44-003 z drugiego posta do swoich robótek trainzowych? Szczególnie zależy mi na tych regulatorach napięcia starego typu - przydadzą mi się do EN57. W ET21 też, bo mam zrobioną tylko tablicę z tymi nowymi, jak na zdjęciu Ryszarda.

115
Pomoc doraźna / Odp: Odhamowanie składu zahamowanego awaryjnie
« dnia: 05 Marca 2015, 17:20:28 »
Jeżeli przewód główny został całkowicie opróżniony przez hamowanie awaryjne, to na większości lokomotyw zadziałał wyłącznik ciśnieniowy przewodu głównego. Odblokowuje się go zwykle, tak jak Stele napisał, przyciskiem odluźniacza. Gdy ciśnienie w przewodzie osiągnie wartość zadziałania wyłącznika (zazwyczaj ok. 280kPa), można puścić przycisk.

116
Byłaby to np. zwiększona rezystancja zużytych szczotek czy coś w tym rodzaju? W sumie spora rezystancja, na takim 0,8Ω przy 400A wytraca się 128kW.

117
Charakterystykę wrzucam. Ale walnąłem się grubo, bo to co wziąłem za ~450 to 580-600, coś mnie zaćmiło przy patrzeniu na osie... kierunek wzrostu wartości mi się pomieszał. Czyli jednak ten podskok prądu jest uzasadniony, Wasza charakterystyka dobra, a maszyny nie trzymają parametrów, bo od jeżdżącego na siódemkach w IC usłyszałem, że przy 80km/h wrzucasz szósty bok i nogi na pulpit ;-)



118
Bieżące Symulatorowe / Problem z charakterystyką EU07 (6 bocznik)
« dnia: 09 Grudnia 2014, 21:19:25 »
Wygląda na to, że coś jest nie tak z charakterystyką szóstego stopnia bocznikowania. Wg charakterystyki zamieszczonej w książce (oraz opowieści z jazdy) przy prędkości 80km/h (~1500rpm) prąd po załączeniu szóstego bocznika w układzie R powinien wynosić ok. 450A. Tymczasem jest to ~600A lub więcej, i powoduje wyzwolenie przekaźnika nadmiarowego.

119
Na warsztacie / Odp: Patch_MaSzyna_10_14
« dnia: 27 Listopada 2014, 13:36:51 »
Z tym rozruchem w SU45 to chyba trzeba poczekać na DP2 od yuby'a. W rzeczywistości na SU45 nie da się w normalnych warunkach wykonać gwałtownego rozruchu który by wywalił nadmiarowe, bo nie pozwoli na to regulator Woodwarda i sama charakterystyka prądnicy. Nawet, jeżeli ruszając od razu zakręcimy kołem na 10 albo 13 pozycję, to i tak napięcie i prąd na silnikach będzie się zmieniać dość łagodnie - dopóki silnik spalinowy nie wejdzie na obroty, regulator mocy ograniczy wzbudzenie prądnicy głównej (a co za tym idzie napięcie na silnikach) - a do tego maksymalne napięcie prądnicy jest ściśle powiązane z obrotami.

Jedyny sposób, aby zrobić taki gwałtowny rozruch, że mogłoby wywalić nadmiarowy, to wejść na ostatnią pozycję przy "podpartych bokach" (zwarty na stałe przekaźnik PZB2) i wyłączonych wentylatorach silników trakcyjnych (=brak jazdy), a następnie załączyć je, co spowoduje załączenie jazdy, i wtedy nawet przy minimalnym wzbudzeniu prądnicy napięcie i prąd na silnikach będzie na tyle duży (pamiętajmy o wymuszonym podparciem PZB2 załączeniu bocznika I), że może wyzwolić przekaźnik nadmiarowy. Ale bez tego rodzaju "oszustw" - nie ma szans.

Przypuszczam, że w obecnej wersji moc dla danej pozycji (wymieniona w chk/fiz) jest przypisana bezpośrednio do pozycji nastawnika, a nie do punktu pracy silnika (obroty), i stąd opisywany efekt.

120
No ale akurat zdjęć z Maszynowego namiotu niestety w tej galerii nie ma :-(

Byłem wczoraj, popatrzyłem chwilę, nie chciałem się dzieciom w kolejkę wpychać ;-) Pulpit robi ogromne wrażenie. Świetnie wygląda i chyba wszystko w nim jest aktywne - tzn. lampki, przyrządy, przełączniki. Do kompletu brak jeszcze tylko prędkościomierza ;-)

Nie wiem na czym polega to zjawisko, ale jak jest pulpit, to niedostatki grafiki scenerii w ogóle nie przeszkadzają - stają się niezauważalne.

Strony: 1 2 3 [4] 5 6 ... 8