diff m-toolbox/html_help/help/ug/ltpda_training_topic_4_3.html @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/html_help/help/ug/ltpda_training_topic_4_3.html	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,261 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+   "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
+
+<html lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Mac OS X (vers 1st December 2004), see www.w3.org">
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii">
+
+  <title>Modelling a system (LTPDA Toolbox)</title>
+  <link rel="stylesheet" href="docstyle.css" type="text/css">
+  <meta name="generator" content="DocBook XSL Stylesheets V1.52.2">
+  <meta name="description" content=
+  "Presents an overview of the features, system requirements, and starting the toolbox.">
+  </head>
+
+<body>
+  <a name="top_of_page" id="top_of_page"></a>
+
+  <p style="font-size:1px;">&nbsp;</p>
+
+  <table class="nav" summary="Navigation aid" border="0" width=
+  "100%" cellpadding="0" cellspacing="0">
+    <tr>
+      <td valign="baseline"><b>LTPDA Toolbox</b></td><td><a href="../helptoc.html">contents</a></td>
+
+      <td valign="baseline" align="right"><a href=
+      "ltpda_training_topic_4_2.html"><img src="b_prev.gif" border="0" align=
+      "bottom" alt="Transforming models between representations"></a>&nbsp;&nbsp;&nbsp;<a href=
+      "ltpda_training_topic_4_4.html"><img src="b_next.gif" border="0" align=
+      "bottom" alt="How to filter data"></a></td>
+    </tr>
+  </table>
+
+  <h1 class="title"><a name="f3-12899" id="f3-12899"></a>Modelling a system</h1>
+  <hr>
+  
+  <p>
+	<p>
+  To show some of the possibilities of the toolbox to model digital system we
+  introduce the usual notation for a closed loop model
+</p>
+<div align="center">
+  <img src="images/ltpda_training_1/topic4/ClosedLoop.png" alt="Closed Loop" border="3">
+</div>
+<p>
+  In our example we will assume that we know the <tt>pzmodel</tt> of the filter,
+  <tt>H</tt>, and the open loop gain (OLG). These are related with the closed
+  loop gain (CLG) by the following equation
+</p>
+<br>
+<div align="center">
+  <img src="images/ltpda_training_1/topic4/ClosedLoop_eq.png" border="3">
+</div>
+<br>
+<p>
+  We want to determine H and CLG. We would also like to find a digital filter
+  for H, but we will deal with this in the following section.
+</p>
+<h2>Loading the starting models</h2>
+<p>
+  Imagine that we have somehow managed to find the following model for OLG
+</p>
+<table cellspacing="0" class="body" cellpadding="2" border="0" width="50%">
+  <colgroup>
+    <col width="15%"/>
+    <col width="35%"/>
+  </colgroup>
+  <thead>
+    <tr valign="top">
+      <th class="categorylist">Key</th>
+      <th class="categorylist">Value</th>
+    </tr>
+  </thead>
+  <tbody>
+    <!-- Key 'filename' -->
+    <tr valign="top">
+      <td bgcolor="#f3f4f5">
+        <p><tt>GAIN</tt></p>
+      </td>
+      <td bgcolor="#f3f4f5">
+        4e6
+      </td>
+    </tr>
+    <!-- Key 'filename' -->
+    <tr valign="top">
+      <td bgcolor="#f3f4f5">
+        <p><tt>POLES</tt></p>
+      </td>
+      <td bgcolor="#f3f4f5">
+        1e-6
+      </td>
+    </tr>
+  </tbody>
+</table>
+<p>
+  then we can create a <tt>pzmodel</tt> with these parameters as follows
+</p>
+<div class="fragment"><pre>
+    OLG = pzmodel(4e6,1e-6,[],<span class="string">'OLG'</span>)
+    ---- pzmodel 1 ----
+           name: OLG
+           gain: 4000000
+          delay: 0
+         iunits: []
+         ounits: []
+    description:
+           UUID: 3d8bce32-a9a9-4e72-ab4d-183da69a9b5d
+    pole 001: (f=1e-06 Hz,Q=NaN)
+    -------------------
+</pre></div>
+<p>
+  To introduce the second model, the one describing <tt>H</tt>, we will show another feature
+  of the <tt>pzmodel</tt> constructor. We will read it from a LISO file,
+  since this contructor accepts this files as inputs. We can then type
+</p>
+<div class="fragment"><pre>
+    H = pzmodel(<span class="string">'topic4/LISOfile.fil'</span>)
+    ---- pzmodel 1 ----
+           name: none
+           gain: 1000000000
+          delay: 0
+         iunits: []
+         ounits: []
+    description:
+           UUID: e683b32f-4653-474e-b457-939d33aeb63c
+    pole 001: (f=1e-06 Hz,Q=NaN)
+    pole 002: (f=1e-06 Hz,Q=NaN)
+    zero 001: (f=0.001 Hz,Q=NaN)
+-------------------
+</pre></div>
+<pp>
+  and we see how the constructor recognizes and translates the poles and zeros in the file.
+  The model gets the name from the file but we can easily change it to have
+  the name of our model
+</pp>
+<div class="fragment"><pre>
+    H.setName;
+</pre></div>
+<pp>
+  According to our previous definition we can get the <tt>plant</tt> by dividing the
+  OLG by H. We can do so directly when dealing with <tt>pzmodel</tt> objects
+  since multiplication and division are allowed for these objects, then
+</pp>
+<div class="fragment"><pre>
+    G = OLG/H
+    ---- pzmodel 1 ----
+           name: (OLG./H)
+           gain: 0.004
+          delay: 0
+         iunits: []
+         ounits: []
+    description:
+           UUID: fcd166f7-d726-4d39-ad2e-0f3b7141415b
+    pole 001: (f=1e-06 Hz,Q=NaN)
+    pole 002: (f=0.001 Hz,Q=NaN)
+    zero 001: (f=1e-06 Hz,Q=NaN)
+    zero 002: (f=1e-06 Hz,Q=NaN)
+    -------------------
+</pre></div>
+<pp>
+  which we need to simplify to get rid of cancelling poles and zeros. We also
+  set the model name here.
+</pp>
+<div class="fragment"><pre>
+    G.setName;
+    G.simplify
+    ---- pzmodel 1 ----
+           name: simplify(G)
+           gain: 0.004
+          delay: 0
+         iunits: []
+         ounits: []
+    description:
+           UUID: c1883713-b860-4942-a127-e42ea565460f
+    pole 001: (f=0.001 Hz,Q=NaN)
+    zero 001: (f=1e-06 Hz,Q=NaN)
+    -------------------
+</pre></div>
+<pp>
+  The CLG requires more than a simple multiplication or division between models
+  and we will not be able to derive a <tt>pzmodel</tt> for it. However, we can
+  evaluate the response of this object as follows
+</pp>
+<div class="fragment"><pre>
+    pl = plist(<span class="string">'f1'</span>,1e-3,<span class="string">'f2'</span>,5,<span class="string">'nf'</span>,100);
+    CLG = 1/(1-resp(OLG,pl));
+    CLG.setName();
+    CLG.iplot();
+</pre></div>
+<pp>
+  which gives us an AO that we can plot
+</pp>
+<div align="center">
+  <img src="images/ltpda_training_1/topic4/ClosedLoop_resp.png" alt="Closed Loop response" width="800px" border="1">
+</div>
+<h2>Fine, but my (real) system has a delay...</h2>
+<p>
+  You can now repeat the same procedure but loading a <tt>H</tt> model with a delay
+  from the LISO file 'LISOFileDelay.fil'
+</p>
+<div class="fragment"><pre>
+    >> HDel = pzmodel(<span class="string">'topic4/LISOfileDelay.fil'</span>)
+    ---- pzmodel 1 ----
+           name: none
+           gain: 1000000000
+          delay: 0.125
+         iunits: []
+         ounits: []
+    description:
+           UUID: 6dfbddc5-b186-4405-8f6e-02a2822a22c5
+    pole 001: (f=1e-06 Hz,Q=NaN)
+    pole 002: (f=1e-06 Hz,Q=NaN)
+    zero 001: (f=0.001 Hz,Q=NaN)
+    -------------------
+    HDel.setName();
+    pl = plist(<span class="string">'f1'</span>,1e-3,<span class="string">'f2'</span>,5,<span class="string">'nf'</span>,100);
+    resp([H, HDel],pl)
+</pre></div>
+<p>
+  you will see how the delay is correctly handled, meaning that it is added when
+  we multiply two models and substracted if the models are divided.
+</p>
+<div align="center">
+  <img src="images/ltpda_training_1/topic4/ClosedLoop_H_delay.png" alt="Response with delay" width="800px" border="1">
+  <img src="images/ltpda_training_1/topic4/ClosedLoop_G_delay.png" alt="Response with delay" width="800px" border="1">
+</div>
+
+
+
+
+
+
+
+  </p>
+
+  <br>
+  <br>
+  <table class="nav" summary="Navigation aid" border="0" width=
+  "100%" cellpadding="0" cellspacing="0">
+    <tr valign="top">
+      <td align="left" width="20"><a href="ltpda_training_topic_4_2.html"><img src=
+      "b_prev.gif" border="0" align="bottom" alt=
+      "Transforming models between representations"></a>&nbsp;</td>
+
+      <td align="left">Transforming models between representations</td>
+
+      <td>&nbsp;</td>
+
+      <td align="right">How to filter data</td>
+
+      <td align="right" width="20"><a href=
+      "ltpda_training_topic_4_4.html"><img src="b_next.gif" border="0" align=
+      "bottom" alt="How to filter data"></a></td>
+    </tr>
+  </table><br>
+
+  <p class="copy">&copy;LTP Team</p>
+</body>
+</html>