White paper

Progettazione Model-Based per i veicoli definiti dal software

Introduzione

La transizione verso i veicoli definiti dal software (SDV) consentirà alle case automobilistiche di aggiungere nuove funzionalità durante il ciclo di vita di un veicolo. Per consentire aggiornamenti frequenti, i team stanno adottando nuovi approcci, tra cui architetture E/E centralizzate o zonali con computer ad alte prestazioni (HPC), software embedded basato su architettura orientata ai servizi (SOA), automazione tramite integrazione continua/distribuzione continua (CI/CD) e validazione virtuale attraverso la simulazione.

La transizione verso i SDV non è semplice. Questo white paper offre una serie di approfondimenti e best practice maturati attraverso le collaborazioni di MathWorks con aziende del settore automotive in tutto il mondo. Analizza in che modo la progettazione Model-Based consente lo sviluppo dei veicoli definiti dal software:

  • Riutilizzando il software in più piattaforme: la progettazione Model-Based facilita il riutilizzo del software in HPC, controller di zona e unità di controllo elettronico (ECU).
  • Riducendo i tempi di sviluppo grazie all’automazione: l’uso di modelli, insieme a verifiche automatizzate e continue, controlli di coerenza e analisi di tracciabilità, aiuta a ridurre i tempi di sviluppo rispettando i requisiti di sicurezza e qualità.
  • Consentendo l’integrazione shift-left: l’integrazione di modelli di sistemi fisici e stack di software virtualizzati consente di eseguire test di integrazione software shift-left, accelerando il rilevamento dei difetti e migliorando la copertura dei test.
  • Fornendo gli strumenti giusti agli esperti del settore: la progettazione Model-Based consente agli esperti del dominio di adottare pratiche moderne di sviluppo software e creare software di alta qualità.
sezione

Funzionalità software e valore per il cliente

Le caratteristiche distintive del brand e il valore per il cliente sono veicolati dal software. I clienti si aspettano sicurezza e un’esperienza digitale continua, in cui il veicolo è una piattaforma di interazioni digitali ed esperienze che vanno oltre la semplice guida. Queste aspettative guidano i progressi tecnologici dei veicoli, come l’elettrificazione e l’autonomia.

Diagramma del ciclo di valore dei SDV, che include aspettative dei clienti, tecnologia e innovazione e opportunità di business.

Il software fornisce funzionalità che rispondono alle esigenze del cliente e supportano gli obiettivi aziendali. Il ciclo prosegue con l’evoluzione delle aspettative dei clienti.

Come fornire software in modo rapido e sicuro

Fornire software per il settore automotive rapidamente e in modo affidabile è difficoltoso per molte ragioni, tra cui:

  • Aumento della complessità del software e delle relative sfide di validazione
  • Requisiti per la sicurezza funzionale
  • Team di sistema veicolare e software con mentalità diverse

Questo documento illustra le tecnologie per lo sviluppo dei SDV, oltre alle modalità di collaborazione tra i team coinvolti.

Analisi degli elementi dei veicoli definiti dal software

MathWorks collabora con aziende automobilistiche in tutto il mondo, osservando sia pratiche efficaci che aree di criticità.

La fornitura di veicoli definiti dal software richiede competenze sia nello sviluppo del veicolo che nella creazione software, oltre a una stretta collaborazione tra i team. Tuttavia, questi team spesso lavorano separatamente poiché seguono processi differenti e storicamente utilizzano strumenti diversi.

Competenze per lo sviluppo di prodotti definiti dal software (pratiche software moderne, funzionalità basate sui dati e Cloud) e competenze di ingegneria del veicolo (affidabilità, sicurezza funzionale e componenti fisici).

Gli elementi che caratterizzano i prodotti “definiti dal software” e i “veicoli”.

Il veicolo è un sistema multidominio in cui affidabilità, sicurezza funzionale e integrazione di numerosi componenti fisici sono elementi critici.

Le competenze necessarie per sviluppare prodotti definiti dal software includono una combinazione di pratiche agili moderne di sviluppo software, con cicli di sviluppo rapidi, release frequenti e un elevato grado di automazione nella creazione del software. I prodotti basati su software necessitano di funzionalità guidate dai dati, che vengono raccolti dalla flotta attraverso il Cloud.

La complessità e i rischi emergono proprio nel momento in cui queste competenze si integrano, ossia quando team, strumenti, processi, mentalità e pregiudizi differenti si trovano a dover confrontarsi.

La base fondamentale del processo di sviluppo dei SDV è il veicolo stesso. Vent’anni fa, gli ingegneri dello sviluppo di sistemi automotive lavoravano in modo frammentato, con attività svolte da gruppi separati che si scambiavano informazioni tramite documenti. Questo approccio è cambiato con l’introduzione della progettazione Model-Based.

Un diagramma che mostra le fasi dello sviluppo: requisiti, progettazione degli algoritmi, architettura, simulazione, software embedded e generazione del codice, spesso svolte in modo separato e non integrato.

Metodo tradizionale di sviluppo dei sistemi, caratterizzato da reparti separati e poco integrati.

sezione

