Categories in control systems software: toward a unified theory of programming & control
dc.contributor.advisor | Eklund, J. Mikael | |
dc.contributor.advisor | Milman, Ruth | |
dc.contributor.author | Teatro, Timothy A.V. | |
dc.date.accessioned | 2024-02-27T20:07:09Z | |
dc.date.available | 2024-02-27T20:07:09Z | |
dc.date.issued | 2023-12-01 | |
dc.degree.discipline | Electrical and Computer Engineering | |
dc.degree.level | Doctor of Philosophy (PhD) | |
dc.description.abstract | Category theory is applied to the design and modeling of control systems application software with emphasis on feedback control. The language of application is iso standard C++17, though the design is abstract and can be gainfully applied in any language expressive enough to embed domain specific languages for event stream processing with sufficient structure. The design is derived in a category, Cpp, of a subset of C++ programs where types are modelled as sets and programs/routines are modelled as functions. This gives a forgetful functor from Cpp to 𝕊𝗲𝘁, the category of sets which, in theory, facilitates broader compatibility with theories of dynamical systems in concrete categories. A library of abstract datatypes (struct templates) and natural transformations (parametrically polymorphic function templates) is developed to demonstrate that (1) Cpp carries a bicartesian closed structure and (2) this structure has representation as standard compliant code. The axioms of this structure are encoded as unit-tests. And from this structure we specialize “machines” in the sense of Goguen (or more generally, Arbib & Manes), which actualise in Cpp as Moore machines. These Moore machines are then used as a basic model for the I/S/O structure of a control program. Categorical Moore machines can be cast in terms of algebra and coalgebra which give natural mechanism to the input-driven evolution of internal state of the control programs, and infinite records of behaviour. The internal language of that model is consonant with sufficiently structured domain specific event-stream processing languages. The core examples and a case study use Rx, but FRP is a stated ideal and avenue for future work for modeling of interconnected and hybrid systems with computer controlled components. The architecture is applied in two examples: (1) a simulated spring-mass- damper system with PID-force control, where comparison is made to analytical results, and (2) NMPC path tracking of a mobile robot with obstacle avoidance through soft constraint. | en |
dc.description.sponsorship | University of Ontario Institute of Technology | en |
dc.identifier.uri | https://hdl.handle.net/10155/1754 | |
dc.language.iso | en | en |
dc.subject | Category theory | en |
dc.subject | Control systems software | en |
dc.subject | Functional programming | en |
dc.subject | Software engineering | en |
dc.subject | Coalgebra | en |
dc.title | Categories in control systems software: toward a unified theory of programming & control | en |
dc.type | Dissertation | en |
thesis.degree.discipline | Electrical and Computer Engineering | |
thesis.degree.grantor | University of Ontario Institute of Technology | |
thesis.degree.name | Doctor of Philosophy (PhD) |