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

2 ビュー (過去 30 日間)
Harsh Kumar
Harsh Kumar 2021 年 7 月 22 日
コメント済み: Harsh Kumar 2021 年 8 月 2 日
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.
  2 件のコメント
Harsh Kumar
Harsh Kumar 2021 年 7 月 29 日
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?


回答 (1 件)

Fangjun Jiang
Fangjun Jiang 2021 年 7 月 29 日
Use the Product block. The Gain block is an operation of multiplication, right?
  1 件のコメント
Harsh Kumar
Harsh Kumar 2021 年 8 月 2 日
Yes thanks... I'll try it out.






Community Treasure Hunt

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

Start Hunting!

Translated by