Skip to content

Commit 460981f

Browse files
baggepinnenclaude
andcommitted
diskmargin: drop the delay-margin line from the Diskmargin show method
The printed delay margin was computed as ϕm/ω0 using the disk-margin critical frequency (the skewed-sensitivity peak). This is not the classical delay margin (which uses the gain crossover frequency) and, more importantly, is not a valid lower bound on the destabilizing delay: a delay's phase lag ωτ grows with frequency, so the binding frequency is wherever ϕm(ω)/ω is smallest, which is generally not ω0. Evaluating the ratio only at ω0 can therefore overstate the tolerable delay. Drop the misleading line rather than print a number that reads as a guarantee but isn't one. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent ce8094d commit 460981f

2 files changed

Lines changed: 1 addition & 9 deletions

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "RobustAndOptimalControl"
22
uuid = "21fd56a4-db03-40ee-82ee-a87907bee541"
33
authors = ["Fredrik Bagge Carlson", "Marcus Greiff"]
4-
version = "0.4.50"
4+
version = "0.4.52"
55

66
[deps]
77
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"

src/diskmargin.jl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,6 @@ function Base.show(io::IO, dm::Diskmargin)
6464
println(io, "Gain margins: [$(dm.γmin), $(dm.γmax)]")
6565
end
6666
println(io, "Phase margin: ", dm.ϕm)
67-
delaymarg = π/180 * dm.ϕm / dm.ω0
68-
print(io, "Delay margin: ", delaymarg, " s")
69-
if isdiscrete(dm.L)
70-
samples = delaymarg / dm.L.Ts
71-
println(io, ", ", isfinite(samples) ? floor(Int, samples) : samples, " samples")
72-
else
73-
println(io)
74-
end
7567
println(io, "Skew: ", dm.σ)
7668
println(io, "Worst-case perturbation: ", dm.f0)
7769
end

0 commit comments

Comments
 (0)