Model-Based Design na prática:
aplicações e desafios na engenharia de controle

Olá, me chamo Rodrigo Botelho e sou engenheiro responsável pelos produtos Speedgoat no Brasil. A proposta nessa jornada é desmistificar o Model-Based Design. Quero compartilhar o que aprendi para ajudar iniciantes no assunto e também, fortalecer a conexão com outros profissionais que queiram se aprofundar no tema, como eu.

Há diversas visões dentro de uma empresa para a metodologia Model-Based Design e cada área envolvida apresentará a sua própria definição. Vale notar que a visão aqui apresentada é a do engenheiro.

Definindo MBD (Model-Based Design)

Para definirmos o MDB desde o campo da engenharia, recorremos a conhecidos desenvolvedores de software como a MathWorks.

Modelagem Baseada em Modelos (Model Based Design – MBD) é o uso sistemático de modelos ao longo de todo o processo de desenvolvimento, o que melhora a entrega de sistemas complexos. Você pode utilizar essa abordagem com MATLAB e Simulink para encurtar ciclos de desenvolvimento e reduzir o tempo de desenvolvimento em 50% ou mais.

  • Experimente novas ideias e realize testes rápidos e repetíveis com modelagem e simulação.
  • Elimine etapas manuais e reduza erros humanos automatizando tarefas importantes, como geração de relatórios, codificação e verificação.
  • Crie um fio digital com rastreabilidade desde os requisitos e arquitetura do sistema até o design dos componentes e testes.
  • Realize manutenção preditiva, detecte falhas e otimize o sistema em operação utilizando modelos como gêmeos digitais.

 

Outro conhecido desenvolvedor de software livre deste segmento (CASE/CAE/CAD) e Open Source, o Scilab:

“Model-Based Design (MBD) é um método matemático e visual de abordar problemas associados ao desenvolvimento de sistemas complexos de controle, processamento de sinais e comunicação…
…A Modelagem Baseada em Modelos (MBD) é uma metodologia aplicada no projeto de software embarcado…”

As definições acima indicam que o Model-Based é um processo de desenvolvimento de software baseado num modelo para Sistemas Embarcados. Isto é, a partir de subsistemas conectados contendo blocos de funções, é possível especificar, projetar, simular, verificar, testar e implementar sistemas embarcados do início ao fim do projeto.

O MBD possui quatro grandes áreas, sendo elas:

  1. Especificação Executável
  2.  Projeto e Simulação
  3. Implementação
  4. Teste e Verificação

 

É importante ressaltar que estas áreas não são vistas como etapas, pois o processo de desenvolvimento é não-linear. A passagem entre áreas é direta, através do modelo ou “verdade absoluta” do projeto. Por exemplo, se após um teste do modelo descobrimos um erro de especificação, podemos voltar à parte de Especificação Executável e modificar, no modelo, a devida função ou parâmetro. Simulamos a modificação e seguimos com o modelo já ajustado para um novo ciclo de teste.

E o que ganhamos com isso?

Bem, a ideia toda deste processo é a de nos adiantarmos aos erros de desenvolvimento. Se detectados antecipadamente, erros podem ser ajustados a bom tempo e com menor custo. Caso contrário, podem causar prejuízos e recall. Se logo forem detectados, aprendidos e corrigidos, ótimo! Caso contrário, serão passados adiante e o impacto negativo se dará após  o lançamento do produto. O case do Toyota Prius é um exemplo. Veja aqui.

Diante da definição sobre MBD, a resposta é simples, embora extensa. O uso do MBD permite que rapidamente sejam simuladas as especificações, parâmetros e designs. Cenários de What-if aumentam a previsibilidade de acerto do produto e isto torna o processo de inovação e diferenciação mais rápido e confiável.

Somando-se a isso, com a geração automática de código e o conhecimento centralizado no modelo, diminuem-se erros de programação, melhora-se a comunicação entre times e também a gestão do conhecimento da empresa.

O uso de Simulação, Prototipagem Rápida de Controle e testes em Hardware-in-the-Loop permitem redução de protótipos, redução de retrabalho e, no conjunto, a redução de custo do projeto.

Finalmente, o tempo reduzido em cada parte do processo e o potencial reaproveitamento dos modelos em projetos subsequentes permitem um menor Time-to-Market (TTM).

Ferramentas

O conceito  Model-based design surgiu para resolver problemas no desenvolvimento de sistemas embarcados. Dessa forma, as ferramentas se apresentam tanto como software quanto hardware.  Atualmente, a MCBTI trabalha exclusivamente com MATLAB e Simulink na parte de software, linguagem MATLAB e C, e os hardwares são Speedgoat.

Pontos altos do MBD

  • A Model-Based Design é uma metodologia de desenvolvimento de software embarcado centrada em modelo.
  • A MBD é dividida em 4 áreas: Especificação Executável, Simulação, Teste e Verificação e Implementação.
  • A adoção do desenvolvimento baseado em modelos permite reduzir custos, acelerar a detecção de erros, validar requisitos e melhorar na comunicação entre equipes de áreas distintas.
  • Caso queira mais detalhes, este site tem informações e exemplos. Se estiver buscando algo mais extenso e detalhado, pode encontrar no livro Model-Based Design for Embedded Systems, de Gabriela Nicolescu e Pieter J. Mosterman ou as aulas da Universidade Técnica de Viena.