Pertanyaan Singkat
Apakah ada cara umum untuk menangani anomali yang sangat besar (urutan besarnya) dalam wilayah kontrol yang seragam?
Latar Belakang
Saya sedang mengerjakan algoritma kontrol yang menggerakkan motor melintasi wilayah kontrol yang umumnya seragam. Dengan tanpa / pemuatan minimal, kontrol PID bekerja sangat baik (respon cepat, sedikit atau tidak ada overshoot). Masalah yang saya hadapi adalah biasanya ada setidaknya satu lokasi beban tinggi. Posisi ditentukan oleh pengguna selama instalasi, jadi tidak ada cara yang masuk akal bagi saya untuk mengetahui kapan / di mana mengharapkannya.
Ketika saya menyetel PID untuk menangani lokasi muatan tinggi, ini menyebabkan pucuk besar di area yang tidak dimuat (yang saya harapkan sepenuhnya). Sementara itu OK untuk perjalanan overshoot pertengahan, tidak ada berhenti keras mekanik di kandang. Kurangnya hardstop berarti bahwa overshoot yang signifikan dapat / tidak menyebabkan kelompok kontrol terputus dari motor (menghasilkan unit mati).
Hal-hal yang Saya Prototipe
- PID bersarang (sangat agresif ketika jauh dari target, konservatif saat dekat)
- Memperbaiki gain saat jauh, PID saat dekat
- PID konservatif (berfungsi tanpa beban) + kontrol eksternal yang mencari PID untuk berhenti dan menerapkan energi tambahan hingga: target tercapai atau laju perubahan cepat terdeteksi (yaitu meninggalkan area muatan tinggi)
Keterbatasan
- Perjalanan penuh ditentukan
- Hardstops tidak dapat ditambahkan (pada saat ini)
- Kesalahan kemungkinan tidak akan pernah hilang
- Beban tinggi dapat diperoleh dari perjalanan kurang dari 10% (yang berarti tidak ada "mulai berjalan")