From: Richard M. <mu...@cd...> - 2015-03-29 17:18:52
|
Branch: refs/heads/improve-docs Home: https://github.com/python-control/python-control Commit: f90798eaf2c57f307e99dd706398d6e396506959 https://github.com/python-control/python-control/commit/f90798eaf2c57f307e99dd706398d6e396506959 Author: Clancy Rowley <cwr...@pr...> Date: 2015-03-22 (Sun, 22 Mar 2015) Changed paths: M .gitignore Log Message: ----------- Ignore generated documentation Commit: d7d278ba6072fce1ef28402b7580ffa698424f76 https://github.com/python-control/python-control/commit/d7d278ba6072fce1ef28402b7580ffa698424f76 Author: Clancy Rowley <cwr...@pr...> Date: 2015-03-22 (Sun, 22 Mar 2015) Changed paths: M control/tests/timeresp_test.py M control/timeresp.py Log Message: ----------- Speed up forced_response (lsim) Fixes #48 The old algorithm called a general-purpose ODE integrator at each timestep, and this could be extremely slow (hundreds of times slower than scipy.signal.lsim). This new algorithm evaluates the matrix exponential once, and uses it to advance the simulation at each step. Importantly, the old algorithm would work for variable timesteps, but the new version assumes a fixed timestep (as does Matlab's lsim). This is the usual case, and it is the price one pays for increased speed. Note that this algorithm is the same idea as the algorithm used in scipy.signal.lsim, but the scipy version requires inverting the `A` matrix, and thus does not work if the system has a pole at the origin. The algorithm used here works even if there is a pole at the origin. This commit also adds a test for this case (the double integrator). Commit: 4f6165a0c8412d92a5f23931a6fb322fb6ff8a4f https://github.com/python-control/python-control/commit/4f6165a0c8412d92a5f23931a6fb322fb6ff8a4f Author: Richard Murray <mu...@cd...> Date: 2015-03-29 (Sun, 29 Mar 2015) Changed paths: M .gitignore M control/tests/timeresp_test.py M control/timeresp.py Log Message: ----------- Merge pull request #51 from cwrowley/lsim Speed up forced_response/lsim Compare: https://github.com/python-control/python-control/compare/5ac5100c8ba8...4f6165a0c841 |