2
\$\begingroup\$

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.

$$y_a(t)=y_b(t)=y_c(t)=y_d(t)$$

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}$$

and

$$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?

\$\endgroup\$

migrated from dsp.stackexchange.com Oct 12 at 12:39

This question came from our site for practitioners of the art and science of signal, image and video processing.

  • \$\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 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 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 at 5:32
  • \$\begingroup\$ @Ben Any further information? \$\endgroup\$ – Unknown123 Oct 10 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 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.