Inhoudsopgave:
- Stap 1: Genereer een NxN-matrix van uniforme vierkanten
- Stap 2: Randomiseren van het netwerk
- Stap 3: Krijg nieuwe afstanden
- Stap 4: Selecteer een punt en vergelijk de afstand van dat punt met anderen
- Stap 5: Ga naar een nieuw punt
- Stap 6: Kracht = K*afstand
- Stap 7: Netwerkbeweging wijzigen vanwege het verplaatste punt
- Stap 8: Voltooide code
Video: Krachtveranderingen meten van een gegenereerd glasvezelnetwerk wanneer het wordt verplaatst met externe kracht - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Cellen zijn in staat om te interageren met hun omringende extracellulaire matrix (ECM) en kunnen zowel krachten toepassen als reageren op door de ECM uitgeoefende krachten. Voor ons project simuleren we een onderling verbonden netwerk van vezels dat zou fungeren als de ECM en zien we hoe het netwerk verandert als reactie op beweging van een van de punten. De ECM is gemodelleerd als een onderling verbonden systeem van veren die aanvankelijk in evenwicht zijn met een nettokracht van nul. Omdat er kracht op het netwerk wordt uitgeoefend als reactie op de puntbeweging, proberen we de verbonden punten zo op de kracht te laten reageren dat ze proberen terug te keren naar evenwicht. De kracht wordt gevolgd door de vergelijking F=k*x waarbij k de veerconstante is en x de verandering in vezellengte is. Deze simulatie kan helpen om een algemeen begrip te krijgen van krachtvoortplanting in vezelachtige netwerken die uiteindelijk kunnen worden gebruikt om mechanotransductie te helpen simuleren.
Stap 1: Genereer een NxN-matrix van uniforme vierkanten
Om de code te beginnen, kiezen we N die de afmetingen van ons netwerk (NxN) bepaalt. De waarde van N kan handmatig worden gewijzigd om de netwerkafmetingen naar behoefte te wijzigen. In dit voorbeeld is N=8, dus we hebben een netwerk van 8x8 punten. Nadat we de matrix hebben gegenereerd, verbinden we alle punten in de matrix met een lengte van 1 eenheid met behulp van de afstandsformule, distance = sqrt((x2-x1)^2+(y2-y1)^2). Door dit te doen, krijgen we een netwerk van vierkanten die allemaal gelijk verdeeld zijn met 1 eenheid. Dit is te zien in figuur 101.
Stap 2: Randomiseren van het netwerk
In deze stap willen we alle puntlocaties willekeurig maken, behalve de buitenste punten die onze grens zullen vormen. Om dit te doen, vinden we eerst alle matrixcoördinaten die gelijk zijn aan 0 of N. Deze punten vormen de grens. Voor de niet-grenspunten wordt de locatie willekeurig gemaakt door een andere willekeurige waarde van -.5 tot.5 toe te voegen aan zowel de x- als de y-positie. De geplotte gerandomiseerde afbeelding is te zien in figuur 1.
Stap 3: Krijg nieuwe afstanden
Zodra ons gerandomiseerde netwerk is gemaakt, vinden we de afstand tussen verbonden punten opnieuw met behulp van de afstandsformule.
Stap 4: Selecteer een punt en vergelijk de afstand van dat punt met anderen
In deze stap kunnen we een interessante plaats selecteren met de cursor, zoals weergegeven in figuur 2. U hoeft uw cursor niet precies naar het punt te verplaatsen, omdat de code deze aanpast aan het dichtstbijzijnde verbindingspunt. Om dit te doen, berekenen we eerst de afstand tussen alle verbonden punten en het punt dat we zojuist hebben geselecteerd. Nadat alle afstanden zijn berekend, selecteren we het punt met de kleinste afstand vanaf het geselecteerde punt om het daadwerkelijk geselecteerde punt te worden.
Stap 5: Ga naar een nieuw punt
In deze stap verplaatsen we het punt naar een nieuwe locatie met behulp van het punt dat in de vorige stap is geselecteerd. Deze beweging wordt gedaan door een nieuwe positie te selecteren met de cursor die de vorige positie zal vervangen. Deze beweging wordt gebruikt om een uitgeoefende kracht als gevolg van verandering in veerlengte te simuleren. In de geheel blauwe figuur wordt een nieuwe locatie gekozen. In de volgende figuur kan de beweging worden gevisualiseerd door de oranje verbindingen die de nieuwe locaties zijn in tegenstelling tot de blauwe verbindingen die de oude locaties waren.
Stap 6: Kracht = K*afstand
In deze stap passen we de vergelijking kracht=k*afstand toe, waarbij k een constante 10 is voor collageenvezels. Omdat het glasvezelnetwerk begint in zijn evenwichtstoestand, is de nettokracht 0. We creëren een nulvector met de lengte van de matrix die we eerder hebben gegenereerd om dit evenwicht weer te geven.
Stap 7: Netwerkbeweging wijzigen vanwege het verplaatste punt
In deze stap simuleren we de beweging van het netwerk als reactie op de puntbeweging om terug te keren naar zijn evenwichtstoestand. We beginnen met het vinden van de nieuwe afstanden tussen twee punten. Hiermee kunnen we de verandering in vezellengte vinden door te kijken naar het verschil tussen de oude en nieuwe afstanden. We kunnen ook zien welke punten zijn verplaatst en ook de punten waarmee ze zijn verbonden door de nieuwe en oude puntlocaties te vergelijken. Hierdoor kunnen we zien welke punten moeten bewegen als reactie op de uitgeoefende kracht. De richting van de beweging kan worden opgesplitst in de x- en y-componenten, waardoor een 2D-richtingsvector ontstaat. Met behulp van de k-waarde, verandering in afstand en richtingsvector kunnen we de krachtvector berekenen die kan worden gebruikt om onze punten naar evenwicht te verplaatsen. We voeren dit gedeelte van de code 100 keer uit, elke keer in stappen van Force*.1. Door de code 100 keer uit te voeren, kunnen we uiteindelijk weer in evenwicht komen en door randvoorwaarden aan te houden zien we een verandering in het netwerk in plaats van gewoon een hele verschuiving. De netwerkbeweging is te zien in figuur 3, waarbij geel de verplaatste posities zijn en blauw de vorige.
Stap 8: Voltooide code
Bijgevoegd in deze sectie is een kopie van onze code. Voel je vrij om het aan te passen aan je behoeften door verschillende netwerken te modelleren!
Aanbevolen:
Batterij-aangedreven lamp die wordt ingeschakeld door het gebruik van magneten! 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Lamp op batterijen die aangaat door het gebruik van magneten!: We weten dat de meeste lampen aan/uit gaan via een fysieke schakelaar. Mijn doel met dit project was om een unieke manier te creëren om de lamp gemakkelijk aan/uit te zetten zonder die klassieke schakelaar. Ik was geïntrigeerd door het idee van een lamp die tijdens dit proces van vorm veranderde
Een e-mailmelding ontvangen wanneer een kanaal op ThingSpeak een tijdje niet is bijgewerkt: 16 stappen
Ontvang een e-mailmelding als een kanaal op ThingSpeak een tijdje niet is bijgewerkt: Achtergrondverhaal Ik heb zes geautomatiseerde kassen verspreid over Dublin, Ierland. Door een op maat gemaakte app voor mobiele telefoons te gebruiken, kan ik op afstand de geautomatiseerde functies in elke kas volgen en ermee communiceren. Ik kan de win handmatig openen / sluiten
Standalone Arduino 3.3V W / externe 8 MHz klok wordt geprogrammeerd vanaf Arduino Uno via ICSP / ISP (met seriële bewaking!): 4 stappen
Standalone Arduino 3,3 V met externe 8 MHz-klok die wordt geprogrammeerd vanaf Arduino Uno via ICSP / ISP (met seriële bewaking!): Doelstellingen: een stand-alone Arduino bouwen die op 3,3 V van een externe klok van 8 MHz draait. Om het te programmeren via ISP (ook bekend als ICSP, in-circuit serieel programmeren) vanaf een Arduino Uno (draaiend op 5V) Om het bootloader-bestand te bewerken en de
IoT Power Module: een functie voor het meten van IoT-vermogen toevoegen aan My Solar Charge Controller: 19 stappen (met afbeeldingen)
IoT Power Module: een functie voor het meten van IoT-vermogen toevoegen aan My Solar Charge Controller: Hallo allemaal, ik hoop dat jullie allemaal geweldig zijn! In deze instructable ga ik je laten zien hoe ik een IoT Power Measurement-module heb gemaakt die de hoeveelheid stroom berekent die wordt gegenereerd door mijn zonnepanelen, die wordt gebruikt door mijn zonnelaadcontroller t
Een externe HDD maken van een oude externe CD/RW: 5 stappen
Maak een externe harde schijf van een oude externe cd/rw: vrij ongecompliceerde conversie van een oude externe cd/rw naar een nuttigere externe harde schijf. Benodigdheden1-externe cd/rw (bij voorkeur het meer boxy type)1-harde schijf (moet overeenkomen met de interne connector van de schijfbehuizing, moet worden geformatteerd/sysed)1-sm