Jump to content
elektro-skateboard.de

barney

Elektro-Skater
  • Gesamte Inhalte

    3.658
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    8

Alle erstellten Inhalte von barney

  1. Anbei die Berechnungen T steht für Temporär. // --------------------------------------- function UPMRad(TDrivePower, TMotorKV, TRitzelMotor, TRitzelRad) { return (TDrivePower * TMotorKV * TRitzelMotor / TRitzelRad); } // --------------------------------------- // Geschwindigkeit function Geschwindigkeit(TDrivePower, TMotorKV, TReifendurchmesser, TRitzelMotor, TRitzelRad) { return (TReifendurchmesser * Math.PI * TDrivePower * TMotorKV * TRitzelMotor / TRitzelRad * 60 / 1000000); } // --------------------------------------- // Leistung function Leistung(TMotorleistungVerlustlos, TWirkungsgrad) { return (TMotorleistungVerlustlos / (TWirkungsgrad / 100)); } // --------------------------------------- // Diverse Werte function Strom(TLeistung, TUMax, TIGrund) { return (TLeistung / TUMax + TIGrund * 1); } // --------------------------------------- function Fahrdauer(TIAkkuAh, TStrom) { return (TIAkkuAh / TStrom * 60); } // --------------------------------------- function Distanz(TGeschwindigkeit, TIAkkuAh, TStrom) { return (TGeschwindigkeit * TIAkkuAh / TStrom); } // --------------------------------------- function Liste_Motorkennwerte() { document.Formular01.MotorKV.value = motortypen[MotorListe.value].KV; document.Formular01.MotorS.value = motortypen[MotorListe.value].S; document.Formular01.MotorIMax.value = motortypen[MotorListe.value].IMax; document.Formular01.MotorPower.value = motortypen[MotorListe.value].Power; document.Formular01.MotorInduktivitaet.value = motortypen[MotorListe.value].Induktivitaet; document.Formular01.MotorWiderstand.value = motortypen[MotorListe.value].Innenwiderstand; document.Formular01.MotorLamda.value = motortypen[MotorListe.value].Lamda; document.Formular01.MotorPole.value = motortypen[MotorListe.value].Pole; Select_UNenn(); } // --------------------------------------- function EnergieUmsatz() { //W=0.5 * m * v^2 30Km/h~ 30.000/3600 //W=0.5 * 90 Kg * 8.3m^2 = 3125J/Nm/Ws var TGewicht = document.Formular01.Gewicht.value; var TGeschwindigkeit = document.Formular01.Geschwindigkeit.value; var TBeschleunigungsdauer = document.Formular01.Beschleunigungsdauer.value; var TUNenn = document.Formular01.UNenn.value document.Formular01.LeistungBeschleunigung.value = (0.5 * TGewicht * Math.pow((TGeschwindigkeit/3.6),2) / TBeschleunigungsdauer).toFixed(1) ; document.Formular01.StromBeschleunigung.value = (0.5 * TGewicht * Math.pow((TGeschwindigkeit/3.6),2) / (TBeschleunigungsdauer * TUNenn)).toFixed(1) ; } // --------------------------------------- function Antriebskennwerte() { // Parameter auslesen var TReifendurchmesser = document.Formular01.Reifendurchmesser.value; var TRitzelRad = document.Formular01.RitzelRad.value; var TRitzelMotor = document.Formular01.RitzelMotor.value; // Stroeme und Spannungen var TDrivePower = document.Formular01.UNenn.value * document.Formular01.DrivePower.value / 100; var TIGrund = document.Formular01.IGrund.value; // Wirkungsgrad var TWirkungsgrad = document.Formular01.Wirkungsgrad.value; // Gewicht und Steigung var TGewicht = document.Formular01.Gewicht.value; var TSteigung = document.Formular01.Steigung.value; // Widrigkeiten var TDichte = document.Formular01.Dichte.value; var Tcw = document.Formular01.cw.value; var TFlaeche = document.Formular01.Flaeche.value; var TRollwiderstand = document.Formular01.cr.value; // Ermittlung aus Tabellen var TMotorKV = document.Formular01.MotorKV.value; var TMotorS = document.Formular01.MotorS.value; var TMotorIMax = document.Formular01.MotorIMax.value; var TMotorPower = document.Formular01.MotorPower.value; // Berechnungen TUMax = document.Formular01.UNenn.value; var TIMax = ParallelListe.value * akkutypen[AkkuListe.value].Entladestrom; var TIAkkuAh = ParallelListe.value * akkutypen[AkkuListe.value].Nennkapazitaet; // Kräfte var TFStroem = (TDichte * Tcw * TFlaeche * Math.pow((Geschwindigkeit(TDrivePower, TMotorKV, TReifendurchmesser, TRitzelMotor, TRitzelRad) / 3.6), 2) / 2); var TFSchraeg = TGewicht * 9.81 * Math.sin(Math.atan(TSteigung / 100)); var TFRollwiderstand = 9.81 * TGewicht * TRollwiderstand; var TFGesamt = TFStroem + TFSchraeg + TFRollwiderstand; // Leistungsberechnungen var TMotorleistungVerlustlos = TFGesamt * Geschwindigkeit(TDrivePower, TMotorKV, TReifendurchmesser, TRitzelMotor, TRitzelRad) / 3.6; // Ausgaben // Motor document.Formular01.MotorPowerCorrected.value = (TMotorPower * Math.pow((document.Formular01.UNenn.value) / (motortypen[MotorListe.value].S * akkutypen[AkkuListe.value].Nennspannung), 2)).toFixed(0); // Akku document.Formular01.ULeer.value = (ZellenanzahlListe.value * akkutypen[AkkuListe.value].Entladeschlussspannung).toFixed(1); document.Formular01.IMaximum.value = TIMax.toFixed(1); document.Formular01.IAkkuAh.value = TIAkkuAh.toFixed(1); document.Formular01.PAkku.value = (TIAkkuAh * TUMax).toFixed(1); document.Formular01.ULade.value = (ZellenanzahlListe.value * akkutypen[AkkuListe.value].Ladeschlussspannung).toFixed(1); // Drive Power document.Formular01.DrivePowerPercent.value = document.Formular01.DrivePower.value; document.Formular01.FStroem.value = TFStroem.toFixed(0); document.Formular01.FSchraeg.value = TFSchraeg.toFixed(0); document.Formular01.FRollwiderstand.value = TFRollwiderstand.toFixed(0); document.Formular01.FGesamt.value = TFGesamt.toFixed(0); document.Formular01.MotorleistungVerlustlos.value = TMotorleistungVerlustlos.toFixed(0); // Motor und Raddrehzahl document.Formular01.UPMMotor.value = UPMMotor(TDrivePower, TMotorKV).toFixed(0); document.Formular01.UPMRad.value = UPMRad(TDrivePower, TMotorKV, TRitzelMotor, TRitzelRad).toFixed(0); // Getriebeübersetzung document.Formular01.GearRatio.value = (TRitzelMotor / TRitzelRad).toFixed(2); // Drehmoment Drehzahl in U / s document.Formular01.DrehmomentMotor.value = (Leistung(TMotorleistungVerlustlos, TWirkungsgrad) * 60 / (2 * 3.1415 * UPMMotor(TDrivePower, TMotorKV))).toFixed(2); document.Formular01.DrehmomentRad.value = (Leistung(TMotorleistungVerlustlos, TWirkungsgrad) * 60 / (2 * 3.1415 * UPMRad(TDrivePower, TMotorKV, TRitzelMotor, TRitzelRad))).toFixed(2); document.Formular01.Geschwindigkeit.value = Geschwindigkeit(TDrivePower, TMotorKV, TReifendurchmesser, TRitzelMotor, TRitzelRad).toFixed(1); document.Formular01.Leistung.value = Leistung(TMotorleistungVerlustlos, TWirkungsgrad).toFixed(0); document.Formular01.Strom.value = Strom(Leistung(TMotorleistungVerlustlos, TWirkungsgrad), TUMax, TIGrund).toFixed(1); document.Formular01.Fahrdauer.value = Fahrdauer(TIAkkuAh, Strom(Leistung(TMotorleistungVerlustlos, TWirkungsgrad), TUMax, TIGrund)).toFixed(0); document.Formular01.Distanz.value = Distanz(Geschwindigkeit(TDrivePower, TMotorKV, TReifendurchmesser, TRitzelMotor, TRitzelRad), TIAkkuAh, Strom(Leistung(TMotorleistungVerlustlos, TWirkungsgrad), TUMax, TIGrund)).toFixed(1); // Diverses document.Formular01.PVerlustMotor.value = (Math.pow(Strom(Leistung(TMotorleistungVerlustlos, TWirkungsgrad), TUMax, TIGrund), 2) * motortypen[MotorListe.value].Innenwiderstand / 1000).toFixed(1); document.Formular01.PVerlustAkku.value = (Math.pow(Strom(Leistung(TMotorleistungVerlustlos, TWirkungsgrad), TUMax, TIGrund), 2) * akkutypen[AkkuListe.value].Innenwiderstand / 1000 * ZellenanzahlListe.value / ParallelListe.value).toFixed(1); document.Formular01.UVerlustAkku.value = (Strom(Leistung(TMotorleistungVerlustlos, TWirkungsgrad), TUMax, TIGrund) * akkutypen[AkkuListe.value].Innenwiderstand / 1000 * ZellenanzahlListe.value / ParallelListe.value).toFixed(1); // ---------------------------------------
  2. Wenn du Firefox hast rufe die Seite normal auf. Dann Rechtsklick Quelltext anzeigen
  3. Du brauchst dich nicht in dieser Häufigkeit bedanken. Ich such immer noch einen, der meine Ansätze in Frage stellt. Immer ran.
  4. Gehe auf den Rechner vII und schalte im Browser auf Quelltext um. Dann siehst du die Berechnungen und Formel ganz unten.
  5. Allgemeine Lebensfragen? Oder was zum Thema Skateboard mit Elektromotor?
  6. Gruppenkuscheln. Bin ich hier bei den Teletubbies?
  7. Das wäre eine ungewöhnliche, aber positive Wendung.
  8. barney

    Nunchuk RF

    Und welche Auflösung hat dein Display. Das BLDC-Tool hat ja mittlerweile eine ordentliche Anforderung.
  9. barney

    Nunchuk RF

    Kurz und knapp - Ja
  10. barney

    Nunchuk RF

    Hi Duffman, also benötigt man eine Palette von NRF Modulen (oder zufällig die "richtigen") um den nRF zum Laufen zu bringen. Da warte ich lieber die BT Variante ab. Stammte der Blinkcode von dir? Grüße Barney
  11. barney

    Nunchuk RF

    Hallo Dude, deine Anmerkungen sind nicht einfach zu beantworten. Die erste Frage, die ich stellen müsste, wäre, was hat Benjamin vor. Letzter Stand ist: * nrf51822 BT als Multipoint Device vom Nunchuk, hin zum Smartphone. Er hat mit der derzeitigen Platine für den nRF eine schnelle Grundlage, wo im Prinzip nur der Transmitter getauscht werden muss (und die Software). * Er will WS28xx ansteuern * AS5704P anschließen oder Hallsensoren * und ?? Ich würde gerne den puristischen Ansatz fahren, VESC für den Motor und ggf. höchstens Kommunikation für den Nunchuk. Ist die UART am VESC belegt, stellt sich mir die Frage, wie kommen wir an die Daten. Da bleibt nur noch der CAN-Bus. Das muss aber nicht wirklich sein. Über USB wäre auch eine Möglichkeit. Ich habe versucht den VESC als Serielles Device mit dem Laptop zu koppeln, hat aber nicht auf Anhieb geklappt. Es gab nie eine Rückantwort. Ich weiß nicht, ob er da andere Kommandos verwendet. Da müsste ich einen USB-Sniffer mitlaufen lassen. Hier würde aber nicht dein Wunsch nach temporärer Verwendung des Pi3 greifen. Wir müssen an die BT belegte UART ran. Da müssten wir Benjamin dazu überreden, das er eine Multipoint Kommunikation im VESC hinterlegt. Ab hier wird es schrecklich. Wixel: Der lässt sich an zwei Punkten anschließen. Als PPM Geber oder oder an die UART angeschlossen. Mit der UART würden wir uns wieder den Weg zum VESC blockieren. Ich denke noch mal intensiv nach....
  12. barney

    Nunchuk RF

    Hallo Dude, ich habe mir gerade 2 x WS2812b LED-Streifen (je 1m wasserdicht) 60LED/m bestellt. Dafür soll es eine Lib geben, die für den Pi geschrieben wurde. (Phyton) Einige DS1820 (Temperatursensoren) rumliegen. Die werden auch durch Libs vereinfacht. (RRD) Ich habe zwei Studenten wegen der Webdarstellung generft. CSV und Ajax wurde empfohlen. Oder: Für die Datendarstellung als Graph könnte RRD https://calomel.org/rrdtool.html http://www.linux-magazin.de/Ausgaben/2004/06/Daten-ausgesiebt http://www.docunext.com/blog/2009/11/bash-script-to-convert-csv-to-rrdtool-updates.html https://www.opennms.org/wiki/Rrd2csv http://www.rgraph.net/ verendet werden. Spart die Arbeit. Später kann man es selber schöner machen. Wir müssen noch die Pins am Pi3 festlegen. @Dude kannst du schon die Werte aus dem VESC auslesen, wenn ja, kannst du mir einige 100 Datensätze als Textfile zukommen lassen, damit ich schon mal mit RRD und HTML5 experimentieren, oder es den beiden Studenten als Aufgabe weitergeben. :-)
  13. barney

    Nunchuk RF

    Hi Dude, Hier ist die Ausgabe über uart0 und c recht gut erklärt: http://kampis-elektroecke.de/?page_id=1682
  14. Üblicherweise weiß dein Regler nicht, wie viele Pole dein Motor hat. Wenn der Regler z.B. 7000 Kommutierungen/Min hinbekommt, dann würde dein Motor mit 7 Polen 1000 U/Min haben. Wenn dein Motor 2 Pole hat, entsprechend 3500 U/Min. Damit kannst du rückwärts ausrechnen, wie schnell dein Motor sich maximal drehen könnte, da der Regler eine technische Obergrenze hat. Ist zumindest meine Interpretation.
  15. 7S ist noch o.k. ich bin mit ca. 27V gefahren. LiFe haben bei 8S eine andere Spannung.
  16. Siehe die mal hier im Wiki den Abtriebsrechner vII an. Und wähle als Akku Sony vtc5 aus. So teuer sind die nicht.
  17. Ich habe Blei rausgeworfen und durch LiFe ersetzt. Viel leichter und Super Reichweite im Verhältnis zu Blei. Aber ein DC Motor lässt sich nicht Kick Push nutzen. Du bist immer vom Motor und Akku abhängig. Ich würde jetzt auch kein LiFe mehr nehmen. Die typischen Dampfakkus 18xxx. Die sind noch leichter. Da ist schnell ein weiter Kg eingespart.
  18. Es gab hier auch schon Links zu Videos mit alternativen Steuerungen. Die waren weniger überzeugend. Das Problem ist oft Marktverfügbarkeit und das Protokoll dahinter.
  19. Dann kannst du einen DC ESC nehmen. Die bekommt man für wenig Geld als Ersatzteil. Ich habe mit solch einer Kombination angefangen. Aber diese DC Motoren machen nicht viel Freude. Aber nebenbei, ist die Elektronik wirklich defekt?
  20. Schreibe mir mal eine PN
  21. Ist der Motor ein Gleichspannungsmotor? Zwei Dicke Anschlüsse deuten auf Gleichspannung.
  22. Ich drücke es mal anders aus. Sieht cool aus und macht 220CHF.
  23. Das findet die lokale Polizei auch[emoji106]
  24. Du bist so unwissend. Das ist doch klar. So ein Rennen halt, mit vielen und irgendwie cool. Ach was weiß ich. Ist halt ein Rennen in der Pampa. Und mit Musik, wenn du auch taub seien solltest, den Bass spüren wirst. Dazu Getränke, die so stylisch sind, dass du einen Sprachkurs benötigst um die zu bestellen.
  25. barney

    Nunchuk RF

    Ich würde für die Steuerungsfunktionen c bevorzugen. Ansonsten Scriptsprachen für goodies wie LED Steuerung, damit jeder darin rumrühren kann. http://www.raspberry-projects.com/pi/programming-in-c/uart-serial-port/using-the-uart
×
×
  • Neu erstellen...