why the error in the following " set_param(BlockName,BlockParameter,StringValue); "
2 次查看(过去 30 天)
显示 更早的评论
I am trying to change the parameters inside a Linear Transfomer Magnetization resistance and inductance [Rm(pu) Lm(pu)]:. These parameters are named as RmLm when I view the mask. I am using Embedded MATLAB function block to set the parameters using set_param. The full code for MATLAB function block as following:
function ChangeParam(u) %#codegen
coder.extrinsic('set_param');
coder.extrinsic('num2str');
BlockName = 'Transfomer_Dynamic/Linear Transformer';
BlockParameter = 'RmLm';
StringValue = [num2str(u) ' ' num2str(u)];
set_param(BlockName,BlockParameter,StringValue);
I am getting the following error and I tried to find the debug but I am not be able. could anyone help or recommend me any suggestions ?
Cannot change parameter 'Magnetization resistance and inductance [Rm(pu) Lm(pu)]: (RmLm)' of 'Transfomer_Dynamic/Linear Transformer'
while simulation is running Error in 'Transfomer_Dynamic/MATLAB Function' (line 10) set_param(BlockName,BlockParameter,StringValue);
0 个评论
回答(1 个)
Walter Roberson
2023-5-10
编辑:Walter Roberson
2023-5-10
Only tuneable parameters can be changed while the simulation is running.
In some situations it is workable to run a MATLAB function that sets parameters, then invokes sim() with a stop time, then examines results, and loops back to try different parameters.
6 个评论
Walter Roberson
2023-5-14
I do not know if there is a work-around. I think it would be worth experimenting with making the value a global variable as is discussed in the link, but I do not know if it will work.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Deployment, Integration, and Supported Hardware 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!