MATLAB Answers

How to create a mathematical expression which contains delays using Symbolic Math Toolbox?

Hi everyone,
I'm trying to create a mathematical expression which contains some nonlinear terms like delays, interfaces etc., using symbolic math toolbox. An example of my code is as follows.
syms I1 I2 I3 I4 I5
terms = [I1.^2 I2-4 I1*I3-4 I4-8 I5]
theta = [1 2 1 1 5]'
Y = terms*theta
Here the term ''I3-4'' indicates the input I3 with a time delay of 4 seconds(I3(t-4)).I'm having the following issue
  1. When I multiply terms and theta, it is giving me output as
Y =
instead of
Y = I1^2+2*(I2-4)+I1*(I3-4)+(I4-8)+5*I5
I understood that matlab is using BODMAS rule, but is there any correct way to create delay terms using Symbolic Math Toolbox. Can some one help me regarding this issue?
Thanks

  0 Comments

Sign in to comment.

2 Answers

Answer by Raghunandan V on 4 Jun 2019

Hi,
There is mistake in the coe :)
And the term I1*I3-4 is not the same you explained. Here it follows BODMAS rule.
I1*I3-4 = (I1*I3) - 4
NOT I1*(I3-4)
Regards,
Raghunandan V

  0 Comments

Sign in to comment.


Answer by Sayyed Ahmad on 4 Jun 2019

matlab multiplied and simplified your codes;
Y = I1^2+2*(I2-4)+I1*(I3-4)+(I4-8)+5*I5
Y = I1^2+2*I2-8+I1*I3-4+I4-8+5*I5
simpliefied to
Y= I1^2+I3.I1+ ... %highest order
2.I2+ ... % I2 to I5
I4+ ...
5.I5+ ...
-20 %constant

  2 Comments

I1*(I3-4) is not I1*I3-4 but I1*I3- 4*I1. Check the calc
yes, I understood that Matlab uses BODMAS rule. Some how I need to create this delay terms and pass them to the function handle , thats why I'm using I3-4 instead of I3(t-4). Maybe my question should be is there any correct way to create delay terms using symbolic math toolbax

Sign in to comment.