Simulation does not respond to changing block parameters while simulation using set_param function method

4 次查看(过去 30 天)
Hello,
I am using mutual inductance block to model multiple coupled coils. The mutual inductances of the coil are needed to be changed with time. I have used the set_param function method to change the mutual inductance block parameters. As I run the simulation I can see the block paramters change but the simulation does not respond to the changing parameters. The simulation runs taking in only the initialization parameters. Is there a problem in the way that I am executing the set_param function or this method wouldn't allow me to change block parameters of non signal blocks?
My simulation parameters:
solver type: discrete, step time: (1e-7)
solver: runge-kutta
simulation time: 200 msecs
Following is the set_param script which is executed in a matlab function block in simulink
function ChangeParam(k)
eml.extrinsic('set_param');
eml.extrinsic('mat2str');
BlockName = 'simulation/Hardware/tx_rx/Mutual_Inductance';
BlockParameter = 'InductanceMatrix';
L_Tx = 1.0e-04 *[ 0.2891 -0.0360 -0.0360;
-0.0360 0.3298 -0.0216;
-0.0360 -0.0216 0.3298];
%setting up the self inductance matrix of Rx (3x3)
L_Rx = 1.0e-04 *[ 0.3766 -0.1114 -0.1114;
-0.1114 0.4572 -0.0713;
-0.1114 -0.0713 0.4572];
%setting up the mutual inductance matrix of Tx-Rx (3x3)
L_TR = k*1.0e-05 *[ 0.1765 -0.1956 -0.1957;
-0.1162 0.4378 -0.0213;
-0.1162 -0.0213 0.4378];
% Forming a composite self+mutual inducatnce matrix (6x6)
L_Tx_Rx1 = [L_Tx, L_TR; L_TR', L_Rx];
StringValue = mat2str(L_Tx_Rx1);
set_param('simulation/Hardware/tx_rx/Mutual_Inductance','InductanceMatrix',StringValue);
The following is the mutual indictance block that I am using and want to change the block parameters of,
Following is the blok parameter window, I am changing the inductance matrix block parameter.
Thank you!
Vatan Mehar
  1 个评论
Paul
Paul 2023-10-13
Hi Vatan,
I don't change block parameters during simulation, but doesn't the diagram need to be updated after the parameters are changed via set_param? I don't really know for sure.
Also, this blog post may be of interest.

请先登录,再进行评论。

回答(1 个)

Animesh
Animesh 2023-10-30
Hello @Vatan,
According to my understanding, you are unable to update parameter value for a block while running a simulation.
I am not sure why you are unable to update the value of “Inductance Matrix” using “set_param”, you can try updating the model after using “set_param”.
Example update command :-
set_param(modelname,'SimulationCommand','Update')
To read more about “set_param”, refer to the following document :-https://www.mathworks.com/help/simulink/slref/set_param.html

类别

Help CenterFile Exchange 中查找有关 Programmatic Model Editing 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by