I've just learned about PID MRAC using MIT Rule, and to build it in Simulink I need to use the Product/Divide Block. https://www.mathworks.com/help/simulink/slref/product.html

enter image description here

This is a figure from "Automatic Tuning of PID Controllers Using Model Reference Adaptive Control Techniques" paper by K. Pirabakaran and V. M. Becerra.

If I try to shift the pointed product block above to the left, the Kp or the output on the right will be messed up.

Let me simplify the problem by this block diagram.

enter image description here

Here is the output on the scope

enter image description here

The first block output (ya), output the same as the second block (yb).

I expect four of them to be the same.


With its transfer function combined altogether.

$$\frac{Y(s)}{U(s)} = \frac{1}{(s+1)(s+1)(s+1)} $$

How does it happened? I expect the product blocks to be working as transfer function multiplication. Am I wrong? Does it exist in the Simulink library then of what I've been expecting?

Add info as per comments

I'm using MATLAB R2018b Update 5 and I've also tried using ode14x, ode1, ode2, ode3, ode4, ode5, and ode8 solver with fixed 1 ms time step. Even also tried to use the convolution block with 3 different computation method. The result still the same.

Suppose if my expectation above wrong that product block will act as a transfer function multiplication, then

$$Y_a(s)=\frac{1}{s} \cdot \frac{1}{(s+1)^3}$$


$$Y_b(s) = Y_c(s) = Y_d(s) = \frac{1}{s^2} \cdot \frac{1}{(s+1)^3}$$

But, as we see from the simulation \$Y_a(t) = Y_b(t)\$ and \$Y_b(t) \ne Y_c(s) \ne Y_d(s)\$.

So what's wrong?

  • \$\begingroup\$ Multiplication in time domain equals convolution in the frequency (Laplace) domain. So, you cannot simply multiply like you do. You'd have to use convolution with the multiply blocks. \$\endgroup\$
    – Ben
    Oct 9, 2019 at 0:35
  • \$\begingroup\$ Another thing, your input is not a constant in the s-domain, it's actually a step function , i.e. 1/s \$\endgroup\$
    – Ben
    Oct 9, 2019 at 1:49
  • \$\begingroup\$ @Ben The only way I think about it is this $$Y_a(s) = \frac{1}{s} \cdot \frac{1}{(s+1)^3}$$ and $$Y_b(s) = Y_c(s) = Y_d(s) = \frac{1}{s^2} \cdot \frac{1}{(s+1)^3}$$ Is it correct? Do you mean that if I couid change the product block with convolution block it will work? \$\endgroup\$
    – Unknown123
    Oct 9, 2019 at 5:32
  • \$\begingroup\$ @Ben Any further information? \$\endgroup\$
    – Unknown123
    Oct 10, 2019 at 6:43
  • \$\begingroup\$ I didn't have enough time to look at it. B, c and D should yield the same result. Perhaps you have a made a mistake in the simulation? \$\endgroup\$
    – Ben
    Oct 10, 2019 at 13:35


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.