Bạn chú ý những chỗ in đậm:
- Đây là PID số nên bạn phải có chu kỳ trích mẫu trong công thức.
- Tín hiệu ra của vòng điều chỉnh tốc độ được dùng làm setpoint cho vòng điều chỉnh dòng điện.
Code:
// Cho mach vong toc do:
// ham truyen PI trong s-plane: uOutvantoc = Kvantoc [1 + 1/(s*Tivantoc)] errorV
Tvantoc = 0.1; // sampletime = 100ms
errorV = Vref - Vcur;
uPvantoc = Kvantoc * errorV;
uIvantoc = uIvantoc_previous + ( ( Kvantoc * Tvantoc * errorV ) / Tivantoc );
uOutvantoc = uPvantoc + uIvantoc;
uIvantoc_previous = uIvantoc;
// Cho mach vong dong dien:
// ham truyen PI trong s-plane: uOutdong = Kdong [1 + 1/(s*Tidong)] errorD
Tdong = 0.01; // sampletime = 10ms
errorD = uOutdong - Dcur;
uPdong = Kdong * errorD;
uIdong = uIdong_previous + ( ( Kdong * Tdong * errorD ) / Tidong );
uOutdong = uPdong + uIdong;
uIdong_previous = uIdong;