The codes in this consolidated repository are associated with three forthcoming texts,
Structural Renaissance (SR),
Renaissance Robotics (RR), and
Numerical Renaissance (NR),
in addition to various research papers, by Thomas Bewley.
SR, a modern first course in engineering analysis and design
,
is built around an introductory one-quarter presentation (typically in freshman/sophomore year) of statics,
and advocates two key notions:
Divide and conquer: that is, once a foundational subproblem (calculating trig functions, solving Ax=b completely, assembling the several equations of static equilibrium into Ax=b form, etc) is well understood,
those subproblems should be automated in computer code, so the engineer can then focus on the next larger problem,
ultimately leading to systems-level analysis, design optimization, and feedback control.
Recognize and exploit linearity: linear relationships are ubiquitous in engineering, but not always obvious;
identifying where certain relationships are linear, and the opportunities that this provides ()
SR is designed to be digested in a single quarter, year in college.
The RR and NR texts follow up on these core foundational ideas.
RR, which covers dynamics, signals & systems, circuits, and classical control theory, among other things,
is intended to be accessible by advanced undergraduates; the first several chapters of it, which discuss how CPUs & microcontrollers (MCUs), electronics boards, and motors work, are likely also accessible by STEM-oriented high school makers.
NR, which covers linear algebra, spectral methods, statistical representations, numerical simulation methods for ODEs & PDEs, derivative-based & derivative-free optimization, and state-space control & estimation theory, among other things, builds directly on the former, and is designed primarily for students in graduate school or beyond. Drafts of these two texts are maintained at the above two links; to expore further what they are about, please read their frontmatter.
The various pedagogical codes in the Renaissance Repository (all prefixed by RR_, and mostly written in Matlab/Octave though there are also a few codes in Fortran and C)
are organized in this repo by the individual chapters of these two texts that review them.
If you are interested in studying these texts and using their associated codes,
please clone this reposistory (available at https://github.com/tbewley/RR.git) to your computer(s) using, for example, GitHub Desktop, and fetch updates from its main branch
relatively often, as I currently update this repository multiple times a week.
To set your Matlab/Octave path in a way that will streamline your use of these codes,
please call RR_path_init.m from your startup.m file,
as outlined in sections A.4-A.5 of
Renaissance Robotics.
To suggest a bug fix, please submit a pull request.
All files in the the Renaissance Repository are Copyright 2024 by Thomas Bewley, and published under the BSD 3-Clause License.