Professional Documents
Culture Documents
DEPARTAMENTO DE ELETRNICA
ENGENHARIA ELETRNICA
PONTA GROSSA
2014
PONTA GROSSA
2014
Ministrio da Educao
Universidade Tecnolgica Federal do Paran
Ponta Grossa
Departamento de Eletrnica
Engenharia Eletrnica
TERMO DE APROVAO
APLICAO DO MTODO DE DESENVOLVIMENTO BASEADO EM MODELOS
PARA UMA FUNO DE SOFTWARE AUTOMOTIVO: SISTEMA DE ILUMINAO
EXTERNA
por
JOO HENRIQUE ZANDER NEME
Este Trabalho de Concluso de Curso foi apresentado em 17 de Dezembro de 2014
como requisito parcial para a obteno do ttulo de Bacharel em Engenharia
Eletrnica. O candidato foi arguido pela Banca Examinadora composta pelos
professores abaixo assinados. Aps deliberao, a Banca Examinadora considerou
o trabalho aprovado.
__________________________________
Dr. Max Mauro Dias Santos
Prof. Orientador
___________________________________
Dr. Sergio Luiz Stevan Junior
Prof. Co-Orientador
___________________________________
Dr. Claudinor Bitencourt Nascimento
Membro titular
___________________________________
Dra. Fernanda Cristina Correa
Membro titular
AGRADECIMENTOS
RESUMO
ABSTRACT
NEME, Joo Henrique Zander. Model Based Design for Automotive Software
Function: External Lighting System. 2014. 60 pages. Trabalho de Concluso de
Curso (Bacharelado em Engenharia Eletrnica) - Federal Technology University Parana. Ponta Grossa, 2014.
The demand for embedded systems grows exponentially. In the automotive area, the
demand for these systems to control electric and electronic features is growing in the
same way. This fact drives the complexity of the development of these systems. The
automotive industry operates in an aggressive market, obliging suppliers to align its
quality strategy to constant improvement. This paper analyzes Model Based Designs
methods, such as Model-in-the-Loop, Software-in-the-Loop and Rapid Control
Prototyping to prove the effectiveness of these methods in order to develop
automotive software more efficiently and using fewer resources.
Keywords: Model Based Design. Development of Automotive Software. Model-inthe-Loop. Software-in-the-Loop. Rapid Control Prototyping.
LISTA DE ILUSTRAES
Figura 1 - Crescente demanda por componentes eltricos, eletrnicos e software
para veculos automotores...................................................................................11
Figura 2 - ECUs automotivas......................................................................................18
Figura 3 - Sequncia de desenvolvimento de software automotivo...........................19
Figura 4 - Exemplo de diagrama do modelo em V.....................................................20
Figura 5 - Mtodo de desenvolvimento tradicional.....................................................23
Figura 6 - Desenvolvimento Baseado em Modelo (MBD).........................................24
Figura 7 - Sequncia de mtodos para verificao de sistema embarcado..............26
Figura 8 - Workflow para o MIL demonstrando telas genricas dos programas
utilizados..............................................................................................................27
Figura 9 - Workflow para o SIL demonstrando telas genricas dos programas
utilizados..............................................................................................................28
Figura 10 - Workflow para o PIL demonstrando telas genricas dos programas
utilizados e imagens ilustrativas das plataformas...............................................29
Figura 11 - Workflow para o HIL demonstrando telas genricas dos programas
utilizados e imagens ilustrativas das plataformas...............................................30
Figura 12 - Plataforma de hardware MicroAutoBox, da empresa dSpace..............32
Figura 13 - Comparao do desenvolvimento tradicional com o desenvolvimento do
Rapid Control Prototyping....................................................................................32
Figura 14 - Estratgia de controle e estgios de verificao......................................33
Figura 15 - Sequncia de desenvolvimento deste trabalho e ferramentas utilizadas
durante o processo..............................................................................................34
Figura 16 - Sistema externo de iluminao automotivo..............................................36
Figura 17 - Circuito para a luz indicadora de direo.................................................38
Figura 18 - Diagrama de blocos de uma BCM............................................................40
Figura 19 - Arquitetura funcional do sistema com as entradas de teste criadas para
validao..............................................................................................................42
Figura 20 - Disposio dos subsistemas todos os sistemas de iluminao...............42
Figura 21 - Diagrama Stateflow para a lgica das luzes de posio.......................45
Figura 22 - - Diagrama Stateflow para controlar o funcionamento da luz baixa......46
LISTA DE SIGLAS
BCM
CCM
CTM
EBCM
ECU
ECM
E/E
GEM
ICM
IPC
MABX
MBD
PCM
RCP
SCM
TCM
TCU
UPA
LISTA DE ACRNIMOS
HIL
MIL
OEM
PIL
SIL
Hardware-in-the-Loop
Model-in-the-Loop
Original Equipment Manufacturer
Processor-in-the-Loop
Software-in-the-Loop
SUMRIO
INTRODUO ........................................................................................
1
TEMA .......................................................................................................
1.1
1.1.
1
1.2
OBJETIVOS .............................................................................................
1.3
1.3.
1
1.3.
2
1.4
MTODO DA PESQUISA ........................................................................
1.5
DESENVOLVIMENTO .............................................................................
2
2.1
V-MODEL
PARA
DESENVOLVIMENTO
DE
SOFTWARE
AUTOMOTIVO .........................................................................................
SISTEMA EXTERNO DE ILUMINAO AUTOMOTIVO ........................
2.2
2.3
2.4
3
3.1
3.2
RAPID CONTROL PROTOTYPING ........................................................
3.3
3.4
3.4.
1
3.4.
2
3.4.
3
1
0
1
2
1
2
1
3
1
3
1
3
1
3
1
4
1
4
1
6
1
9
2
1
2
4
2
5
2
7
2
8
3
0
3
3
3
7
3
7
3
8
4
5
4
3.5
3.6
ILUMINAO
AUTOMOTIVO
..................................................................
RAPID CONTROL PROTOTYPING PARA UM SISTEMA EXTERNO
DE
ILUMINAO
AUTOMOTIVO ..................................................................
RESULTADOS ........................................................................................
6
4
8
5
2
MODEL-IN-THE-LOOP ............................................................................ 5
4.1
2
SOFTWARE-IN-THE-LOOP .................................................................... 5
4.2
4
RAPID
CONTROL 5
4.3
PROTOTYPING .........................................................
5
CONCLUSO .......................................................................................... 5
5
7
REFERNCIAS .................................................................................................. 5
9
ANEXO A - Cdigo em C gerado para a S-Function do SIL .......................... 6
1
4
10
1 INTRODUO
Atualmente praticamente impossvel imaginar um mundo sem sistemas
embarcados, principalmente para controle de sistemas mecatrnicos. Eles esto
presentes em toda a variedade de produtos, como utilidades domsticas, sistemas
complexos de transporte e at em equipamentos militares. Segundo Holtmann
(2011), a parte funcional destes sistemas, que realizada por software tem crescido
constantemente.
Para o domnio de aplicao automotivo, sistemas de controle embarcados
so atualmente o foco principal de inovaes e melhoria na qualidade destes
produtos. Isto se d em funo da crescente demanda dinmica dos atores deste
mercado
Este uso intensivo de componentes eltricos e eletrnicos na indstria
automotiva tem impulsionado inovaes no desenvolvimento e produo que visam
diminuir custos, tempo de produo e melhorando a qualidade do produto final,
proporcionando maior conforto e segurana. Consequentemente, os engenheiros
tm trabalhado para aumentar a funcionalidade destes elementos de eletrnica em
substituio a sistemas mecnicos.
A primeira
mudana
significativa
desta
migrao
de
componentes
11
Figura 1 - Crescente demanda por componentes eltricos, eletrnicos e software para veculos
automotores
Fonte: PLOSS (2008)
12
1.1 TEMA
O presente trabalho aborda o projeto de desenvolvimento baseado em
modelo de um sistema de iluminao externa de um veculo. Desta forma, busca-se
destacar a potencialidade dos mtodos e ferramentas envolvidas no processo,
proporcionando aos interessados a capacidade de compreenso deste assunto.
Este tema
13
MDB
consiste
na
utilizao
de
modernas
ferramentas
de
desenvolvimento grfico para modelar o sistema fsico a ser controlado. Desta forma
pode-se desenvolver a estratgia de controle fazendo uso de testes virtuais nas
fases preliminares do projeto. O desenvolvimento da estratgia de controle virtual
em ferramentas computacionais possibilita posteriormente a gerao de cdigo
automtico de forma que se possa embarcar em um sistema final.
Desta maneira no necessrio se preocupar em desenvolver o
funcionamento do sistema de maneira textual e com codificao manual, algo que
pode consumir muito tempo e recursos. Ao contrrio, todo o funcionamento pode ser
idealizado de maneira grfica e atravs de diagramas de blocos, que resultam em
uma interface muito mais fcil de ser utilizada.
Estes modelos so desenvolvidos em ferramentas de software especficas e
podem ser facilmente simuladas sem necessariamente testar em uma plataforma
fsica. Na abordagem tradicional, os testes e simulaes do cdigo eram
complicados e por vezes impossveis e principalmente podiam gerar muitos erros.
Em busca deste objetivo, este trabalho ser balizado pela abordagem do
MDB, para desenvolver e testar a funo desejada, considerando dois mtodos
tradicionais de verificao de sistemas, Model-in-the-Loop (MIL) e Software-in-theLoop (SIL). Para tambm validar a funo ser realizado o Rapid Control Prototyping
(RCP) que permite que a validao seja feita em um hardware, com uma mquina
em tempo real. Com o RCP possvel verificar como as interfaces e a dinmica da
funo se comportam no mundo externo. O mtodo de RCP desenvolvido foi o de
fullpass, que utiliza a mquina de prototipagem para substituir a ECU de maneira
completa, ao contrrio do modo bypass que utilizado para substituir apenas partes
individuais da ECU.
Estas abordagens apresentam inmeras vantagens para o projeto. No caso
do MIL e SIL, como todo o processo se baseia na modelagem grfica do
funcionamento do software em contraste com o modo textual de programao, h
14
uma economia enorme de tempo e recursos. Do mesmo modo, com o RCP existe
tambm grande economia de tempo que normalmente gasto para o
desenvolvimento do cdigo a ser embarcado em um hardware para a validao. O
RCP permite que um modelo seja diretamente embarcado em uma plataforma a fim
de ser verificado.
Para o desenvolvimento destes modelos sero utilizadas ferramentas
especficas. No caso do MIL e SIL sero utilizadas as ferramentas da MathWorks
Matlab/Simulink e Stateflow. O Stateflow um ambiente de simulao de
decises combinacionais e sequenciais baseadas em mquinas de estados e
fluxogramas. Para a realizao do RCP ser utilizado alm destes programas o
LabVIEW da National Instruments para simular as entradas de testes desta fase.
Durante o processo foi tambm utilizada a ferramenta da dSpace chamada Control
Desk que auxiliou na verificao dos modelos desenvolvidos.
1.2 PROBLEMA
Atualmente
existe
uma
ampla
utilizao
de
sistemas
embarcados
1.3 OBJETIVOS
15
1.4 JUSTIFICATIVA
O setor automobilstico extremamente dinmico e exigente. De um lado o
consumidor procura cada vez mais melhorias em conforto, segurana, qualidade e
tecnologia fazendo com que o ciclo de vida dos sistemas embarcados seja curto e a
complexidade aumente.
Por outro lado a indstria pressiona desenvolvedores e fornecedores pela
diminuio de custos e tempo de trabalho para conseguir manter-se neste mercado
dinmico e agressivo alm de ter que satisfazer as restries de regulamentao.
Com o aumento constante na demanda de automveis, a necessidade de que a
produo aumente concomitantemente mandatria.
O desenvolvimento de softwares automotivos utiliza mtodos, conceitos e
ferramentas especficas que so definidas por grandes grupos formados por
montadoras e seus fornecedores. Porm, estes conceitos e conhecimentos vm
para nosso pas com determinada limitao e atraso, visto que os veculos com
16
estas
entradas
de
teste
sero
utilizadas
no
modelo
17
de
comunicao,
satisfazendo
uma
arquitetura
computacional
powertrain
18
existe uma forte separao entre o sistema lgico funcional e o sistema fsico, onde o
sistema funcional abstrai qualquer aspecto fsico e foca puramente sob as
dependncias lgicas entre as funes de um veculo.
A Figura 2 apresenta de forma ilustrativa alguns exemplos de ECUs
automotivas que so empregadas em veculos, tais como o mdulo de controle do
motor ou PCM
BCM (Body
19
BCM, etc.);
Determinao das relaes de comunicao entre as ECUs (ex.:
20
21
22
ferramentas
desenvolvimento
possam
adequadas
ser
para
posteriormente
que
cada
integrados
fase
ao
ciclo
do
processo
de
23
de
reutilizao
de
projetos
para
2.3
DESENVOLVIMENTO
TRADICIONAL
VERSUS
DESENVOLVIMENTO
BASEADO EM MODELOS
No processo desenvolvimento tradicional, a elaborao dos requisitos, o
desenvolvimento fsico do prottipo, o desenvolvimento de cdigos, o processo para
embarcar e posteriores testes so realizados sequencialmente em ambientes
diferentes e com muitos passos manuais. Os requisitos so descritos textualmente,
utilizando ferramentas de edio de texto. Os projetos so muitas vezes
24
25
26
Model-in-the-Loop,
Hardware-in-the-Loop.
Software-in-the-Loop,
utilizao
destes
Processor
mtodos
in-the-Loop
geralmente
segue
cronologicamente esta sequncia. Alm disso, via de regra, as trs primeiras etapas
utilizam as mesmas entradas de teste. Conforme demonstrado na Figura 7.
Apesar de que apenas os mtodos de Model-in-the-Loop e o Software-inthe-Loop sero utilizadas para validar a funo desejada neste trabalho, relevante
que todos os mtodos sejam explicados. A seguir sero explicados um a um os
27
principais mtodos utilizados para o MBD, porm muitas vezes outras denominaes
so encontradas na bibliografia. Esta variao normalmente causada quando o
sistema a ser desenvolvido especfico e obriga os engenheiros a fazer testes que
normalmente no seriam desenvolvidos na maior parte dos sistemas.
a) Model-In-the Loop (MIL): o primeiro estgio de simulao que serve
como referncia para os estgios seguintes e fornece os valores
mnimos e mximos das variveis. A estratgia de controle e o modelo
fsico so de desenvolvimento extremamente rpido, possibilitando
mudanas e testes rpidos no sistema. Neste trabalho esta fase foi
desenvolvida em ambiente Matlab/Simulink. A figura 8 ilustra o ambiente
em que o MIL geralmente aplicado. O modelo da planta e do
controlador, assim como todos os testes para verificao so
desenvolvidos em Simulink.
Figura 8 - Workflow para o MIL demonstrando telas genricas dos programas utilizados
Fonte: Elaborado pelo Autor (2014)
28
Figura 9 - Workflow para o SIL demonstrando telas genricas dos programas utilizados
Fonte: Elaborado pelo Autor (2014)
29
Figura 10 - Workflow para o PIL demonstrando telas genricas dos programas utilizados e
imagens ilustrativas das plataformas
Fonte: Elaborado pelo Autor (2014)
30
Figura 11 - Workflow para o HIL demonstrando telas genricas dos programas utilizados e
imagens ilustrativas das plataformas
Fonte: Elaborado pelo Autor (2014)
principal
desejo
de
Engenheiros
que
trabalham
com
projetos
31
resultado
seja
satisfatrio. Falhas de
projeto
podem
ser
encontradas
32
33
34
3 DESENVOLVIMENTO
Com todas as etapas que sero realizadas no trabalho apresentadas ser
iniciado a parte prtica do trabalho. O fluxo de trabalho foi organizado de maneira
que todas as arquiteturas e controladores foram modelados respeitando a sequncia
tradicional do MBD. Inicialmente modelou-se a arquitetura funcional e seu
controlador em Simulink. Aps esta fase foi gerado o cdigo em linguagem C para
o controlador para possibilitar a etapa de SIL. Por ltimo as entradas e sadas da
planta foram alteradas com blocos especficos para o hardware utilizado durante a
fase de RCP. Esta sequncia ilustrada na Figura 15.
35
ou engate de marcha r;
Nvel de tenso fornecida pela bateria;
Posio da chave na ignio (off", acessrio ou acessrio (acc), on e
crank).
36
37
38
39
esses mdulos j esto operando sob uma nica montagem Este mdulo em
questo o mdulo de controle das funes de carroceria, conhecido como body
control module (BCM). O BCM executa uma funo muito complexa e utiliza uma
grande gama de dispositivos de entrada e sada. Os dispositivos de entrada referemse a componentes que alimentam dados no mdulo (como sensores e resistores
variveis) para ajudar o mdulo a determinar sua resposta. Enquanto isso, os
dispositivos de sada so aqueles que o mdulo utiliza para produzir a sua resposta
entrada enviada para ele. Estas peas podem incluir rels e solenides que que
podem ligar e desligar dispositivos.
Segundo Liuguilong (2013) na eletrnica automotiva, a BCM o principal
componente de uma ampla gama de funes. Pode compar-lo com o sistema
nervoso central de um ser humano. O sistema nervoso controla a coordenao no
corpo humano atravs da transmisso de sinais. Enquanto isso, o BCM regula a
atividade de coordenao entre as diferentes partes de um carro tambm atravs de
sinais.
O BCM torna tudo mais simples na operao de dispositivos eletrnicos em
um carro. No entanto, apesar de oferecer uma ampla gama de benefcios se
comparado as configuraes anteriores, ele tambm apresenta problemas relativos
a sua estrutura. Quando houver um problema na BCM, isso causar mal
funcionamento em vrias partes que ele controla, como o funcionamento
intermitente no levantamento de vidros eltricos, travas e luzes. Em certos casos,
estes sistemas podem mesmo deixar de funcionar inteiramente. A Figura 18 ilustra o
diagrama de blocos de uma BCM com as principais funes controladas.
40
41
42
43
44
(IP=1);
O sinal de que a lmpada est funcionando esteja alto (PL1=1);
Desta forma o sinal de sada que habilita o sistema de luzes de posio ser
alto (PL=1), caso contrrio ele ter valor baixo (PL=0).
Observando estes requisitos foi possvel desenvolver os diagramas em
45
(IP=1);
O sinal de que a lmpada est funcionando esteja alto (LB1=1);
Desta forma o sinal de sada que habilita o sistema de luzes de posio ser
alto (LB=1), caso contrrio ele ter valor baixo (LB=0).
Com os requisitos listados foi possvel desenvolver o diagrama Stateflow
46
(IP=1);
O sinal de que a lmpada est funcionando esteja alto (FB1=1);
Desta forma o sinal de sada que habilita o sistema de luzes de posio ser
alto (FB=1), caso contrrio ele ter valor baixo (FB=0).
Com estes requisitos foi possvel gerar o grfico em Stateflow que controla o
funcionamento da luz alta. Este grfico demonstrado na figura 23.
47
(IP=1);
O sinal de que a lmpada est funcionando esteja alto (BL1=1);
Desta forma o sinal de sada que habilita o sistema de luzes de posio ser
alto (BL=1), caso contrrio ele ter valor baixo (BL=0).
Com estes requisitos foi possvel desenvolver o diagrama Stateflow de
48
(IP=1);
O sinal de que a lmpada est funcionando esteja alto (RL1=1);
Caso o sinal de alerta seja ativado, o sistema deve
funcionar
49
(IP=1);
O sinal de que a lmpada est funcionando esteja alto (LL1=1);
Caso o sinal de alerta seja ativado, o sistema deve
funcionar
50
Por ltimo foi criado o controlador da luz de r. Para que seu funcionamento
seja habilitado necessrio o cumprimento dos seguintes requisitos:
(IP=1);
O sinal de que a lmpada est funcionando esteja alto (RL1=1);
Desta forma o sinal de sada que habilita o sistema de luzes de posio ser
alto (RL=1), caso contrrio ele ter valor baixo (RL=0).
Com estes requisitos foi possvel desenvolver o diagrama Stateflow de
51
Run=1 ou Crank=1);
O nvel da bateria esteja em um nvel aceitvel (Batt=1).
52
53
54
55
56
57
58
59
Aquisio:
60
Fig
ura 37 - Entradas relevantes para o funcionamento do sistema
Fonte: Elaborado pelo Autor (2014)
4 RESULTADOS
61
4.1 MODEL-IN-THE-LOOP
Como explicado no captulo 2, a fase de MIL executa a simulao do modelo
criado em ambiente Simulink. Portanto fazendo uso das entradas criadas e
demonstradas anteriormente, fez se a simulao do sistema em um tempo de 10
segundos.
Para ajudar a observao e comparao dos sinais e a consequente
validao do modelo, os sinais de sada sero colocados lado a lado com os de
entrada, gerados nos signal builders. Esta comparao pode ser vista na Figura 38.
62
REQ-01 e REQ-02: A luz de posio est ativa durante o intervalo de t=0.5 at t=9. A
sada mostra que este caso est ativo de t=0.6 at t=7.3.
Luz baixa:
REQ-03 e REQ-04: a luz baixa est ativa de t=3 at t=4 e de t=7 at t=8. A sada
mostra que este caso est ativo de t=3 at t=4 e de t=7 at t=7.3.
Luz alta:
REQ-05 e REQ-06: a luz alta est ativa de t=1.5 at t=4 e de t=8.5 at t=9. A sada
mostra que este caso est ativo de t=1.5 at t=4 e de t=6 at t=7.3.
Luz indicadora de direo esquerda
REQ-07 e REQ-08: A luz indicadora de direo esquerda est ativa de t=5 at t=6 e
de t=8.5 at t=9. Alm disso o boto de emergncia est ativo de t=1 at t=2.5 e de
t=5.5 at t=6.5. A sada mostra que este caso est ativo de t=1 at t=2.5 e de t=5 at
t=6.5.
Luz indicadora de direo direita
REQ-09 e REQ-10: A luz indicadora de direo direita est ativa de t=3 at t=3.5 e de
t=6 at t=7. Alm disso o boto de emergncia est ativo de t=1 at t=2.5 e de t=5.5
at t=6.5. A sada mostra que este caso est ativo de t=1 at t=250, de t=3 at t=3.5 e
de t=5.5 at t=7.
REQ-11: como observado, quando o boto de alerta est ativo ambas as luzes de
indicao de direo esto ativas.
Luz de r:
REQ-12 e REQ-13: a luz de r est ativa de t=4 at t=6. A sada mostra que este caso
est ativo de t=4 at t=6.
Luz de freio:
REQ-14 o pedal de freio est ativo de t=1 at t=2, de t=4 at t=5 e de t=7 at t=8. A
sada mostra que este caso est ativo de t=1 at t=2, de t=4 at t=5 e de t=7 at
t=7.3.
Bateria:
63
4.2 SOFTWARE-IN-THE-LOOP
Conforme relatado no item 3.5, a fase de SIL cria um cdigo em linguagem
C, a partir do modelo criado para o MIL, que representa o funcionamento do
controlador.
A verificao desta fase pode ser mais simples do que a efetuada para o
MIL, pois como j foi comprovado que as sadas da fase anterior esto conforme o
esperado, podemos apenas comparar as sadas do MIL com as do SIL
O controlador que foi testado nesta fase agora representado pelo cdigo
em linguagem C gerado automaticamente pelo Simulink. Existe uma grande
facilidade em executar o SIL utilizando esta ferramenta computacional. possvel
gerar a S-Function e incluir o cdigo automaticamente utilizando uma funo do
prprio programa. Seria possvel tambm com o Simulink, gerar um cdigo
genrico em C e utilizar um bloco diferente de S-Function e adicionar manualmente
o cdigo, porm o modo automtico funciona perfeitamente.
A Figura 39 traa um comparativo destas sadas. Como pode-se ver as
sadas so idnticas provando que o cdigo gerado condizente com o
funcionamento esperado e baseado nos pr-requisitos definidos no incio do projeto.
64
Figura 39 - Quadro comparativo entre as sadas da fase MIL com as da fase SIL
Fonte: Elaborado pelo Autor (2014)
65
66
Analisando o grfico podemos ver que, exatamente como nas fases de MIL
e SIL, o sistema se comportou corretamente. Os requisitos foram todos respeitados,
inclusive o de nvel de bateria, visto que nada no sistema funciona aps o tempo de
t=7.3 s. O sinal de pisca no RCP funcionou conforme o esperado, respeitando a
lgica que faz com que o sinal funcione de maneira intermitente quando ativo.
67
5 CONCLUSO
A engenharia de software automotiva consiste na adoo de mtodos,
processos, ferramentas e padronizaes adequados que assegurem aos produtos
automotivos um nvel de qualidade, confiabilidade, segurana, satisfao as
regulamentaes e conforto, perceptveis e mensurveis aos clientes e todos
envolvidos no processo.
A elevada quantidade em linhas de cdigo dos veculos se caracteriza pela
grande quantidade de contedos funcionais que os automveis possuem
atualmente, como funes de iluminao, segurana, conforto, sistemas de
assistncia ao motorista, deteco de ponto cego entre outros. Esta proliferao de
contedos funcionais faz com que o software em automveis seja um elemento que
proporcione caractersticas diferenciadas do produto ao consumidor, sendo
considerado como um elemento facilitador que pode proporcionar novas
funcionalidades aos requisitos de atores de um automvel como usurio,
concessionria, ambiente e regulamentaes.
Esta comparao ao nvel de linhas de cdigo um exemplo ilustrativo para
apresentar o nvel de complexidade que os veculos atuais apresentam quando
observamos ao nvel de desenvolvimento, manuteno e recursos necessrios. Isto
porque fica claro que o nvel de complexidade em todos os nveis vai crescendo de
forma exponencial.
Dentro deste cenrio a utilizao de mtodos como o Model Based Design e
o Rapid Control Prototyping se demonstram excelentes ferramentas para diminuir o
tempo
de
desenvolvimento
de
novos
produtos
para
automveis
68
REFERNCIAS
BRASIL. Lei n 9.503., de 23 de dezembro de 1997. Cdigo de Trnsito
Brasileiro..
Braslia,
Disponvel
em:
<http://www.planalto.gov.br/ccivil_03/leis/l9503.htm>. Acesso em: 25 maio 2014
BROY, Manfred; KIRSTAN, Sascha; KRCMAR, Helmut. What is the benefit of a
model-based design of embedded software systems in the car industry? 2012.
Disponvel em: https://wwwbroy.in.tum.de/~schaetz/papers/Benefit_of_MBEES.pdf>.
Acesso em: 12 maio 2014
DEMERS, Stephanie; GOPALAKRISHNAN, Praveen; KANT, Latha. A Generic
Solution to Software-in-the-Loop. Military Communications Conference, Orlando,
Fl, EUA, p.1-6, 29 out. 2007.
FANG, Zheng et al. Design and implementation of a low cost dsp based rapid
control prototyping system. Industrial Electronics And Applications, Xi'an, p.18381843, 25 maio 2009.
FANTUZZI, Cesare. Chapter 02-Modeling: Modena: Universit Degli Studi di
Modena e Reggio Emilia, 2014. 55 slides.
HOLTMANN, Jorg; MEYER, Jan; MEYER, Matthias. A Seamless Model-Based
Development Process for Automotive Systems. 2011. Disponvel em:
<http://www.cs.uni-paderborn.de/uploads/tx_sibibtex/HMM11.pdf>. Acesso em: 23
mai. 2014.
INSTRUMENTS, National (Org.). Shortening the Embedded Design Cycle with
Model-Based
Design. 2012.
Disponvel
em:
<http://www.ni.com/whitepaper/4074/en/>. Acesso em: 25 jun. 2014.
69
em:
70
71
A.1
72
uint32_T _SILELSMachineNumber_;
real_T _sfTime_;
/* Function Declarations */
/* Function Definitions */
void SILELS_initializer(void)
{}
void SILELS_terminator(void)
{}
/* SFunction Glue Code */
unsigned int sf_SILELS_method_dispatcher(SimStruct *simstructPtr, unsigned int
chartFileNumber, const char* specsCksum, int_T method, void *data)
{ if (chartFileNumber==1) {
c1_SILELS_method_dispatcher(simstructPtr, method, data);
return 1;
} if (chartFileNumber==2) {
c2_SILELS_method_dispatcher(simstructPtr, method, data);
return 1;
} if (chartFileNumber==3) {
c3_SILELS_method_dispatcher(simstructPtr, method, data);
return 1;
} if (chartFileNumber==4) {
c4_SILELS_method_dispatcher(simstructPtr, method, data);
return 1;
} if (chartFileNumber==5) {
c5_SILELS_method_dispatcher(simstructPtr, method, data);
return 1;
} if (chartFileNumber==6) {
c6_SILELS_method_dispatcher(simstructPtr, method, data);
return 1;
} if (chartFileNumber==7) {
c7_SILELS_method_dispatcher(simstructPtr, method, data);
return 1;
} if (chartFileNumber==8) {
73
74
case 5:
extern void sf_c5_SILELS_get_check_sum(mxArray *plhs[]);
sf_c5_SILELS_get_check_sum(plhs);
break;
}
{
case 6:
extern void sf_c6_SILELS_get_check_sum(mxArray *plhs[]);
sf_c6_SILELS_get_check_sum(plhs);
break;
}
{
case 7:
extern void sf_c7_SILELS_get_check_sum(mxArray *plhs[]);
sf_c7_SILELS_get_check_sum(plhs);
break;
case 8:
75
default:
} else if (!strcmp(commandName,"target")) {
76
commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0';
if (strcmp(commandName,"get_autoinheritance_info"))
return 0;
mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));
aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\0';
{
if (strcmp(aiChksum, "0eMjNtWrPcM8IsKjH8FrHE") == 0) {
extern mxArray *sf_c1_SILELS_get_autoinheritance_info(void);
plhs[0] = sf_c1_SILELS_get_autoinheritance_info();
break;
}
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
break;
}
case 2:
if (strcmp(aiChksum, "UTMeEz7aP6MZ9Grb12OdWH") == 0) {
extern mxArray *sf_c2_SILELS_get_autoinheritance_info(void);
plhs[0] = sf_c2_SILELS_get_autoinheritance_info();
break;
}
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
break;
}
case 3:
if (strcmp(aiChksum, "50UTTgswUeJ8IfJyve0K2E") == 0) {
extern mxArray *sf_c3_SILELS_get_autoinheritance_info(void);
plhs[0] = sf_c3_SILELS_get_autoinheritance_info();
break;
}
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
break;
}
{
case 4:
if (strcmp(aiChksum, "3SFRG2doR2S8YyJLVlxmR") == 0) {
extern mxArray *sf_c4_SILELS_get_autoinheritance_info(void);
plhs[0] = sf_c4_SILELS_get_autoinheritance_info();
77
break;
}
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
break;
}
case 5:
if (strcmp(aiChksum, "x5VTW5KRUQPXzNydmMkniH") == 0) {
extern mxArray *sf_c5_SILELS_get_autoinheritance_info(void);
plhs[0] = sf_c5_SILELS_get_autoinheritance_info();
break;
}
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
break;
}
case 6:
if (strcmp(aiChksum, "iwtJtEyL2IXTgXBPEYDBOF") == 0) {
extern mxArray *sf_c6_SILELS_get_autoinheritance_info(void);
plhs[0] = sf_c6_SILELS_get_autoinheritance_info();
break;
}
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
break;
} case 7:
{
if (strcmp(aiChksum, "JF1Popq7zwpku6CviAFY0") == 0) {
extern mxArray *sf_c7_SILELS_get_autoinheritance_info(void);
plhs[0] = sf_c7_SILELS_get_autoinheritance_info();
break;
}
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
break;
case 8:
if (strcmp(aiChksum, "7t1ZED8HsMHA4gQqIPvMvG") == 0) {
extern mxArray *sf_c8_SILELS_get_autoinheritance_info(void);
plhs[0] = sf_c8_SILELS_get_autoinheritance_info();
break;
}
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
break;
}
default:
78
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
} } return 1;
#else
return 0;
#endif
}unsigned int sf_SILELS_get_eml_resolved_functions_info( int nlhs, mxArray *
plhs[], int nrhs, const mxArray * prhs[] )
{#ifdef MATLAB_MEX_FILE
char commandName[64];
if (nrhs<2 || !mxIsChar(prhs[0]))
return 0;
/* Possible call to get the get_eml_resolved_functions_info */
mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));
commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0';
if (strcmp(commandName,"get_eml_resolved_functions_info"))
return 0;
{
extern
const
mxArray
const
mxArray
*sf_c1_SILELS_get_eml_resolved_functions_info(void);
mxArray *persistentMxArray = (mxArray *)
sf_c1_SILELS_get_eml_resolved_functions_info();
plhs[0] = mxDuplicateArray(persistentMxArray);
mxDestroyArray(persistentMxArray);
break;
}
case 2:
{
extern
*sf_c2_SILELS_get_eml_resolved_functions_info(void);
mxArray *persistentMxArray = (mxArray *)
sf_c2_SILELS_get_eml_resolved_functions_info();
plhs[0] = mxDuplicateArray(persistentMxArray);
79
mxDestroyArray(persistentMxArray);
break;
}
case 3:
{
extern
const
mxArray
const
mxArray
const
mxArray
const
mxArray
*sf_c3_SILELS_get_eml_resolved_functions_info(void);
mxArray *persistentMxArray = (mxArray *)
sf_c3_SILELS_get_eml_resolved_functions_info();
plhs[0] = mxDuplicateArray(persistentMxArray);
mxDestroyArray(persistentMxArray);
break;
}
case 4:
{
extern
*sf_c4_SILELS_get_eml_resolved_functions_info(void);
mxArray *persistentMxArray = (mxArray *)
sf_c4_SILELS_get_eml_resolved_functions_info();
plhs[0] = mxDuplicateArray(persistentMxArray);
mxDestroyArray(persistentMxArray);
break;
}
case 5:
{
extern
*sf_c5_SILELS_get_eml_resolved_functions_info(void);
mxArray *persistentMxArray = (mxArray *)
sf_c5_SILELS_get_eml_resolved_functions_info();
plhs[0] = mxDuplicateArray(persistentMxArray);
mxDestroyArray(persistentMxArray);
break;
}
case 6:
{
extern
*sf_c6_SILELS_get_eml_resolved_functions_info(void);
mxArray *persistentMxArray = (mxArray *)
sf_c6_SILELS_get_eml_resolved_functions_info();
plhs[0] = mxDuplicateArray(persistentMxArray);
mxDestroyArray(persistentMxArray);
80
break;
}
case 7:
{
extern
const
mxArray
const
mxArray
*sf_c7_SILELS_get_eml_resolved_functions_info(void);
mxArray *persistentMxArray = (mxArray *)
sf_c7_SILELS_get_eml_resolved_functions_info();
plhs[0] = mxDuplicateArray(persistentMxArray);
mxDestroyArray(persistentMxArray);
break;
}
case 8:
{
extern
*sf_c8_SILELS_get_eml_resolved_functions_info(void);
mxArray *persistentMxArray = (mxArray *)
sf_c8_SILELS_get_eml_resolved_functions_info();
plhs[0] = mxDuplicateArray(persistentMxArray);
mxDestroyArray(persistentMxArray);
break;
}
default:
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
} } return 1;
#else
return 0;
#endif
}unsigned int sf_SILELS_third_party_uses_info( int nlhs, mxArray * plhs[], int
nrhs, const mxArray * prhs[] )
{ char commandName[64];
char tpChksum[64];
if (nrhs<3 || !mxIsChar(prhs[0]))
return 0;
/* Possible call to get the third_party_uses_info */
mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));
commandName[(sizeof(commandName)/sizeof(char)-1)] = '\0';
mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));
81
tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\0';
if (strcmp(commandName,"get_third_party_uses_info"))
return 0;
{
if (strcmp(tpChksum, "dM7eHftvA6UbOhMuKijooC") == 0) {
extern mxArray *sf_c1_SILELS_third_party_uses_info(void);
plhs[0] = sf_c1_SILELS_third_party_uses_info();
break;
}
case 2:
{
if (strcmp(tpChksum, "eDUzH921FR0Ap0uDADO7wD") == 0) {
extern mxArray *sf_c2_SILELS_third_party_uses_info(void);
plhs[0] = sf_c2_SILELS_third_party_uses_info();
break;
}
case 3:
{
if (strcmp(tpChksum, "9HMWzFudZOXHo23f1AfmMD") == 0) {
extern mxArray *sf_c3_SILELS_third_party_uses_info(void);
plhs[0] = sf_c3_SILELS_third_party_uses_info();
break;
}
case 4:
{
if (strcmp(tpChksum, "oZscz0oMeGq6oKqqA16lhC") == 0) {
extern mxArray *sf_c4_SILELS_third_party_uses_info(void);
plhs[0] = sf_c4_SILELS_third_party_uses_info();
break;
}
case 5:
{
if (strcmp(tpChksum, "xMd0k7bgiWhGPHiH2fLLg") == 0) {
extern mxArray *sf_c5_SILELS_third_party_uses_info(void);
82
plhs[0] = sf_c5_SILELS_third_party_uses_info();
break;
}
case 6:
{
if (strcmp(tpChksum, "tTnu24zIiqt6gDmvpfMhoE") == 0) {
extern mxArray *sf_c6_SILELS_third_party_uses_info(void);
plhs[0] = sf_c6_SILELS_third_party_uses_info();
break;
}
case 7:
{
if (strcmp(tpChksum, "RqnE0wyETT02gwGaqCW9H") == 0) {
extern mxArray *sf_c7_SILELS_third_party_uses_info(void);
plhs[0] = sf_c7_SILELS_third_party_uses_info();
break;
}
case 8:
{
if (strcmp(tpChksum, "GfVejiabfylIfgIjxhEpuB") == 0) {
extern mxArray *sf_c8_SILELS_third_party_uses_info(void);
plhs[0] = sf_c8_SILELS_third_party_uses_info();
break;
}
default:
plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);
} }
return 1;
}void SILELS_debug_initialize(struct SfDebugInstanceStruct* debugInstance)
{
_SILELSMachineNumber_
sf_debug_initialize_machine(debugInstance,"SILELS",
"sfun",0,8,0,0,0);
sf_debug_set_machine_event_thresholds(debugInstance,_SILELSMachineNumber_
,0,0);
83
sf_debug_set_machine_data_thresholds(debugInstance,_SILELSMachineNumber_,
0);
}
void SILELS_register_exported_symbols(SimStruct* S)
{}
static mxArray* sRtwOptimizationInfoStruct= NULL;
mxArray* load_SILELS_optimization_info(void)
{ if (sRtwOptimizationInfoStruct==NULL) {
sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info("SILELS",
"SILELS");
mexMakeArrayPersistent(sRtwOptimizationInfoStruct);
} return(sRtwOptimizationInfoStruct);
}void unload_SILELS_optimization_info(void)
{ if (sRtwOptimizationInfoStruct!=NULL) {
mxDestroyArray(sRtwOptimizationInfoStruct);
sRtwOptimizationInfoStruct = NULL;
}}