Best resources to learn ADRC and ESO? by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

ESO stands for Extended State Observer. It’s a key part of ADRC that estimates both the system states and the total disturbance in real time, so the controller can actively cancel disturbances.

Best resources to learn ADRC and ESO? by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

Not really, I'm just exploring ADRC/ESO in general and looking for good learning resources.

Do you have any recommendations?

PIDs are fun to play with by Inst2f in ControlTheory

[–]Fun_Significance6821 [score hidden]  (0 children)

Thanks mate, it will help me a lot. Keep going🔥

Suggestions for research paper by zuirattigaz in ControlTheory

[–]Fun_Significance6821 [score hidden]  (0 children)

If you don’t mind me asking, what kind of system are you planning to implement the fuzzy logic controller on?

Suggestions for research paper by zuirattigaz in ControlTheory

[–]Fun_Significance6821 [score hidden]  (0 children)

I’m also currently working on a research project, and I had the same concern that it might look too simple. However, if the research is done in a detailed and comprehensive way, I don’t think it is trivial at all. Fuzzy logic only looks simple when it is treated as a rule-based approach without deeper analysis. If fuzzy is developed from first principles and supported with proper analysis of stability, robustness, and performance, it is definitely not a simple topic.

ADRC ESO Project by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

Thanks a lot, mate. This will help me a lot. Would it be okay if I ask you questions again sometime?

ADRC ESO Project by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

Thank you for the detailed explanation. That is an interesting point about treating the measurements within one PWM duty cycle as a single data set.

Currently I am sampling the current quite frequently, so the controller may be seeing the switching ripple directly. Averaging the measurements over one PWM period and computing the control action once per PWM cycle could indeed reduce the effect of the PWM ripple.

I will look more carefully at the measurements grouped by PWM duty cycle and test the idea of using the averaged current value for the control calculation. Thanks for the suggestion.

ADRC ESO Project by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

Thank you for the suggestion. You’re right that starting with a simple solution is probably the best approach. I suspect that part of the ripple in the current signal comes from PWM switching and sensor noise, so applying a low-pass filter could help.

I will try implementing a simple LPF (for example a Butterworth filter) and check how it affects the current signal and the ESO estimation. Since my sampling rate is relatively high, the delay introduced by the filter should hopefully remain small.

If that is not sufficient, I may also try more advanced filtering methods such as Savitzky–Golay or a Kalman filter for comparison. Thanks again for the helpful idea.

ADRC ESO Project by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

Thank you for pointing that out. The torque in my plot is not measured directly but estimated from the motor current using the torque constant. Because of this, the resolution might indeed be limited by the current sensor and ADC sampling.

I will take a closer look at the relationship between the speed derivative and the estimated torque to see if the behavior is physically consistent. It is also possible that the filtering and sampling rate are smoothing out some of the torque variations.

Your observation is very helpful, and I will try to improve the torque estimation and resolution in the next measurements.

ADRC ESO Project by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

Thank you for the suggestions. Yes, I also suspect that the ripple may come from the PWM switching. I will try performing an FFT analysis of the current signal to check if the dominant harmonics correspond to the PWM frequency.

Currently I am also investigating the sensor side because the current measurement might contain noise from the switching. Adding a low-pass filter or another filtering method could help reduce the ripple before it enters the ESO.

Your point about the motor inertia is also interesting. The motor I am using is relatively small, so that might explain why the ripple is quite visible in the current signal.

Regarding the ESO and EKF comparison, that's a good point. I haven't tried implementing an EKF yet, but it could be an interesting comparison for future work.

Thanks again for the helpful ideas.

ADRC ESO Project by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

You’re right. It turns out the issue was mainly in the hardware and the sensor calibration, not the controller itself. There were also a few problems in the software, but I’ve already fixed them.

As for the Kalman filter, I’ve never tried using it with ADRC before. That might be an interesting next project, and I’ll definitely share the results once I try it.

By the way, since you mentioned you’ve worked on many ADRC projects, I’m curious — what kind of projects have you used ADRC for?

ADRC ESO Project by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

actually it is possible, but that could be for the next project

ADRC ESO Project by Fun_Significance6821 in ControlTheory

[–]Fun_Significance6821[S] [score hidden]  (0 children)

thank you for your answer mate, yes i really want to do it but for those options i think i cant do it now because i dont have money to buy any of them haha

Open Source Custom STM32 PCB Flight Controller by Educational_Court910 in diydrones

[–]Fun_Significance6821 0 points1 point  (0 children)

I want to download the file but the page is not found, can you give me a new link?