Utilizzo della progettazione Model-Based

La progettazione Model-Based mette al centro dei processi di sviluppo i modelli, sostituendo l’uso tradizionale dei documenti. Il modello funge da insieme di requisiti eseguibili che guidano le attività di verifica, validazione e test. Questo approccio consente di individuare e correggere precocemente problemi relativi a requisiti, architettura e algoritmi. Successivamente, è possibile generare automaticamente codice embedded, come C o C++, a partire dai modelli degli algoritmi da eseguire su un microcontroller.

Diagramma che mostra come la progettazione Model-Based integra le precedenti fasi isolate dello sviluppo (simulazione, progettazione di algoritmi, generazione di codice, requisiti e architettura) nel software embedded.

La progettazione Model-Based semplifica lo sviluppo dei sistemi.

Grazie alla progettazione Model-Based, i team possono superare la rigidità percepita del ciclo a V. L’adesione rigida al ciclo a V comporta una sequenza lineare di passaggi che richiedono requisiti di sistema definiti prima della decomposizione del sistema e la disponibilità di tutti i componenti prima dei test di integrazione, il che limita agilità ed efficienza.

Con la progettazione Model-Based e Simulink® è possibile modellare e simulare l’intero sistema, inclusi modelli di componenti fisici come batteria e sterzo, nonché l’intera architettura del veicolo, rappresentando anche i vari algoritmi software in esecuzione sul veicolo. Grazie a questo modello di sistema, è possibile iniziare lo sviluppo virtuale di una nuova funzionalità software ed eseguire test di integrazione virtuale sin dall’inizio, verificando come la nuova funzionalità interagisce con altre funzionalità software, tutte eseguite in un veicolo virtuale.

Inoltre, con Simulink, le fasi possono essere compattate rispetto a quanto previsto dal ciclo a V e l’esecuzione di queste fasi può essere automatizzata in modo coerente con le pratiche moderne di sviluppo software.

Infine, con i veicoli definiti dal software, l’architettura E/E del veicolo sta cambiando, così come i processi di sviluppo correlati. Di conseguenza, anche i workflow che implementano la progettazione Model-Based si sono evoluti.

Shift-left con la simulazione e la virtualizzazione

Una parte del cambiamento dei workflow interessa la virtualizzazione dei chip, del software di base e del middleware, che consente un’integrazione software anticipata (integrazione shift-left). Ad esempio, Simulink consente di anticipare le fasi di integrazione e test incorporando la rappresentazione virtuale di un processore Infineon® AURIX™ tramite tecnologie Synopsys. È possibile eseguire iterazioni rapide nell’ambiente di simulazione e poi utilizzare le librerie Infineon per generare automaticamente codice ottimizzato per il processore. Simulink supporta anche tecnologie di virtualizzazione di altri produttori, come Qualcomm.

Diagramma a blocchi che mostra l’integrazione della progettazione Model-Based con tecnologie di terze parti di Synopsys e Qualcomm, che consentono la generazione di codice ottimizzato per processori di nuova generazione e l’integrazione anticipata.

Attraverso lo shift-left è possibile iterare, testare e validare rapidamente nelle primissime fasi. Successivamente, è possibile generare codice ottimizzato per il processore.

Supporto dell’architettura orientata ai servizi

La SOA è una componente fondamentale per costruire software modulare aggiornabile in modo indipendente. Oggi, la progettazione Model-Based e Simulink consentono di creare applicazioni basate su segnali e orientate ai servizi per le nuove architetture E/E che interessano HPC e controller di zona. È possibile modellare applicazioni SOA (comprese le applicazioni AUTOSAR Adaptive), simularle e generare codice C++ prima di distribuirle come servizi modulari.

Esempio di stack di software SOA con vari livelli dall’alto in basso (software dell’applicazione, middleware, software di base) in esecuzione su hardware a prestazioni elevate.

Zeekr, un produttore di veicoli elettrici in Cina, ha utilizzato con successo la progettazione Model-Based per lo sviluppo di software SOA, consentendo al team di sviluppo di iterare e effettuare rapidamente il release del software.

Per saperne di più

Integrazione con piattaforme open source e di terze parti

Un ambiente di sviluppo destinato alla produzione deve integrare numerosi strumenti e piattaforme. Tale requisito è ampiamente supportato dalla progettazione Model-Based, poiché Simulink si interfaccia con molti altri strumenti, inclusi strumenti e codice open source.

Diagramma che mostra come le tecnologie software di terze parti (inclusi C++, DDS, Python, FMI e ROS) vengono integrate con Simulink.

È possibile modellare l’intero sistema e i suoi componenti, integrando anche elementi provenienti da fonti diverse.

Simulazione di scenari complessi

La creazione di scenari su strada e fuoristrada per la simulazione aiuta a ottimizzare i requisiti di sistema e testarli in relazione a situazioni realistiche.

È possibile creare scenari stradali o di cantiere per simulazioni e test.

Maggiore velocità e qualità

Passiamo ora al lato software. Le pratiche moderne di sviluppo software pongono l’accento sull’agilità.

