Creation of a simulink block from a Mupad expression containing subscripts.
    10 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    kamal kiki
 il 7 Nov 2017
  
    
    
    
    
    Modificato: Karan Gill
    
 il 15 Nov 2017
            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 Commento
  Karan Gill
    
 il 15 Nov 2017
				
      Modificato: Karan Gill
    
 il 15 Nov 2017
  
			Why are you using MuPAD instead of Symbolic Math Toolbox? MuPAD notebooks are not recommended.
Risposta accettata
  Yogananda Jeppu
      
 il 13 Nov 2017
        Use Mux block to get theta 1 ... N. You need so many inputs. The Mux will create the array for you. Take this as a single input u into the model (Matlab function). in the function compute y = sum(sin(u).*cos(u)). note the '.*' for element multiplication.
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Special Values in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!