How to vary Gain in Simulink dependent on input's amplitude and phase during runtime ?

2 views (last 30 days)
Harsh Kumar
Harsh Kumar on 22 Jul 2021
Commented: Harsh Kumar on 2 Aug 2021
The Gain block and continuous block in Simulink require the user to specify a gain. This can be a workspace variable. But I want to vary this gain during runtime. I can't seem to get a solution for this. This idea is simple but I can't believe it is so difficult to implement.
I have tried using another block to write to workspace, but found out that the 'to workspace' block only writes to the workspace after the simulation ends or pauses.
I can store the variable in a data memory block, but I don't know how to specify the gain value(s) for the gain/PID block in this case.
Harsh Kumar
Harsh Kumar on 29 Jul 2021
Let's suppose my gain is 'fun' which depends upon the amplitude(x)of the input signal.
fun = @(x) (cos(x)).^2/(1+2*cos(x)).^3;
And also I've stored the amplitude in a data storage in workspace.
How can I implement this in a Gain block in simulink?

Sign in to comment.




Community Treasure Hunt

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

Start Hunting!

Translated by