Như bạn mtuankct đã trả lời, công thức PID cho vòng dòng điện và tốc độ là như nhau (thường là PI). Chỉ khác nhau ở thông số P và I của bộ điều khiển. Vòng điều khiển dòng yêu cầu tốc độ đáp ứng phải nhanh hơn vòng tốc độ nên chu kỳ trích mẫu sẽ phải nhỏ hơn. Tương tự nếu vòng ngoài cùng là điều chỉnh vị trí thì chu kỳ trích mẫu của vòng tốc độ cũng phải nhỏ hơn chu kỳ trích mẫu của vòng điều chỉnh vị trí.
Chu kỳ trích mẫu được chọn theo định lý Nyquist-Shannon (
http://en.wikipedia.org/wiki/Nyquist...mpling_theorem) thì tần số lấy mẫu được chọn > 2 lần bandwidth của hệ thống (tức là chu kỳ mẫu nhỏ hơn 2 lần):
- Bandwidth của vòng điều chỉnh dòng điện vào khoảng 10^6 rad/s (chu kỳ khoảng 6 micro giây) => chu kỳ lấy mẫu tầm 3 micro giây. Mô phỏng với chu kỳ lấy mẫu nhỏ như thế này thì oki những khi lập trình thực tế thì vòng điều khiển (real-time) với chu kỳ lấy mẫu nhỏ như thế này là không tưởng. Nên thực tế thường thực hiện lấy mẫu cỡ 0.1 mili giây (10kHz).
- Bandwidth của vòng điều chỉnh tốc độ vào khoảng 120-150 rad/s (20-25Hz) => tần số trích mẫu vào khoảng > 40-50Hz. Tuy nhiên thực tế thường chọn f của vòng điều chỉnh tốc độ vào khoảng 1kHz.
- Bandwidth của vòng điều chỉnh vị trí vào khoảng 30-40 rad/s (5-6Hz) => tần số trích mẫu vào khoảng > 10-12Hz. Tuy nhiên thực tế thường chọn f của vòng điều chỉnh vị trí vào khoảng 100Hz.
Thực hiện 3 tần số trích mẫu khác nhau trên cùng 1 hệ thống điều khiển real-time sẽ là một vấn đề. Cách đơn giản nhất là dùng tần số trích mẫu cơ bản = 10kHz, rồi dùng biến counter trong vòng lặp để giảm tần số trích mẫu xuống cho vòng tốc độ và vị trí. Ví dụ counter=10 sẽ được f=1kHz, counter=100 sẽ được f=100Hz.