digital-brain/public/paper/bibel92_guidel_h/index.html

353 lines
16 KiB
HTML
Raw Normal View History

2020-06-03 22:43:54 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Guidelines for the selection of weighting functions for h-infinity control - My digital brain</title>
<meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta name="theme-color" content="#f8f5ec" />
<meta name="msapplication-navbutton-color" content="#f8f5ec">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="#f8f5ec">
<meta name="author" content="
&mdash;
Thomas Dehaeze
" /><meta name="description" content="Tags H Infinity Control Reference (Bibel &amp;amp; Malyevac, 1992) Author(s) Bibel, J. E., &amp;amp; Malyevac, D. S. Year 1992 Properties of feedback control
Figure 1: Control System Diagram
From the figure 1, we have:
\begin{align*} y(s) &amp;amp;= T(s) r(s) &#43; S(s) d(s) - T(s) n(s)\\\
e(s) &amp;amp;= S(s) r(s) - S(s) d(s) - S(s) n(s)\\\
u(s) &amp;amp;= S(s)K(s) r(s) - S(s)K(s) d(s) - S(s)K(s) n(s) \end{align*}" />
<link rel="canonical" href="/paper/bibel92_guidel_h/" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link href="/sass/main.min.47a894bd6354cc46903f62433747958dc936e1c95c28a76ac80319bca9708ed1.css" rel="stylesheet">
</head>
<body>
<div id="mobile-navbar" class="mobile-navbar">
<div class="mobile-header-logo">
<a href="/" class="logo">Digital Brain</a>
</div>
<div class="mobile-navbar-icon">
<span></span>
<span></span>
<span></span>
</div>
</div>
<nav id="mobile-menu" class="mobile-menu slideout-menu">
<ul class="mobile-menu-list">
<a href="/">
<li class="mobile-menu-item">Home</li>
</a><a href="/zettels/">
<li class="mobile-menu-item">Zettels</li>
</a><a href="/book/">
<li class="mobile-menu-item">Books</li>
</a><a href="/paper/">
<li class="mobile-menu-item">Papers</li>
</a><a href="/search/">
<li class="mobile-menu-item">Search</li>
</a>
</ul>
</nav>
<div class="container" id="mobile-panel">
<header id="header" class="header">
<div class="logo-wrapper">
<a href="/" class="logo">Digital Brain</a>
</div>
<nav class="site-navbar">
<ul id="menu" class="menu">
<li class="menu-item">
<a class="menu-item-link" href="/">Home</a>
</li><li class="menu-item">
<a class="menu-item-link" href="/zettels/">Zettels</a>
</li><li class="menu-item">
<a class="menu-item-link" href="/book/">Books</a>
</li><li class="menu-item">
<a class="menu-item-link" href="/paper/">Papers</a>
</li><li class="menu-item">
<a class="menu-item-link" href="/search/">Search</a>
</li>
</ul>
</nav>
</header>
<main id="main" class="main">
<div class="content-wrapper">
<div id="content" class="content">
<article class="post">
<header class="post-header">
<h1 class="post-title">Guidelines for the selection of weighting functions for h-infinity control</h1>
</header>
<div class="post-toc" id="post-toc">
<h2 class="post-toc-title">Contents</h2>
<div class="post-toc-content">
<nav id="TableOfContents">
<ul>
<li><a href="#properties-of-feedback-control">Properties of feedback control</a></li>
<li><a href="#siso-tradeoff">SISO tradeoff</a></li>
<li><a href="#h-infty--and-weighting-functions">\(H_\infty\) and weighting functions</a></li>
<li><a href="#lower-linear-fractional-transformation">Lower Linear Fractional Transformation</a></li>
<li><a href="#weights-for-inputs-outputs-signals">Weights for inputs/outputs signals</a></li>
<li><a href="#general-guidelines-for-weight-selection--w-s">General Guidelines for Weight Selection: \(W_S\)</a></li>
<li><a href="#general-guidelines-for-weight-selection--w-t">General Guidelines for Weight Selection: \(W_T\)</a></li>
<li><a href="#unmodeled-dynamics-weighting-function">Unmodeled dynamics weighting function</a></li>
<li><a href="#inputs-and-output-weighting-function">Inputs and Output weighting function</a></li>
<li><a href="#order-of-the-weighting-functions">Order of the weighting functions</a></li>
</ul>
</nav>
</div>
</div>
<div class="post-content">
<dl>
<dt>Tags</dt>
<dd><a href="/zettels/h_infinity_control/">H Infinity Control</a></dd>
<dt>Reference</dt>
<dd><sup id="5b41da575e27e6e86f1a1410a0170836"><a href="#bibel92_guidel_h" title="Bibel \&amp; Malyevac, Guidelines for the selection of weighting functions for H-infinity control, NAVAL SURFACE WARFARE CENTER DAHLGREN DIV VA, (1992).">(Bibel &amp; Malyevac, 1992)</a></sup></dd>
<dt>Author(s)</dt>
<dd>Bibel, J. E., &amp; Malyevac, D. S.</dd>
<dt>Year</dt>
<dd>1992</dd>
</dl>
<h2 id="properties-of-feedback-control">Properties of feedback control</h2>
<p><a id="org82bead2"></a></p>
<figure>
<img src="/ox-hugo/bibel92_control_diag.png"
alt="Figure 1: Control System Diagram"/> <figcaption>
<p>Figure 1: Control System Diagram</p>
</figcaption>
</figure>
<p>From the figure <a href="#org82bead2">1</a>, we have:</p>
<p>\begin{align*}
y(s) &amp;= T(s) r(s) + S(s) d(s) - T(s) n(s)\\\<br>
e(s) &amp;= S(s) r(s) - S(s) d(s) - S(s) n(s)\\\<br>
u(s) &amp;= S(s)K(s) r(s) - S(s)K(s) d(s) - S(s)K(s) n(s)
\end{align*}</p>
<p>With the following definitions</p>
<ul>
<li>\(L(s) = G(s)K(s)\) is the <strong>loop transfer matrix</strong></li>
<li>\(S(s) = [I+G(s)K(s)]^{-1}\) is the <strong>Sensitivity</strong> function matrix</li>
<li>\(T(s) = [I+G(s)K(s)]^{-1}G(s)K(s)\) is the <strong>Transmissibility</strong> function matrix</li>
</ul>
<div class="cbox">
<div></div>
<p>\[ S(s) + T(s) = 1 \]</p>
</div>
<div class="cbox">
<div></div>
<ul>
<li><strong>Command following</strong>: \(S=0\) and \(T=1\) =&gt; large gains</li>
<li><strong>Disturbance rejection</strong>: \(S=0\) =&gt; large gains</li>
<li><strong>Sensor noise attenuation</strong>: \(T\) small where the noise is concentrated</li>
<li><strong>Control Sensitivity minimization</strong>: \(K S\) small</li>
<li><strong>Robustness to modeling errors</strong>: \(T\) small in the frequency range of the expected model undertainties</li>
</ul>
</div>
<h2 id="siso-tradeoff">SISO tradeoff</h2>
<p>We want \(S\) small for command following and disturbance rejection.
We want \(T\) small to remain insensitive to sensor noise and modeling errors and to reduce control sensitivity.</p>
<p>However we cannot keep both \(S\) and \(T\) small as \(S(s)+T(s)=1\).</p>
<p>We must determine some <strong>tradeoff</strong> between the sensitivity and the complementary sensitivity functions.</p>
<p>Usually, reference signals and disturbances occur at low frequencies, while noise and modeling errors are concentrated at high frequencies. The tradeoff, in a SISO sense, is to make \(|S(j\omega)|\) small as low frequencies and \(|T(j\omega)|\) small at high frequencies.</p>
<h2 id="h-infty--and-weighting-functions">\(H_\infty\) and weighting functions</h2>
<div class="cbox">
<div></div>
<p>\(\mathcal{H}_\infty\) control is a design technique with a state-space computation solution that utilizes frequency-dependent weighting functions to tune the controller&rsquo;s performance and robustness characteristics.</p>
</div>
<p><a id="org71ea720"></a></p>
<figure>
<img src="/ox-hugo/bibel92_general_plant.png"
alt="Figure 2: \(\mathcal{H}_\infty\) control framework"/> <figcaption>
<p>Figure 2: \(\mathcal{H}_\infty\) control framework</p>
</figcaption>
</figure>
<p>New design framework (figure <a href="#org71ea720">2</a>): \(P(s)\) is the <strong>generalized plant</strong> transfer function matrix:</p>
<ul>
<li>\(w\): exogenous inputs</li>
<li>\(z\): regulated performance output</li>
<li>\(u\): control inputs</li>
<li>\(y\): measured output variables</li>
</ul>
<p>The plant \(P\) has two inputs and two outputs, it can be decomposed into four sub-transfer function matrices:
\[P = \begin{bmatrix}P_{11} &amp; P_{12} \ P_{21} &amp; P_{22} \end{bmatrix}\]</p>
<h2 id="lower-linear-fractional-transformation">Lower Linear Fractional Transformation</h2>
<p>The transformation from the input \(w\) to the output \(z\), \(T_{zw}\) is called the <strong>Lower Linear Fractional Transformation</strong> \(F_l (P, K)\).</p>
<div class="cbox">
<div></div>
<p>\[T_{zw} = F_l (P, K) = P_{11} + P_{12}K (I-P_{22})^{-1} P_{21}\]</p>
</div>
<p>The \(H_\infty\) control problem is to find a controller that minimizes \(\| T_{zw} \|_\infty\) over the space of all realizable controllers \(K(s)\) that stabilize the closed-loop system.</p>
<h2 id="weights-for-inputs-outputs-signals">Weights for inputs/outputs signals</h2>
<p>Since \(S\) and \(T\) cannot be minimized together at all frequency, <strong>weights are introduced to shape the solutions</strong>. Not only can \(S\) and \(T\) be weighted, but other regulated performance variables and inputs (figure <a href="#org549c59f">3</a>).</p>
<p><a id="org549c59f"></a></p>
<figure>
<img src="/ox-hugo/bibel92_hinf_weights.png"
alt="Figure 3: Input and Output weights in \(\mathcal{H}_\infty\) framework"/> <figcaption>
<p>Figure 3: Input and Output weights in \(\mathcal{H}_\infty\) framework</p>
</figcaption>
</figure>
<p>The weights on the input and output variables are selected to reflect the spatial and <strong>frequency dependence</strong> of the respective signals and performance specifications.</p>
<p>These inputs and output weighting functions are defined as rational, stable and <strong>minimum-phase transfer function</strong> (no poles or zero in the right half plane).</p>
<h2 id="general-guidelines-for-weight-selection--w-s">General Guidelines for Weight Selection: \(W_S\)</h2>
<p>\(W_S\) is selected to reflect the desired <strong>performance characteristics</strong>.
The sensitivity function \(S\) should have low gain at low frequency for good tracking performance and high gain at high frequencies to limit overshoot.
We have to select \(W_S\) such that \({W_S}^-1\) reflects the desired shape of \(S\).</p>
<div class="cbox">
<div></div>
<ul>
<li><strong>Low frequency gain</strong>: set to the inverse of the desired steady state tracking error</li>
<li><strong>High frequency gain</strong>: set to limit overshoot (\(0.1\) to \(0.5\) is a good compromise between overshoot and response speed)</li>
<li><strong>Crossover frequency</strong>: chosen to limit the maximum closed-loop time constant (\(\omega_c \approx 1/\tau\))</li>
</ul>
</div>
<h2 id="general-guidelines-for-weight-selection--w-t">General Guidelines for Weight Selection: \(W_T\)</h2>
<p>We want \(T\) near unity for good tracking of reference and near zero for noise suppresion.</p>
<div class="cbox">
<div></div>
<p>A high pass weight is usualy used on \(T\) because the noise energy is mostly concentrated at high frequencies. It should have the following characteristics:</p>
<ul>
<li>The <strong>crossover frequency</strong> is chosen to <strong>limit the closed-loop bandwidth</strong></li>
<li>The <strong>high frequency gain</strong> is set high to proide <strong>sensor noise rejection</strong> and high frequency gain attenuation</li>
</ul>
</div>
<p>When using both \(W_S\) and \(W_T\), it is important to make sure that the magnitude of theise weights at the crossover frequency is less that one to not violate \(S+T=1\).</p>
<h2 id="unmodeled-dynamics-weighting-function">Unmodeled dynamics weighting function</h2>
<p>Another method of limiting the controller bandwidth and providing high frequency gain attenuation is to use a high pass weight on an <strong>unmodeled dynamics uncertainty block</strong> that may be added from the plant input to the plant output (figure <a href="#org379d5b1">4</a>).</p>
<p><a id="org379d5b1"></a></p>
<figure>
<img src="/ox-hugo/bibel92_unmodeled_dynamics.png"
alt="Figure 4: Unmodeled dynamics model"/> <figcaption>
<p>Figure 4: Unmodeled dynamics model</p>
</figcaption>
</figure>
<p>The weight is chosen to cover the expected worst case magnitude of the unmodeled dynamics. A typical unmodeled dynamics weighting function is shown figure <a href="#orgcc65489">5</a>.</p>
<p><a id="orgcc65489"></a></p>
<figure>
<img src="/ox-hugo/bibel92_weight_dynamics.png"
alt="Figure 5: Example of unmodeled dynamics weight"/> <figcaption>
<p>Figure 5: Example of unmodeled dynamics weight</p>
</figcaption>
</figure>
<h2 id="inputs-and-output-weighting-function">Inputs and Output weighting function</h2>
<p>It is possible to <strong>weight the control input and actuator rate</strong>.
This is used to <strong>prevent actuator saturation</strong> and <strong>limit amplification of sensor noise signals</strong> on the control input signal.</p>
<p>Typically actuator input weights are constant over frequency and set at the inverse of the saturation limit.</p>
<h2 id="order-of-the-weighting-functions">Order of the weighting functions</h2>
<p><strong>The order of the optimal controller is equal to the order of the nominal plant model plus the order of the weights</strong>. The complexity of the controller is increase as the order of the weights increases.</p>
<p><strong>The order of the weights should be kept reasonably low</strong> to reduce the order of th resulting optimal compensator and avoid potential convergence problems in the DK interactions.</p>
<h1 id="bibliography">Bibliography</h1>
<p><a id="bibel92_guidel_h"></a>Bibel, J. E., &amp; Malyevac, D. S., <em>Guidelines for the selection of weighting functions for h-infinity control</em> (1992). <a href="#5b41da575e27e6e86f1a1410a0170836"></a></p>
</div>
<footer class="post-footer">
<nav class="post-nav">
<a class="prev" href="/paper/preumont02_force_feedb_versus_accel_feedb/">
<i class="iconfont icon-left"></i>
<span class="prev-text nav-default">Force feedback versus acceleration feedback in active vibration isolation</span>
<span class="prev-text nav-mobile">Prev</span>
</a>
<a class="next" href="/paper/chen00_ident_decoup_contr_flexur_joint_hexap/">
<span class="next-text nav-default">Identification and decoupling control of flexure jointed hexapods</span>
<span class="next-text nav-mobile">Next</span>
<i class="iconfont icon-right"></i>
</a>
</nav>
</footer>
</article>
</div>
</div>
</main>
<footer id="footer" class="footer">
<div class="social-links">
<a href="mailto:dehaeze.thomas@gmail.com" class="iconfont icon-email" title="email"></a>
<a href="https://github.com/tdehaeze/" class="iconfont icon-github" title="github"></a>
<a href="/index.xml" type="application/rss+xml" class="iconfont icon-rss" title="rss"></a>
</div>
<div class="copyright">
<span class="power-by">
Powered by <a class="hexo-link" href="https://gohugo.io">Hugo</a>
</span>
<span class="copyright-year">
&copy;
2020
<span class="heart">
<i class="iconfont icon-heart"></i>
</span>
<span class="author">Thomas Dehaeze</span>
</span>
</div>
</footer>
<div class="back-to-top" id="back-to-top">
<i class="iconfont icon-up"></i>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/slideout@1.0.1/dist/slideout.min.js" integrity="sha256-t+zJ/g8/KXIJMjSVQdnibt4dlaDxc9zXr/9oNPeWqdg=" crossorigin="anonymous"></script>
<script type="text/javascript" src="/js/main.4bada4f824623eea2eb7cfd5cf8c1d99c3dd797297e7e8cbc59a41da450bb334.js"></script>
<script type="text/javascript">
window.MathJax = {
loader: {
load: ['[tex]/ams']
},
tex: {
inlineMath: [
['$','$'], ['\\(','\\)']
],
tags: 'ams',
packages: {'[+]': ['ams']},
}
};
</script>
<script async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.2.0/fuse.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js"></script>
<script type="text/javascript" src="/lib/search/search.js"></script>
</body>
</html>