Skip to content

Commit

Permalink
build based on 337265e
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Dec 10, 2024
1 parent 5c474b3 commit 6158015
Show file tree
Hide file tree
Showing 118 changed files with 7,061 additions and 7,051 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-28T06:28:35","documenter_version":"1.8.0"}}
{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2024-12-10T08:41:41","documenter_version":"1.8.0"}}
50 changes: 25 additions & 25 deletions dev/api/index.html

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions dev/examples/ballandbeam/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
d = iddata(y, u, 0.1)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">InputOutput data of length 1000, 1 outputs, 1 inputs, Ts = 0.1</code></pre><p>The input consists of the beam angle and the output is the position of the ball on the beam. This process is unstable (indeed, any student who has ever tried to control this process is familiar with the very recognizable sound of a nickel ball hitting the floor).</p><p>Before we estimate any model, we inspect the data and the coherence function</p><pre><code class="language-julia hljs">plot(
plot(d),
coherenceplot(d),
)</code></pre><img src="a3972630.svg" alt="Example block output"/><p>The coherence is low for very low and high frequencies. Since the process is unstable, the data is collected in closed loop, and the input does not contain much DC energy. We thus expect to have difficulties recovering the DC properties of the model.</p><p>Since the data is collected in closed loop, we use an identification method that is unbiased in the presence of feedback. We&#39;ll go with the prediction-error method (PEM). Since the process is unstable, we tell the identification routine that we accept an unstable model by saying <code>stable=false</code>. If we do not do this, <a href="../../ss/#ControlSystemIdentification.newpem"><code>newpem</code></a> will try to stabilize an estimated unstable model. </p><p>We also split the data in half, and use the first half for estimation and the second for validation.</p><pre><code class="language-julia hljs">dtrain = d[1:end÷2]
)</code></pre><img src="1d7ce37f.svg" alt="Example block output"/><p>The coherence is low for very low and high frequencies. Since the process is unstable, the data is collected in closed loop, and the input does not contain much DC energy. We thus expect to have difficulties recovering the DC properties of the model.</p><p>Since the data is collected in closed loop, we use an identification method that is unbiased in the presence of feedback. We&#39;ll go with the prediction-error method (PEM). Since the process is unstable, we tell the identification routine that we accept an unstable model by saying <code>stable=false</code>. If we do not do this, <a href="../../ss/#ControlSystemIdentification.newpem"><code>newpem</code></a> will try to stabilize an estimated unstable model. </p><p>We also split the data in half, and use the first half for estimation and the second for validation.</p><pre><code class="language-julia hljs">dtrain = d[1:end÷2]
dval = d[end÷2:end]

# A model of order 2-3 is reasonable,
model,_ = newpem(dtrain, 3, stable=false)

predplot(model, dval, h=1)
predplot!(model, dval, h=10, ploty=false)
predplot!(model, dval, h=20, ploty=false)</code></pre><img src="b1c8a875.svg" alt="Example block output"/><p>The figures above show the result of predicting <span>$h={1, 10, 20}$</span> steps into the future. Since the process is unstable, simulation is unstable and not feasible,<sup class="footnote-reference"><a id="citeref-1" href="#footnote-1">[1]</a></sup> and already 20 steps prediction shows tendencies towards being unstable.</p><p>We can visualize the estimated models in the frequency domain as well. We show both the model estimated using PEM and a nonparametric estimate using a Fourier-based method (<a href="../../freq/#ControlSystemIdentification.tfest"><code>tfest</code></a>), this method estimates a noise model as well.</p><pre><code class="language-julia hljs">w = exp10.(LinRange(-1.5, log10(pi/d.Ts), 200))
predplot!(model, dval, h=20, ploty=false)</code></pre><img src="921d9db4.svg" alt="Example block output"/><p>The figures above show the result of predicting <span>$h={1, 10, 20}$</span> steps into the future. Since the process is unstable, simulation is unstable and not feasible,<sup class="footnote-reference"><a id="citeref-1" href="#footnote-1">[1]</a></sup> and already 20 steps prediction shows tendencies towards being unstable.</p><p>We can visualize the estimated models in the frequency domain as well. We show both the model estimated using PEM and a nonparametric estimate using a Fourier-based method (<a href="../../freq/#ControlSystemIdentification.tfest"><code>tfest</code></a>), this method estimates a noise model as well.</p><pre><code class="language-julia hljs">w = exp10.(LinRange(-1.5, log10(pi/d.Ts), 200))
bodeplot(model.sys, w, lab=&quot;PEM&quot;, plotphase=false)
plot!(tfest(d))</code></pre><img src="c3f5f591.svg" alt="Example block output"/><p>It looks like the two models disagree for low frequencies, which is expected after the discussion above.</p><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-1"><a class="tag is-link" href="#citeref-1">1</a>To learn more, see <a href="../unstable_systems/#Identification-of-unstable-systems">Identification of unstable systems</a></li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../delayest/">« Delay estimation</a><a class="docs-footer-nextpage" href="../flexible_robot/">Flexible robot arm »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Thursday 28 November 2024 06:28">Thursday 28 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
plot!(tfest(d))</code></pre><img src="169dc58b.svg" alt="Example block output"/><p>It looks like the two models disagree for low frequencies, which is expected after the discussion above.</p><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-1"><a class="tag is-link" href="#citeref-1">1</a>To learn more, see <a href="../unstable_systems/#Identification-of-unstable-systems">Identification of unstable systems</a></li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../delayest/">« Delay estimation</a><a class="docs-footer-nextpage" href="../flexible_robot/">Flexible robot arm »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Tuesday 10 December 2024 08:41">Tuesday 10 December 2024</span>. Using Julia version 1.11.2.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
102 changes: 102 additions & 0 deletions dev/examples/closed_loop_id/0e40efbf.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
102 changes: 0 additions & 102 deletions dev/examples/closed_loop_id/1d894938.svg

This file was deleted.

104 changes: 0 additions & 104 deletions dev/examples/closed_loop_id/29f8677e.svg

This file was deleted.

Loading

0 comments on commit 6158015

Please sign in to comment.