<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-text-html" lang="x-unicode">
<div class="moz-cite-prefix">Hi Claus,<br>
<br>
If I understand you correctly (as mentioned by Rafael "I do not
see how you can “close the loop”, other that testing your
theoretical model against experimental data?"<br>
<br>
1. you have a system which you have theoretical result
(reference model)<br>
2. you have another set of data which you want to compare with
the reference model<br>
<br>
As you're the subject expert in your own code, I will leave it
to you as it will take time to look into them. :)<br>
<br>
Instead, I illustrate something similar (I think) which you
might be able to adopt into your own code. <br>
<br>
Codes below perform following steps:<br>
1. Create a linear model in s domain.<br>
2. Convert the model to z domain. <br>
3. Get the impulse response from the z model.<br>
4. From the impulse response data, find the frequency response
(in your case, it should be the data H that you obtained
somewhere?)<br>
5. Compare the response in 4 with the model response. <br>
<br>
rgds,<br>
CL<br>
<pre style="font-family:Monospaced;font-style:normal;font-size:16.0;"><span style="color:rgb(100,174,100);font-style:italic;">// Linear System in Time Domain</span>
<span style="color:rgb(0,0,0);">s</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(218,112,214);">%s</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">G</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(174,92,176);text-decoration:underline;">syslin</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(188,143,143);">c</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">10</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(0,0,0);">s</span><span style="color:rgb(92,92,92);">^</span><span style="color:rgb(188,143,143);">2</span> <span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">3</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(0,0,0);">s</span><span style="color:rgb(92,92,92);">^</span><span style="color:rgb(188,143,143);">2</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(0,0,0);">s</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(188,143,143);">2</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(100,174,100);font-style:italic;">// Discreate Model </span>
<span style="color:rgb(0,0,0);">Ts</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">0.05</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(100,174,100);font-style:italic;">// Sampling time for discrete model</span>
<span style="color:rgb(0,0,0);">SS_z</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(174,92,176);text-decoration:underline;">cls2dls</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(174,92,176);text-decoration:underline;">tf2ss</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">G</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">Ts</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">tz</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">0</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(0,0,0);">Ts</span> <span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">50</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">u</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(50,185,185);">ones</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">tz</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">y2_step</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(174,92,176);text-decoration:underline;">dsimul</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">SS_z</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">u</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(100,174,100);font-style:italic;">//Step response</span>
<span style="color:rgb(0,0,0);">u</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(50,185,185);">zeros</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">tz</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span><span style="color:rgb(0,0,0);">u</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">y2_imp</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(174,92,176);text-decoration:underline;">dsimul</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">SS_z</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">u</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(100,174,100);font-style:italic;">//Impulse response</span>
<span style="color:rgb(100,174,100);font-style:italic;">// Compute Bode plot from Impulse Response</span>
<span style="color:rgb(0,0,0);">tau_step</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">Ts</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">H</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">y2_imp</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">fs</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(0,0,0);">tau_step</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(100,174,100);font-style:italic;">// Following part is the same code as earlier</span>
<span style="color:rgb(0,0,0);">b</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">poly</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">H</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(255,170,0);">$</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">z</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">coeff</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">a</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(218,112,214);">%z</span><span style="color:rgb(92,92,92);">^</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(50,185,185);">length</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">H</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">Gz</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(174,92,176);text-decoration:underline;">syslin</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(188,143,143);">d</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">b</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">a</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">Gz</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">dt</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(0,0,0);">fs</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(74,85,219);">[</span><span style="color:rgb(0,0,0);">F</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">M</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(174,92,176);text-decoration:underline;">repfreq</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">Gz</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">0.001</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">fs</span><span style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">0.01</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(100,174,100);font-style:italic;">// Comparison</span>
<span style="color:rgb(174,92,176);text-decoration:underline;">bode</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">G</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(100,174,100);font-style:italic;">// Ideal frequency response</span>
<span style="color:rgb(174,92,176);text-decoration:underline;">plot</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">F</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">10</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(255,170,0);">$</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">20</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(50,185,185);">log10</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">M</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">10</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(255,170,0);">$</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(188,143,143);">r</span><span style="color:rgb(188,143,143);">.</span><span style="color:rgb(188,143,143);">'</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(100,174,100);font-style:italic;">// generated frequency response with repfreq</span></pre>
<br>
<img src="cid:part1.2EB86A11.E88916A3@tritytech.com" alt=""><br>
<br>
</div>
</div>
</body>
</html>