Feedforward Controllers from Learned Dynamic Local Model Networks with Application to Excavator Assistance Functions
<|reference_start|>Feedforward Controllers from Learned Dynamic Local Model Networks with Application to Excavator Assistance Functions: Complicated first principles modelling and controller synthesis can be prohibitively slow and expensive for high-mix, low-volume products such as hydraulic excavators. Instead, in a data-driven approach, recorded trajectories from the real system can be used to train local model networks (LMNs), for which feedforward controllers are derived via feedback linearization. However, previous works required LMNs without zero dynamics for feedback linearization, which restricts the model structure and thus modelling capacity of LMNs. In this paper, we overcome this restriction by providing a criterion for when feedback linearization of LMNs with zero dynamics yields a valid controller. As a criterion we propose the bounded-input bounded-output stability of the resulting controller. In two additional contributions, we extend this approach to consider measured disturbance signals and multiple inputs and outputs. We illustrate the effectiveness of our contributions in a hydraulic excavator control application with hardware experiments. To this end, we train LMNs from recorded, noisy data and derive feedforward controllers used as part of a leveling assistance system on the excavator. In our experiments, incorporating disturbance signals and multiple inputs and outputs enhances tracking performance of the learned controller. A video of our experiments is available at https://youtu.be/lrrWBx2ASaE.<|reference_end|>
@article{greiser2024feedforward,
    title={Feedforward Controllers from Learned Dynamic Local Model Networks with
  Application to Excavator Assistance Functions},
    author={Leon Greiser, Ozan Demir, Benjamin Hartmann, Henrik Hose, Sebastian
  Trimpe},
    journal={arXiv preprint arXiv:2409.16875},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.16875},
    primaryClass={eess.SY cs.LG cs.SY}
}