{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/learning-control-oriented-dynamical-structure","title":"Learning Control-Oriented Dynamical Structure from Data","arxiv_id":"2302.02529","date":"2023-02-06","proceeding":null,"authors":["Spencer M. Richards","Jean-Jacques Slotine","Navid Azizan","Marco Pavone"],"abstract":"Even for known nonlinear dynamical systems, feedback controller synthesis is a difficult problem that often requires leveraging the particular structure of the dynamics to induce a stable closed-loop system. For general nonlinear models, including those fit to data, there may not be enough known structure to reliably synthesize a stabilizing feedback controller. In this paper, we discuss a state-dependent nonlinear tracking controller formulation based on a state-dependent Riccati equation for general nonlinear control-affine systems. This formulation depends on a nonlinear factorization of the system of vector fields defining the control-affine dynamics, which always exists under mild smoothness assumptions. We propose a method for learning this factorization from a finite set of data. On a variety of simulated nonlinear dynamical systems, we empirically demonstrate the efficacy of learned versions of this controller in stable trajectory tracking. Alongside our learning method, we evaluate recent ideas in jointly learning a controller and stabilizability certificate for known dynamical systems; we show experimentally that such methods can be frail in comparison.","url_abs":"https://arxiv.org/abs/2302.02529v2","url_pdf":"https://arxiv.org/pdf/2302.02529v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"learning-control-oriented-dynamical-structure","repo_url":"https://github.com/stanfordasl/learning-control-oriented-structure","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.02529","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.02529"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/stanfordasl/learning-control-oriented-structure","reach":null}],"summary":{"ran_honours":1,"unverified":4},"by_repo_kind":{"official":{"samples":5,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"4b2ceca977c41a62","entry":"broadcast_to_square_matrix","repo":"stanfordasl/learning-control-oriented-structure","repo_kind":"official","path":"utils/dynamics_jax.py","file_url":"https://github.com/stanfordasl/learning-control-oriented-structure/blob/HEAD/utils/dynamics_jax.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4b2ceca977c41a62"}},{"code_sha256_prefix":"750caf36ce9e2bc0","entry":"ControlAffineDynamics","repo":"stanfordasl/learning-control-oriented-structure","repo_kind":"official","path":"utils/dynamics_jax.py","file_url":"https://github.com/stanfordasl/learning-control-oriented-structure/blob/HEAD/utils/dynamics_jax.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"750caf36ce9e2bc0"}},{"code_sha256_prefix":"acf7eeaa441f23ec","entry":"Dynamics","repo":"stanfordasl/learning-control-oriented-structure","repo_kind":"official","path":"utils/dynamics_jax.py","file_url":"https://github.com/stanfordasl/learning-control-oriented-structure/blob/HEAD/utils/dynamics_jax.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"acf7eeaa441f23ec"}},{"code_sha256_prefix":"3fd0080a7fd1da0c","entry":"SDCDynamics","repo":"stanfordasl/learning-control-oriented-structure","repo_kind":"official","path":"utils/dynamics_jax.py","file_url":"https://github.com/stanfordasl/learning-control-oriented-structure/blob/HEAD/utils/dynamics_jax.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3fd0080a7fd1da0c"}},{"code_sha256_prefix":"5f08fc88597c912b","entry":"solve_care","repo":"stanfordasl/learning-control-oriented-structure","repo_kind":"official","path":"utils/dynamics_jax.py","file_url":"https://github.com/stanfordasl/learning-control-oriented-structure/blob/HEAD/utils/dynamics_jax.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5f08fc88597c912b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}