How do I find all continuous blocks in a model in order to replace them to use a discrete solver?
21 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 8 Sep. 2020
Bearbeitet: MathWorks Support Team
am 30 Mär. 2023
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.
Akzeptierte Antwort
MathWorks Support Team
am 28 Mär. 2023
Bearbeitet: MathWorks Support Team
am 30 Mär. 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
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu General Applications finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!