1. Closed-Loop Synchronous Buck Converter with Digital PID Voltage Controller
Beginner
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Design and simulate a 48V to 12V synchronous DC-DC step-down buck converter. Implement small-signal state-space averaging, size LC filter parameters to restrict output ripple under 1%, and tune a discrete PID feedback loop to maintain voltage regulation under 50% load step disturbances.
βοΈ Key MATLAB Functions:
tfpidtunec2dstepsim
π Expected Output & Metrics: Output voltage ripple < 0.5% (60 mV pk-pk), settling time < 1.5 ms following a 10A load transient, overshoot < 4%, and converter power conversion efficiency > 95.8%.
Vin = 48;
Vout = 12;
fs = 100e3;
Iout_max = 10;
R_load = Vout / Iout_max;
D = Vout / Vin;
delta_IL = 0.2 * Iout_max;
L = (Vin - Vout) * D / (fs * delta_IL);
delta_Vout = 0.01 * Vout;
C = delta_IL / (8 * fs * delta_Vout);
Gvd = tf([Vin], [L*C, L/R_load, 1]);
C_pid = pidtune(Gvd, 'PID', 2*pi*5000);
T_cl = feedback(C_pid * Gvd, 1);
figure; step(T_cl); grid on;
title('Closed-Loop Buck Converter Step Response');
fprintf('Designed L: %.2f uH, C: %.2f uF, Gain Margin: %.2f dB\n', L*1e6, C*1e6, allmargin(C_pid*Gvd).GainMargin);
Est. Duration: 6β8 Hours
Request Custom Project →
2. Boost Converter with Maximum Power Point Tracking (P&O MPPT) for Solar PV
Intermediate
Toolbox: Simscape Electrical, Simulink
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Interface a 250W photovoltaic (PV) array to a 400V DC bus via a high-gain Boost converter. Implement the Perturb & Observe (P&O) algorithm and Incremental Conductance (InC) algorithm to maximize solar energy harvest under rapidly changing irradiance (1000 W/mΒ² to 400 W/mΒ²) and temperature variations.
βοΈ Key MATLAB Functions:
simplotmeantrapz
π Expected Output & Metrics: MPPT tracking efficiency > 99.2%, dynamic response time < 25 ms upon irradiance step change, steady-state power oscillation < 1.5W, and PV P-V / I-V curve tracking.
function D = mppt_po(Vpv, Ipv, delta_D)
persistent Vprev Pprev Dprev
if isempty(Vprev)
Vprev = 0; Pprev = 0; Dprev = 0.5;
end
Pcurr = Vpv * Ipv;
delta_P = Pcurr - Pprev;
delta_V = Vpv - Vprev;
if delta_P > 0
if delta_V > 0
D = Dprev - delta_D;
else
D = Dprev + delta_D;
end
elseif delta_P < 0
if delta_V > 0
D = Dprev + delta_D;
else
D = Dprev - delta_D;
end
else
D = Dprev;
end
D = max(0.1, min(0.9, D));
Vprev = Vpv; Pprev = Pcurr; Dprev = D;
end
Est. Duration: 1β2 Weeks
Request Custom Project →
3. Three-Phase Sinusoidal PWM (SPWM) Inverter with THD Harmonic Analysis
Beginner
Toolbox: Simscape Electrical, Signal Processing
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Model a 3-phase full-bridge voltage source inverter (VSI) feeding an inductive load. Compare unipolar and bipolar Sinusoidal PWM (SPWM) modulation schemes, design an LC low-pass output filter, and evaluate Total Harmonic Distortion (THD) across modulation indices ($m_a = 0.4 \dots 1.1$).
βοΈ Key MATLAB Functions:
thdfftpower_analyzesim
π Expected Output & Metrics: AC output line-to-line voltage waveforms, FFT harmonic spectrum up to 50th harmonic, THD < 2.2% (meeting IEEE 519 standard < 5%), and fundamental voltage linearity.
fs = 100e3;
f0 = 50;
fc = 10e3;
t = 0:1/fs:0.04;
ma = 0.85;
v_ref_a = ma * sin(2*pi*f0*t);
v_carrier = sawtooth(2*pi*fc*t, 0.5);
s_a = double(v_ref_a > v_carrier);
Vdc = 400; v_pole_a = Vdc * (s_a - 0.5);
thd_inverter = thd(v_pole_a, fs, f0);
fprintf('Total Harmonic Distortion (THD): %.2f dB (%.2f%%)\n', thd_inverter, 10^(thd_inverter/20)*100);
Est. Duration: 1β2 Weeks
Request Custom Project →
4. Space Vector PWM (SVPWM) Voltage Source Inverter in Simscape
Intermediate
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Implement a complete Space Vector Pulse Width Modulation (SVPWM) switching engine in MATLAB & Simulink. Map voltage reference vectors in $\alpha\beta$ stationary frame, determine sector locations (1 to 6), calculate dwell times ($T_1, T_2, T_0$), and compare DC bus utilization against standard SPWM.
βοΈ Key MATLAB Functions:
clarkeparkatan2sim
π Expected Output & Metrics: 15.5% higher fundamental AC voltage output compared to SPWM ($V_{max} = V_{dc}/\sqrt{3}$), reduced switching losses, symmetrical 7-segment PWM duty pulses, and lower low-order harmonic content.
function [T1, T2, T0, sector] = calc_svpwm(Valpha, Vbeta, Vdc, Ts)
Vref = sqrt(Valpha^2 + Vbeta^2);
theta = atan2(Vbeta, Valpha);
if theta < 0, theta = theta + 2*pi; end
sector = floor(theta / (pi/3)) + 1;
theta_rel = theta - (sector - 1) * (pi/3);
T1 = (sqrt(3) * Ts / Vdc) * Vref * sin(pi/3 - theta_rel);
T2 = (sqrt(3) * Ts / Vdc) * Vref * sin(theta_rel);
T0 = Ts - T1 - T2;
end
Est. Duration: 2β3 Weeks
Request Custom Project →
5. Development of Control System and Electronics for Wall-climbing Robot
Advanced
Toolbox: Simulink, Control System, Simscape
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Design power management circuits, brushless DC (BLDC) motor drives, and real-time vacuum pressure controllers for vertical adhesion wall-climbing robotic platforms operating on concrete and steel surfaces.
βοΈ Key MATLAB Functions:
simpidtuneuifigurepwm
π Expected Output & Metrics: Adhesion force vs incline capability, BLDC motor torque response, power consumption breakdown (Watts), and dynamic stability margins under surface irregularities.
m_robot = 4.5;
g = 9.81;
mu = 0.6;
F_gravity = m_robot * g;
F_adhesion_req = 1.5 * (F_gravity / mu);
s = tf('s');
G_suction = 120 / (0.05*s + 1);
C_suction = pidtune(G_suction, 'PI');
V_batt = 24;
I_motor = 5.2;
P_total = V_batt * I_motor;
fprintf('Required Adhesion: %.2f N, Total Suction Power: %.2f W\n', F_adhesion_req, P_total);
Est. Duration: 3β5 Weeks
Request Custom Project →
6. GA-based Fuzzy Logic Controller for LFC in Interconnected Power System
Advanced
Toolbox: Simulink, Fuzzy Logic, Global Optimization
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Optimize membership functions and rule base for a fuzzy logic load-frequency controller (LFC) in a two-area interconnected power grid with renewable PV integration using Genetic Algorithms (GA).
βοΈ Key MATLAB Functions:
gamamfisevalfissim
π Expected Output & Metrics: Grid frequency deviation response curves ($\Delta f < 0.02\text{ Hz}$), tie-line power oscillation damping, settling time < 2.0 s, and ITAE performance index reduction > 35%.
function itae_score = lfc_fitness(params)
fis = mamfis('Name', 'LFC_Controller');
fis = addInput(fis, [-0.5 0.5], 'Name', 'FreqError');
fis = addMF(fis, 'FreqError', 'trimf', params(1:3), 'Name', 'Negative');
fis = addMF(fis, 'FreqError', 'trimf', params(4:6), 'Name', 'Zero');
fis = addMF(fis, 'FreqError', 'trimf', params(7:9), 'Name', 'Positive');
assignin('base', 'opt_fis', fis);
simOut = sim('two_area_lfc_model', 'StopTime', '20');
t = simOut.tout;
e_f = simOut.freq_error;
itae_score = trapz(t, t .* abs(e_f));
end
Est. Duration: 3β4 Weeks
Request Custom Project →
7. Real Time MATLAB Interface for Speed Control of Induction Motor via dsPIC
Intermediate
Toolbox: Simulink, Embedded Coder, Simscape Electrical
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Implement open-loop and closed-loop V/f speed control for 3-phase induction motors with real-time serial telemetry between a dsPIC30F4011 microcontroller board and a MATLAB App Designer GUI.
βοΈ Key MATLAB Functions:
serialportreadwriteuifigure
π Expected Output & Metrics: Real-time speed tracking curves (0β1500 RPM), linear V/f ratio maintenance, serial packet throughput > 50 Hz, and steady-state speed error < 1.0%.
port = "COM3"; baudrate = 115200;
sp = serialport(port, baudrate);
configureTerminator(sp, "LF");
speed_setpoint_rpm = 1200;
writeline(sp, sprintf("SET_RPM:%d", speed_setpoint_rpm));
flush(sp);
data_line = readline(sp);
motor_data = sscanf(data_line, "V=%f,I=%f,RPM=%f");
fprintf('Measured RPM: %.1f, Current: %.2f A\n', motor_data(3), motor_data(2));
Est. Duration: 2β3 Weeks
Request Custom Project →
8. Decentralized Nonlinear Control for Power Systems using Normal Forms
Advanced
Toolbox: Control System, Symbolic Math, Simulink
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Develop a decentralized nonlinear feedback controller using normal form transformations to damp inter-area power oscillations and transient instability in multi-machine power grids under major transmission line faults.
βοΈ Key MATLAB Functions:
jordantaylorode45sim
π Expected Output & Metrics: Phase portrait trajectories, rotor angle oscillation damping ratio > 0.12, voltage collapse margin enhancement, and robust performance under 3-phase short-circuit faults.
syms delta omega M D_d Pm Pmax sym_u
f_delta = omega;
f_omega = (Pm - Pmax*sin(delta) - D_d*omega + sym_u)/M;
taylor_omega = taylor(f_omega, [delta, omega], [asin(Pm/Pmax), 0], 'Order', 4);
disp('Higher-Order Modal Decoupling Terms:');
disp(taylor_omega);
Est. Duration: 3β5 Weeks
Request Custom Project →
9. Fuel Cell Powered Vehicles Using Supercapacitors & Bi-Directional Converter
Intermediate
Toolbox: Simulink, Simscape Electrical, Powertrain Blockset
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Hybridize a Proton Exchange Membrane Fuel Cell (PEMFC) with a high-power supercapacitor storage bank via a bi-directional DC-DC converter. Design a frequency-decoupled energy management strategy to handle sudden vehicle acceleration demands.
βοΈ Key MATLAB Functions:
simpower_fuelcellmeanplot
π Expected Output & Metrics: Dynamic power split response curves, DC-link bus voltage stabilized within ±2% during 0β100 km/h acceleration, hydrogen fuel economy improvement (> 14%), and supercapacitor regenerative braking efficiency.
fc_cutoff = 0.5;
[b, a] = butter(2, fc_cutoff / (100/2), 'low');
t = 0:0.01:100;
P_demand = 30e3 + 15e3 * sin(2*pi*0.1*t) + 10e3 * (t > 30 & t < 40);
P_fuelcell = filter(b, a, P_demand);
P_supercap = P_demand - P_fuelcell;
figure; plot(t, P_demand/1e3, 'k--', t, P_fuelcell/1e3, 'b', t, P_supercap/1e3, 'r');
legend('Total Demand (kW)', 'PEMFC Steady Power', 'Supercap Transient Power'); grid on;
Est. Duration: 2β3 Weeks
Request Custom Project →
10. Indoor Navigation Using Accelerometer and Magnetometer Sensor Fusion
Beginner
Toolbox: Sensor Fusion and Tracking, Signal Processing
Deliverables: Code .m, Report
π― Problem & Objective: Implement a Pedestrian Dead Reckoning (PDR) indoor positioning algorithm fusing 3-axis accelerometer step detection and magnetometer heading estimation filters to navigate GPS-denied buildings.
βοΈ Key MATLAB Functions:
ahrsfilterfindpeakscumtrapzplot3
π Expected Output & Metrics: 2D/3D pedestrian walking path visualization, step count detection accuracy > 97.5%, heading estimation error < 2.5 degrees, and positioning drift rate < 3%.
fs = 100;
t = (0:length(accel_data)-1)/fs;
accel_mag = sqrt(sum(accel_data.^2, 2)) - 9.81;
[pks, step_locs] = findpeaks(accel_mag, 'MinPeakHeight', 1.5, 'MinPeakDistance', 0.4*fs);
step_count = length(step_locs);
stride_length = 0.72;
fprintf('Detected %d steps. Total distance: %.2f meters.\n', step_count, step_count * stride_length);
Est. Duration: 4β6 Hours
Request Custom Project →
11. Single-Phase Active Power Factor Correction (PFC) Boost Converter
Intermediate
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Design an Active PFC Boost Converter using Average Current Mode Control (ACMC) to shape the AC mains input current into a pure sinusoid in-phase with the grid voltage, achieving near-unity power factor and IEC 61000-3-2 compliance.
βοΈ Key MATLAB Functions:
thdpower_analyzepidtunesim
π Expected Output & Metrics: Power factor > 0.995, grid current THD < 3.5%, DC bus voltage regulation at 400V ± 1%, and seamless operation across 85Vβ265V universal AC input.
L_boost = 1e-3;
C_dc = 470e-6;
V_dc = 400;
Rsense = 0.05;
s = tf('s');
Gi = (V_dc * Rsense) / (s * L_boost);
C_current = pidtune(Gi, 'PI', 2*pi*15000);
fprintf('PFC Inner Current Controller Kp: %.4f, Ki: %.2f\n', C_current.Kp, C_current.Ki);
Est. Duration: 2β3 Weeks
Request Custom Project →
12. Dual Active Bridge (DAB) Bidirectional DC-DC Converter for EV Fast Charging
Advanced
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Model a galvanic isolated Dual Active Bridge (DAB) converter operating at 100 kHz for bidirectional Electric Vehicle (V2G/G2V) charging. Implement Single Phase Shift (SPS) and Extended Phase Shift (EPS) to maintain Zero Voltage Switching (ZVS) across all load ranges.
βοΈ Key MATLAB Functions:
simtrapzfminconplot
π Expected Output & Metrics: Power transfer curves vs phase-shift angle ($\phi \in [-\pi/2, \pi/2]$), full ZVS soft-switching range, peak conversion efficiency > 97.4%, and instantaneous bidirectional power reversal within 5 ms.
V1 = 400; V2 = 800; n = 0.5;
fs = 100e3; L_leakage = 25e-6;
phi = linspace(-pi/2, pi/2, 200);
P_dab = (n * V1 * V2) / (2 * pi * fs * L_leakage) .* phi .* (1 - abs(phi)/pi);
figure; plot(phi * 180/pi, P_dab / 1e3, 'LineWidth', 2); grid on;
xlabel('Phase Shift Angle \phi (Degrees)'); ylabel('Transferred Power (kW)');
title('Dual Active Bridge Bidirectional Power vs Phase Shift');
Est. Duration: 3β4 Weeks
Request Custom Project →
13. LLC Resonant Converter for High-Efficiency DC-DC Telecommunication Power
Advanced
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Design a half-bridge LLC resonant DC-DC converter with First Harmonic Approximation (FHA) modeling. Modulate switching frequency above and below resonant frequency ($f_0 = 150\text{ kHz}$) to regulate 48V output with Zero Voltage Switching (ZVS) on primary switches and Zero Current Switching (ZCS) on secondary diodes.
βοΈ Key MATLAB Functions:
bodefminsearchsimtf
π Expected Output & Metrics: Resonant voltage gain curves ($M(f_n, Q, k)$), primary switch drain-source ZVS waveforms, peak efficiency > 98.1%, and narrow frequency variation range under load variations.
k = 5;
Q_vals = [0.2, 0.5, 1.0, 2.0];
fn = linspace(0.5, 2.0, 500);
figure; hold on;
for Q = Q_vals
M = 1 ./ sqrt( (1 + 1/k - 1./(k*fn.^2)).^2 + Q^2 .* (fn - 1./fn).^2 );
plot(fn, M, 'LineWidth', 1.8, 'DisplayName', sprintf('Q = %.1f', Q));
end
grid on; xlabel('Normalized Frequency f_n'); ylabel('Voltage Gain M');
title('LLC Resonant Converter Gain Curves'); legend show;
Est. Duration: 3β4 Weeks
Request Custom Project →
14. Field-Oriented Control (FOC) of Permanent Magnet Synchronous Motor (PMSM)
Advanced
Toolbox: Simscape Electrical, Motor Control Blockset
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Implement cascaded speed and current Field-Oriented Control (FOC) for a PMSM in dq rotor reference frame. Design decouple PI current controllers ($i_d = 0$ for surface PMSM) and Space Vector PWM to achieve high-dynamic torque response for EV traction.
βοΈ Key MATLAB Functions:
clarkeparkpidtunesim
π Expected Output & Metrics: Speed step response settling time < 20 ms, torque ripple < 3.5%, maximum torque per ampere (MTPA) tracking, and zero steady-state d-q current cross-coupling.
Rs = 0.45; Ld = 3.2e-3; Lq = 3.2e-3;
psi_m = 0.12; p = 4;
s = tf('s');
G_current = 1 / (Ld*s + Rs);
omega_bw = 2*pi*1000;
Kp_i = Ld * omega_bw;
Ki_i = Rs * omega_bw;
C_pi_current = tf([Kp_i, Ki_i], [1, 0]);
fprintf('Designed FOC Current Loop Kp: %.4f, Ki: %.2f\n', Kp_i, Ki_i);
Est. Duration: 3β5 Weeks
Request Custom Project →
15. Three-Level Neutral-Point-Clamped (NPC) Multilevel Inverter
Advanced
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Simulate a 3-level Neutral-Point-Clamped (NPC) inverter using Phase Disposition SPWM (PD-SPWM). Implement a closed-loop zero-sequence voltage injection algorithm to balance the neutral-point DC-link capacitor voltages under varying power factors.
βοΈ Key MATLAB Functions:
thdpower_analyzesimfft
π Expected Output & Metrics: 5-level line-to-line output voltage waveform, THD < 1.4% (before filtering), neutral point voltage deviation < 1.0V, and reduced dv/dt stress on power semiconductor switches.
Vdc = 600; ma = 0.9; f0 = 50; fc = 5000;
t = 0:1/100e3:0.04;
v_ref = ma * sin(2*pi*f0*t);
carrier_upper = sawtooth(2*pi*fc*t, 0.5);
carrier_lower = carrier_upper - 1;
s1 = double(v_ref > carrier_upper);
s2 = double(v_ref > carrier_lower);
v_pole = (Vdc/2) * (s1 + s2 - 1);
thd_npc = thd(v_pole, 100e3, f0);
fprintf('3-Level NPC Line Voltage THD: %.2f%%\n', 10^(thd_npc/20)*100);
Est. Duration: 3β5 Weeks
Request Custom Project →
16. Solid-State Transformer (SST) High-Frequency Link Converter for Smart Grids
Advanced
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Design a three-stage Solid-State Transformer (SST) comprising an AC/DC active front-end rectifier, an isolated high-frequency DC-DC Dual Active Bridge, and a DC/AC grid inverter for interfacing medium voltage (MV) grids to renewable microgrids.
βοΈ Key MATLAB Functions:
simpower_analyzethdbode
π Expected Output & Metrics: 80% volume/weight reduction over 50Hz copper transformers, power factor > 0.99 at MV terminals, independent active/reactive power dispatch, and fault ride-through (FRT) compliance.
S_rated = 100e3;
f_hf = 20e3;
B_max = 0.25;
Ac = 45e-4;
V_pri = 2000;
N_pri = round(V_pri / (4 * f_hf * B_max * Ac));
fprintf('Required HF Transformer Primary Turns: %d turns (Weight: ~12 kg vs 250 kg 50Hz)\n', N_pri);
Est. Duration: 4β6 Weeks
Request Custom Project →
17. Vienna Rectifier for Three-Phase High Power Factor Industrial Systems
Intermediate
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Model a unidirectional 3-phase 3-switch 3-level Vienna Rectifier for high-power telecom power supplies and EV fast charging stations. Regulate 800V DC split-rail bus and enforce sinusoidal grid current drawn at unity power factor.
βοΈ Key MATLAB Functions:
thdclarkepidtunesim
π Expected Output & Metrics: Grid current THD < 2.8%, power factor > 0.998, split DC rail voltage imbalance < 0.5V, and 40% reduction in switch semiconductor voltage stress.
V_grid_rms = 230;
V_dc_total = 800;
P_out = 15e3;
fs = 50e3;
delta_I = 0.15 * (P_out / (3*V_grid_rms));
L_vienna = (V_dc_total/2) / (6 * fs * delta_I);
fprintf('Vienna Rectifier Boost Inductors: %.2f uH each phase\n', L_vienna*1e6);
Est. Duration: 2β3 Weeks
Request Custom Project →
18. Dynamic Voltage Restorer (DVR) for Grid Voltage Sag and Swell Mitigation
Intermediate
Toolbox: Simscape Electrical, Control System
Deliverables: Model .slx, Code .m, Report
π― Problem & Objective: Implement a series-connected Dynamic Voltage Restorer (DVR) with Synchronous Reference Frame (SRF d-q) control to protect sensitive industrial loads from severe grid voltage sags (up to 70%), swells, and phase unbalance within sub-cycle response times.
βοΈ Key MATLAB Functions:
parkclarkepower_analyzesim
π Expected Output & Metrics: Voltage injection response time < 2.5 ms (under 1/4th of 50Hz cycle), load voltage restoration to 1.0 p.u. ± 1%, and total injection energy optimization.
function [V_inj_a, V_inj_b, V_inj_c] = dvr_controller(Va, Vb, Vc, theta)
Valpha = (2/3) * (Va - 0.5*Vb - 0.5*Vc);
Vbeta = (2/3) * (sqrt(3)/2*Vb - sqrt(3)/2*Vc);
Vd = Valpha*cos(theta) + Vbeta*sin(theta);
Vq = -Valpha*sin(theta) + Vbeta*cos(theta);
Vd_ref = 325.2; Vq_ref = 0;
Vd_inj = Vd_ref - Vd;
Vq_inj = Vq_ref - Vq;
V_alpha_inj = Vd_inj*cos(theta) - Vq_inj*sin(theta);
V_beta_inj = Vd_inj*sin(theta) + Vq_inj*cos(theta);
V_inj_a = V_alpha_inj;
V_inj_b = -0.5*V_alpha_inj + (sqrt(3)/2)*V_beta_inj;
V_inj_c = -0.5*V_alpha_inj - (sqrt(3)/2)*V_beta_inj;
end
Est. Duration: 2β3 Weeks
Request Custom Project →