Simulink subsystem to numerically solve a complex exponential function

4 ビュー (過去 30 日間)
Ario
Ario 2021 年 7 月 30 日
回答済み: Pavan Guntha 2021 年 8 月 30 日
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!

Community Treasure Hunt

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

Start Hunting!

Translated by