How to convert Block parameter to input port?

2 views (last 30 days)
Hi, I have a specific question about Simulink. Is it possible to convert a mask parameter to an input port?
For example, take sine block in Simulink (See the picture).
There is a parameter/field in the block parameters called Amplitude. Is it possible to make this as an input port of that block instead of specifying as a parameter?
Screenshot from 2019-11-09 14-46-57.png

Answers (2)

Jesús Zambrano
Jesús Zambrano on 11 Nov 2019
Hi Rahul,
One possible simple solution would be to keep the Sine wave amplitud equal to 1, and then add the following to the block:
amplitud.png
and then you create your [t,u] vector with the changes you want for the sine wave amplitud.
Hope this can help to solve your question.
Best,
Jesús
  1 Comment
Rahul Bhadani
Rahul Bhadani on 13 Nov 2019
Hi Jesus,
My question is more of general rather than specifically sine block. If you look at the Vehicle Body 3DOF block provided in the simulink, prior to 2019a, Initial yaw angle, initial lateral position and initial longitudinal position were only block parameters, but from 2019a onwards they are now input signals. By giving this example, all I am trying to say that people at Mathworks were able to convert block parameters of a certain block to input signals. I want it for every other block in the simulink.
Let me know if you understand the question and your thoughts on it.

Sign in to comment.


Jesús Zambrano
Jesús Zambrano on 16 Nov 2019
Hi Rahul,
In general you could try to work with a MATLAB funcion block in the following way:
mymodel.png
where the MATLAB function has the following code:
function fcn(u)
coder.extrinsic('assignin')
coder.extrinsic('set_param')
assignin('base','MyGain',u)
set_param(bdroot,'SimulationCommand','update')
In summary,an input signal goes to a MATLAB function block, which saves the value in the base workspace with name MyGain, and that parameter is then used in the Gain block.
Hope this workflow can help you.
Best,
Jesús

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!