Difference between revisions of "Simulink Tester Issues"

From T-VEC Wiki
Jump to: navigation, search
(Supported EML functions)
(Math Functions)
 
Line 18: Line 18:
 
The way that we support S-functions is to allow the user to create an independent Simulink model that represents the input and output interface to the S-function and also represents the same functional semantics as the S-function. Then, the user can add a reference to the S-function in the block properties of the S-function block that names the external Simulink model. The sl2tvec translator then substitutes the external Simulink model for the S-function during translation. This way, the user can use S-functions for code efficiency or direct addressing of specific memory locations or for what ever reason they are necessary, but still use the sl2tvec/T-VEC processes on their model.  
 
The way that we support S-functions is to allow the user to create an independent Simulink model that represents the input and output interface to the S-function and also represents the same functional semantics as the S-function. Then, the user can add a reference to the S-function in the block properties of the S-function block that names the external Simulink model. The sl2tvec translator then substitutes the external Simulink model for the S-function during translation. This way, the user can use S-functions for code efficiency or direct addressing of specific memory locations or for what ever reason they are necessary, but still use the sl2tvec/T-VEC processes on their model.  
  
[[Examples of S Functions|Examples of S Functions]]
+
----
  
 
===Embedded Matlab Language (EML) Translation: m-script guidelines===
 
===Embedded Matlab Language (EML) Translation: m-script guidelines===
Support for Embedded Matlab Language (EML) functions will be available soon. Not all EML functions will be immediately available but they will be implemented as needed.  
+
Support for the translation of Embedded Matlab Language (EML) functions is now available. Not all EML functions will be immediately available but they will be scheduled for implementation as requested. Only those EML functions that can be graphically represented using Simulink blocks can be implemented at this time. Support for other EML functions can be added but they may require a development contract. If there is a function you need please E-mail your request to support@t-vec.com.  
 
====M-Scripting Guidance====
 
====M-Scripting Guidance====
A majority of the m-script syntax will be supported. A list of the currently supported functions is included. Additionally there are a few unsupported programming shortcuts that are not supported. If your script uses them minor modification will be required.
+
A list of the currently supported EML functions is included in this wiki. Additionally there are a few programming shortcuts that are not supported. These are listed in the Unsupported Syntax section. If your script uses those shortcuts then minor modification will be required.  
 +
 
 +
=====Global Variables=====
 +
Global variables should not be used in your EML script. All external values needed by a function should be passed into that function as parameters.
 +
 
 +
=====Workspace variables=====
 +
Because the processing of the EML script is done outside of Matlab workspace variables should be passed in as function parameters if needed.
 +
 
 
====Unsupported syntax====
 
====Unsupported syntax====
 
=====Matrix field selection using a single parameter=====
 
=====Matrix field selection using a single parameter=====
Line 46: Line 53:
 
if (x==4)
 
if (x==4)
 
<br>
 
<br>
s=3;  % variable s is initialized inside the if block
+
&nbsp;&nbsp;s=3;  % variable s is initialized inside the if block
 
<br>
 
<br>
 
end;
 
end;
Line 58: Line 65:
 
<br>
 
<br>
 
s=0;  % variable s is initialized at the function scope
 
s=0;  % variable s is initialized at the function scope
 +
<br>
 
if (x==4)
 
if (x==4)
 
<br>
 
<br>
s=3;  % ok
+
&nbsp;&nbsp;s=3;  % ok
 
<br>
 
<br>
 
end;
 
end;
 
<br>
 
<br>
 
a=x+s; %ok
 
a=x+s; %ok
 +
<br>
 +
<br>
 +
Using the unsupported syntax will cause the following error to be generated:
 +
<br>
 +
ERROR SL0251: (Internal) Unknown variable found while processing embedded Matlab script.
 +
<br>
 +
&nbsp;&nbsp;This is usually caused when a variable is used outside of the scope it was declared within.
 +
<br>
 +
&nbsp;&nbsp;Variable will be grounded. 
 +
<br>
 +
&nbsp;&nbsp;identifier : [identifier]
 +
<br>
 +
&nbsp;&nbsp;scope : [block location]
 +
<br>
 +
&nbsp;&nbsp;line: [line] pos: [column]
 
<br>
 
<br>
  
 +
====Supported EML syntax====
 +
We will be adding more function support with future releases. If you call an EML function that has not been implemented then you will see a message like:
 +
<br>
 +
<br>
 +
ERROR SL0253: (Internal) No subsystem implementation found. 
 +
<br>
 +
No subsystem implementation found for subsystem reference: [function name].
 +
<br>
 +
&nbsp;&nbsp;Please verify that your model passes the Matlab model check (CTRL+D). 
 +
<br>
 +
&nbsp;&nbsp;If your model is correct then you could be calling a function that has not been implemented in the T-VEC Simulink tester.
 +
<br>
 +
&nbsp;&nbsp;If you believe this to be the case, please send an E-mail to support@t-vec.com with the function name so that we can include it in a future release.
 +
<br>
 +
=====Flow control syntax=====
 +
if, elseif, else
 +
=====Conditional syntax=====
 +
&&,||  %and, or
  
 +
=====Relational syntax=====
 +
<, <=,==,~=,>,>=  %less than, less than or equal, equal, not equal, greater than, greater than or equal
 +
=====Math syntax=====
 +
+,- %addition, subtraction
 +
<br>
 +
^  %power of
 +
<br>
 +
<nowiki>*</nowiki>,/  %mulitplication, division
 +
=====Unary syntax=====
 +
+,-
 +
=====Matrix syntax=====
 +
[r1c1,r1c2,r1c3;r2c1,r2c2,r2c3;]
 +
<br>
 +
[matrix]' %transpose matrix
 +
=====Comment syntax=====
 +
% [...] - single line comment
 +
<br>
 +
%{
 +
<br>
 +
[...] - multiline comment block
 +
<br>
 +
%}
 +
=====Line continuation syntax=====
 +
...  %line continuation
  
 
====Supported EML functions====
 
====Supported EML functions====
Line 85: Line 150:
 
atan
 
atan
 
atan2
 
atan2
sinh
 
cosh
 
tanh
 
asinh
 
acosh
 
atanh
 
  
 
=====Math Functions=====
 
=====Math Functions=====
 +
abs
 +
dot
 
exp
 
exp
 +
hypot
 
log
 
log
 
log10
 
log10
sqrt
+
mod
 
power
 
power
conj
 
rdivide
 
hypot
 
 
rem
 
rem
mod
+
sqrt
  
 
=====Matrix Functions=====
 
=====Matrix Functions=====
 
eye
 
eye
 +
inv
 +
 +
----
  
 
==Limitations==
 
==Limitations==

Latest revision as of 21:53, 21 July 2009