Hi @Yusuph,
I see you're working on a solar water pumping system and running into some challenges. Let me help you work through these step by step. I've looked at your system parameters and code, and I think I can explain what's happening.
Your System Setup
First, let me confirm what you're working with:
- Solar Panel: 555W peak power
- Motor: 553W, 52V line-to-line RMS, 2850 rpm, three-phase induction motor
- Control: P&O MPPT algorithm successfully getting 555W from the panel
- Problems: 1. Boost converter output stays below 100V (you need it above 100V) 2. Motor speed goes negative when you apply constant load torque
Let me address each of your concerns in order.
Issue 1: "Output voltage of boost converter should be above 100V for the motor to receive full power but it is below 100V"
You're absolutely right that you need around 100V DC bus voltage, and here's why:
Your motor is rated for 52V line-to-line RMS AC. To create this AC voltage using a three-phase inverter, the DC bus voltage must be higher than the AC voltage you want to generate. According to the documentation on three-phase inverters, the minimum DC voltage should be equal to the peak line-to-line voltage [1].
The math: * Your motor needs: 52 Volts RMS (line-to-line) * Peak voltage: 52 multiplied by square root of 2 equals 73.5 Volts * For PWM inverter operation: DC bus approximately 52 multiplied by 1.414 divided by 0.866 equals 85 Volts minimum * With some safety margin: 100 Volts is appropriate
So your target of 100 Volts DC is correct! This will allow the inverter to reliably produce the 52 Volts RMS AC that your motor needs.
Why isn't your boost converter reaching 100V?
Looking at your MPPT code, I see you're using: DeltaD = 0.001; % Step size for MPPT d = max(min(d,0.9),0.1); % Duty cycle limits For a boost converter, the output voltage formula is: Output Voltage equals Input Voltage divided by (1 minus duty cycle)
To get 100 Volts output from approximately 52 Volts input: * Required duty cycle: duty cycle equals 1 minus (52 divided by 100) equals 0.48
So your duty cycle limits (0.1 to 0.9) are fine. The problem is likely that: 1. Your MPPT step size (0.001) might be too small, causing very slow convergence 2. The motor loading is too heavy (more on this below), preventing voltage buildup 3. The algorithm might be stuck in a local minimum
Suggested fix for boost converter:
function d = dutyCycle(Vpv, Ipv) persistent Vpre Ppre dpre if isempty(dpre) Vpre = 0; Ppre = 0; dpre = 0.70; % Start higher for boost operation end
% Parameters DeltaD = 0.005; % Increase step size for faster response Vdc_target = 100; % Add voltage target
% Calculate current power Ppv = Vpv * Ipv;
if (Ppv >= Ppre)
if (Vpv > Vpre)
d = dpre - DeltaD;
else
d = dpre + DeltaD;
end
else
if (Vpv > Vpre)
d = dpre + DeltaD;
else
d = dpre - DeltaD;
end
end
% Limit duty cycle d = max(min(d, 0.92), 0.1);
% Update persistent variables Vpre = Vpv; Ppre = Ppv; dpre = d; end
Issue 2: "I am confused on how to set Load torque to Induction motor block in simulink as when i set torque to constant value and start simulation, speed of motor becomes negative"
This is a very common issue, and it's not your fault - it's about understanding how the motor block works!
According to the Asynchronous Machine block documentation, "*The mode of operation is dictated by the sign of mechanical torque: If Tm is positive, the machine acts as a motor. If Tm is negative, the machine acts as a generator*" [2].
So positive torque means motor mode, which is correct. But here's the key problem:
When your motor starts from rest (slip = 1), it has limited starting torque. If you apply a constant load torque that is equal to or greater than the motor's starting torque, the motor cannot overcome it and will stall or even run backwards. The documentation specifically states: "*At slip = 1 (speed = 0), the load torque should be smaller than the starting torque of the induction machine so that it accelerates and attains a positive speed*" [3].
Your motor parameters: * Rated power: 553 Watts * Rated speed: 2850 rpm (revolutions per minute) equals 298.45 radians per second * Rated torque: 553 Watts divided by 298.45 radians per second equals 1.85 Newton-meters
If you're applying a constant torque of 1.85 Newton-meters (or anything close to it), the motor cannot start!
The real problem: You're using a constant torque, but water pumps don't work that way!
Water pumps have a quadratic torque-speed characteristic. This means: * At zero speed (startup): Torque ≈ 0 (almost no resistance) * As speed increases: Torque increases with the square of speed * At rated speed: Torque = rated torque
The torque equation for a centrifugal pump is: Load Torque equals Rated Torque multiplied by (Current Speed divided by Rated Speed) squared
Why this matters: * When motor starts (speed equals 0): Load Torque equals 0, so motor can easily accelerate * As motor speeds up: Load increases gradually * At rated speed: Full load torque
Complete solution for the load torque: In Simulink, replace your constant torque block with a MATLAB Function block containing:
function Tm = pumpLoadTorque(omega) % Motor rated parameters P_rated = 553; % Watts omega_rated = 2850 * 2*pi/60; % Convert rpm to rad/s = 298.45 rad/s T_rated = P_rated / omega_rated; % 1.85 N·m
% Pump torque characteristic (quadratic with speed)
if omega <= 0
Tm = 0; % No load at zero or negative speed
else
% Quadratic relationship: T ∝ ω²
Tm = T_rated * (omega / omega_rated)^2;
end
endConnect this function: * Input: Motor speed (omega, measured in radians per second) from the Asynchronous Machine block * Output: Tm (load torque, measured in Newton-meters) back to the Asynchronous Machine block
Why Your Two Problems Are Connected
Here's what's likely happening in your simulation: 1. Motor tries to start with constant high torque 2. Motor cannot overcome the load → stalls or runs backward 3. Motor draws excessive/abnormal current 4. This heavy current loading prevents boost converter from building voltage 5. Low voltage further reduces motor torque capability 6. It's a vicious cycle!
Once you fix the load torque model to use the pump characteristic, the motor will: * Start easily (low torque at low speed) * Accelerate smoothly * Reach rated speed with proper loading * Draw normal current * Allow boost converter to maintain 100V DC bus
Summary of Solutions
For the boost converter voltage issue: 1. Increase MPPT step size from 0.001 to 0.005 for faster convergence 2. Consider starting duty cycle higher (0.70 instead of 0.67) 3. Monitor the duty cycle during simulation to see if it reaches ~0.48-0.50
For the negative motor speed issue: 1. Remove constant torque input 2. Replace with pump torque characteristic: Torque equals Rated Torque multiplied by (speed divided by rated speed) squared 3. This ensures zero torque at startup, allowing motor to accelerate
Test procedure: 1. First fix the load torque model 2. Run simulation and verify motor reaches positive speed (should reach approximately 2850 rpm) 3. Then check if boost converter voltage reaches 100 Volts 4. If voltage is still low, tune MPPT parameters
References
[1] MathWorks Documentation: "Minimum DC voltage should be equal to the maximum line-to-line voltage of the grid" - Three-Phase Inverter Design Guidelines [2] MathWorks Asynchronous Machine Block Documentation: "The mode of operation is dictated by the sign of mechanical torque: If Tm is positive, the machine acts as a motor" [3] MathWorks Forum Answer: "At slip=1 (speed = 0), the load torque should be smaller than the starting torque of the induction machine"
Hope this helps! Once you fix the pump torque characteristic, I think you'll see both problems resolve.
