JuliaControl / JuliaControl/RobustAndOptimalControl.jl

zpk fails for a real valued uncertain system (with feedback)

Open
#118 1 comment 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.