Best practice di Simulink per la modellazione su larga scala
Queste best practice comprendono pattern di modellazione, strumenti e processi che si sono dimostrati efficaci nella creazione di modelli Simulink® efficienti, scalabili e di facile manutenzione. Gli argomenti specifici trattati sono:
- Componentizzazione e interfacce
- Collaborazione con i MATLAB® Projects
- Gestione dati
- Miglioramento delle prestazioni della simulazione
Best practice per la modellazione su larga scala: architettura e prestazioni
Esplora le tecniche per modelli Simulink scalabili, che comprendono la componentizzazione, i dati, le interfacce, la collaborazione, le prestazioni e i workflow gestibili.
La modellazione su larga scala comprende generalmente sistemi complessi a loop chiuso che includono modelli d’impianto, controller, molteplici sottosistemi e talvolta centinaia di migliaia o persino milioni di blocchi.
Tra le sfide più comuni rientrano la scarsa leggibilità dei modelli, la difficoltà di collaborazione, la gestione complessa dei dati, i tempi di simulazione elevati e l’aumento dei costi di manutenzione.
La componentizzazione suddivide i modelli in unità gestibili, migliorandone la leggibilità, la possibilità di eseguire test, il riutilizzo, la facilità di manutenzione e la collaborazione.
La progettazione Model-Based utilizza modelli eseguibili per sviluppare, testare, verificare e validare sistemi complessi durante l’intero ciclo di vita ingegneristico.
Architettura del modello, interfacce dei componenti, gestione dei dati, workflow per la collaborazione e prestazioni della simulazione.
Utilizzando i riferimenti ai modelli, i dizionari dati, i MATLAB Projects, il controllo del codice sorgente e definizioni chiare delle interfacce.
Automotive, aerospaziale, robotica, automazione industriale, sistemi energetici, dispositivi medici e sistemi autonomi.
I modelli industriali di grandi dimensioni contengono normalmente centinaia di migliaia di blocchi, mentre alcuni modelli a livello enterprise superano il milione di blocchi.
Maggiore produttività nello sviluppo, maggiore efficienza della simulazione, migliore collaborazione, riutilizzo dei modelli e riduzione delle operazioni di manutenzione.
Stabilire un’architettura basata su componenti anziché creare un unico modello monolitico.
Componentizzazione Simulink: riferimenti a modelli e interfacce
Crea architetture Simulink scalabili con riferimenti a modelli, librerie e sottosistemi, per favorire il riutilizzo, la collaborazione e i test, migliorando al contempo le prestazioni.
La componentizzazione suddivide un modello di grandi dimensioni in componenti più piccoli e riutilizzabili, dotati di interfacce ben definite.
I riferimenti ai modelli consentono di integrare modelli indipendenti in sistemi più grandi, mantenendo workflow di sviluppo separati.
Utilizza i riferimenti ai modelli quando i componenti devono essere sviluppati, simulati, testati o riutilizzati in modo indipendente, oppure quando è necessario accelerare la simulazione.
Le librerie vengono generalmente impiegate per utility riutilizzabili, mentre i riferimenti ai modelli supportano la simulazione standalone, l’accelerazione e le build incrementali.
I riferimenti ai sottosistemi sono utili per i componenti condivisi, i workflow Simscape e alcuni scenari di sviluppo HDL.
I bus raggruppano segnali correlati in un’interfaccia strutturata che semplifica le connessioni nei modelli di grandi dimensioni.
I bus migliorano la leggibilità, riducono la complessità dei diagrammi e rendono le interfacce più facili da gestire.
Le porte Bus Element semplificano l’accesso ai segnali all’interno dei bus e riducono la necessità di utilizzare blocchi Bus Selector separati.
Ingegneri diversi possono lavorare su componenti separati senza dover modificare continuamente lo stesso file di modello.
Sì. Le architetture basate su componenti consentono di utilizzare la modalità acceleratore e le build incrementali, il riutilizzo della cache e un’inizializzazione più rapida.
Sviluppo collaborativo con Simulink, MATLAB Projects e Git
Utilizza MATLAB Projects per collaborare allo sviluppo di modelli Simulink, con controllo del codice sorgente, analisi delle dipendenze, test, CI/CD e workflow facilmente manutenibili.
I MATLAB Projects forniscono strumenti per la gestione degli ambienti e delle dipendenze, l’integrazione del controllo del codice sorgente e la collaborazione.
I progetti consentono di automatizzare le attività di configurazione, standardizzare gli ambienti e ridurre l’impegno richiesto dalla configurazione manuale.
L’apertura di un progetto consente di configurare automaticamente percorsi, variabili, script di avvio, collegamenti e impostazioni del progetto.
Sì. I MATLAB Projects si integrano con Git e forniscono strumenti per eseguire operazioni di commit, pull, push, confronto e merge.
Dependency Analyzer identifica le relazioni tra file, modelli, test, librerie e dizionari dati.
Sì. I progetti segnalano file duplicati, modifiche non salvate, dipendenze mancanti e conflitti nei percorsi.
I riferimenti ai progetti consentono a un progetto di utilizzare un altro progetto e creare una dipendenza da quest’ultimo, preservando al contempo la configurazione dell’ambiente.
MATLAB include strumenti di confronto grafico che evidenziano le modifiche funzionali e non funzionali apportate ai modelli.
MATLAB fornisce strumenti di merge visivo progettati appositamente per i file Simulink.
Sì. I progetti sono compatibili con Jenkins, GitHub, GitLab, Azure DevOps e altre piattaforme di automazione.
Sì. Gli script di avvio e le API dei progetti consentono di automatizzare i workflow di test, reporting e generazione di codice.
Dizionari dati Simulink: best practice per la gestione dei dati di progettazione
Gestisci i dati di progettazione di Simulink tramite dizionari dei dati, workspace del modello, argomenti e tipi di valore, per una progettazione Model-Based scalabile e coerente.
I dati di progettazione includono parametri, segnali, tipi di dati, enumerazioni, bus, alias e informazioni di configurazione utilizzati da un modello.
Un dizionario dati Simulink è un file .sldd dedicato che memorizza i dati di progettazione separatamente dai file di modello.
I dizionari dati migliorano l’organizzazione, la persistenza, il tracciamento delle modifiche, il riutilizzo e la collaborazione.
L’area di lavoro di base è globale e legata alla sessione corrente, mentre i dizionari dati forniscono un sistema di archiviazione strutturato e persistente.
Sì. Più modelli possono fare riferimento allo stesso dizionario dati.
Sì. I dizionari dati supportano riferimenti gerarchici, consentendo alle organizzazioni di condividere definizioni comuni.
Gli argomenti dei modelli consentono a diverse istanze di un modello di riferimento di utilizzare valori di parametri differenti.
I tipi di valore definiscono proprietà riutilizzabili, come tipo di dati, unità di misura, intervalli e dimensioni.
La migrazione può essere graduale. Simulink supporta l’utilizzo dei dizionari dati insieme alle variabili esistenti nell’area di lavoro.
Sì. Supportano il tracciamento delle modifiche, i workflow di confronto e l’integrazione con i sistemi di controllo del codice sorgente.
Una gerarchia di dizionari dati a livello di componente, supportata da dizionari condivisi per le definizioni comuni.
Accelerazione di Simulink con riavvio rapido e calcolo parallelo
Velocizza le simulazioni Simulink con la profilazione, le modalità di accelerazione, il riavvio rapido, il calcolo parallelo e le best practice architetturali.
I colli di bottiglia nelle prestazioni possono derivare dalla complessità del modello, dalle impostazioni del risolutore, da un’architettura non ottimale, da un’eccessiva registrazione dei dati o da workflow inefficienti.
Simulink Profiler, Solver Profiler, Performance Advisor e i metadati della simulazione.
Simulink Profiler misura il tempo di esecuzione dei blocchi e dei sottosistemi per identificare le aree che rallentano la simulazione.
Solver Profiler analizza il comportamento del risolutore e identifica problemi quali un numero eccessivo di zero crossing e reset del risolutore.
Performance Advisor verifica automaticamente la presenza di problemi comuni relativi alle prestazioni e suggerisce possibili miglioramenti.
La modalità acceleratore genera codice compilato per l’esecuzione del modello, riducendo il carico di lavoro della simulazione.
La modalità acceleratore rapido genera un target di simulazione eseguibile standalone che consente di ottenere ulteriori miglioramenti in termini di velocità.
L’avvio rapido evita la ricompilazione tra un’esecuzione e l’altra della simulazione quando vengono modificati solo i parametri.
I file della cache memorizzano artefatti compilati e target di simulazione per consentirne il riutilizzo tra diverse sessioni di simulazione.
Sì. Il workflow parsim consente di eseguire più simulazioni contemporaneamente su più core della CPU.
I modelli basati su componenti supportano le build incrementali, l’accelerazione selettiva, il riutilizzo della cache e un’inizializzazione più rapida.
Utilizza innanzitutto gli strumenti di profiling per identificare i colli di bottiglia, quindi applica la componentizzazione al modello, sfrutta la modalità acceleratore, abilita l’avvio rapido ed esegui più simulazioni in parallelo.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)