<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi everyone,
<div><br>
</div>
<div>I've build an NMPC controller as a Matlab C-mex S-function and it works like a charm in Simulink. When I however compile to an xPC-target (turn a PC into a dedicated hardware) executable using MSVS 2010 express, I get different results.</div>
<div><br>
</div>
<div>I used the &quot;output_file&quot; option on to see what is happening. There are several differences between the Simulink log and the target hardware log:</div>
<div><br>
</div>
<div>1. <span class="Apple-tab-span" style="white-space:pre"></span>Xpc:&nbsp;<span class="Apple-tab-span" style="white-space:pre">
</span>Scaling parameter for objective function = 1.000000e-008</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>Simulink: <span class="Apple-tab-span" style="white-space:pre">
</span>Scaling parameter for objective function = 1.163760e-003</div>
<div>2.&nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>Xpc:&nbsp;<span class="Apple-tab-span" style="white-space:pre">
</span>compl_inf &nbsp; &nbsp; = 4.0000000500000000e&#43;005</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>Simulink:&nbsp;<span class="Apple-tab-span" style="white-space:pre">
</span>compl_inf &nbsp; &nbsp; = 3.4371342722094269e&#43;000</div>
<div>3.&nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>Xpc:<span class="Apple-tab-span" style="white-space:pre">
</span>overall_error = 4.0000000499999999e-003</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>Simulink:<span class="Apple-tab-span" style="white-space:pre">
</span>overall_error = 1.0000000000000000e&#43;002</div>
<div>Iteration 0:</div>
<div>4.<span class="Apple-tab-span" style="white-space:pre"> </span>Xpc:<span class="Apple-tab-span" style="white-space:pre">
</span>inf_du lg(mu) =&nbsp;8.59e-004</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>Simulink:<span class="Apple-tab-span" style="white-space:pre">
</span>inf_du lg(mu) =&nbsp;1.00e&#43;002</div>
<div><br>
</div>
<div>It ends up with:</div>
<div>-EXIT: Invalid number in NLP function or derivative detected.</div>
<div>-Restoration phase is called at point that is almost feasible, with constraint violation 5.672143e-007. Abort.</div>
<div>-EXIT: Restoration Failed!</div>
<div><br>
</div>
<div>My question: <b>What could case a difference in the hardware implementation (xPC-target, Mathworks) and the Simulink results? The difference is already visible in the completely different scaling values.</b></div>
<div><b><br>
</b></div>
<div>I hope someone can help me :)</div>
<div><br>
</div>
<div>Best regards,</div>
<div><br>
</div>
<div>-Martijn Disse</div>
<div><b><br>
</b></div>
<div><br>
</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span></div>
<div><br>
</div>
<div><br>
</div>
</div>
</body>
</html>