Simulink change detection from MATLAB

My Matlab script generates a stochastic Load Profile data and I have a simulink model that is getting this data from 'From Workspace' block. I will call this block LP.
What I want to do is; when I copy this LP block and create another block manually from Simulink, I want MATLAB to detect this change and run the model for a new stochastic data for the new block.
My question is if it is possible to achieve ? Otherwise I have to transfer whole model from Matlab to Simulink.
Thanks in advance.
Onat

 Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 2 de Oct. de 2019

0 votos

Right click this "From Workspace" block in your model, select "Properties", select the "Callbacks" panel, select the "CopyFcn" in the left column, on the right panel, type in the MATLAB script or function that generates the stochastic data.

2 comentarios

Mustafa Onat Güney
Mustafa Onat Güney el 2 de Oct. de 2019
Editada: Mustafa Onat Güney el 2 de Oct. de 2019
Hey, thank you very much for quick answer, very useful feature.When I do that, the new block changes but it overwrites the new data on the previous block as well. (Because 'From Workspace' block reads the same named data). So, I still have one set of data which I actually intend to have seperate data whenever I copy them. Is there a way to lock the initial blocks preventing from change when I callback ?
Best !
Fangjun Jiang
Fangjun Jiang el 2 de Oct. de 2019
What you need is to use set_param() in the CopyFcn callback to change the variable name in the "From Workspace" block and make sure the new data variable name generated in MATLAB matches it. For example
set_param(gcb,'VariableName','NewData')

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Simulink en Centro de ayuda y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by