Creation of a simulink block from a Mupad expression containing subscripts.
Hello fellow Matlabers,
My goal is to generate a simulink block from a Mupad expression.
In Mupad I wrote:
S := sum(sin(`θ`[j])*cos(`θ`[j]), j=1..5)
and I got the symbolic expression:
cos(`θ`[1])*sin(`θ`[1]) + cos(`θ`[2])*sin(`θ`[2]) + cos(`θ`[3])*sin(`θ`[3]) + cos(`θ`[4])*sin(`θ`[4]) + cos(`θ`[5])*sin(`θ`[5])
displayed in the Mupad Notebook.(see the attached image).
So my goal is to generate directly from the expression S := sum(sin(`θ`[j])*cos(`θ`[j]), j=1..5) the simulink block that you can see in the block_picture.PNG (attached).
I have created this block using the code below inside a MATLAB Function block:
function S = fcn(theta1, theta2, theta3, theta4, theta5) %#codegen
S = cos(theta1)*sin(theta1) + cos(theta2)*sin(theta2) + cos(theta3)*sin(theta3) + cos(theta4)*sin(theta4) + cos(theta5)*sin(theta5) ;
But the problem is that I will be using long expression for S with many theta(j)'s (j=1...............20).
So I need to use an expression like:
S := sum(sin(`θ`[j])*cos(`θ`[j]), j=1..20)
inside the Matlab Function block because I will save a lot of time.
1 Comment
Accepted Answer
More Answers (0)
Categories
Find more on Special Values in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!