Skip to content

Commit 9766995

Browse files
committed
2010-11-05 Richard Murray <murray@sumatra.local>
* external/yottalab.py: New file containing Roberto Bucher's control library functions. OK to start pulling these into the main library, with attribution, but note that they use modifications of the default library => some rewrites will be needed. 2010-09-11 Richard Murray <murray@sumatra.local> * src/matlab.py (step): Added local step response function that uses lsim2() instead of signal.step (which can't handle integrators). This function may not be needed when new scipy step2() function is available. (impulse): Added local impulse response function that sets the initial condition based on the input matrix and then uses the lsim2() function to compute the response. * examples/test-response.py: Added test script for making sure that time repsonse functions are working as desired * src/matlab.py (lsim): Added local version of lsim that calls signal.lsim2 (actual ODE integrator)
1 parent 5e3e7ad commit 9766995

8 files changed

Lines changed: 954 additions & 18 deletions

File tree

ChangeLog

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
2010-11-05 Richard Murray <murray@sumatra.local>
2+
3+
* external/yottalab.py: New file containing Roberto Bucher's control
4+
library functions. OK to start pulling these into the main library,
5+
with attribution, but note that they use modifications of the
6+
default library => some rewrites will be needed.
7+
8+
2010-09-11 Richard Murray <murray@sumatra.local>
9+
10+
* src/matlab.py (step): Added local step response function that uses
11+
lsim2() instead of signal.step (which can't handle integrators).
12+
This function may not be needed when new scipy step2() function is
13+
available.
14+
(impulse): Added local impulse response function that sets the
15+
initial condition based on the input matrix and then uses the
16+
lsim2() function to compute the response.
17+
18+
* examples/test-response.py: Added test script for making sure that
19+
time repsonse functions are working as desired
20+
21+
* src/matlab.py (lsim): Added local version of lsim that calls
22+
signal.lsim2 (actual ODE integrator)
23+
24+
2010-09-06 Richard Murray <murray@sumatra.local>
25+
26+
* src/statefbk.py (ctrb): new function for testing controllability
27+
* src/statefbk.py (obsv): new function for testing observabiilty
28+
29+
2010-09-02 Richard Murray <murray@sumatra.local>
30+
31+
* src/statefbk.py (place): Use np.size() instead of len() for
32+
finding length of placed_eigs for better compatability with
33+
different python versions [courtesy of Roberto Bucher]
34+
35+
* src/delay.py (pade): New file for delay-based computations +
36+
initial implementation of pade() [courtesy Sawyer Fuller]
37+
38+
2010-06-17 Richard Murray <murray@sumatra.local>
39+
40+
* src/rlocus.py: changed num, den to nump, denp for clarity
41+
* src/rlocus.py: new file with Ryan Krauss's root locus code
42+
143
2010-06-06 Richard Murray <murray@sumatra.local>
244

345
* examples/pvtol-lqr.py: Added example to test out LQR routines

Pending

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,42 @@
11
List of Pending changes for control-python
22
RMM, 5 Sep 09
33

4+
This file contains brief notes on features that need to be added to
5+
the python control library. Mainly intended to keep track of "bigger
6+
picture" things that need to be done.
7+
8+
--> See src/matlab.py for a list of MATLAB functions that eventually need
9+
to be implemented.
10+
11+
OPEN BUGS
12+
* step() doesn't handle systems with a pole at the origin (use lsim2)
13+
14+
Transfer code from Roberto Bucher's yottalab to python-control
15+
acker - pole placement using Ackermann method
16+
c2d - contimous to discrete time conversion
17+
full_obs - full order observer
18+
red_obs - reduced order observer
19+
comp_form - state feedback controller+observer in compact form
20+
comp_form_i - state feedback controller+observer+integ in compact form
21+
dsimul - simulate discrete time systems
22+
dstep - step response (plot) of discrete time systems
23+
dimpulse - imoulse response (plot) of discrete time systems
24+
bb_step - step response (plot) of continous time systems
25+
sysctr - system+controller+observer+feedback
26+
care - Solve Riccati equation for contimous time systems
27+
dare - Solve Riccati equation for discrete time systems
28+
dlqr - discrete linear quadratic regulator
29+
minreal - minimal state space representation
30+
31+
Transfer code from Ryan Krauss's control.py to python-control
32+
* phase margin computations (as part of margin command)
33+
* step reponse
34+
* c2d, c2d_tustin (compare to Bucher version first)
35+
436
Examples and test cases
37+
* Put together unit tests for all functions (after deciding on framework)
538
* Figure out how to import 'figure' command properly (version issue?)
39+
* Figure out source of BadCoefficients warning messages (pvtol-lqr and others)
640

741
TransferFunction class fixes
842
* evalfr is not working (num, den stored as ndarrays, not poly1ds)
@@ -16,12 +50,11 @@ State space class fixes
1650
* Implement pzmap for state space systems
1751

1852
LTI updates
19-
* Try to get control.matlab.step semantics to be closer to MATLAB
53+
* Implement control.matlab.step (with semantics similar to MATLAB)
2054

2155
Basic functions to be added
2256
* margin - compute gain and phase margin (no plot)
2357
* lqr - compute optimal feedback gains (use SLICOT SB02ND.f)
24-
* lqe - compute optimal feedback gains (use SLICOT SB02ND.f)
2558
* lyap - solve Lyapunov equation (use SLICOT SB03MD.f)
2659
* See http://www.slicot.org/shared/libindex.html for list of functions
2760

0 commit comments

Comments
 (0)