How do I find all continuous blocks in a model in order to replace them to use a discrete solver?

25 visualizaciones (últimos 30 días)
I would like to see all continuous blocks at once in order to change all continuous blocks to discrete state blocks. When I switched to "Fixed Step discrete (no continuous state)" solver from "Variable Step (auto)", I get the following error:
"FixedStepDiscrete" solver cannot be used to simulate block diagram <model_name> because it contains continuous states. 

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 28 de Mzo. de 2023
Editada: MathWorks Support Team el 30 de Mzo. de 2023
You can find out which blocks have continuous states using either of the following two methods: 
1) Use the command "Simulink.BlockDiagram.getInitialState" as follows:
open_system(docpath(fullfile(docroot, 'toolbox','simulink','examples','ex_execution_order')))
model = gcs;
states = Simulink.BlockDiagram.getInitialState(model);
if ~isempty(states)
for n=1:length(states.signals)
if strcmp(states.signals(n).label,'CSTATE')
states.signals(n).blockName
end
end
end
This is the result when running the above code:
ans =
  'ex_execution_order/car dynamics/Integrator'
2) Use "sldebug('model')" and then type "states".
For example:
>> open_system(docpath(fullfile(docroot, 'toolbox','simulink','examples','ex_execution_order')))
>> sldebug(gcs)
%----------------------------------------------------------------%
[TM = 0           ] simulate(ex_execution_order)
(sldebug @0): >> states
Continuous States for 'ex_execution_order':
Idx Value          (system:block:element Name 'BlockName')
 0. 0            (0:0:0 CSTATE 'ex_execution_order/car dynamics/Integrator')
Discrete States for 'ex_execution_order':
Idx Value          (system:block:element Name 'BlockName')
 0 0            (1:0:0 DSTATE 'ex_execution_order/discrete cruise controller/Unit Delay1')
 1 0            (1:5:0 DSTATE 'ex_execution_order/discrete cruise controller/Unit Delay')
(sldebug @0): >> quit

Más respuestas (0)

Categorías

Más información sobre General Applications en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by