vrijdag 25 augustus 2023

Automatisch rijden(2)

 Automatisch rijden gaat een hele serie worden, daar is toch wel heel veel over te overdenken en schrijven. Dit is dus deel 2. 

Deel 1 leert dat met het tekenen van een modelbaan in het baanontwerp en het opgeven van 1 werkelijke afstand tussen twee melders alle andere waardes te berekenen moeten zijn, en dus automatisch rijden mogelijk is. 

Beginnen met definities van wat begrippen:

  • Traject, dit is een stuk baan, rails, tussen twee melders. Een traject heeft dus een 'meldervan', waarvan  een trein komt en een 'meldernaar', waar die trein naar opweg is. Een traject heeft een onbeperkt aantal railstukken, rechte en kromme rails, wissels en kruisingen. Maar alleen het eerste en het laatste railstuk heeft een melder. Hoe de in het traject opgenomen wissels (draaischijf, lift of rolbrug) moeten staan wordt ook in de beschrijving van een traject opgenomen.
  • RailBlok, expres noem ik het geen blok omdat dan de vergelijking met blokken in andere modelspoor programma's  verwarrend wordt, een railblok bestaat uit aaneengesloten trajecten die allemaal geen wissels of andere railsplitsingen hebben. Een stuk baan met 1 of meerdere melders. Een opstelspoor van wissel naar een stootblok met 1 melder halverwege is dan dus een railblok maar geen traject. Heeft dat opstelspoor twee of meer melders dan is het een railblok met meerdere trajecten. Een parade spoor, lang stuk spoor waar treinen zich van hun beste kant kunnen laten zien, is een railblok en kan uit meerdere trajecten bestaan. Op een railblok kunnen meerdere treinen rijden mits deze wel allemaal dezelfde richting opgaan. Er zijn nog veel meer factoren die hierbij een rol spelen maar dat komt later aan de orde.
  • Route, is wat een trein gaat rijden. Van de ene plek naar de andere plek. Wordt samengesteld uit railblokken en trajecten. Routes kunnen automatisch worden gekozen, maar er komt ook een optie dat je voor bepaalde treinen specifiek routes kan opgeven. De railstukken met melders kun je in het baanontwerp een naam geven zodat ook handmatig routes kunnen worden aangemaakt als: " rij van inhetdorpstation naar opdebergstation".
Na het starten van WMapp, het laden van een andere baanplan of aanpassen daarvan, moet het baanplan worden geanalyseerd. Trajecten en railblokken moeten worden bepaald. Tijdens het automatisch rijden worden enorme hoeveelheden gegevens als locsnelheden, lengtes van trajecten en nog veel meer bepaald. Bij het afsluiten van WMapp  wordt dat automatisch opgeslagen voor de volgende sessie. Het kan meerdere sessies duren voordat alle waardes zijn bepaald. Maar uiteindelijk weet WMapp alles van je locs en het banenplan wat er maar te weten valt. 

Analyse van het baanontwerp begint met het maken van een lijst van alle melders in het ontwerp.  Alle melders in de lijst worden een voor een bekeken.
Een melder kan alleen geplaatst worden op een recht railstuk of een bocht. Een railstuk kan in 8 richtingen worden gedraaid en heeft twee aansluitingen naar andere railstukken. De mogelijke aansluitingen worden genummerd 1 tm 8. De 'vanaansluiting', waar het traject begint, wordt bepaald, de 'naaraansluiting' wordt bepaald en gebruikt voor het vinden van het aansluitende railstuk. Van het gevonden aansluitende railstuk wordt de naaraansluiting bepaald welke op zijn beurt weer wordt gebruikt voor het vinden van het volgende aansluitende railstuk enzo door. Telkens wordt gekeken of het aansluitende railstuk een melder heeft. Is dat zo dan is het traject gevonden en wordt opgeslagen in de lijst met trajecten, en gaan we verder met de volgende melder in de lijst melders. 
Bovenstaande is al gerealiseerd en werkt foutloos. Maar alleen voor trajecten die alleen uit rechte en gebogen rails bestaan. 
Wordt als aansluitend railstuk een wissel, of ander 'railsplitsend' railstuk als draaischijf of rolbrug gevonden, dan wordt voor iedere mogelijke splitsing in een lijst opgeslagen het nummer van de melder waarvan we nu de trajecten aan het bepalen zijn,  de positie van dit gevonden railstuk,  de aansluiting waar dit railstuk begint en de stand van de splitsing. Bij een wissel is dat dan rechtdoor of afslaand, dus 2 splitsingen komen bij een wissel in de lijst, bij een draaischijf kunnen het er wel 30 zijn. De melder waarvan we nu het traject aan het bepalen zijn heeft dus meerdere trajecten. De volgende melder wordt bekeken.
Zijn alle melders bekeken dan komen de splitsingen in de gemaakte 'splitsingen' lijst aan de beurt. Van iedere railsuk met een splitsing worden de beide aansluitingen bepaald, de stand van de wissel is hiervoor al vastgelegd in de splitsing. Met de naaraansluiting wordt weer het aangrenzende railstuk bepaald en de zoektocht naar een melder en daarmee het complementeren van een traject gaat verder. Wissels in een wisselstraat geven weer nieuwe afsplitsingen in de lijst.
Het zoeken naar trajecten gaat altijd in een richting vanuit een melder, de trajecten kunnen straks wel in twee richtingen worden gereden. 

Morgen weer een Houten- beurs...wordt vervolgt.

Geen opmerkingen:

Een reactie posten

RoBoot

 Tijdje niet gepost. Druk, vakantie en zo.  Laatste project SchakelBord is af, gaat mee naar de beurs en helemaal geworden wat ik ervan had ...