clearvars
format shortEng
 
freq = 50;
T = 1/freq;
 
percents = [5.17 5.5:0.5:10] % corresponding to the measurements
percents = 1×11
5.1700e+000 5.5000e+000 6.0000e+000 6.5000e+000 7.0000e+000 7.5000e+000 8.0000e+000 8.5000e+000 9.0000e+000 9.5000e+000 10.0000e+000
 
% experimental RPM measurement with HTI HT522 Tachometer
rpms = [5530, 8900, 12200, 13800, 14500, 15200, 15600, 15800, 16200, 16700, 17700]
rpms = 1×11
5.5300e+003 8.9000e+003 12.2000e+003 13.8000e+003 14.5000e+003 15.2000e+003 15.6000e+003 15.8000e+003 16.2000e+003 16.7000e+003 17.7000e+003
 
pulseWidths = percents*T/100
pulseWidths = 1×11
1.0340e-003 1.1000e-003 1.2000e-003 1.3000e-003 1.4000e-003 1.5000e-003 1.6000e-003 1.7000e-003 1.8000e-003 1.9000e-003 2.0000e-003
fittedPoly = polyfit(pulseWidths, rpms, 3)
fittedPoly = 1×4
41.5714e+012 -204.6543e+009 336.6311e+006 -169.3421e+003
 
theoPercents = 5.17:1e-3:10;
theoPulseWidths = theoPercents*T/100
theoPulseWidths = 1×4831
1.0340e-003 1.0342e-003 1.0344e-003 1.0346e-003 1.0348e-003 1.0350e-003 1.0352e-003 1.0354e-003 1.0356e-003 1.0358e-003 1.0360e-003 1.0362e-003 1.0364e-003 1.0366e-003 1.0368e-003 1.0370e-003 1.0372e-003 1.0374e-003 1.0376e-003 1.0378e-003 1.0380e-003 1.0382e-003 1.0384e-003 1.0386e-003 1.0388e-003 1.0390e-003 1.0392e-003 1.0394e-003 1.0396e-003 1.0398e-003 1.0400e-003 1.0402e-003 1.0404e-003 1.0406e-003 1.0408e-003 1.0410e-003 1.0412e-003 1.0414e-003 1.0416e-003 1.0418e-003 1.0420e-003 1.0422e-003 1.0424e-003 1.0426e-003 1.0428e-003 1.0430e-003 1.0432e-003 1.0434e-003 1.0436e-003 1.0438e-003
theoRpms = polyval(fittedPoly, theoPulseWidths);
figure()
hold on
grid on
grid minor
plot(pulseWidths*1e6, rpms, "x-")
plot(theoPulseWidths*1e6, theoRpms)
xlabel("Pulse Width (\mus)")
ylabel("Motor RPM")
legend("Experimental", "Fitted", Location="southeast")
hold off
 
figure()
hold on
grid on
grid minor
plot(percents, rpms, "x-")
plot(theoPercents, theoRpms)
xlabel("Pulse Width (%)")
ylabel("Motor RPM")
legend("Experimental", "Fitted", Location="southeast")
hold off
 
%% Expected RPM at maximum using KV
motorKV = 2300;
appliedvoltage = 7.5;
expectedMaxRPM = motorKV*appliedvoltage
expectedMaxRPM =
17.2500e+003