Dankzij de computer is het berekenen van een vierstangen-mechanisme een heel stuk makkelijker geworden. Ik leg op deze pagina uit, hoe de berekening in zijn werk gaat. Je hebt niet meer dan een handje goniometrie nodig. Als gereedschap gebruik ik OpenSCAD. Voor schematische stangenmechanismen kunnen we volstaan met 2D-berekeningen en -animatie. Overigens is het heel simpel om van een 2D-model over te gaan naar een 3D-model.
Onderstaande figuur is een momentopname van een vierstangen-mechanisme, met als stanglengtes:
AB = 100 .... BC = 62 .... CD = 77 .... DA = 31
Het is dus een Type 1 (zie voor de betekenis van "Type 1" DEZE pagina)
Ik heb hier de kruk AB de standaardlengte 100 gegeven; hij is op dit moment alfa=50° linksom gedraaid vanuit de +x-as (hoek DAB). Aan de linkerzijde van het mechanisme zijn bekend: AB, DA en de ingesloten hoek DAB. Ik kan daarom met de cosinus-regel de lengte en stand van BD uitrekenen.
De cosinus-regel
In OpenSCAD schrijf ik daartoe de volgende regels:
BD=sqrt(pow(AB,2)+pow(DA,2)-2*AB*DA*cos(alfa));
ADB=acos((pow(DA,2)+pow(BD,2)-pow(AB,2))/(2*BD*DA));
De coordinaten van het beginpunt B van BC worden (uitsluitend) bepaald door de lengte van AB en de hoek alfa. Derhalve kan ik nu - voor elke hoek alfa - BD intekenen (de rode lijn in het boven gegeven schema.
color ("red") translate ([AB*cos(alfa),AB*sin(alfa),0]) rotate ([0,0,-ADB]) square([BD,0.2]);
Of, nog eenvoudiger:
color ("red") translate ([DA,0,0]) rotate ([0,0,180-ADB]) square([BD,0.2]);
Bij de eerste versie tekenen we BD vanuit het beginpunt B; bij de alternatieve versie tekenen we BD vanuit het eindpunt D. Dat is de reden waarom we de hoek ADB bij de ene versie wel met 180° moeten vergroten (spiegelen) en bij de andere niet.
Na de bepaling van BD zijn van de driehoek B-C-D alle drie de zijden bekend. Met opnieuw de cosinusregel kunnen we daarom de hoeken BDC en BCD uitrekenen.
BDC=acos((pow(BD,2)+pow(CD,2)-pow(BC,2))/(2*BD*CD));
BCD=acos((pow(BC,2)+pow(CD,2)-pow(BD,2))/(2*BC*CD));
Waarna we het hele vierstangen-mechanisme kunnen tekenen en daarna animeren. Onderstaande link geeft de totale code, met de bovengebruikte stanglengtes al ingevuld.
Vierstangen_Berekening.scad
Als je de link aanklikt, opent zich OpenSCAD met de volledige code in de Editor. Schakel "Animate" in, zet Steps=100; en FPS=10; en het mechanisme begint te draaien. Omdat dit een 2D-model is, kun je het beste "Top View" gebruiken.
Als je naar de code kijkt, valt je op dat de berekening gesplitst is in 2 parallelle lijnen, namelijk voor waarden van alfa tussen 0° en 180° (eerste en tweede kwadrant) en waarden tussen 180° en 360° (derde en vierde kwadrant). Bij de berekening van ADB treedt namelijk bij de overgang van tweede naar derde kwadrant (alfa=180°) een tekenwisseling op. Simpel verklaard: in het eerste en tweede kwadrant beweeg je met toenemende alfa naar links, in het derde en vierde kwadrant beweeg je met (verder) toenemende alfa juist naar rechts. Je ziet dat ik daarom in plaats van -ADB (in eerste en tweede kwadrant) +ADB gebruik (in derde en vierde kwadrant).
De berekening is voor ALLE vierstangen-mechanismen te gebruiken. Je moet echter wel bedenken, dat een heleboel vierstangen-mechanismen fysiek beperkt of zelfs helemaal onmogelijk zijn. Dat heeft alles te maken met (de verdeling van) de stanglengtes. Soms is een van de stangen zo lang, of zo kort, dat de andere, zelfs samen, het einde van die ene stang niet kunnen bereiken. In het model geeft OpenSCAD dan een waarschuwing (in de Console). In de animatie zie je de betreffende stangen gewoon verdwijnen. Ze komen terug zodra het mechanisme fysiek weer "kan".
Wanneer een mechanisme niet "kan", dus tegen een grens aanloopt, hoef je niet te proberen, de kruk AB toch verder te draaien. Dat lukt niet zonder het mechanisme kapot te maken (de scharnieren uit elkaar te rukken, je zou dit kunnen zien als een geval van "arm-uit-de-kom"). Dit betekent, dat je in het model de kruk AB niet meer simpelweg met rotate ([0,0,$t*360]) kunt aansturen. Dergelijke vierstangen-mechanismen noemen we Type 3.
Type 1 (beide staande armen (AB en CD) roteren) en Type 2 (één staande arm (AB) roteert, de andere (CD) zwenkt heen en weer) hebben geen last van dit verschijnsel. De kruk AB kan zonder problemen de volle omwenteling maken. De animatie laat een complete gesloten beweging zien.
Als je gaat spelen met een OpenSCAD-model van een vierstangen-mechanisme, kun je bij de declaratielijst bovenaan in de code makkelijk verschillende stanglengtes invullen. Als je dat doet terwijl de animatie loopt, dan zie je het model live veranderen. Kom je bij de keuze van een of meer stanglengtes buiten de op DEZE pagina gegeven voorwaarden, dan zie je het model live van Type wisselen.
Het is ook leerzaam, een model één of meer keren een kwart slag te draaien. Dat heet inverteren. Het is simpel te doen in het OpenSCAD-model, je schuift in de declaratielijst alle stanglengtes één positie naar beneden (en de onderste schuift naar de top van de lijst). Begin je met een Type 1, draai je het een kwart slag rechtsom - wordt het een Type 2. Nog een kwart slag, is het een Type 3. En dan nog een kwart slag, blijft het een Type 3.
Bij Type 3 (beide staande armen zwenken heen en weer) is de rotatie van de kruk AB begrensd. Je ziet dan dat twee van de bewegende stangen op zeker moment in één lijn liggen. De lengte van dit paar is dan gelijk aan de som van de twee, of aan het verschil. Langer resp. korter kan dat paar niet meer worden. Als de derde stang dat toch vergt, stopt het mechanisme.
Neem als voorbeeld voor de stanglengtes:
AB = 100 .... BC = 33 .... CD = 133 .... DA = 78
In het linkerprentje kan de rode kruk AB zonder probleem verder rechtsom draaien, totdat, in het middelste prentje, de witte en groene stangen in lijn liggen. Punt B wordt dan bepaald door (CD-BC). Verder rechtsom draaien van AB kan niet, omdat (CD-BC) niet kleiner meer kan worden.
Ook als we linksom draaien, loopt het mechanisme vast. In het rechterprentje zie je dat (CD+BC) gestrekt is. Verder naar links draaien is onmogelijk, omdat (CD+BC) niet groter meer kan worden.
Als je de boven besproken SCAD-animatie zonder meer op dit Type 3 mechanisme zou loslaten, valt het beeld weg voor alle onmogelijke situaties. We kunnen misschien beter ZELF de slag van AB begrenzen tot het werkzame gebied. Daarvoor passen we de code wat aan.
Eerst bepalen we met de cosinusregel de twee grenswaarden en dan stellen we de animatie in, als volgt:
alfa_max=acos((pow(AB,2)+pow(DA,2)-pow((CD+BC),2))/(2*AB*DA));
alfa_min=acos((pow(AB,2)+pow(DA,2)-pow((CD-BC),2))/(2*AB*DA));
alfa=0.5*(alfa_max+alfa_min)+0.5*(alfa_max-alfa_min)*sin($t*360);
Let er op, dat we eerst de stanglengtes definieren, daarmee de grenswaarden uitrekenen en dan pas de definitie van alfa kunnen geven. De aansturing van alfa ziet er nogal complex uit. We gebruiken een sinus om de stangen aan het einde van hun slag mooi soepel te laten stoppen en starten. De sinus varieert over een omwenteling van -1 tot +1 en je rekent eenvoudig uit, dat we daarmee precies de beweging tussen alfa_min en alfa_max krijgen. Hieronder vind je de totale aangepaste code.
Vier_Type_3.scad
Als je de link aanklikt, opent zich OpenSCAD met de volledige code in de Editor. Schakel "Animate" in, zet Steps=100; en FPS=10; en het mechanisme begint te draaien. Omdat dit een 2D-model is, kun je het beste "Top View" gebruiken.
Er is wel wat op of aan te merken op dit mechanisme. In alfa_max staan BC en CD precies in lijn. AB kan daardoor niet verder naar links draaien. Wanneer we AB nu weer terug naar rechts laten bewegen, is er niets dat voorkomt dat het tweetal stangen BC en CD naar beneden uitknikt in plaats van naar boven, zoals je het ziet in de animatie. Knikt het punt C naar beneden, dan vertoont het mechanisme heel ander gedrag. Je ziet dat in onderstaande animatie.
Het kan nog gekker. Wanneer bij alfa_max BC en CD in lijn staan, kan het mechanisme spontaan van de ene versie in de andere omslaan. Je ziet dat gebeurten in onderstaande animatie.
We hebben een soortgelijk gedrag ook gezien bij de demonstratie van het parallellogram- en anti-parallellogram-mechanisme. Dit verschijnsel doet zich steeds en alleen voor bij op de een-of-andere manier samenvallende stangen. Voor een voorspelbaar mechanisme kun je (dus) dergelijke situaties beter vermijden. Daar komt nog bij, dat ook maar een tikkeltje speling in de scharnieren van een vierstangen-mechanisme juist bij gestrekte stand van twee stangen de kans op onvoorspelbaar zwabberen aanmerkelijk vergroot.