How to programatically send Update Diagram command to Simulink
    47 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Paulo Silva
      
 il 15 Lug 2011
  
    
    
    
    
    Commentato: Jyoti Sachdeva
 il 29 Ott 2023
            I stumble upon a problem in my project, there's one GUI that controls the simulation and that GUI changes variables on MATLAB workspace, the same variables are used in the simulation but simulink doesn't read the new values unless the simulation stops and starts or the Update Diagram command is issued, so the question is how to force simulink to Update Diagram in my code?
Already tried:
eval([SimFileName '([],[],[],''update'')' ]);
but it doesn't do what I want.
Meanwhile I found one solution but it's using QuaRC MATLAB Functions, would be better to have something withing simulink functions.
qc_update_model
Any help is welcome, thanks
3 Commenti
  Vinol Joy D'souza
 il 19 Lug 2011
				I want to change the parameters of a block when the model is running and simultaneously see the changes in the output.
For eg.I have a sine block connected to a Scope.and when i start the simulation.I want to change the frequency of the sine wave and see the corresponding frequency changed wave on the scope output.I want to do this as i want to see how my model behaves for different frequencies...HOw do i do this???
Risposta accettata
  Fangjun Jiang
      
      
 il 15 Lug 2011
        Use set_param('sys', 'SimulationCommand', 'cmd')?
where 'sys' is the name of the system and 'cmd' is 'start', 'stop', 'pause', 'continue', 'update', or 'WriteDataLogs'
3 Commenti
  Vinol Joy D'souza
 il 19 Lug 2011
				I want to change the parameters of a block when the model is running and simultaneously see the changes in the output.
For eg.I have a sine block connected to a Scope.and when i start the simulation.I want to change the frequency of the sine wave and see the corresponding frequency changed wave on the scope output.I want to do this as i want to see how my model behaves for different frequencies...HOw do i do this???
Più risposte (2)
  Noam Greenboim
      
 il 11 Lug 2017
        set_param(bdroot,'SimulationCommand','Update')
2 Commenti
  Jyoti Sachdeva
 il 29 Ott 2023
				Instead of using bdroot, 
mdlName = MotorCtrl.slx
set_param(mdlName,'SimulationCommand','Update')
This command is equivalent to programatically running Ctrl+D on  MotorCtrl.slx model.
  Rick Rosson
    
 il 15 Lug 2011
        Hi Paulo,
Although not ideal, the following line of code should work:
   Simulink.BlockDiagram.getSampleTimes(SimFileName);
Make sure that the value of SimFileName excludes the .mdl extension, and that the file is already open at the time of the call.
HTH.
Rick
Vedere anche
Categorie
				Scopri di più su Programmatic Model Editing in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!








