using Printf using DataFrames, DataFramesMeta using Plots, PlotThemes laenge = 10 # in Metern leitwert = 56 # m / (Ohm * mm^2), 56 entspricht Leitungskupfer cosphi = 1 # bei voller Leistung des Onboard-Ladegerätes querschnitte = [1.5, 2.5, 4, 6, 10, 16] # in mm^2 stroeme = [13, 16, 20, 32] # in Ampere function verlustleistung(querschnitt, strom) return (3 * laenge * (strom * strom)) / (leitwert * querschnitt) end function spannungsfall(querschnitt, strom) return (sqrt(3) * laenge * strom * cosphi) / (leitwert * querschnitt) end df = DataFrame( Strom_A=Int64[], Querschnitt_mm2=Float64[], Verlustleistung_W=Float64[], Spannungsfall_V=Float64[] ) for strom in stroeme for querschnitt in querschnitte push!(df, [strom, querschnitt, verlustleistung(querschnitt, strom), spannungsfall(querschnitt, strom)]) end end theme(:wong2) t = @sprintf("Drehstrom-Verlustleistung bei %d m Kupferkabel", laenge) p = plot( title=t, xlabel="Querschnitt [mm^2]", ylabel="Verlustleistung [W]" ) println("Einfache Leitungsberechnung (Drehstrom)\n") for strom in stroeme subset = @where(df, :Strom_A .== strom) l = @sprintf("Strom %d A", strom) plot!(p, subset.Querschnitt_mm2, subset.Verlustleistung_W, label=l, lw=3, xticks=(querschnitte, querschnitte), marker=:auto ) end savefig(p,"verlustleistung.png") #show(stdout, MIME("text/html"), df) show(stdout, MIME("text/plain"), df)