JuliaControl / JuliaControl/RobustAndOptimalControl.jl
zpk fails for a real valued uncertain system (with feedback)
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 67
- Forks
- 10
- Avg merge
- 1h 21m
- Merged PRs (30d)
- 3
Description
Slightly more involved than the basic example in RobustAndOptimalControl.jl. However, it seems to be a ControlSystemsBase issue.
Attempting to create an uncertain feedback system with a simple filtered PD controller.
using ControlSystemsBase, MonteCarloMeasurements
ω = 4..12
ζ = 0.054..0.084
G = tf([2*ζ/ω, 1], [1/ω^2, 2*ζ/ω, 1, 0, 0])
C = 1.0 * tf([1, 1], [0.1, 1])
G_closed = feedback(C*G, 1)
zpk(G_closed)
Fails with
ERROR: ArgumentError: zpk model should be real-valued, but poles do not come in conjugate pairs.
which further affects other functions such as bodeplot.
(orr) pkg> st ControlSystemsBase
Status `~/Documents/FEL/ORR/orr/Project.toml`
[aaaaaaaa] ControlSystemsBase v1.14.7
(orr) pkg> st MonteCarloMeasurements
Status `~/Documents/FEL/ORR/orr/Project.toml`
[0987c9cc] MonteCarloMeasurements v1.4.5
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the example with ControlSystemsBase and MonteCarloMeasurements, then trace the feedback(C*G, 1) result through zpk. Check how the real-valued uncertain system is represented and why the conjugate-pair validation fails; verify the fix with zpk and bodeplot on the reported example.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100