This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Call Extrinsic MATLAB Functions in Stateflow Charts

Stateflow® charts in Simulink® models have an action language property that defines the syntax for state and transition actions. An icon in the lower-left corner of the chart canvas indicates the action language for the chart.

  • MATLAB® as the action language.

  • C as the action language.

In charts that use C as the action language, you can call built-in MATLAB functions and access MATLAB workspace variables by using the ml namespace operator or the ml function. For more information, see Access MATLAB Functions and Workspace Data in C Charts.

In charts that use MATLAB as the action language, you can call MATLAB functions supported for code generation directly. To call extrinsic functions that are not supported for code generation, you must use the coder.extrinsic function. When you declare a function with coder.extrinisic(function_name), Stateflow creates a call to the function during simulation. In a Stateflow chart, you only declare coder.extrinsic once. You cannot declare reserved keywords with coder.extrinsic. For more information, see Rules for Naming Stateflow Objects.

For charts that include atomic subcharts, you must declare functions that are not supported for code generation with coder.extrinsic separately within the atomic subchart.

coder.extrinsic Function

To create a call for the extrinsic function heaviside, this model uses coder.extrinsic.

The chart contains two parallel states, A and B, and one graphical function block, foo. State A declares the function heaviside, which is not supported for code generation, by using coder.extrinsic. State B and the graphical function block also use heaviside without coder.extrinsic.

The input for state A is u1, a sine wave, and the input for state B is u2, a cosine wave. The graphical function out outputs the value of the heaviside function for the input in.

You only need to declare heaviside once in your chart using coder.extrinsic. After this you can use the heaviside function anywhere within your chart without coder.extrinsic. When generating code the functions that you declare using coder.extrinsic will have a call to the extrinsic function, and that function will not appear in the generated code.

To visualize the result of this chart, open the scope.

See Also

|

Related Topics