diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..9d0bbd47e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Contributing + +Thank you for your interest in contributing! This document provides guidelines for +contributing to the project. If you have a problem to report or improvement to suggest +please open an issue or open a pull request. To do so, please follow the instructions below. + +## Reporting Issues + +- Use GitHub Issues for bug reports and feature requests +- Include a minimal reproducible example for bugs +- Specify Julia version and package environment details + +## Pull Requests + +- Fork the repository and create a new branch for your changes +- Write clear commit messages describing your changes +- Ensure your code follows the project's coding style (see below) +- Include tests for new features or bug fixes +- Update documentation if necessary + +## Code Style + +- Try to follow the [Julia style guide](https://docs.julialang.org/en/v1/manual/style-guide/) +- Use meaningful variable and function names +- Mathematical symbols and unicode characters as variable names are encouraged if they are + properly introduced in the documentation +- Add docstrings to public functions using the standard Julia format + +## Questions? + +Feel free to open an issue or discussion if you have questions about contributing! diff --git a/Project.toml b/Project.toml index a160f5632..2020742a3 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ModelPredictiveControl" uuid = "61f9bdb8-6ae4-484a-811f-bbf86720c31c" -version = "2.3.0" +version = "2.3.1" authors = ["Francis Gagnon"] [deps] diff --git a/docs/src/assets/control_topology.svg b/docs/src/assets/control_topology.svg new file mode 100644 index 000000000..027d25d03 --- /dev/null +++ b/docs/src/assets/control_topology.svg @@ -0,0 +1,466 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/public/predictive_control.md b/docs/src/public/predictive_control.md index 6cbcb8945..dd8d0df3b 100644 --- a/docs/src/public/predictive_control.md +++ b/docs/src/public/predictive_control.md @@ -1,4 +1,4 @@ -# Functions: Predictive Controllers +# [Functions: Predictive Controllers](@id func_predictive_control) ```@contents Pages = ["predictive_control.md"] @@ -60,6 +60,14 @@ any custom move blocking): in which ``\mathbf{ΔU}`` is a vector of `nu*Hc` elements. +The following block diagram depicts the main signals and their interconnections, in which +the gray parts are features that are less commonly used, thus disabled by default. + +```@raw html +

control_tropology

+``` + ## PredictiveController ```@docs diff --git a/docs/src/public/sim_model.md b/docs/src/public/sim_model.md index 3178e5833..3e2d49f24 100644 --- a/docs/src/public/sim_model.md +++ b/docs/src/public/sim_model.md @@ -15,7 +15,9 @@ method to manually modify them. The nomenclature in this page introduces the model manipulated input ``\mathbf{u}``, measured disturbances ``\mathbf{d}``, state ``\mathbf{x}`` and output ``\mathbf{y}``, four vectors of `nu`, `nd`, `nx` and `ny` elements, respectively. The ``\mathbf{s}`` - vector combines the elements of ``\mathbf{u}`` and ``\mathbf{d}``. + vector combines the elements of ``\mathbf{u}`` and ``\mathbf{d}``. See the page + [Function: Predictive Controllers](@ref func_predictive_control) for a block diagram + overview. ## SimModel diff --git a/docs/src/public/state_estim.md b/docs/src/public/state_estim.md index 07a28b0fd..3796fd1b6 100644 --- a/docs/src/public/state_estim.md +++ b/docs/src/public/state_estim.md @@ -31,7 +31,9 @@ solving the MPC problem with [`moveinput!`](@ref), for when the estimations are The nomenclature in this page introduces the estimated state ``\mathbf{x̂}`` and output ``\mathbf{ŷ}`` vectors of respectively `nx̂` and `ny` elements. Also, all the estimators support measured ``\mathbf{y^m}`` (`nym` elements) and unmeasured ``\mathbf{y^u}`` - (`nyu` elements) model output, where ``\mathbf{y}`` refers to all of them. + (`nyu` elements) model output, where ``\mathbf{y}`` refers to all of them. See the page + [Function: Predictive Controllers](@ref func_predictive_control) for a block diagram + overview. ## StateEstimator