lastdownxxl
User
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.
http://www.rc-network.de/magazin/artikel_02/art_02-0037/Standschub.pdf
https://www.tcl.tk/
Viele Grüsse
Micha
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.
http://www.rc-network.de/magazin/artikel_02/art_02-0037/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