Electrical Engineering Coursework · Motor Control

Cascaded PI Control and Field Weakening for a DC Motor in PSIM

2026-08-01 · updated 2026-08-01 · Hyeongrok Ryu

My study note on the H-bridge, nested current and speed loops, and switching-frequency comparison in an archived motor-control report.

Series
DC Motor Control · 1
Type / level
study-note · intermediate
Tools
PSIM, MATLAB, PI Control
01Start with the motor and H-bridge

A checkpoint in the study sequence for this note.

02Why I separated two loops

A checkpoint in the study sequence for this note.

03Reading the saved PI settings

A checkpoint in the study sequence for this note.

04Saturation and field weakening

A checkpoint in the study sequence for this note.

A compact concept path generated from this post's table of contents.

Start with the motor and H-bridge

I first reread the DC motor as coupled electrical and mechanical systems. The armature resistance and inductance sit with back EMF on the electrical side, while inertia, friction, and load torque form the mechanical side. The H-bridge supplies positive or negative average voltage to this plant. I start with a fixed-field operating point, where K_e and K_t can be treated as constants.

vₐ = Rₐiₐ + Lₐ(diₐ/dt) + Kₑω
J(dω/dt) = Kₜiₐ − Bω − Tₗ

Current creates torque, and speed feeds back through back EMF. This coupling explains why I should regulate current before asking the slower speed loop to command the plant.

Why I separated two loops

The outer speed PI turns speed error into a current reference. The inner current PI tracks that reference and produces a voltage or duty command. With a faster current loop, the speed loop can treat the inner path approximately as a responsive torque source.

Cascaded speed PI, current limiter, current PI, H-bridge, and DC motor
I redrew the block flow from the coursework report. The numbers are saved report settings, not fresh measurements.

I initially mixed up the two error signals. Writing units beside each block made the roles clear: the speed controller outputs current, while the current controller outputs voltage or duty.

Reading the saved PI settings

The archived report records Kp = 24.8, Ki ≈ 3898 for the speed PI and Kp = 62.832, Ki = 314.16 for the current PI. I treat these as settings tied to that motor model and target bandwidth, not universal optimal gains.

1. Check every motor parameter and unit.
2. Close and test the current loop first.
3. Confirm the current limiter.
4. Close the speed loop afterward.
5. Record saturation and anti-windup behavior.

Saturation and field weakening

Back EMF grows with speed. Eventually the DC bus cannot provide more voltage to maintain the requested current. In the separately excited DC motor used by the assignment, field weakening increases resistance in the field-current path, reducing field current and flux Φ.

Kₑ = kₑΦ, Kₜ = kₜΦ

Reducing flux lowers back EMF at a given speed and leaves room to run faster, but armature current must rise to preserve the same torque. The constant-K_e, constant-K_t model from the first section therefore does not apply unchanged in this region. I use Altair’s PSIM material only as general context for nested loops and operation above base speed; the archived assignment report is the source for this DC field-circuit implementation.

Switching-frequency comparison

The report records 2.28 N·m of torque ripple at 10 kHz and 0.38 N·m at 30 kHz. These are saved PSIM simulation values, not measurements from a physical shaft.

Saved torque-ripple comparison of 2.28 newton metres at 10 kilohertz and 0.38 newton metres at 30 kilohertz
I placed the two archived values on one scale. The comparison supports lower simulated ripple, not a claim about loss, temperature, or EMI.

A higher switching frequency can reduce the current change per switching period, but it can also increase switching loss, EMI, and computation demand. I therefore keep this as a one-metric simulation comparison.

Scope of this note

I have reread the archived model, gains, and plots and redrawn the control structure. I have not rerun the original PSIM circuit in a current environment or connected a physical motor. My next step is to rerun the inner-loop step response first and compare saturation with and without anti-windup under identical conditions.

Sources used

  • Motor-control coursework report — private-coursework-report; motor parameters, controller settings, and saved simulation comparison
  • Altair PSIM Motor Control Design Suite Tutorial — official-documentation; cascaded control and field-weakening context
Publication first-page preview