I workflow che implementano la progettazione Model-Based si sono evoluti per rendere l’intero processo più agile, allineando i team di sviluppo del sistema veicolo e del software attraverso strumenti e obiettivi condivisi. La virtualizzazione del sistema completo, dei suoi componenti, dei processori virtuali e degli scenari consente di disporre di ambienti di test realistici.

Gli strumenti di ingegneria devono essere sempre più integrati con l’infrastruttura IT. La stretta collaborazione tra team di ingegneria e IT non è mai stata una prassi comune nel settore automotive. MathWorks collabora con le organizzazioni per mettere in comunicazione questi due ambiti e contribuire ad automatizzare gli approcci di ingegneria dei sistemi e Model-Based utilizzando gli strumenti DevOps adottati dai team software e delle piattaforme. L’obiettivo è allineare i processi, uniformare l’esecuzione delle pipeline e favorire una maggiore trasparenza attraverso dashboard e benchmark di prestazioni.

Diagramma di un centro software con riquadri dedicati allo sviluppo basato su codice, alle piattaforme DevOps e di CI.

L’integrazione dello sviluppo software e DevOps avviene attraverso strumenti condivisi e obiettivi comuni.

La virtualizzazione del sistema veicolo, dei componenti, del processore, degli stack di software e degli scenari offre un ambiente di test realistico, che può essere collegato e automatizzato tramite pipeline di integrazione continua (CI), indipendentemente dal fatto che il software sia generato automaticamente, scritto a mano o con una combinazione di entrambi.

Ad esempio, gli ingegneri di Geely ritengono che l’integrazione continua e il testing continuo (CICT) siano elementi fondamentali per passare dal semplice sviluppo rapido di software al rapido sviluppo di software di qualità. Considerano l’integrazione tra strumenti di ingegneria come Simulink, Simulink Test™ e Polyspace® e le piattaforme di CICT un modo per accelerare il flusso di valore e garantire una fornitura di software continua, di alta qualità, veloce, stabile e controllabile, riducendo i costi. Hanno fatto registrare un tasso di successo del 90% nei test di integrazione software alla prima esecuzione.

Diagramma del workflow di Geely che mostra il processo dall’ispezione del controllo degli accessi al testing automatico, che accelera il CICT per la qualità del software, con un’illustrazione del valore dello shift-left.

Geely incrementa qualità e velocità con DevOps (dal MathWorks Automotive Conference in Cina). (Crediti dell’immagine: Geely)

Continental adotta questo metodo da tempo, integrando approcci Model-Based con i propri centri software, incluse le integrazioni con GitHub®, Jenkins® e Artifactory. Ha praticamente raddoppiato la velocità del suo sistema di CI/CD e dimezzato le operazioni di manutenzione.

Diagramma di processo per Continental che mostra le fasi dello sviluppo nel suo centro software.

Schermata della presentazione di Continental sul suo centro software alla MathWorks Automotive Conference. (Crediti dell’immagine: Continental)

Questi due esempi sottolineano l’importanza di unire i sistemi e le moderne pratiche software.

Come progettare l’IA nel proprio sistema

Un tipo fondamentale di funzionalità basata sui dati è l’IA. Include algoritmi di IA per sistemi embedded, spesso chiamati IA embedded. MATLAB® e Simulink offrono una libreria di esempi di riferimento che mostrano come integrare una funzionalità software basata su IA all’interno di un sistema, per poi generare automaticamente il codice per il modello di inferenza. Questi esempi possono aiutarti a iniziare a progettare, simulare, testare, verificare e distribuire algoritmi di IA in grado di migliorare le prestazioni e la funzionalità di sistemi embedded complessi. Un esempio tipico di IA embedded è un sensore virtuale.

Un workflow di IA per sensori virtuali prevede la preparazione dei dati, la modellazione dell’IA, la simulazione del sistema e la fase di distribuzione.

L’IA può essere sviluppata in un framework open source come PyTorch®. MATLAB è in grado di interoperare con questi ambienti, così come con Python® e TensorFlow™, tramite co-esecuzione, convertitori di modelli e l’hub per i modelli di Deep Learning di MATLAB. I blocchi Simulink consentono di integrare i modelli di inferenza all’interno del sistema per simulare il comportamento dell’IA nel contesto operativo e nei vari scenari.

Scalabilità sul Cloud

Il Cloud offre una piattaforma per scalare le simulazioni e i processi di sviluppo software per la prototipazione, lo sviluppo e la distribuzione di funzionalità e aggiornamenti per i veicoli. L’integrazione tra Simulink e il Cloud consente di estendere i workflow di simulazione e sviluppo a piattaforme Cloud come Amazon Web Services (AWS®) e Microsoft® Azure®.

sezione

Conclusione

La transizione verso i veicoli definiti dal software richiede l’integrazione di mentalità, strumenti e processi provenienti dal mondo del software e da quello dei sistemi. MathWorks offre strumenti che supportano l’IA, le tecnologie Cloud e le moderne pratiche di sviluppo software.

Diagramma che illustra il flusso di progettazione di un SDV.

Sviluppo di veicoli definiti dal software con la progettazione Model-Based.