how to change simulink block properties from matlab pogram?

8 次查看(过去 30 天)
I have created a simulink model in which there are two 3-phase fault blocks. i want to change the fault block properties (like faulty phase, fault resistance..etc) from matlab program (m file) and run the model.. How to do that?

采纳的回答

Harish Balaga
Harish Balaga 2013-5-15
I found the answer myself from matlab help. it can be set or reset using "set_param" command. an example is given below
open('MyModel.mdl');
set_param('MyModel/3-Phase Fault', 'FaultA', 'on');
here "3-Phase Fault" is the name i gave to the block in "MyModel.mdl". "FaultA" is the parameter name (Default). To check the type & name the of parameter (checkbox in my case, so on & off are the parameter values), one may use the following command to open the model in editable code form.
edit('MyModel.mdl');
and then search for the block name.

更多回答(2 个)

Valmir Sadiku
Valmir Sadiku 2013-5-15
Hello,
One possible way are that you use parameter in your 3-phase fault block. Then write an M-File in which you can generate/change the values of this parameter (which are now stored in the Workspace) and open the Simulink model from matlab with the command:
results = sim('myFaultyModel');
regards V.Sadiku
  3 个评论
Valmir Sadiku
Valmir Sadiku 2013-5-15
as i already wrote above you can modify your parameter on the M-File simply, e.g. :
parameter_1 = 12.1;
parameter_2 = 1.05;
......
parameter_x = 0.1;
..
now you can the call the model, which runs with changed parameter values
sim('myFaultyModel');
then maybe with another parameter again:
parameter_1 = 12.8;
parameter_2 = 1.0;
......
parameter_x = 0.18;
..
and call the model again and so on.
Harish Balaga
Harish Balaga 2013-5-15
thank you for the answer but it seems you didn't get my question clearly. What is the name of the phase A, B, C values of the 3-phase fault block of the model? how to know that? How to set (tick mark) or reset the check box of each phase through program? is there any syntax like
faultmodel.faultblock1.phaseA=1; %to set
and after some time
faultmodel.faultblock1.phaseA=0; % to reset
??
i need to check or uncheck the check box in the properties window (window that appears when we double click on any block in Simulink) of the fault block

请先登录,再进行评论。


Valmir Sadiku
Valmir Sadiku 2013-5-15

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by