Skip to content
Merged

Dev #79

Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 4 additions & 26 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,9 @@ date: "2024-12-17"
---

# Summary

Dynamic systems play a critical role across various fields such as robotics, aerospace, and control theory. While Python offers robust mathematical tools, it lacks a dedicated framework tailored for dynamic systems. **C4DYNAMICS** bridges this gap by introducing a Python-based platform designed for state-space modeling and analysis. The framework's modular architecture, with "state objects" at its core, simplifies the development of algorithms for sensors, filters, and detectors. This allows researchers, engineers, and students to effectively design, simulate, and analyze dynamic systems. By integrating state objects with a scientific library, **C4DYNAMICS** offers a scalable and efficient solution for dynamic systems modeling.

# Statement of Need


Modeling and simulation of dynamical systems are essential across robotics, aerospace, and control engineering. While Python provides powerful numerical libraries (e.g., NumPy, SciPy) and several domain-specific frameworks, none directly support low-level, state-space–based algorithm development.

**C4DYNAMICS** is designed for engineers who prefer code-based modeling and want a framework to explicitly define the variables encapsulated in the system’s state vector, and perform streamlined mathematical operations such as scalar multiplication, dot products, and vector addition/subtraction, and data operations such as storing states, retrieving histories, and plotting variables.
Expand All @@ -32,25 +29,15 @@ Modeling and simulation of dynamical systems are essential across robotics, aero
# Comparison with Existing Software
Existing tools generally fall into two categories:
1) Block-diagram frameworks (e.g., SimuPy [@Margolis2017simupy], BdSim [@NEVAY2020107200]) mimic Simulink and simplify model building through graphical interfaces, but they abstract away the state vector and limit direct mathematical manipulation.
2) High-level simulators (e.g., IR-Sim, RobotDART [@Chatzilygeroudis2024]) allow algorithm testing in predefined environments, but lack flexibility for core system modeling and algorithm design.
2) High-level simulators (e.g., [IR-Sim](https://ir-sim.readthedocs.io/en/stable/), RobotDART [@Chatzilygeroudis2024]) allow algorithm testing in predefined environments, but lack flexibility for core system modeling and algorithm design.

This leaves a gap for engineers and researchers who wish to work explicitly at the state-space level—defining variables, performing mathematical operations on them, and integrating with modern data-driven pipelines.

**C4DYNAMICS** fills this gap with a modular, Python-native framework for state-space modeling of dynamical systems. Built around explicit state representations and complemented by a scientific library of filters and sensor models, it enables reproducible modeling, testing, and optimization of dynamic systems within the scientific Python ecosystem.

\\

**C4DYNAMICS** differs from existing solutions in several ways:

- **Python-based**: Unlike MATLAB, **C4DYNAMICS** is open-source and leverages Python's ecosystem for accessibility and flexibility.
- **Modular Design**: Its architecture allows users to extend functionalities and adapt the framework for specific applications.
- **State Object**: A unique feature enabling seamless state management and mathematical operations, reducing complexity in algorithm development.
- **Integrated Scientific Library**: Provides built-in modules for sensors, filters, and detectors, streamlining the development of dynamic system models.

These features make **C4DYNAMICS** a superior choice for Python users who require robust dynamic systems modeling capabilities.

# Example

A simple pendulum with a point mass on a rigid massless rod of length = `1[m]`, swiniging under gravity of `9.8[m/s²].` with initial angle `θ = 50[°]` and angle rate `q = 0[°/s]`, integrated with `solve_ivp`
with a time step of `0.01[s]` for `5[s]`.

Expand Down Expand Up @@ -78,18 +65,9 @@ plt.show()
![](pendulum.png)


\nocite{1104873}

# References

---
bibliography: paper.bib
---


# Software Archive

The software is available at [GitHub](https://github.com/C4dynamics/C4dynamics)

---

# References
[@1104873]
bibliography: paper.bib
Loading