Simulink subsystem to numerically solve a complex exponential function

This is the Matlab script of what I have to solve at each iteration of a complex simulink model:
B, T and W known; solving for a:
sol = vpasolve( 0.88*(1-exp(-0.1*B))*(1-exp(-9.5*a)) - (0.9/B + 0.5*a/sqrt(B)) - T/W, a)
I cannot use this directley in a user defined Simulink funcation since symbolc variables are not accepted.
How would you suggest to draw/code this in Simulink?
Thanks!

回答 (1 件)

Pavan Guntha
Pavan Guntha 2021 年 8 月 30 日
Hello Ario,
You could follow the following steps to solve the issue:
1) Create a '.m' file containing the function (for example, name it complexExponential.m) to solve the complex exponential equation.
2) You could use a MATLAB Function block in Simulink to call this function as shown below.
coder.extrinsic('complexExponential');
out = 0;
out = double(complexExponential(inputs));
Since the equation involves symbolic variables, it is necessary to use 'coder.extrinsic()' to avoid generating code for it. For more details you could have a look at the documentation page of coder.extrinsic.
Hope this helps!

カテゴリ

ヘルプ センター および File ExchangeModeling についてさらに検索

質問済み:

2021 年 7 月 30 日

回答済み:

2021 年 8 月 30 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by