Skip to content
olof3 edited this page May 17, 2021 · 20 revisions

Various improvements:

  • ss should perhaps promote to Float64

  • Better print of delay systems (at least somewhat fixed now)

  • Better error messages, indicating incorrect dimensions etc.

  • Throw DimensionMismatch, etc, instead of just error. Possibly new error SampleTimeMismatch?

  • Use cis / expim for computing mappings to the unit circle.

  • Perhaps add a type RationalLtiSystem (RLtiSystem) or at least isrational

  • Should checking (approximate) equality of StateSpace etc. simply check that all the fields are equal? Or should the H_inf or H_2 norm of their difference be checked? Leaning towards checking the H_inf norm even if it is a bit more expensive. There is still a problem with DelayLtiSystems, but this is mostly relevant for tests where freqresp can be used.

  • Export lag and perhaps also some sort of second_order_system?

  • Should we have dedicated method for Base.:-(sys1::StateSpace, sys2::StateSpace), 5--10% faster for small systems.

  • More of the the methods for HeteroStateSpace and StateSpace could be the same.

  • HeteroStateSpace should perhaps rather be called StructuredStateSpace, although that is a bit long and SStateSpace seems like it would be static statespace.

  • impulse should be cleaned up after introduction of new type system, e.g., should perhaps not be a function input for the discrete case. Perhaps k is the best variable to denote discrete time. For example impulse(HeteroStateSpace(big.(1.0), big.(1), big.(1), 0, 1), 10) doesn't work.

  • damp looks suspicious, shouldn't transform poles?!

Potential new features:

Points for discussion

Input and output formats for freqresp and time responses

In many respects it would make more sense to have each column in the output correspond to one sample time (this is not the way things are now and it is not like this in MatLab). This is arguably the most logical approach and is consistent with the julia's column-major format and would make it possible to do C*x. Standard plotting functions plot columns as separate graphs which is a great downside of this approach. The considerations are the same as for the ordering of freqresp's output.

Misc

  • gangoffour -> gangof4, remove N and D in labels. No need for lines at 1 in N and D plots

  • Remove nyquist, rename bode to freqresp_polar

  • Problems with showing tick marks, axes on Bode plots, scaling of frequency axes, make sure that plots work

  • add logspace ?

  • Have reasonable choice of simulation time for time-delayed systems, e.g. stepplot(DemoSystems.fotd(τ=20))

  • Set number of points for plotting

  • Smarter algorithm for how to sample freqresp

  • Legends in every bodeplot pane?

  • "Bode plot from u(1)" for siso systems could be dropped, or there should at least be y(1) somwhere

  • How to scale phases plot

  • Creation of PI controllers

  • Simple pole placement for PI(D) controllers

  • Package PIDDesign

  • Fix general feedback function to work with DelaySystem

Introduce RationalLtiSystem

Rename DemoSystems to SystemLib, LtiSystems (in that package)

lag, pi, etc boorde vara lättare att komma åt

PRIO 2.5

  • Lite fler högkvalitativa exmpel

  • More of the the methods for HeteroStateSpace and StateSpace could be the same.

  • Tror att StructuredStateSpace hade gått hem hos fler än HeteroStateSpace. Det är strukturen man vill åt och som gör det lättare. Hetero låter mer som att det är många olika och att det blir svårare och rörigare. Tror att många reglerteknikar går igång på Structured