Questa guida ti aiuterà a velocizzare le simulazioni e a migliorare le prestazioni dei modelli Simulink®. I passaggi riportati di seguito fanno riferimento ad alcuni strumenti utilizzabili, in base al caso specifico, per correggere o analizzare le prestazioni dei modelli. In caso di problemi con l’esecuzione di questi passaggi o se il problema non si risolve, è possibile contattare l’assistenza tecnica. La procedura richiede l’acquisizione di dati nel corso dei vari passaggi. Questi dati aiuteranno l’assistenza tecnica a comprendere più rapidamente il problema qualora fosse necessaria ulteriore assistenza.
Passaggio 1: considerazione di modifiche recenti
Le modifiche apportate al modello o l’uso di una nuova release di MATLAB hanno influito sulle prestazioni?
Confronto tra modelli
Se hai modificato il tuo modello per eseguire l’upgrade a una nuova release di MATLAB®, confronta il modello con la sua versione originale per analizzare le modifiche che potrebbero influire negativamente sulle prestazioni.
Al termine del confronto, fai cli su Publish (Pubblica) e salva il report.
Upgrade Advisor
Se hai fatto l’upgrade a una nuova versione e non hai individuato nessun problema con lo strumento di confronto, esegui Upgrade Advisor. Upgrade Advisor è in grado di riconoscere i casi in cui puoi trarre vantaggio dall’apportare modifiche al modello, grazie all’uso delle nuove funzionalità e impostazioni di Simulink.
Non appena Upgrade Advisor avrà completato le verifiche, salva il report.
Confronto tra modelli
Se hai modificato il tuo modello in modo sostanziale e non hai la certezza di cosa ne abbia causato il rallentamento, confronta il modello con la sua versione originale per analizzare le modifiche che hanno influito negativamente sulle prestazioni.
Al termine del confronto, fai cli su Publish (Pubblica) e salva il report.
Passaggio 2: esecuzione di Performance Advisor
Performance Advisor analizza il modello, nello specifico le impostazioni di configurazione e i pattern di modellazione che potrebbero rallentare la simulazione, e suggerisce delle misure da prendere per migliorare le prestazioni. Una volta modificato il modello, Performance Advisor può eseguire una convalida finale per mostrare le migliorie apportate.
Terminata la convalida finale di Advisor, salva il report.
Per provare a migliorare le prestazioni con altre tecniche, procedi al passaggio 3.
Passaggio 3: profiling dell’inizializzazione
Disponi di un oggetto SimulationOutput
ottenuto da una simulazione recente?
Verifica in quanto tempo si inizializza il modello usando questo comando, sostituendo out
con il nome del tuo oggetto SimulationOutput
, se necessario.
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
Se i tempi di inizializzazione sono più lunghi del previsto e vuoi indagare ulteriormente, procedi con la parte successiva del Passaggio 3. Se preferisci concentrarti sui potenziali problemi di simulazione, procedi al Passaggio 4.
Verifica in quanto tempo si inizializza il modello usando questo comando, sostituendo out
con il nome del tuo oggetto SimulationOutput
, se necessario.
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
Sostituisci out
con il nome del tuo oggetto SimulationOutput
, se necessario.
Se i tempi di inizializzazione sono più lunghi del previsto e vuoi indagare ulteriormente, procedi con la parte successiva del Passaggio 3. Se preferisci concentrarti sui potenziali problemi di simulazione, procedi al Passaggio 4.
In gran parte dei casi, quando si esegue una simulazione Simulink, viene creato un oggetto contenente informazioni sulla simulazione.
Per generare un oggetto SimulationOutput
per il tuo modello, esegui questi comandi sostituendo MyModel
con il nome del tuo modello.
mdl = "MyModel";
out = sim(mdl,StopTime=“0”,CaptureErrors=“on”);
Questi comandi inizializzano il modello e arrestano la simulazione al tempo 0. L’oggetto SimulationOutput
generato dalla simulazione include informazioni sui tempi di inizializzazione.
Quando out
sarà disponibile, verifica in quanto tempo viene inizializzato il modello usando questo comando:
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
Se i tempi di inizializzazione sono più lunghi del previsto e vuoi indagare ulteriormente, procedi con la parte successiva del Passaggio 3. Se preferisci concentrarti sui potenziali problemi di simulazione, procedi al Passaggio 4.
In gran parte dei casi, quando si esegue una simulazione Simulink, viene creato un oggetto contenente informazioni sulla simulazione. Prima di tentare di ottenerne uno nuovo, verifica se nel tuo spazio di lavoro di base è già presente un oggetto con valore “1x1 SimulationOutput
”.
Per generare un oggetto SimulationOutput
per il tuo modello, esegui questi comandi sostituendo MyModel
con il nome del tuo modello.
mdl = "MyModel";
out = sim(mdl,StopTime=“0”,CaptureErrors=“on”);
Questi comandi inizializzano il modello e arrestano la simulazione al tempo 0. L’oggetto SimulationOutput
generato dalla simulazione include informazioni sui tempi di inizializzazione.
Quando out
sarà disponibile, verifica in quanto tempo viene inizializzato il modello usando questo comando:
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
Se i tempi di inizializzazione sono più lunghi del previsto e vuoi indagare ulteriormente, procedi con la parte successiva del Passaggio 3. Se preferisci concentrarti sui potenziali problemi di simulazione, procedi al Passaggio 4.
Usa MATLAB Profiler per individuare il codice che potrebbe essere la causa del rallentamento dell’inizializzazione.
MATLAB Profiler
Esistono callback di modelli o script di inizializzazione che talvolta hanno un’ampia base di codice MATLAB. MATLAB Profiler analizza il tempo necessario per eseguire il codice MATLAB associato al tuo modello per aiutarti a individuare i potenziali colli di bottiglia.
Esegui questi comandi nella finestra dei comandi prima di eseguire la simulazione:
profile clear; profile on;
Al termine della simulazione, esegui questo comando:
p = profile('info');
Una volta che MATLAB Profiler avrà completato tutte le operazioni, fai clic su Print (Stampa) e salva il report in formato PDF.
Controlla i risultati del Profiler. Se trovi funzioni o script che non ti aspettavi, o se l’esecuzione di parte del codice MATLAB richiede più tempo del previsto, prenditi del tempo per correggerlo.
Per provare a migliorare le prestazioni con altre tecniche, procedi al passaggio 4.
Passaggio 4: profiling della simulazione
Stai utilizzando un risolutore variabile?
Se non lo sai con certezza, dai un’occhiata al pannello del risolutore nella finestra di dialogo dei parametri di configurazione.
Simulink Profiler
Simulink Profiler analizza il tempo necessario per eseguire la simulazione del modello, con una suddivisione per componente. Queste informazioni possono essere utilizzate per definire una linea di base e individuare i costrutti potenzialmente problematico nel modello. Annota i modelli che richiedono molto self time.
Completato il profilo, in Share (Condividi), fai clic su Generate Report (Genera report) e salva il report.
Se il tuo modello presenta delle problematiche che non sono state trattate in questa procedura, vai al Passaggio 5.
Simulink Profiler
Esegui Simulink Profiler.
Simulink Profiler analizza il tempo necessario per eseguire la simulazione del modello, con una suddivisione per componente. Queste informazioni possono essere utilizzate per definire una linea di base e individuare i costrutti potenzialmente problematico nel modello. Annota i modelli che richiedono molto self time.
Completato il profilo, in Share (Condividi), fai clic su Generate Report (Genera report) e salva il report.
Solver Profiler
Esegui Solver Profiler.
Solver Profiler analizza la dinamica del modello e può aiutarti a capire quando le prestazioni della simulazione peggiorano per via di passi temporali più piccoli o eventi di simulazione di grande entità (includendo eccezioni dei risolutori e ripristini dei risolutori).
Terminato il profiling, salva il grafico facendo clic su Export Tab (Esporta scheda) ed esegui il salvataggio in formato .fig.
Se il tuo modello presenta delle problematiche che non sono state trattate in questa procedura, vai al Passaggio 5.
Passaggio 5: passaggi aggiuntivi
Le prestazioni del tuo modello ti soddisfano?
Grazie per aver usato Simulink Performance Guide.
Dai un’occhiata a queste risorse supplementari che analizzano le tecniche di miglioramento delle prestazioni affinché il tuo modello continui a funzionare nel migliore dei modi:
Grazie per aver dedicato un po’ del tuo tempo al debugging e alla raccolta di dati diagnostici.
Contatta l’assistenza e invia i report generati durante la procedura.