Anzeige Anzeige
www.hoelleinshop.com   www.f3x.de
Ergebnis 1 bis 1 von 1

Thema: TCL/TK Script zur Antriebsauslegung

  1. #1
    User Avatar von lastdownxxl
    Registriert seit
    06.11.2010
    Ort
    Überlingen
    Beiträge
    682
    Blog-Einträge
    1
    Daumen erhalten
    82
    Daumen vergeben
    5
    1 Nicht erlaubt!

    Standard TCL/TK Script zur Antriebsauslegung

    Hallo,

    ich hab in tcl/tk ein Script zur Antriebsberechnung geschrieben. Grundlage der Propellerberechnung ist das Dokument
    Standschub von Helmut Schenk. Das Script berechnet den Strom, Drehzahl und Wirkungsgrad vom Motor. Zur Berechnung
    müssen die Motordaten Kv [rpm/V], Leerlaufstrom Io und Wicklungswiderstand R angegeben werden.
    Grundlage der Motorberechnung ist mein Dokument DC Motor Formulas. Mit dem Script kann man schnell mal
    eine Motor-Prop Konfiguration berechnen.

    Zur Ausführung de Scriptes wird die Installation von tcl/tk benötigt.

    Name:  Motcalc.jpg
Hits: 126
Größe:  40,8 KB


    http://www.rc-network.de/magazin/art...Standschub.pdf
    https://www.tcl.tk/

    Viele Grüsse
    Micha

    Code:
    # Michael Schulz 01.03.2013
    
    proc calculate {} {
      global R U Kv Dz Hz Io im ueb etha W n Cells vp fp Prop Accu Ri
      
      set etag 0.95
      set Raccu [expr $Ri*1.0*$Cells] 
      set H [expr $Hz*2.54/100.0] 
      set D [expr $Dz*2.54/100.0] 
      set Ke [expr $Kv*1.0]
      
      if {($ueb == 1)} {set etag 1.0}
      
      if {($Accu == "LiPo_Full")} {set ucell 4.14}
      if {($Accu == "LiPo")} {set ucell 3.80}
      if {($Accu == "LiIo")} {set ucell 3.70}
      if {($Accu == "LiFePo")} {set ucell 3.3}
      #if {($Accu == "NiCd")} {set ucell 1.15}
      set U [expr $Cells * $ucell]
                         
      set Rg [expr $R*0.00124 + 0.01 + $Raccu*0.001]
      
      if {($Prop == "APC")} {set Cp [expr 0.0856*($H/$D) - 0.0091]}
      if {($Prop == "AERONOUT-CAM")} {set Cp [expr 0.0833*($H/$D) - 0.0116]}
      if {($Prop == "Speed-Prop")} {set Cp [expr 0.116*pow(($H/$D),2)- 0.066*($H/$D) + 0.0467]}
      set n100 [expr 60.0*pow((100.0/($Cp*pow($D,5)*1.225)),0.333)]
      set RPM1 [expr -1/200.0*pow($ueb,3)*pow($n100,3)*$etag]
      set RPM2 [expr pow((pow($ueb,3)*pow($n100,3)*$etag+400*pow($Ke,3)*$Rg*$U-400*pow($Ke,3)*pow($Rg,2)*$Io),0.5)/pow($Ke,2)/$Rg/pow($ueb,1.5)/pow($n100,1.5)/pow($etag,0.5)]
      set RPM3 [expr (1/pow($Ke,2)/$Rg-$RPM2)]
      set RPMa [expr $RPM3*$RPM1/$ueb]
      
      set RPMa [format %1.0f $RPMa]
      $n delete 0 100 
      $n insert 0 $RPMa
      
      set Pw [expr pow($RPMa/$n100,3)*100.0] 
      set Pw [format %1.0f $Pw]
      $W delete 0 100 
      $W insert 0 $Pw
     
      set Im [expr ( $Kv*$U-$RPMa*$ueb)/$Kv/$Rg]
      set Im [format %1.1f $Im]
      $im delete 0 100 
      $im insert 0 $Im
      
      set Uk [expr $U-(($Raccu*0.001+0.01)*$Im)]
     
      set etam [expr $Pw/$Uk/$Im*100.0] 
      set etam [format %1.0f $etam]
      $etha delete 0 100 ; # 
      $etha insert 0 $etam 
      
      set Vp [expr $H*$RPMa/60.0]
      set Vp [format %1.1f $Vp]
      $vp delete 0 100 ; # 
      $vp insert 0 $Vp 
      
      set F [expr 0.785 * pow($D,2)]
      set S1 [expr 0.55*$Pw]
      set S2 [expr pow($S1,2)]
      set S3 [expr (2 * 1.225 * $F * $S2)]
      set Fp [expr pow($S3,0.333)/9.81]
      set Fp [format %1.2f $Fp]
      $fp delete 0 100 ; # 
      $fp insert 0 $Fp 
      
      set nop [expr $Ke*$U*0.625/$ueb]
      
      if {$RPMa < $nop} {tk_messageBox -icon error -message \
                        "Motor is overloaded!
                         \nUse Motor with lower Kv, or prop wth less diameter/pitch."}
                         
      set SD [expr $H/$D]
      
      if {($SD >= 0.9) & ($Prop != "Speed-Prop")} {tk_messageBox -icon error -message "Use Prop Style -> Speed Prop !"}                   
    }
    
    proc gui {} {
          global R U Io Kv Dz Sz im ueb etha W n Cells vp fp Prop Accu Ri
          wm minsize . 300 330
          wm title . "MotCalc V6.0  M.Schulz"
               
          set a [labelframe .a -bd 3]
            
            set m1 [frame .a.m1]
            set f0 [frame $m1.f0]
              set lf0 [label $f0.lf0 -text "Prop Style: " -font {Arial 10 bold }]
              tk_optionMenu $f0.1 Prop AERONOUT-CAM APC Speed-Prop
              pack $lf0 -side left
              pack $f0.1 -side right
            pack $f0 
           pack $m1 -fill x -pady 6     
          
            set a1 [frame $a.a1] 
              set al [label $a1.l -text {Prop diameter [in] } -font {Arial 10 }] 
              set ae1 [entry $a1.e -width 6 -justify right -textvariable Dz -font {Arial 10 }]
              pack $al -side left
              pack $ae1 -side right
            pack $a1  -fill x -pady 6
        
            set a2 [frame $a.a2]
               set al [label $a2.l -text {Prop pitch [in] } -font {Arial 10 }] 
               set ae2 [entry $a2.e -width 6 -justify right -textvariable Hz -font {Arial 10 }]
               pack $al -side left
               pack $ae2 -side right
            pack $a2 -fill x -pady 6
            
            set m2 [frame .a.m2]
            set f2 [frame $m2.f2]
              set lf2 [label $f2.lf2 -text "Accu Type: " -font {Arial 10 bold }]
              tk_optionMenu $f2.1 Accu LiPo_Full LiPo LiIo LiFePo 
              pack $lf2 -side left
              pack $f2.1 -side right
            pack $f2 
           pack $m2 -fill x -pady 6  
            
            set m3 [frame .a.m3]
            set f3 [frame $m3.f3]
              set lf3 [label $f3.lf3 -text {Ri/Cell [mOhm]: } -font {Arial 10 bold}]
              tk_optionMenu $f3.1 Ri 5 7 10 15 20 30 40 50
              pack $lf3 -side left
              pack $f3.1 -side right
            pack $f3 
           pack $m3 -fill x -pady 6
            
            set m [frame .a.m]
            set f1 [frame $m.f1]
              set lf1 [label $f1.lf1 -text "Cells: " -font {Arial 10 bold}]
              tk_optionMenu $f1.1 Cells 1 2 3 4 5 6 7 8 9 10 11 12 13
              pack $lf1 -side left
              pack $f1.1 -side right
            pack $f1 
           pack $m -fill x -pady 6
            
            set a5 [frame $a.a5]
              set al [label $a5.l -text {Motor Kv [rpm/V] } -font {Arial 10 }] 
              set ae5 [entry $a5.e -width 6 -justify right -textvariable Kv -font {Arial 10 }]
              pack $al -side left
              pack $ae5 -side right
            pack $a5 -fill x -pady 6 
            
            set a6 [frame $a.a6]
              set al [label $a6.l -text {Motor R [mOhm] } -font {Arial 10 }] 
              set ae6 [entry $a6.e -width 6 -justify right -textvariable R -font {Arial 10 }]
              pack $al -side left
              pack $ae6 -side right
            pack $a6 -fill x -pady 6 
            
            set a7 [frame $a.a7]
              set al [label $a7.l -text {Io [A] } -font {Arial 10 }] 
              set ae7 [entry $a7.e -width 6 -justify right -textvariable Io -font {Arial 10 }]
              pack $al -side left
              pack $ae7 -side right
            pack $a7 -fill x -pady 6
            
            set a8 [frame $a.a8]
              set al [label $a8.l -text {Gearbox ratio [-] } -font {Arial 10 }] 
              set ae8 [entry $a8.e -width 6 -justify right -textvariable ueb -font {Arial 10 }]
              pack $al -side left
              pack $ae8 -side right
            pack $a8 -fill x -pady 6          
          pack $a -fill y -pady 10
       
          set b [labelframe .b -bd 2 -relief solid]
            set b1 [frame $b.b1] 
              set bl [label $b1.l -text {Motor current [A] } -font {Arial 10 }] 
              set im [entry $b1.e -width 6 -justify right -font {Arial 10 }]
              pack $bl -side left
              pack $im -side right
            pack $b1  -fill x -pady 6
            
            set b2 [frame $b.b2] 
              set bl [label $b2.l -text {Shaft power [W] } -font {Arial 10 }] 
              set W [entry $b2.e -width 6 -justify right -font {Arial 10 }]
              pack $bl -side left
              pack $W -side right
            pack $b2  -fill x -pady 6
            
            set b3 [frame $b.b3] 
              set bl [label $b3.l -text {Motor efficiency [%]} -font {Arial 10 }] 
              set etha [entry $b3.e -width 6 -justify right -font {Arial 10 }]
              pack $bl -side left
              pack $etha -side right
            pack $b3  -fill x -pady 6
            
            set b4 [frame $b.b4] 
              set bl [label $b4.l -text {Shaft speed [rpm]} -font {Arial 10 }] 
              set n [entry $b4.e -width 6 -justify right -font {Arial 10}]
              pack $bl -side left
              pack $n -side right
            pack $b4  -fill x -pady 6
            
            set b5 [frame $b.b5] 
              set bl [label $b5.l -text {Pitch speed [m/s]} -font {Arial 10 }] 
              set vp [entry $b5.e -width 6 -justify right -font {Arial 10}]
              pack $bl -side left
              pack $vp -side right
            pack $b5  -fill x -pady 6
            
            set b6 [frame $b.b6] 
              set bl [label $b6.l -text {Static thrust [kg]} -font {Arial 10 }] 
              set fp [entry $b6.e -width 6 -justify right -font {Arial 10 }]
              pack $bl -side left
              pack $fp -side right
            pack $b6  -fill x -pady 6
                         
          pack $b -fill y -pady 10    
        
          set bu [labelframe .bu -relief solid] 
            button $bu.1 -text "Calc" -command {calculate} -font {Arial 10 bold } -bd 3
            pack $bu.1 
          pack $bu
           
    }      
    
    ########################## Main ###############################################  
    set ignore [catch {eval {wm iconbitmap . -default [file join Propeller.ico]}}]
    global Dz Hz R U ke ueb Io Cells Ri
    set U 11.1; set Io 1.2; set R 33; set Kv 2600; set ueb 4.4; set Dz 14; set Hz 8; set Cells 3; set Ri 10
    gui
    Angehängte Dateien
    Like it!

Ähnliche Themen

  1. Frage zur Antriebsauslegung
    Von Wanninger im Forum Elektroflug
    Antworten: 11
    Letzter Beitrag: 13.01.2018, 10:25
  2. DC24 LUA-Script Taster als Schalter benutzen -> Fertiges Script
    Von GünterP. im Forum Fernsteuerungstechnik
    Antworten: 0
    Letzter Beitrag: 10.08.2016, 13:12
  3. Frage zur Antriebsauslegung
    Von ZaphodB im Forum Elektroflug
    Antworten: 0
    Letzter Beitrag: 04.04.2011, 19:32
  4. Frage zur Antriebsauslegung
    Von Banjoko im Forum Elektroflug
    Antworten: 0
    Letzter Beitrag: 10.10.2007, 09:17
  5. Software zur LRK-Antriebsauslegung
    Von Wfly im Forum E-Motoren, Regler & Steller
    Antworten: 16
    Letzter Beitrag: 08.08.2003, 08:00

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •