{"id":16028348,"url":"https://github.com/brendanburkhart/pidsim","last_synced_at":"2026-04-29T22:35:16.016Z","repository":{"id":134346740,"uuid":"186198346","full_name":"brendanburkhart/PIDSim","owner":"brendanburkhart","description":"Tool for simulating and visualizing the tuning of PID controllers","archived":false,"fork":false,"pushed_at":"2019-05-15T20:26:56.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-21T05:55:44.685Z","etag":null,"topics":["cpp","frc","pid-controller","qt","robotics","robotics-control"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brendanburkhart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-12T01:31:11.000Z","updated_at":"2019-05-15T20:24:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"bac8fde3-f9d8-446e-8b6d-1f06e7a55529","html_url":"https://github.com/brendanburkhart/PIDSim","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/brendanburkhart/PIDSim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanburkhart%2FPIDSim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanburkhart%2FPIDSim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanburkhart%2FPIDSim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanburkhart%2FPIDSim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brendanburkhart","download_url":"https://codeload.github.com/brendanburkhart/PIDSim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanburkhart%2FPIDSim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32447032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"ssl_error","status_checked_at":"2026-04-29T22:10:49.234Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","frc","pid-controller","qt","robotics","robotics-control"],"created_at":"2024-10-08T20:42:07.476Z","updated_at":"2026-04-29T22:35:16.001Z","avatar_url":"https://github.com/brendanburkhart.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PIDSim\nPIDSim is a tool for simulating and visualizing the tuning of PID controllers. It is intended as a teaching tool for new FRC robotics programmers, to allow them to familiarize themselves with PID controllers and gain an intuitive understanding of how they work and the process of tuning them.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/brendanburkhart/PIDSim/master/readme-resources/inputgraph.png\" height=\"250\" title=\"Input and Setpoint\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/brendanburkhart/PIDSim/master/readme-resources/outputgraph.png\" height=\"250\" title=\"Output Breakdown\"\u003e\n\u003c/p\u003e\n\nOn the left is an example screenshot of a real-time graph of the PID input and setpoint vs. time. On the right is a real-time breakdown of the PID output into its proportional, integral, and derivative components.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/brendanburkhart/PIDSim/master/readme-resources/linear.png\" height=\"250\" title=\"Linear PID Sim\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/brendanburkhart/PIDSim/master/readme-resources/angular.png\" height=\"250\" title=\"Angular PID Sim\"\u003e\n\u003c/p\u003e\n\nOn the left is a simulation of a PID-controlled brick. The brick is dragged down by gravity and affected by air resistance, and the PID controller outputs a force that acts on the brick.\nOn the right is a simulation of a continuous angular PID control model, for uses like swerve module angular control.\n\n---\n\nPIDSim is built using the Qt5 GUI toolkit from Qt (https://www.qt.io/) and is based in part on the work of the Qwt project (http://qwt.sf.net). To comply with the licensing requirements of Qt and Qwt, and to allow PIDSim to be distributed in a statically-linked form, PIDSim is licensed under the LGPL and all source code is available in this repository.\n\n[input]: https://github.com/brendanburkhart/PIDSim/raw/master/readme-resources/inputgraph.png \"Input Plot\"\n[output]: https://github.com/brendanburkhart/PIDSim/raw/master/readme-resources/outputgraph.png \"Output Plot\"\n[linear]: https://github.com/brendanburkhart/PIDSim/raw/master/readme-resources/linear.png \"Linear Model\"\n[angular]: https://github.com/brendanburkhart/PIDSim/raw/master/readme-resources/angular.png \"Angular Model\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrendanburkhart%2Fpidsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrendanburkhart%2Fpidsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrendanburkhart%2Fpidsim/lists"}