Updating simulink block parameter as the simulation runs.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
computer12345
el 6 de Jul. de 2020
Comentada: computer12345
el 8 de Jul. de 2020
Hello!
I'm new to Matlab and I'm wondering if this is possible.
I have a custom block with a mask that takes in 3 user-input parameters. One of the parameters is frequency and I want to vary the frequency with time while the simulation is running. I looked all over the internet and I found a suggestion to replace the frequency parameter with a workspace variable array, with the array setup as [time1 value1;time2 value2; time3 value3....]. I tried this, but I got an error saying that the there was an issue with the blocks in the subsystem reading the arrays properly. I placed this code into the InitFnc callback.
Am I doing going about this correctly? If so, what do I modify to ensure that the frequency input ports are correctly reading an array input?
If not, is there a different way I can go about changing the frequency with time? I am trying to do everything using a script, rather than including blocks like time steps since the block is masked.
Thanks!
0 comentarios
Respuesta aceptada
Fangjun Jiang
el 7 de Jul. de 2020
setting array value as [time1 value1;time2 value2; time3 value3....] works for signal, not for parameters. Use this approach instead
set_param(YourModel, 'SimulationCommand', 'pause');
set_param(YourBlock, parameter, value);
set_param(YourModel, 'SimulationCommand', 'continue');
5 comentarios
Fangjun Jiang
el 8 de Jul. de 2020
It has nothing to do with other functions. The Assertion block is calling PauseFcn, so you have to have a .m script called PauseFcn.m in your MATLAB path.
Más respuestas (0)
Ver también
Categorías
Más información sobre Electrical Sensors en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!