Comments (2)
@g-berthiaume Sampling period is only useful to make a correspondence between the continuous time version of your PID and the discrete time version.
If you remain only in discrete time, you don't really need a sampling period. But of course, the coefficients will be different since at the end your discrete time system must work with real sampled signals.
Said differently, you can imagine that dt is part of the definition of the constant.
So, for a given continuous constant K, you'll get different discrete values K' where K' is K/dt or K dt depending on the constant.
But for the CMSIS-DSP implementation, you only care about K'.
Also, the correspondence between continuous and discrete is not only about the sampling time but also how the derivative and integral are approximated.
I don't know what method is used by CMSIS-DSP for integration : forward Euler, backward, trapezoidal ...
I have not been able to derive above formula from Laplace version of the PID.
I'll need to spend more time on it to find what method was used and to improve the documentation.
The discrete PID may be more complex than the one provided by CMSIS-DSP. It depends on how the discrete approximation is computed from the continuous one.
from cmsis-dsp.
Thanks for your detailed answer. I now understand the K'
silent assumption.
Let me know if you find something.
Thanks
from cmsis-dsp.
Related Issues (20)
- CMSIS-DSP for Arm® Cortex®-A53 HOT 1
- Missing implementation for arm_fir_decimate_f64 HOT 1
- Element-wise division HOT 2
- Value range of arm_atan2_* HOT 3
- Implementation `*.c-files` not being copied correctly in STM32CubeMX - missing from .pdsc? HOT 7
- GCC compiler warning in arm_divide_q15() HOT 1
- GCC compiler errors with pendantic flag enabled HOT 4
- Not being able to keep tables out of compilation HOT 4
- arm_sqrt_q31 return value for input value 0 HOT 3
- CppCheck giving warning for arm_divide_q31 because of CWE 758 violation HOT 2
- ARMCM0.h not found HOT 1
- Redirect to DSP hardware HOT 1
- QR Decomposition seems to coverge very quickly. How to adjust parameters. HOT 2
- Encountering some issues with the latest DSP version on Keil HOT 2
- Add __WEAK attribute to DSP Functions HOT 3
- Singular Matrix Inversion HOT 1
- CMSIS-DSP fill flash with tables not in actual use HOT 8
- Python 3.12 support HOT 4
- Overflow Handling in arm_fir_q31 Function HOT 2
- FFT Neon support HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cmsis-dsp.