Power Buoy Generator Efficiency

P. McGill, v1.3.0

We want to plot generator output efficiency as a function of input speed ω (in rpm) and torque M (in N-m), given the generator speed constant Ke, torque constant Kt, and winding resistance Rg.

η[ω_,M_,Ke_,Kt_,Rg_,Mf_]:=((100 (((((M-Mf)/Kt)))^2)(((Ke ω Kt)/(M-Mf))-Rg))/(ω ((2 Pi)/60) M))

Now we can produce a 3D plot of efficiency for a Magmotor model BFA42-600 motor with a “5K” winding over its range of allowed speed and torque.

First convert the torque constant and friction torque in oz-in to N-m

Kt=118.5*7.0615*10^-3

Mf=60*7.0615*10^-3

Ke=87.6/1000

Rg=0.88

1600*7.0615*10^-3

effpl=Plot3D[η[ω,M,Ke,Kt,Rg,Mf],{ω,0,6000},{M,0,15},{
PlotLabel->"Efficiency vs. Speed and Torque",
AxesLabel->{"Speed (rpm)","Torque (N-m)","η (%)"}}]

peaks=Map[Maximize[{η[#,M,Ke,Kt,Rg,Mf],0<M<15},M]&,Range[100,6100,100]];

peaks2=Transpose[peaks];

peaks3=Riffle[Range[100,6100,100],M/.Transpose[peaks][[2]]];

peaks4=Riffle[peaks3,peaks2[[1]],3];

peaks5=Partition[peaks4,3];

peakpl=ListPointPlot3D[peaks5,{PlotStyle->Red}]

peakpl2=Graphics3D[{Red,Thick,Line[peaks5]}];

Show[effpl,peakpl2]

This is good for getting the big picture, but not for reading precise values. We can generate a 2D plot of the peak efficiency curve overlaid on a contour plot.

peaks6=Partition[peaks3,2];

peakpl3=ListPlot[peaks6,
{Frame->True,
Joined->True,
GridLines->Automatic,
PlotStyle->Red,
PlotLabel->"Peak Efficiency vs. Speed and Torque",
FrameLabel->{"Speed (rpm)","Torque (N-m)"}}]

FindFit[peaks6,a+b (x^c),{a,b,c},x]

FindFit[peaks6,a (x^b),{a,b},x]

conpl=ContourPlot[η[ω,M,Ke,Kt,Rg,Mf],{ω,0,6000},{M,0,15},
{Frame->True,
Contours->{50,60,70,80,85,88,90,91,92,93,94},
ContourLabels->All,
PlotLabel->"Peak Efficiency vs. Speed and Torque",
FrameLabel->{"Speed (rpm)","Torque (N-m)"}}]

Show[conpl,peakpl3]

We’d also like to see how load voltage, current, and power varies with input speed and torque.

Vl[ω_,M_,Ke_,Kt_,Rg_,Mf_]:=(ω Ke)-(((M-Mf) Rg)/Kt)

A[M_,Kt_,Mf_]:=((M-Mf)/Kt)

Pl[ω_,M_,Ke_,Kt_,Rg_,Mf_]:=(((((M-Mf)/Kt)))^2)(((Ke ω Kt)/(M-Mf))-Rg)

Now we can plot the load voltage, current, and power at maximum efficiency.

peaks6=Partition[peaks3,2];

loadvolts=Map[Vl[#[[1]],#[[2]],Ke,Kt,Rg,Mf] &,peaks6];

loadvolts2=Partition[Riffle[Range[100,6000,100],loadvolts],2];

Show[ListPlot[loadvolts2,
{Joined->True,
Frame->True,
GridLines->Automatic,
PlotLabel->"Load Voltage at Maximum Efficiency vs. Speed"},
FrameLabel->{"Speed (rpm)","Load Voltage (V)"}],Graphics[{Orange,Line[{{0,300},{6000,300}}]}]]

loadcurr=Map[A[#[[2]],Kt,Mf] &,peaks6];

loadcurr2=Partition[Riffle[Range[100,6000,100],loadcurr],2];

ListPlot[loadcurr2,
{Joined->True,
Frame->True,
GridLines->Automatic,
PlotLabel->"Load Current at Maximum Efficiency vs. Speed"},
FrameLabel->{"Speed (rpm)","Load Current (A)"}]

loadpow=Map[Pl[#[[1]],#[[2]],Ke,Kt,Rg,Mf] &,peaks6];

loadpow2=Partition[Riffle[Range[100,6000,100],loadpow],2];

Show[ListPlot[loadpow2,
{Joined->True,
Frame->True,
GridLines->Automatic,
PlotLabel->"Load Power at Maximum Efficiency vs. Speed"},
FrameLabel->{"Speed (rpm)","Load Power (W)"}],Graphics[{Orange,Line[{{0,2800},{6000,2800}}]}]]

How does the torque load we can present to the hydraulic motor vary as a function of the impedance that the power converter presents to the generator (Magmotor model BF34-500 with a “K” winding)?

M[ω_,Ke_,Kt_,Rg_,Rl_,Mf_]:=Kt ((Ke ω)/(Rg+Rl))+Mf

Manipulate[
Show[{Plot[M[ω,Ke,Kt,Rg,Rl,Mf],{ω,100,6000},
{Frame->True,
GridLines->Automatic,
PlotLabel->"Speed vs. Torque for 'K' winding",
FrameLabel->{"Speed (rpm)","Torque (N-m)"}}],
Graphics[{Orange,Line[{{0,11.3},{6000,11.3}}],Red,Line[{{0,33.9},{6000,33.9}}]}]}],
{Rl,0,100}]

How is this different for the same generator with an “5E” winding?

Kt5E=29.6*7.0615*10^-3

Mf=60*7.0615*10^-3

Ke5E=21.9/1000

Rg5E=0.15

1600*7.0615*10^-3

Manipulate[
Show[{Plot[M[ω,Ke5E,Kt5E,Rg5E,Rl,Mf],{ω,100,6000},
{Frame->True,
GridLines->Automatic,
PlotLabel->"Speed vs. Torque for 'I' winding",
FrameLabel->{"Speed (rpm)","Torque (N-m)"}}],
Graphics[{Orange,Line[{{0,11.3},{6000,11.3}}],Red,Line[{{0,33.9},{6000,33.9}}]}]}],
{Rl,0,100}]

Does the inductance of the motor windings matter? Plot inductive reactance as a function of speed.

Xl[ω_,L_]:=((2 Pi ω)/60) L

Plot[Xl[ω,0.0917],{ω,100,6000},
{Frame->True,
GridLines->Automatic,
PlotLabel->"Speed vs. Inductive Reactance for 'K' winding",
FrameLabel->{"Speed (rpm)","Impedance (Ω)"}}]

Plot[Xl[ω,0.0059],{ω,100,6000},
{Frame->True,
GridLines->Automatic,
PlotLabel->"Speed vs. Inductive Reactance for 'I' winding",
FrameLabel->{"Speed (rpm)","Impedance (Ω)"}}]