Download PDF
ads:
Guilherme Nobrega Martins
Algoritmos Genéticos Aplicados
ao Problema de
Reconstituição de Acidentes com Veículos Terrestres
Dissertação de Mestrado
Dissertação apresentada como requisito parcial para
obtenção do título de Mestre pelo Programa de Pós-
Graduação em Engenharia Mecânica da PUC-Rio.
Orientador: Prof. Mauro Speranza Neto, D.Sc.
Rio de Janeiro, novembro de 2005
PUC-Rio - Certificação Digital Nº 0321180/CC
ads:
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
Guilherme Nobrega Martins
Algoritmos Genéticos Aplicados
ao
Problema de
Reconstituição de Acidentes
com Veículos Terrestres
Dissertação apresentada como requisito parcial para obtenção
do título de Mestre pelo Programa de Pós-Graduação em
Engenharia Mecânica da PUC-Rio. Aprovada pela Comissão
Examinadora abaixo assinada.
Prof. Mauro Speranza Neto, D.Sc.
Orientador
PUC-Rio
Prof. Fernando Yassou Chiyoshi, Ph.D.
UFRJ
Prof. Washington Braga Filho, Ph.D.
PUC-Rio
Prof. Franscisco José da Cunha Pires Soeiro, Ph.D
UERJ
Prof. José Eugenio Leal, Ph.D.
Coordenador Setorial do Centro Técnico Científico - PUC-Rio
Rio de Janeiro, 05 de dezembro de 2005
PUC-Rio - Certificação Digital Nº 0321180/CC
ads:
Todos os direitos reservados. É proibida a reprodução total
ou parcial do trabalho sem autorização da universidade, do
autor e do orientador.
Guilherme Nobrega Martins
Graduado em Engenharia de Controle e Automação pela
PUC-Rio em 2002.
Ficha catalográfica
Martins, Guilherme Nobrega
Algoritmos genéticos aplicados ao problema de
reconstituição de acidentes com veículos terrestres /
Guilherme Nobrega Martins ; orientador: Mauro Speranza
Neto. Rio de Janeiro : PUC-Rio, Departamento de
Engenharia Mecânica, 2005.
120 f. : il. (algumas color.) ; 30 cm
Dissertação (mestrado) Pontifícia Universidade
Católica do Rio de Janeiro, Departamento de Engenharia
Mecânica.
Inclui referências bibliográficas
1. Engenharia mecânica Teses. 2. Otimização. 3.
Algoritmos genéticos. 4. Reconstituição de acidentes. 5.
Problema inverso. 6. Colisão de veículos terrestres. I.
Speranza Neto, Mauro. II. Pontifícia Universidade Católica
do Rio de Janeiro. Engenharia Mecânica. III. Título.
CDD: 621
PUC-Rio - Certificação Digital Nº 0321180/CC
À minha querida avó Gioconda, que sempre fez tudo por mim e acima de tudo,
acreditou na minha capacidade.
PUC-Rio - Certificação Digital Nº 0321180/CC
Agradecimentos
Ao meu amado pai, pelas orientações acadêmicas e conselhos de vida.
À minha amada mãe, por todo amor e carinho.
A toda a minha querida família, pelo apoio e carinho.
Aos meus queridos amigos, pelo apoio nos momentos difíceis e pela companhia
nos momentos prazerosos.
Ao Mauro Speranza Neto, pela paciência e compreensão.
PUC-Rio - Certificação Digital Nº 0321180/CC
Resumo
Martins, Guilherme Nobrega. Algoritmos Genéticos Aplicado ao
Problema de Reconstituição de Acidentes com Veículos Terrestres.
Rio de Janeiro, 2005. 120p. Dissertação de Mestrado - Departamento de
Engenharia Mecânica, Pontifícia Universidade Católica do Rio de Janeiro.
Uma das aplicações mais interessantes e desafiadoras da engenharia é a
solução dos problemas inversos. Neste tipo de problema enquadra-se o
tratamento científico da reconstituição de acidentes de veículos terrestres. Um
outro tema diretamente relacionado é a análise de colisões, tanto no contexto da
reconstituição de um acidente, quanto no que diz respeito ao grau de adequação
do veículo ao impacto, associado à sua integridade estrutural e à segurança
passiva dos seus ocupantes.
Neste trabalho é aplicada uma técnica de otimização moderna, conhecida
como algoritmo genético, para o tratamento do problema inverso em colisão de
veículos terrestres, empregando modelos de veículos rígidos. Definiu-se como,
a partir de restrições impostas e das posições finais dos veículos após uma
colisão, o algoritmo de otimização pode fornecer o conjunto de variáveis e
parâmetros que mais provavelmente levam os veículos àquela condição.
Como resultado, o método foi considerado perfeitamente aplicável ao
problema proposto e passível de ser utilizado como base para implementação
como ferramenta de suporte à perícias judiciais em casos reais.
Palavras-chave
Otimização; Algoritmos Genéticos; Reconstituição de Acidentes;
Engenharia Inversa; Colisão de Veículos Terrestres.
PUC-Rio - Certificação Digital Nº 0321180/CC
Abstract
Martins, Guilherme Nobrega. Genetic Algorithm Applied to the Ground
Vehicles Accidents Reconstruction Problem. Rio de Janeiro, 2005.
120p. M.Sc. Dissertation Departamento de Engenharia Mecânica,
Pontifícia Universidade Católica do Rio de Janeiro.
One of the most interesting and challenging applications in engineering is
the solution of inverse problems. In this kind of problem we have as an example
the scientific approach of the ground vehicle accident reconstruction. Another
directly related theme is collisions analysis, either in the context of an accident
reconstruction, or in the context of the vehicle crashworthiness, associated to its
structural integrity and their occupants' passive safety.
In this dissertation a modern optimization technique, known as genetic
algorithm, is applied to the treatment of ground vehicles collision inverse problem
using models of rigid vehicles. We have defined how, starting from imposed
constraints and the vehicles final positions after a collision, the optimization
algorithm may furnish the set of variables and parameters that most probably
lead the vehicles to those positions.
As a result, we have been able to evaluate the method as perfectly
applicable to the proposed problem and may be used as a base aiming its
implementation as a tool for support to the expertise regarding real cases.
Keywords
Optimization; Genetic Algorithm; Accidents Reconstruction; Inverse
Engineering; Ground Vehicles Collision.
PUC-Rio - Certificação Digital Nº 0321180/CC
Sumário
1 Introdução: Relevância e Estado da Arte 9
2 Modelagem de uma Colisão 12
2.1. Etapas de uma Colisão 12
2.2. Modelo Pré-Choque 14
2.3. Modelo de Colisão Instantânea 18
2.4. Modelo Pós-Choque 35
3 Algoritmo Genético e a Reconstituição de Acidentes 47
3.1. Algoritmo Genético 47
3.2. Algoritmo Genético Aplicado à Reconstituição de Acidentes 50
4 Estudo de Casos 58
4.1. Uma Aplicação Trivial 58
4.2. Pós-Colisão para Um Veículo 63
4.3. Pós-Colisão para Dois Veículos 65
4.4. Caso completo 68
5 Conclusões e Sugestões 76
6 Referências Bibliográficas 77
7 Apêndices – Programas Matlab 78
7.1. Uma Aplicação Trivial 79
7.2. Pós-Colisão para Um Veículo 81
7.3. Pós-Colisão para Dois Veículos 87
7.4. Caso Completo 104
PUC-Rio - Certificação Digital Nº 0321180/CC
Introdução: Relevância e Estado da Arte
1
Introdução: Relevância e Estado da Arte
Em acidentes de colisão envolvendo um ou mais veículos terrestres, pode
ser necessário pesquisar as condições precedentes ao choque, de forma a
encontrar os agentes responsáveis e as possíveis causas. As razões para esta
busca vão desde aquelas de cunho jurídico até as de cunho financeiro,
passando pelo esclarecimento de falhas técnicas que conduz a futuros
aperfeiçoamentos. Como exemplos da área jurídica, podem-se citar acidentes
envolvendo vítimas, que implicam na abertura de um processo criminal, a fim de
identificar os responsáveis e as situações de culpa ou dolo. Em tais casos, ao se
abrir o processo, o juiz designa um responsável (perito judicial) que terá a função
de concluir como se configurou o acidente. Cada parte do processo poderá ainda
contratar um assistente técnico que será incumbido de fazer uma nova análise
dos dados e dar a sua conclusão a respeito dos fatos. Neste âmbito, a utilização
de uma abordagem científica para determinar as condições que antecedem a
colisão – contrapondo-se assim ao método de tentativa e erro amplamente
utilizado nestes casos é de grande relevância, pois leva a resultados mais
precisos e confiáveis e portanto com menores possibilidades de contra-
argumentações, uns dos principais objetivos da Engenharia Forense, e condição
necessária para aceitação de tais soluções em processos judiciais, como
discutido em Speranza Neto, et. al. [1].
Da mesma forma, no campo tecnológico, os acidentes suscitam a
oportunidade de pesquisa na área de segurança, levando à prevenção de
acidentes através de elementos ativos (ABS, controle de tração) e à redução da
gravidade das conseqüências do mesmo mediante componentes passivos
(airbag, cinto de segurança). Para tanto, a indústria automobilística tem se
utilizado de crash-tests, que são testes de impacto reais e portanto de suma
importância no processo de avaliação da segurança dos veículos. Porém, tais
avaliações implicam em altos custos, onerando a indústria e transformando cada
vez mais os métodos numéricos indispensáveis para a análise e interpretação
dos problemas da colisão.
PUC-Rio - Certificação Digital Nº 0321180/CA
Introdução: Relevância e Estado da Arte 10
Assim, não é de surpreender que o interesse acadêmico por soluções
adequadas para pesquisa dos fatores que antecedem tais acidentes seja um
fato histórico. Neste contexto, pode-se mencionar a abordagem conhecida como
“Engenharia Inversa”, que tem trazido contribuições do método científico a essa
questão. Esse tipo de tratamento visa reconstituir a seqüência cronológica do
evento, a partir da configuração final do mesmo, mediante métodos direcionados
de tentativa e erro baseados nas leis da Física.
No caso particular da Engenharia Inversa aplicada à colisão de veículos,
ao contrário dos casos de engenharia direta comumente tratados que têm como
meta calcular eventos futuros a partir de condições iniciais (c.i.) e de contorno
(c.c.) (Fig.1), propõe-se a conhecidas as condições finais (c.f.) dos veículos e
algumas restrições determinar a configuração (posição e orientação) dos
veículos e suas velocidades no momento imediatamente anterior à colisão, como
também as suas trajetórias após a colisão até a parada.
Como ilustração, o exemplo da Figura 1 apresenta o problema direto.
Dadas as velocidades de colisão, o ângulo formado entre os vculos e as
características intrínsecas aos mesmos e à colisão, é possível calcular as
trajetórias de ambos. Na mesma Figura 1, tem-se uma ilustração do método
específico em pauta. Neste caso o que se propõe é conhecer as condições
iniciais do choque através da análise das posições finais e de outras informações
tais como quais partes dos veículos colidiram, existência de obstáculos
intransponíveis, local de colisão, marcas de pneus e rotas prováveis.
Figura 1 - Seqüências direta e inversa
PUC-Rio - Certificação Digital Nº 0321180/CA
Introdução: Relevância e Estado da Arte 11
Em razão da dinâmica complexa envolvida na colisão de dois veículos
mesmo que limitados ao plano a determinação do problema inverso se torna
muito difícil. A metodologia utilizada constitui em calcular a trajetória – a partir de
valores iniciais gerados aleatoriamente ou através da experiência de um
especialista e obter por tentativa e erro os valores iniciais que melhor se
adequam à situação que deu origem aos valores finais e às restrições dadas.
Nesse contexto, a motivação deste trabalho não é substituir o especialista,
e sim auxiliá-lo na geração dos valores imediatamente precedentes à colisão. A
experiência do especialista ajuda, entre outras coisas, a definir o universo de
soluções possíveis. A importância deste fato será explicitada posteriormente.
Paralelamente, é de se notar o avanço das pesquisas em modelagem e
otimização de sistemas, levando a métodos e algoritmos para aplicação em
diferentes áreas, tais como a programação linear, a programação dinâmica, a
otimização de fluxos em rede, o método das direções conjugadas, o método do
gradiente, o controle ótimo (que pode ser encarado como uma otimização restrita
à dinâmica do sistema) e o relativamente recente algoritmo genético (GA).
A utilização de métodos de otimização na engenharia inversa, mais
especificamente nos casos de reconstituição de acidentes de veículos terrestres,
pode ser encontrada na literatura [7], porém com poucos detalhes,
principalmente no que diz respeito ao procedimento propriamente dito. O
propósito deste trabalho é apresentar os diferentes métodos e, em um segundo
momento, definir como se dará a aplicação de algoritmos genéticos ao problema
em pauta, tendo em vista recomendações nesse sentido, encontradas em outros
estudos [6;8], estes por sua vez também vagos no que se relaciona à forma de
emprego destas metodologias. Antes de se dar início ao desenvolvimento deste
trabalho fez-se uma ampla pesquisa nos livros da área e na Internet e poucas
referências foram encontradas, suscitando assim o interesse nesta abordagem,
que apesar de não ser genuinamente pioneira, ainda não conta na literatura com
uma definição satisfatória sobre sua aplicabilidade na área em apreço.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 12
2
Modelagem de uma Colisão
Neste trabalho, optou-se por modelar somente o veículo e a colisão. Tanto
a pista quanto o ambiente que cerca a colisão não foram tratados. A inclusão
destes fatores em nada afetará o algoritmo de otimização que, como discutido no
próximo capítulo, é robusto e suporta mudanças no programa de simulação sem
que nenhuma alteração relevante se faça necessária.
Está sendo utilizado neste trabalho um simulador de colisões de veículos
terrestres que se baseia no modelo apresentado por Abdulmassih [2] e que pode
ser adotado para casos de colisão de um veículo contra um obstáculo ou de dois
veículos entre si. Este modelo de colisão instantânea trabalha no plano, com
veículos rígidos de três graus de liberdade, levando em conta as perdas de
energia na colisão devido às deformações plásticas dos veículos, o atrito e a
interpenetração deles.
O modelo de colisão basicamente faz uma transformação linear das
variáveis de entrada velocidades e posições dos veículos antes da colisão
por meio de uma matriz que contém informações sobre a geometria do
problema, a massa e o momento de inércia de cada veículo, os coeficientes de
restituição, de interpenetração e de atrito, o que resulta nas velocidades e
posições logo após a colisão. Estas serão então as entradas do simulador, que,
segundo o modelo descrito a seguir, calculará a trajetória dos veículos até o
instante de parada. Neste ponto da abordagem, torna-se pertinente conceituar
com precisão os três momentos ou etapas da colisão.
2.1.
Etapas de uma Colisão
Em toda colisão, ocorrem necessariamente três etapas distinguíveis e
modeláveis separadamente: o pré-choque, o choque propriamente dito e o pós-
choque (vide Figura 2).
O pré-choque envolve os acontecimentos precedentes à colisão e que
exercem influência direta sobre os valores dos parâmetros relevantes ao choque.
No caso de colisão de veículos terrestres, nesta etapa as variáveis apresentam
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 13
geralmente menor variação em comparação com as outras, dadas as restrições
impostas pelo comportamento do motorista.
Figura 2 – Seqüência de Colisão
O choque propriamente dito é caracterizado pelo contraste entre, por um
lado, a magnitude das forças e energia envolvidas, e por outro, o intervalo de
tempo a considerar. Em particular neste estudo, tal intervalo de tempo será
aproximado para zero (colisão instantânea).
O pós-choque é constituído pelos acontecimentos logo posteriores ao
choque, encerrando-se com a parada dos veículos. Esta etapa pode ser
caracterizada pela ausência da influência do piloto humano, o que leva a uma
situação de dinâmica de veículos em condições extremas de forças, sendo de se
destacar a prevalência do atrito dinâmico.
A seguir, são detalhados os modelos referentes a cada uma das três
etapas citadas.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 14
2.2.
Modelo Pré-Choque
A modelagem dos acontecimentos precedentes ao choque foi analisada e
avaliou-se que não será objeto deste estudo. Sua complexidade é um desafio
abordado em diversos trabalhos, que se baseiam em modelos de
comportamento humano em colisões. As publicações disponíveis sobre o tema
não incluem a devida adaptação às necessidades do trabalho aqui apresentado,
tratando-se portanto de metodologia recomendável para aperfeiçoamentos
futuros do modelo desenvolvido nesta dissertação.
Day e Metz [9], por exemplo, abordam o problema em pauta utilizando
uma aplicação direta de um modelo matemático para um sistema de controle
humano. Para o modelo de piloto humano, Day assume uma equação
diferencial linear a coeficientes constantes, com um ruído somado à saída que
não pode ser descrito por uma equação linear deste tipo. Ao sintetizar o modelo
de equação diferencial linear para o piloto humano, três propriedades são
importantes de serem analisadas:
- Atraso de reação
Experimentos simples de reação mostram que o atraso da mesma
é de no mínimo 0,15 s.
- Ganho
Controle de retro-alimentação requer um ganho, que neste caso
precisa ser o maior possível para garantir estabilidade, para ter
resposta razoável
- Retardo muscular
Viscosidade, inércia e assincronia muscular resultam em um
retardo entre ação desejada e efetiva ação (0,1s a 0,2s).
Combinando as propriedades anteriores, tem-se a seguinte função de
transferência
s
Ke
Y
n
s
humano
r
τ
τ
+
=
1
relacionando a primeira percepção pelo piloto (entrada) da necessidade de
mudança e o esterçamento (saída) exercido pelo mesmo através do volante,
onde K é o ganho, τ
r
é o atraso na reação e τ
n
é o retardo muscular.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 15
Como diversas variáveis são controladas ao mesmo tempo, uma
potencial interferência entre elas. Estudos mostram que em determinadas
situações, o piloto humano faz amostragem de informação que não é contínua,
sendo assim melhor caracterizado por uma equação a diferenças do que por
uma equação diferencial.
Os humanos sofrem variações de performance ao longo do tempo, e este
dado deve ser levado em consideração no modelo. A existência de ruído
portanto se faz necessária.
E finalmente, percebe-se que o humano, enquanto controlador, é muito
adaptável, ou seja, um piloto pode mudar de um carro para outro de dinâmica
bem diferente sem necessitar de treinamento prolongado ou sequer de algum
treino. Porém ao se estudar um veículo em particular, esta característica é pouco
relevante, a não ser em mudanças súbitas como o estouro de um pneu.
Allen e Rosenthal [10], por sua vez, abordam o problema em pauta
classificando os modelos de piloto , em termos gerais, de acordo com as funções
de controle, de direção e de navegação. Entende-se como controle, as funções
psicomotoras que estabilizam o veículo na trajetória e velocidade desejada em
função das perturbações aerodinâmicas e de pista. a direção engloba as
funções psicomotoras e perceptivas do piloto que levam o veículo a seguir uma
dada trajetória, impor certa velocidade, interagir com o trânsito e evitar
obstáculos. Por último a navegação envolve níveis mais altos de funções
cognitivas aplicadas à escolha do melhor caminho ou decisões sobre interação
com o tráfego (evitar congestionamento).
Um modelo genérico para as funções de direção e controle está ilustrado
na Figura 3. Este modelo permite ao operador humano responder a perturbações
porém não engloba a função navegação. O piloto opera tanto de forma a
compensar possíveis erros de velocidade e trajetória como de percorrer a dada
trajetória.
As funções de transferências Y
pi
e Y
p
são respectivamente as partes do
comportamento humano responsáveis por percorrer a trajetória desejada e por
compensar o erro. Y
c
é a função de transferência do veículo, ou seja, tem como
saída o comportamento do veículo dada uma entrada no volante.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 16
Figura 3 – Modelo Genérico
A função de transferência de malha aberta do ciclo compensatório da
Figura 3 pode ser expressa como:
s
ccp
s
e
eYY
/
*
τ
ω
=
O comportamento compensatório de um piloto humano pode ser
compactado num sistema de dois parâmetros, no ganho ou freqüência de
crossover (
ω
c
) e no atraso no tempo (
τ
e
).
Para manter-se na trajetória desejada, para percorrer uma trajetória
curvilínea, para mudança de pista ou desviar de obstáculos, o piloto humano
exerce um controle de esterçamento no veículo. Para alguns destes casos são
utilizados comportamentos baseados na percepção e predição. Em outros, como
correção de perturbações, se utilizam de comportamentos para perseguir a
trajetória desejada.
Um modelo geral de esterçamento para ambos os comportamentos é
mostrado na Figura 4. Enquanto o piloto exerce o esterçamento necessário para
cumprir a trajetória prevista, ele também tem que compensar possíveis
perturbações.
A parte compensatória do sistema se em forma de uma malha
fechada, enquanto a parte de perseguição de rota se por uma malha aberta.
O ciclo fechado requer uma atitude estabilizadora baseada na amplitude e na
duração do movimento de esterçamento. Para a parte de perseguição, é
necessário haver certa previsão do movimento necessário de esterçamento.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 17
Figura 4 - Modelo de Piloto Genérico
Como ambos os artigos citados tratam de softwares comerciais, seus
respectivos códigos fontes não estão disponíveis e nem mesmo seus algoritmos
chegam a ser apresentados de forma explícita. Isso torna a reprodução destes
modelos inviável. Após o exame destas referências, optou-se por modelar o
problema somente a partir da condição imediatamente anterior ao choque. Nesta
condição não se faz necessário um modelo de piloto humano, que se admite
que a reação deste, mesmo que haja, é desprezível frente à velocidade dos
acontecimentos, às forças envolvidas e às avarias do veículo após a colisão,
diminuindo com isso a sua dirigibilidade.
Em Speranza Neto e Spínola [14], apresenta-se um estudo inicial para a
modelagem de piloto humano e da sua influência no comportamento do veículo
que deverá ser incluído futuramente nos trabalhos desenvolvidos pelo grupo de
dinâmica de veículos da PUC-Rio, de modo a apresentar completamente a etapa
pré-choque.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 18
2.3.
Modelo de Colisão Instantânea
O modelo de choque do trabalho tratado foi adaptado a partir do trabalho
de Abdulmassih [2], de forma a simplificar o algoritmo do programa de
otimização. Este modelo tem como entrada informações como a geometria do
problema, a massa e o momento de inércia de cada veículo, os coeficientes de
restituição, de interpenetração e de atrito. Através de uma transformação linear,
obtêm-se como saída as velocidades e posições logo após a colisão.
No referido trabalho, os problemas direto ou inverso eram descritos no
referencial da colisão, definido como tendo seu eixo x perpendicular à área de
colisão, o eixo y ao longo dessa área, e sendo sua origem localizada no ponto
médio da área. Tal referencial foi estabelecido em um modelo baseado na
hipótese de uma área plana de interceptação dos veículos, atingida
imediatamente após o choque, e mantida fixa durante a colisão.
A determinação dos parâmetros geométricos característicos do problema
de colisão neste referencial, assim como a definição das velocidades dos
veículos antes do choque, era normalmente uma tarefa complicada e sujeita a
erros, a menos que se tratasse de um acidente com características bastante
particulares. Também a interpretação dos resultados do modelo não era uma
tarefa das mais simples, uma vez que as velocidades de translação pós-colisão,
e conseqüentemente os movimentos dos veículos, deviam ser analisados em um
referencial específico para cada caso e posição particular dos veículos, que em
nada auxiliava a visualização das suas trajetórias no cenário do acidente, e era
completamente distinto daqueles geralmente usados em dinâmica de veículos.
Assim, para facilitar os procedimentos de entrada de dados e análise de
resultados, procedeu-se basicamente a uma mudança de referenciais. Passou-
se a adotar os referenciais locais de cada veículo para definição do problema, e
conseqüentemente para a determinação dos parâmetros e variáveis pré-colisão,
e a empregar um referencial global, estabelecido de acordo com o cenário do
acidente, para avaliação dos movimentos pré-colisão e pós-colisão. Agora o
referencial da colisão é determinado a partir da geometria da colisão, ajustada
em função de cada caso específico, tornando o problema muito mais simples de
ser definido. O modelo de colisão e sua solução continuam no referencial da
colisão, entretanto um pré-processamento para estabelecer tal referencial, a
partir de condições mais fáceis de serem definidas, e um pós-processamento
para melhor compreensão e visualização do resultado obtido.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 19
2.3.1.
Colisão Oblíqua no Referencial da Colisão
A Figura 5 apresenta alguns tipos genéricos de colisões, os quais podem
ser tratados como choques oblíquos, e de acordo com a formulação detalhada
em Abdulmassih (2003), são analisados por um modelo que depende da posição
do centro de massa dos veículos em relação ao centro da área de colisão, das
velocidades dos veículos no instante do choque, das suas propriedades
inerciais, e de parâmetros que determinam a natureza da colisão e o nível de
interpenetração dos veículos. A Figura 6 mostra colisões centrais, que são um
caso particular daquelas da Figura 5, para as quais o mesmo modelo pode ser
empregado, uma vez estabelecida devidamente a geometria do choque entre os
veículos.
Figura 5 - Colisões Oblíquas
Não-centrais
Obstáculo fixo
Lateral
Frontal
Laterais
Genéricas
Oblíqua
Traseira
Não-central
Central
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 20
Figura 6 - Colisões Centrais: (a) Frontal. (b) Traseira. (c) Contra Obstáculo Fixo
A Figura 7 apresenta o referencial da colisão, definido em função da área
de interceptação dos veículos, suposta plana, e os parâmetros geométricos e
variáveis associados ao modelo descrito em Abdulmassih [2]. Nota-se que para
cada tipo de acidente o referencial da colisão deverá ser estabelecido a partir da
região atingida dos veículos, de acordo com as hipóteses citadas anteriormente.
Não portanto um referencial único, sendo que durante a investigação das
causas de uma colisão, diferentes referenciais serão empregados, o que dificulta
bastante a análise dos resultados.
Figura 7 - Referencial da Colisão
Considerando a duração infinitesimal do choque, aplicadas as condições
de conservação de quantidade de movimento linear e angular, juntamente com
algumas relações complementares, baseadas em hipóteses sobre o tipo de
colisão e a dissipação de energia devida à deformação dos veículos durante o
choque, chega-se um sistema de equações algébricas lineares, relacionando as
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 21
componentes das velocidades dos veículos antes (índice 1) e depois (índice 2)
do acidente, que organizado na forma matricial é dado por
=
=
2
2
2
2
2
2
1
1
1
1
1
1
00001
0101
00)(00
0000)(
0000
0000
00001
00
00)(00
0000)(
0000
0000
B
A
By
Bx
Ay
Ax
BA
BBBB
AAAA
BA
BA
B
A
By
Bx
Ay
Ax
BA
BBBB
AAAA
BA
BA
v
v
v
v
yy
Jxym
Jxym
mm
mm
v
v
v
v
yeyeee
Jxym
Jxym
mm
mm
ω
ω
λ
λ
λ
ω
ω
λ
λ
λ
onde
m
A
e m
B
são as massas dos veículos (kg);
J
A
e J
B
são os momentos de inércia dos veículos em relação ao eixo vertical que
passa pelo Centro de Massa (CM ou G
A/B
) (kg m
2
);
(x
A
, y
A
) e (x
B
, y
B
) são as coordenadas da posição dos centros de massa dos
veículos em relação ao sistema de referência da colisão (m);
e é o coeficiente de restituição, definido de acordo com as características de
deformação associadas à colisão, de tal modo que e = 0 colisão perfeitamente
plástica; 0 < e < 1 colisão inelástica; e = 1 colisão perfeitamente elástica,
vinculadas à velocidade relativa normal à área de interceptação;
λ
é um parâmetro que caracteriza um efeito combinado de atrito e
interpenetração dos veículos, vinculado à velocidade relativa ao longo da área
de interceptação, para o qual os valores limites que podem ser empregados
serão analisados adiante;
(v
Ax1
, v
Ay1
) e (v
Bx1
, v
By1
) são as componentes das velocidades absolutas dos CM
dos veículos A e B antes do choque (índice 1) no referencial da colisão (m/s);
(v
Ax2
, v
Ay2
) e (v
Bx2
, v
By2
) são as componentes das velocidades absolutas dos CM
dos veículos A e B depois do choque (índice 2) no referencial da colisão (m/s);
ω
A1
e
ω
B1
são as velocidades angulares (em torno do eixo vertical) dos veículos
A e B antes da colisão (rad/s); e
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 22
ω
A2
e
ω
B2
são as velocidades angulares (em torno do eixo vertical) dos veículos
A e B depois da colisão (rad/s).
A solução deste modelo possibilita encontrar as variáveis depois do
choque, dadas as condições antes da colisão, e o resultado inverso é obtido
definindo as condições imediatamente após o choque, para determinar as
variáveis antes da colisão, de acordo com
=
1
1
1
1
1
1
1
2
2
2
2
2
2
00001
00
00)(00
0000)(
0000
0000
00001
0101
00)(00
0000)(
0000
0000
B
A
By
Bx
Ay
Ax
BA
BBBB
AAAA
BA
BA
BA
BBBB
AAAA
BA
BA
B
A
By
Bx
Ay
Ax
v
v
v
v
yeyeee
Jxym
Jxym
mm
mm
yy
Jxym
Jxym
mm
mm
v
v
v
v
ω
ω
λ
λ
λ
λ
λ
λ
ω
ω
ou
=
2
2
2
2
2
2
1
1
1
1
1
1
1
00001
0101
00)(00
0000)(
0000
0000
00001
00
00)(00
0000)(
0000
0000
B
A
By
Bx
Ay
Ax
BA
BBBB
AAAA
BA
BA
BA
BBBB
AAAA
BA
BA
B
A
By
Bx
Ay
Ax
v
v
v
v
yy
Jxym
Jxym
mm
mm
yeyeee
Jxym
Jxym
mm
mm
v
v
v
v
ω
ω
λ
λ
λ
λ
λ
λ
ω
ω
desde que as respectivas matrizes possuam inversa, o que é garantido sempre
que há consistência nos dados, conforme Abdulmassih [2].
2.3.2.
Determinação do Referencial da Colisão
O referencial da colisão pode ser estabelecido a partir da geometria dos
veículos e da área atingida durante o choque. Para tanto, deve-se antes definir
sistemas de referência em cada um dos veículos de modo a poder determinar
pontos que caracterizem os limites das regiões de contato e interseção dos
veículos. A Figura 8 apresenta os 4 sistemas de referência empregados no
tratamento que se segue. Além do referencial da colisão (x,y), e um referencial
local para cada veículo (x
A
,y
A
) e (x
B
, y
B
), também é utilizado o referencial global
(X,Y), que será definido em função do cenário do acidente, como discutido
adiante. Nota-se que nos referenciais locais os eixos x
A
e x
B
estão orientados da
traseira para a dianteira dos veículos, e os eixos y
A
e y
B
da direita para a
esquerda. Mostra-se ainda na Figura 8 os ângulos (
φ
A
G
e
φ
B
G
) de cada referencial
local em relação ao global, no instante da colisão.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 23
Figura 8 - Sistemas de Referência da Colisão, Locais dos Veículos e Global.
A fim de simplificar a análise, sem perda de generalidade, considera-se
inicialmente o ângulo do veículo A em relação ao referencial global nulo, ou seja
φ
A
G
= 0
o
, isto é, os veículos se encontram com a orientação mostrada na Figura
9.
Figura 9 - Sistemas de Referência com
φ
A
G
= 0
o
A Figura 10 apresenta a definição dos pontos relevantes para
estabelecimento do referencial da colisão, em relação ao referencial local do
veículo. Emprega-se aqui apenas um dos veículos, no caso A, mas tem-se o
mesmo para o veículo B. Dada a hipótese de que a região atingida em cada
veículo é plana e assim permanece durante toda a colisão, considerada
praticamente instantânea, os pontos (x
i
, y
i
) e (x
f
, y
f
) definem o inicio e o término
da área colidida no veículo. Os pontos (x
1
, y
1
) = (l
d
, b/2), (x
2
, y
2
) = (l
d
, -b/2), (x
3
,
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 24
y
3
) = (-l
t
, b/2) e (x
4
, y
4
) = (-l
t
, -b/2) estabelecem os limites das partes laterais e
frontais, aqui supostas como definidas aproximadamente pela bitola (b) e as
distâncias do CM aos eixos dianteiro e traseiro (l
d
e l
t
).
Figura 10 - Definição dos Pontos Relevantes de um Veículo para a Determinação do
Referencial da Colisão
Observa-se que os pontos (x
i
, y
i
) e (x
f
, y
f
) estarão sempre sobre uma das
laterais ou sobre as partes frontal e traseira. De modo a tornar o procedimento
mais simples, considera-se, para a definição desses pontos, a distância
percentual de cada um deles em relação às extremidades do veículo. Impõe-se
também que o ponto (i), inicial da área, é aquele com menor coordenada (x
A
) em
módulo. Nota-se ainda que valores positivos e negativos destes parâmetros,
associados aos quadrantes a que pertencem, estão relacionados
respectivamente às coordenadas dos pontos (x
1
, y
1
) = (l
d
, b/2), (x
2
, y
2
) = (l
d
, -b/2),
(x
3
, y
3
) = (-l
t
, b/2) e (x
4
, y
4
) = (-l
t
, -b/2). A Tabela 1 resume as diversas
possibilidades para definição dos pontos (x
i
, y
i
) e (x
f
, y
f
).
QUADRANTE
x
i
y
i
x
f
y
f
+ + + +
1º.
% de l
d
% de b/2 % de l
d
% de b/2
- + - +
2º.
% de l
t
% de b/2 % de l
t
% de b/2
- - - -
3º.
% de l
t
% de b/2 % de l
t
% de b/2
+ - + -
4º.
% de l
d
% de b/2 % de l
d
% de b/2
Tabela 1 - Definição Percentual dos Pontos (x
i
, y
i
) e (x
f
, y
f
)
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 25
Por exemplo,
(x
i
, y
i
) = (0,2, 1,0) e (x
f
, y
f
) = (1,0, 0,3)
significa, após a conversão,
(x
i
, y
i
) = (0,2 l
d
, b/2) e (x
f
, y
f
) = (l
d
, 0,3 b/2)
indicando que a área atingida encontra-se, como na Figura 10, na região frontal-
esquerda do veículo, e sendo
(x
i
, y
i
) = (-0,7, -1,0), que é na verdade igual à (-0,7 l
t
, -1,0 b/2)
e
(x
f
, y
f
) = (-1,0, -0,5), que é na verdade igual à (-l
t
, -0,5 b/2)
a área de choque está na parte traseira-direita do veículo.
Após realizar as conversões dos valores percentuais de (x
i
, y
i
) e (x
f
, y
f
), a
determinação da área de contato, ou mais precisamente da distância entre os
pontos (i) e (f) é trivialmente dada por
(
)
(
)
22
fiifA
yyxxA +=
Na verdade, a “área” A
A
assim determinada é a projeção da área da
colisão no referencial local do veículo.
O ângulo da área de contato
γ
A
, que define a direção do eixo y do
referencial da colisão, com o eixo x
A
do referencial local do veículo A, como
ilustrado na Figura 11, é obtido a partir de
)(
)(
1
if
fi
A
xx
yy
tg
=
γ
e, que segundo a definição dada, se encontra no sentido horário, não
trigonométrico, de modo a simplificar os cálculos. Assim o ângulo do eixo x do
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 26
referencial da colisão, perpendicular à área de contato, com o eixo x
A
local do
veículo será determinado por
φ
A
C
= (90
o
-
γ
A
).
Figura 11 - Referencial da Colisão Visto do Veículo A.
O mesmo procedimento pode ser aplicado ao outro veículo, B no caso,
para determinar a área de contato AB e o ângulo γB. Entretanto não se pode
prosseguir no tratamento do problema com áreas distintas em cada veículo. De
modo a obter áreas coincidentes, ou que as projeções das áreas nos respectivos
referenciais locais sejam iguais, deve-se alterar a posição dos pontos (x
i
, y
i
) e (x
f
,
y
f
), em pelo menos um dos veículos, até atingir a convergência.
De modo a garantir que as áreas atingidas sejam exatamente iguais, pode-
se estabelecer um procedimento algébrico que irá determinar as coordenadas de
um dos pontos que definem a posição inicial ou final da região colidida em um
dos veículos, mantendo os outros três pontos fixos. Considerando essa condição
para o veículo A, e admitindo o ponto inicial do veículo B com posição constante,
tem-se
A
A
= A
B
ou
(
)
(
)
(
)
(
)
2222
fBiBiBfBfAiAiAfA
yyxxyyxx +=+
ou ainda
(
)
(
)
(
)
(
)
2222
fBiBiBfBfAiAiAfA
yyxxyyxx +=+
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 27
onde se verifica que esta é a equação de um círculo de raio A
A
e centro (x
iB
, y
iB
),
conhecidos, na qual existem duas incógnitas, (x
fB
, y
fB
). Portanto para se obter
uma solução deve-se impor x
fB
ou y
fB
e determinar y
fB
ou x
fB
. Como existem
apenas algumas posições possíveis para localização dos pontos, dada a região
de colisão, de acordo com a Figura 12, torna-se relativamente simples resolver o
problema.
A Tabela 2 resume as 16 soluções de ocorrência mais freqüente, ou seja
aquelas aqui consideradas válidas. Existem ainda outras soluções possíveis, que
entretanto não serão adotadas por se tratarem de condições de difícil ocorrência.
Caso haja necessidade, é fácil introduzir qualquer situação no algoritmo
proposto. Nota-se que não se pode impor determinadas soluções, como por
exemplo fixar y
fB
estando a área na parte dianteira esquerda (DE), e obter x
fB
,
pois nessa região sempre x
fB
= l
d
. Assim as soluções encontradas devem estar
de acordo com as possíveis combinações apresentadas. Observe que a escolha
da posição dos pontos no outro veículo, no caso o A, deve respeitar a mesma
combinação de valores, sob pena de não se ter uma condição consistente, uma
vez conhecida a área atingida.
Tal procedimento garante a igualdade das áreas de contato e simplifica
consideravelmente o tratamento do problema. Sempre poderão ser fornecidos
novos pontos inicial e final sobre um dos veículos, no caso o A, e escolhido um
ponto inicial consistente no outro veículo, no caso o B, e o processo reiniciado,
de modo a determinar a solução que melhor atenda as características da colisão
em análise. Lembra-se finalmente que, após determinadas as coordenadas
(x
fB
, y
fB
), o ângulo
γ
B
poderá ser calculado.
Figura 12 - Posições possíveis dos pontos sobre as diferentes regiões.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 28
Tabela 2 - Escolha das coordenadas para igualdade das áreas nos veículos
REGIÃO
ATINGIDA
Fixados
x
fB
, x
iB
, y
iB
Solução
p/ y
fB
Fixados
y
fB
, x
iB
, y
iB
Solução
p/ x
fB
DE
0
y
iB
b/2
x
fB
= l
d
x
iB
= l
d
y
fB
= y
iB
+A
A
y
iB
y
fB
b/2
---- ----
LDE_DE
0
x
iB
l
d
y
iB
= b/2
x
fB
= l
d
2
iBfB
2
A
iBfB
)x(xA
yy
=
0
y
fB
< b/2
---- ----
LDE
---- ----
0
x
iB
l
d
y
iB
= b/2
y
fB
= b/2
x
fB
= x
iB
+A
A
x
iB
x
fB
l
d
LTE_LDE
---- ----
-l
t
x
iB
0
y
iB
= b/2
y
fB
= b/2
x
fB
= x
iB
+A
A
0
x
fB
l
d
LTE
---- ----
-l
t
x
iB
0
y
iB
= b/2
y
fB
= b/2
x
fB
= x
iB
+A
A
x
iB
x
fB
0
TE_LTE
---- ----
0
y
iB
b/2
x
iB
= -l
t
y
fB
= b/2
2
iBfB
2
A
iBfB
)y(yA
xx
+
+
=
-l
t
< x
fB
0
TE
0
y
iB
b/2
x
iB
= -l
t
x
fB
= -l
t
y
fB
= y
iB
+A
A
y
iB
y
fB
b/2
---- ----
TD_TE
-b/2
y
iB
0
x
iB
= -l
t
x
fB
= -l
t
y
fB
= y
iB
+A
A
0
y
fB
b/2
---- ----
TD
-b/2
y
iB
0
x
iB
= -l
t
x
fB
= -l
t
y
fB
= y
iB
+A
A
y
iB
y
fB
0
---- ----
TD_LTD
---- ----
-b/2
y
iB
0
x
iB
= -l
t
y
fB
= -b/2
2
iBfB
2
A
iBfB
)y(yA
xx
+
+
=
-l
t
< x
fB
0
LTD
---- ----
-l
t
x
iB
0
y
iB
= -b/2
y
fB
= -b/2
x
fB
= x
iB
+A
A
x
iB
x
fB
0
LTD_LDD
---- ----
-l
t
x
iB
0
y
iB
= -b/2
y
fB
= -b/2
x
fB
= x
iB
+A
A
0
x
fB
l
d
LDD
---- ----
0
x
iB
l
d
y
iB
= -b/2
y
fB
= -b/2
x
fB
= x
iB
+A
A
x
iB
x
fB
l
d
LDD_DD
0
x
iB
l
d
y
iB
= -b/2
x
fB
= l
d
2
iBfB
2
A
iBfB
)x(xA
yy
+
+
=
-b/2 < y
fB
0
---- ----
DD
-b/2
y
iB
0
x
iB
= l
d
x
fB
= l
d
y
fB
= y
iB
+A
A
y
iB
y
fB
0
---- ----
DD_DE
-b/2
y
iB
0
x
iB
= l
d
x
fB
= l
d
y
fB
= y
iB
+A
A
0
y
fB
b/2
---- ----
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 29
Obtidos os pontos que definem a região atingida em ambos os veículos,
a origem do referencial da colisão é o ponto médio da área de contato. Portanto
sua localização no referencial do veículo A, para a configuração da Figura 13, é
dada por
2
)(
2
)(
fi
fm
if
im
yy
yy
xx
xx
+=
+=
Figura 13 - Posição da Origem do Referencial da Colisão
Com os ângulos do sistema de referência da colisão em relação aos
sistemas locais dos veículos determinados, deve-se obter a posição dos
respectivos Centros de Massa (CM) no referencial local, assim como as
projeções das velocidades absolutas do CM. A Figura 14 mostra a seqüência de
transformações para representar um vetor do referencial local no referencial da
colisão. Inicialmente tem-se uma translação (x
m
, y
m
) passando do referencial (x
A
,
y
A
) para o referencial (x’, y’), e em seguida uma rotação de ângulo
φ
A
C
passando
do referencial (x’, y’) para o referencial (x, y).
Assim um vetor fixo no referencial local é transformado para o referencial
da colisão através de
=
mA
mA
C
A
C
A
C
A
C
A
yy
xx
sen
sen
y
x
φφ
φφ
cos
cos
e deste modo, o CM localizado na origem do referencial local, x
A
= 0 e y
A
= 0, é
dado no referencial da colisão por
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 30
=
m
m
C
A
C
A
C
A
C
A
y
x
sen
sen
y
x
φφ
φφ
cos
cos
Figura 14 - Referencial Local para o Referencial da Colisão
Para os vetores livres, como a velocidade absoluta do CM representada no
referencial local por
AAAAA
jviuV
r
r
r
+= , tem-se que sua projeção no referencial
da colisão é dada por
=
A
A
C
A
C
A
C
A
C
A
Ay
Ax
v
u
sen
sen
v
v
φφ
φφ
cos
cos
e para a transformação inversa, do referencial da colisão para o referencial local
dos veículos, tem-se
=
Ay
Ax
C
A
C
A
C
A
C
A
A
A
v
v
sen
sen
v
u
φφ
φφ
cos
cos
A Figura 15 mostra as transformações de coordenadas realizadas para
representar a posição do CM e a velocidade de translação absoluta do veículo,
dados inicialmente no referencial local, para o referencial da colisão.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 31
Figura 15 - Transformações de Coordenadas do Referencial Local para o da Colisão
2.3.3.
Solução do Problema da Colisão no Referencial da Colisão
Uma vez determinado o referencial da colisão, deve-se estabelecer a
posição dos respectivos centros de massa em relação a esse sistema de
referência, e projetar suas velocidades de translação imediatamente antes da
colisão, para resolver o problema da colisão. Lembra-se que as velocidades
angulares são mantidas inalteradas, dado que o problema é plano.
Sendo o centro do referencial da colisão no sistema de referência local do
veiculo A dado por (x
mA
, y
mA
), então a posição do centro de massa do veículo A
no referencial da colisão é
=
mA
mA
C
A
C
A
C
A
C
A
A
A
y
x
sen
sen
y
x
φφ
φφ
cos
cos
e para o veículo B, determinado o centro do referencial da colisão no sistema
local, dado por (x
mB
, y
mB
), então o centro de massa está na posição
=
mB
mB
C
B
C
B
C
B
C
B
B
B
y
x
sen
sen
y
x
φφ
φφ
cos
cos
Para as velocidades antes da colisão tem-se
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 32
=
1
1
1
1
cos
cos
A
A
C
A
C
A
C
A
C
A
Ay
Ax
v
u
sen
sen
v
v
φφ
φφ
e
=
1
1
1
1
cos
cos
B
B
C
B
C
B
C
B
C
B
By
Bx
v
u
sen
sen
v
v
φφ
φφ
Lembra-se que os momentos de inércia em relação ao eixo vertical
empregados no modelo de colisão são tomados no sistema de referência local, e
portanto não devem sofrer qualquer alteração.
A partir da determinação das variáveis imediatamente anteriores ao
choque no referencial da colisão, dadas as tais condições nos respectivos
referenciais locais dos veículos, o problema direto é resolvido pela forma
matricial
=
1
1
1
1
1
1
1
2
2
2
2
2
2
00001
00
00)(00
0000)(
0000
0000
00001
0101
00)(00
0000)(
0000
0000
B
A
By
Bx
Ay
Ax
BA
BBBB
AAAA
BA
BA
BA
BBBB
AAAA
BA
BA
B
A
By
Bx
Ay
Ax
v
v
v
v
yeyeee
Jxym
Jxym
mm
mm
yy
Jxym
Jxym
mm
mm
v
v
v
v
ω
ω
λ
λ
λ
λ
λ
λ
ω
ω
na qual (x
A
, y
A
) e (x
B
, y
B
), e (v
Ax1
, v
Ay1
) e (v
Bx1
, v
By1
) são obtidos como descrito.
Após a solução do problema acima, para a representação das variáveis
pós-colisão velocidades de translação do CM, (v
Ax2
, v
Ay2
) e (v
Bx2
, v
By2
) no
referencial local dos veículos basta aplicar a transformação inversa
=
2
2
2
2
cos
cos
Ay
Ax
C
A
C
A
C
A
C
A
A
A
v
v
sen
sen
v
u
φφ
φφ
e
=
2
2
2
2
cos
cos
By
Bx
C
B
C
B
C
B
C
B
B
B
v
v
sen
sen
v
u
φφ
φφ
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 33
Lembra-se que as velocidades angulares pós-colisão não sofrem alteração
quando da mudança de referenciais.
Uma vez determinadas essas variáveis, pode-se proceder a simulação do
comportamento dinâmico dos veículos desde o instante imediatamente após a
colisão, até a parada completa, sujeito às condições iniciais de velocidade.
2.3.4.
Posição e Orientação dos Veículos no Referencial Global
Nos casos de reconstituição de acidentes, normalmente o que se conhece
é a posição aproximada dos veículos na via no instante do choque, que pode ser
estabelecida em relação a um referencial, definido aqui como global. Admitindo
que o ponto conhecido é a posição da origem do referencial da colisão em
relação ao referencial global, (p
X
, p
Y
), e dados os ângulos dos veículos (
φ
A
G
e
φ
B
G
), a posição dos CM nesse sistema de referência pode ser determinada, de
modo a corretamente tratar o problema pós-colisão. Para tanto, deve-se
proceder a uma transformação de coordenadas a fim de localizar o referencial de
cada veículo em relação ao referencial global. A Figura 16 apresenta as
operações necessárias para o posicionamento dos CM e orientação inicial dos
veículos.
Figura 16 - Posição e Orientação dos Veículos no Referencial Global
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 34
Um vetor fixo no referencial da colisão é transformado para o referencial
global através de
++
++
+
=
y
x
sen
sen
p
p
Y
X
G
A
C
A
G
A
C
A
G
A
C
A
G
A
C
A
Y
X
)cos()(
)()cos(
φφφφ
φφφφ
logo, dadas as posições dos centros de massa no referencial da colisão no
instante imediatamente anterior ao choque, suas posições no referencial global
são determinadas por
++
++
+
=
A
A
G
A
C
A
G
A
C
A
G
A
C
A
G
A
C
A
Y
X
CMA
CMA
y
x
sen
sen
p
p
Y
X
)cos()(
)()cos(
φφφφ
φφφφ
++
++
+
=
B
B
G
B
C
B
G
B
C
B
G
B
C
B
G
B
C
B
Y
X
CMB
CMB
y
x
sen
sen
p
p
Y
X
)cos()(
)()cos(
φφφφ
φφφφ
que serão condições iniciais para definição da trajetória dos veículos no pós-
colisão. Para determinação da atitude dos veículos, os ângulos iniciais serão
φ
A
G
e
φ
B
G
.
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 35
2.4.
Modelo Pós-Choque
Descreve-se a seguir o desenvolvimento de um modelo genérico para
representar a dinâmica no plano de um veículo rígido para análise de seus
movimentos (translação em relação a dois eixos e rotação em torno de um eixo
perpendicular ao plano de translação) na condição pós-colisão, desde o
momento logo após o choque até sua parada completa, a partir das variáveis
imediatamente posteriores ao impacto, obtidas por um modelo rígido (baseado
na conservação de quantidade de movimento) ou flexível (baseado nas
características elasto-plásticas de sua estrutura), dadas as condições
imediatamente anteriores à colisão, como explanado no item anterior.
2.4.1.
Dinâmica do Veículo no Referencial Local
A Figura 17 mostra os referenciais global (X,Y) e local (x,y) adotados
para o tratamento do problema dinâmico de um veículo no plano, e alguns dos
parâmetros relevantes para sua análise: as bitolas dianteira e traseira (bd e bt) e
as distâncias dos eixos dianteiro e traseiro (ld e lt) ao centro de massa (CM). A
distância entre eixos é dada por l = ld + lt.
Figura 17 - Sistemas de referência global e local de um veículo terrestre
De modo a tratar corretamente o comportamento do veículo após a
colisão, deve-se adotar um modelo que represente seus movimentos
empregando as equações de Newton-Euler simplificadas, para deslocamentos
no plano, dadas por
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 36
=
=
+=
z
zz
y
x
M
J
uF
m
v
vF
m
u
1
1
1
ω
ω
ω
&
&
&
onde u é a velocidade longitudinal local (ao longo de x), v é a velocidade lateral
local (ao longo de y),
ω
é a velocidade angular (em torno de z, perpendicular ao
plano de movimento, passando pelo CM), m e J
zz
são, respectivamente, a massa
e o momento de inércia em torno de z, e F
x
, F
y
, e M
z
as forças e o momento
aplicados ao veículo, projetados nos eixos do sistema de referência local. Note a
não linearidade intrínseca deste modelo, no qual um acoplamento dos
movimentos de translação, devido ao movimento de rotação.
Como se está interessado na translação do centro de massa em relação
ao referencial inercial global, então se deve proceder a uma mudança de
coordenadas, dada por
=
v
u
sen
sen
Y
X
ψψ
ψψ
cos
cos
&
&
com
++= dt)(
00
ωωψψ
e
++=++=
+=++=
dt)Yvsenudt)YYYY
dt)Xsenvudt)XXXX
00
00
&&&
&&&
)cos(((
)cos(((
0
0
ψψ
ψψ
ou
+++=+=
++=+=
dtvvsenuudtYYY
dtsenvvuudtXXX
)cos)()((
))(cos)((
000
000
ψψ
ψψ
&
&
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 37
onde YX
&&
e são as velocidades de translação absolutas no referencial global,
ψ
é
o ângulo de guinada, e
ψ
0
, X
0
, e Y
0
são, respectivamente, as condições iniciais
de orientação e posição do veículo, e
ω
0
,
00
YX
&&
e , aquelas de velocidade, no
referencial global, e
00
vu e , no referencial local.
Para a solução deste modelo é preciso determinar as forças e o momento
aplicados ao veículo, que, em uma condição como a de uma colisão, o
extremamente complexos de se obter. Lembre-se que neste caso o veículo
encontra-se normalmente sem controle, sujeito basicamente ao atrito dos pneus
com o solo e às forças aerodinâmicas. Em veículos de passeio essas forças são
de pequena amplitude, pois as velocidades normalmente são baixas (menores
que 60 km/h), mas podem ser elevadas em veículos esportivos e de competição,
com velocidades acima de 100 km/h. Apesar da força de atrito poder ser limitada
em módulo, possui direção que depende do movimento instantâneo do veículo, o
mesmo ocorrendo com as forças aerodinâmicas. Deve-se lembrar ainda que o
momento se obtido por uma combinação das forças de atrito dos pneus
dianteiros e traseiros, em função da distância entre eixos e das bitolas. Um
problema similar ocorre para o momento causado pelas forças aerodinâmicas,
quando essas são significativas, levando em conta a posição dos centros de
pressão em cada direção, que, por sua vez, são determinados por modelos não
triviais. Por estes motivos, é bastante complicado tratar o problema da pós-
colisão a partir de uma formulação completa e detalhada. Desenvolve-se a
seguir um modelo adequado aos objetivos da análise que se pretende realizar,
iniciando com a cinemática do movimento dos pneus.
2.4.2.
Velocidades de Translação dos Pneus
Considerando o veículo se deslocando no plano XY, como o mostrado na
Figura 18, os pontos de contato dos pneus com o solo p
DD
, p
DE
, p
TD
e p
TE
têm
coordenadas no referencial local definidas por
=
=
=
=
0
2,
0
2,
0
2,
0
2
t
t
TEt
t
TDd
d
DEd
d
DD
b
l
rb
l
rb
l
rb
l
r
rrrr
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 38
Figura 18 - Posição dos pontos de contato dos pneus com o solo
Admitindo que não qualquer tendência do veículo se deslocar
verticalmente, e que não há movimento de pitch, nem de roll, então a velocidade
de translação de um determinado ponto do veículo no referencial local é dada
por
ii
rVV
r
r
r
r
×+=
ou
+
=
=
=×=
=
+
=
+
=
=×+=
ωω
ω
ω
ω
ω
0
0
0
00
00
0
0
0
00
00
0
00000
00
00
0
ii
i
i
ii
i
i
zi
yi
xi
i
i
i
i
i
zi
yi
xi
ii
xy
x
y
w
v
u
xy
x
y
v
u
V
V
V
rV
xv
yu
y
x
v
u
V
V
V
rVV
r
r
r
r
rrr
o que leva às velocidades dos pontos de contato serem
+
+
=
+
=
=
0
2
0
0
02
00
200
0
,
,
,
ω
ω
ω
d
d
dd
d
d
zDD
yDD
xDD
DD
lv
b
u
lb
l
b
v
u
V
V
V
V
r
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 39
+
=
+
=
=
0
2
0
0
02
00
200
0
,
,
,
ω
ω
ω
d
d
dd
d
d
zDE
yDE
xDE
DE
lv
b
u
lb
l
b
v
u
V
V
V
V
r
+
=
+
=
=
0
2
0
0
02
00
200
0
,
,
,
ω
ω
ω
t
t
tt
t
t
zTD
yTD
xTD
TD
lv
b
u
lb
l
b
v
u
V
V
V
V
r
=
+
=
=
0
2
0
0
02
00
200
0
,
,
,
ω
ω
ω
t
t
tt
t
t
zTE
yTE
xTE
TE
lv
b
u
lb
l
b
v
u
V
V
V
V
r
A Figura 19 mostra os pontos de contato e as velocidades associadas em
uma determinada condição de velocidades do CM e de rotação em torno do eixo
vertical, e as suas componentes (V
IJ,x
V
IJ,y
), que fornecem a direção da
velocidade instantânea, de acordo com o vetor unitário
=
+
==
00
1
,
,
,
,
2
,
2
,
yIJ
xIJ
yIJ
xIJ
yIJxIJ
IJ
IJ
IJ
u
u
V
V
VV
V
V
u
r
r
r
onde os índices IJ = DD, DE,TD, TE identificam a roda em questão.
Figura 19 – Velocidades dos pontos de contato dos pneus com o solo
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 40
2.4.3.
Forças e Momentos
As configurações genéricas da Figura 20 apresentam as velocidades
instantâneas do veículo e dos pneus, as forças e momento aerodinâmicos, e
forças de atrito no sentido contrário ao do movimento instantâneo da roda, assim
como suas componentes no referencial local. Considerou-se que as forças
aerodinâmicas estão aplicadas diretamente no CM e o momento aerodinâmico é
o resultante em relação ao eixo vertical, não se levando em conta a posição do
centro de pressão, por razões óbvias, adotando um modelo simplificado
discutido adiante.
Figura 20 - Velocidades, forças e momentos em algum instante após a colisão
Notam-se na Figura 20 alguns aspectos interessantes do problema a ser
tratado, a saber:
(a.1) Velocidades (a.2) Forças e Momentos
(a) Velocidade angular positiva
(b.1) Velocidades (b.2) Forças e Momentos
(b) Velocidade angular negativa
(c.1) Velocidades (c.2) Forças e Momentos
(c) Velocidade angular e velocidade longitudinal negativas
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 41
As velocidades instantâneas dos pontos de contato dos pneus com o
solo, que dependem da combinação dos movimentos de translação do centro de
massa e da rotação do veículo em torno do eixo vertical que passa pelo centro
de massa, podem ter qualquer direção, ou sentido, inclusive serem nulas (como
aproximadamente nos casos de V
TE
para a velocidade angular positiva, V
DD
para
a velocidade angular negativa, e V
DE
para as velocidades angular e longitudinal
negativas);
As forças de atrito, que se encontram sempre no sentido contrário ao da
velocidade do ponto de contato dos pneus com o solo, podem localmente ter
componentes no sentido do movimento do veículo, porém certamente geram um
somatório de forças no sentido contrário ao do movimento de translação do CM;
O somatório dos momentos gerados pelas forças de atrito sempre estará
no sentido contrário ao do movimento de rotação do veículo;
As forças e o momento aerodinâmicos sempre se encontram nos
sentidos contrários ao dos movimentos do veículo.
Devido à complexidade deste problema, e considerando as observações
acima, procurou-se estabelecer um modelo simplificado para a determinação das
forças, e conseqüentemente do movimento do veículo após a colisão,
principalmente levando em conta o interesse da análise que se pretende fazer.
As forças de atrito que surgem nos pneus dependem fundamentalmente da
velocidade em que eles se encontram, e existem três possibilidades para o
movimento dos pneus em relação ao solo: ou eles estão travados e deslizam
sobre a superfície, ou rolam livremente sem deslizar, ou ainda possuem um
movimento que depende do ângulo de esterçamento em relação ao movimento
do veículo, do deslizamento longitudinal e do ângulo de deriva instantâneos do
pneu. Tais condições podem ser determinadas a partir da avaliação preliminar
do acidente que se deseja investigar. No primeiro caso o coeficiente de
aderência estará associado ao atrito dinâmico da interação pneu-solo (em torno
de 0,7 para pneus convencionais de veículos de passeio), no segundo ao
coeficiente de atrito de rolamento (cerca de 0,01 para pneus comuns), e no
terceiro, à curva de aderência característica do pneu. Estas condições,
dependem individualmente de cada pneu, e da sua direção de movimento
instantânea, em relação ao deslocamento do veículo.
No modelo adotado, que não inclui o movimento de rotação das rodas
spin, apenas uma possibilidade será admissível: os pneus se encontram
travados. Por simplificação, não será considerado o caso dos pneus rolarem
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 42
livremente que ocorre se eles, a cada instante de tempo, se encontrarem
na direção de movimento do ponto de contato com o solo, o que só será possível
em rodas esterçantes, sem o controle do motorista, ou em qualquer roda se os
seus elementos de conexão estiverem danificados ou rompidos. A hipótese de
um movimento mais complexo também não será considerada, mas poderia ser
tratado através de uma representação simplificada da curva característica do
pneu, em função do ângulo de deriva, dado pela diferença da direção do
movimento do veículo e da direção do movimento do pneu.
Supondo que as rodas não se encontram esterçadas, considerando que
todas estão travadas, arrastadas pelo veículo, a força de atrito, sem levar em
conta a distribuição de carga instantânea em cada pneu, ou mesmo a
distribuição estática, é dada aproximadamente por
IJIJ
u
mg
F
r
r
4
µ
onde
µ
é o coeficiente de atrito dinâmico,
µ
0,7, e os índices IJ = DD, DE, TD,
TE, identificam a roda em questão. Note que as forças
IJ
F
r
são constantes em
módulo, mas não em direção, e possuem sentido contrário ao do movimento das
rodas, cuja direção é dada pelo vetor unitário
IJ
u
r
.
Uma vez que
=
+
==
00
1
,
,
,
,
2
,
2
,
yIJ
xIJ
yIJ
xIJ
yIJxIJ
IJ
IJ
IJ
u
u
V
V
VV
V
V
u
r
r
r
logo
=
+
=
0
4
0
1
4
0
,
,
,
,
2
,
2
,
,
,
yIJ
xIJ
yIJ
xIJ
yIJxIJ
yIJ
xIJ
IJ
u
u
mg
V
V
VV
mg
F
F
F
µµ
r
Assim o somatório de forças de atrito por componente, no sistema de
referência local, é dado por
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 43
==
=
+
=+++=
TEDDIJ
xIJ
TEDDIJ
yIJxIJ
xIJ
xTExTDxDExDDxatrito
u
mg
VV
V
mg
FFFFF
,...,
,
,...,
2
,
2
,
,
,,,,,
44
µµ
==
=
+
=+++=
TEDDIJ
yIJ
TEDDIJ
yIJxIJ
yIJ
yTEyTDyDEyDDyatrito
u
mg
VV
V
mg
FFFFF
,...,
,
,...,
2
,
2
,
,
,,,,,
44
µµ
Para os momentos, deve-se considerar a posição dos pontos de contato
dos pneus com o solo, lembrando que
=
=×= )(
00
00
00
ixiiyiyi
xi
ii
i
i
ii
yFxFF
F
xy
x
y
FrM
r
r
v
têm-se apenas momentos em relação ao eixo vertical z, com era de se esperar.
Assim, como
=
=
=
=
0
2,
0
2,
0
2,
0
2
t
t
TEt
t
TDd
d
DEd
d
DD
b
l
rb
l
rb
l
rb
l
r
rrrr
então
))()(
2
)(
2
)((
4
)()(
2
)(
2
)(
2222
,,,,,,,,
,,,,,,,,
,,,,,,,,,
tyTEyTDdyDEyDD
t
xTExTD
d
xDExDD
tyTEyTDdyDEyDD
t
xTExTD
d
xDExDD
t
xTE
t
xTD
d
xDE
d
xDDtyTEtyTDdyDEdyDDzatrito
luuluu
b
uu
b
uu
mg
lFFlFF
b
FF
b
FF
b
F
b
F
b
F
b
FlFlFlFlFM
++++=
=++++=
=+++=
µ
para as forças e momento aerodinâmicos, podem-se levar em conta as
relativamente baixas velocidades que se encontram os veículos de passeio após
uma colisão, condição esta, entretanto, não satisfeita para veículos esportivos ou
de competição. Em velocidades acima de 60 km/h, as forças e momento
aerodinâmicos são dados por
2
2
2
2
1
2
1
2
1
ωρ
ρ
ρ
lSCM
vSCF
uSCF
MzAz
yAy
xAx
=
=
=
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 44
onde
ρ
1,20 kg/m3 (nas CNTP) é a massa específica do ar, C
x
é o coeficiente
de arrasto longitudinal ( 0,3 para carros de passeio médios/pequenos), S é a
área frontal ( 2,0 m
2
para veículos médios/pequenos), C
y
é o coeficiente de
arrasto lateral ( 0,8 para veículos médios/pequenos), C
Mz
é o coeficiente de
momento de guinada – em torno de z ( 0,2 para veículos médios/pequenos), e l
é um comprimento característico, que para o caso do movimento de guinada, é
geralmente adotada a distância entre eixos do veículo, em metros. Nota-se que
C
y
e C
Mz
dependem do ângulo de ataque (entre a velocidade do veículo e a do
vento relativo) e da razão entre a área lateral e a frontal do veículo, porém aqui
serão supostos constantes, tomando um ângulo máximo de 20° ( 0,35 rad), e a
razão de áreas 3:1.
Considerando pequenas velocidades, pode-se empregar uma
representação aproximada para a ação aerodinâmica sobre o veículo. Adotando
um modelo conservativo, as expressões quadráticas serão substituídas pela
secante, desde zero até as velocidades máximas do veículo nas três direções,
que serão sempre aquelas imediatamente após o choque (u
0
, v
0
, e
ω
0
). Assim,
tem-se
ωωωρ
ρ
ρ
AzMzAz
AyyAy
AxxAx
blSCM
vbvvSCF
ubuuSCF
=
=
=
)
2
1
(
)
2
1
(
)
2
1
(
0
0
0
que caracterizam um efeito equivalente de atrito viscoso para os três
movimentos, aumentando o “amortecimento” do sistema.
Deste modo, as equações dinâmicas após a colisão ficam
+==
+==
++=+=
)(
11
)(
11
)(
11
,
,
,
Azzatrito
zz
z
zz
Ayyatritoy
Axxatritox
MM
J
M
J
uFF
m
uF
m
v
vFF
m
vF
m
u
ω
ωω
ωω
&
&
&
ou
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 45
++++=
+
=
+
+
=
=
=
))()(
2
)(
2
)((
1
)
4
(
1
)
4
(
1
,,,,,,,,
,...,
2
,
2
,
,
,...,
2
,
2
,
,
ωω
ω
µ
ω
µ
AztyTEyTDdyDEyDD
t
xTExTD
d
xDExDD
zz
Ay
TEDDIJ
yIJxIJ
yIJ
Ay
TEDDIJ
yIJxIJ
xIJ
blFFlFF
b
FF
b
FF
J
uvb
VV
V
mg
m
v
vub
VV
V
mg
m
u
&
&
&
ou ainda
++++=
=
+=
=
=
ω
µ
ω
ω
µ
ω
µ
zz
Az
tyTEyTDdyDEyDD
t
xTExTD
d
xDExDD
zz
Ay
TEDDIJ
yIJ
Ay
TEDDIJ
xIJ
J
b
luuluu
b
uu
b
uu
r
g
uv
m
b
u
g
v
vu
m
b
u
g
u
))()(
2
)(
2
)((
4
)(
4
)(
4
,,,,,,,,
2
,...,
,
,...,
,
&
&
&
Observando que
µ
g é a capacidade máxima de desaceleração do veículo
na direção de movimento, que depende apenas do atrito dos pneus com o solo,
e lembrando que J
zz
= r
zz
2
m, onde r
zz
é o raio de giração em torno de Z, tem-se
µ
g / r
zz
2
é a capacidade máxima de desaceleração angular do veículo, que
depende da sua geometria e distribuição de massa. Finalmente têm-se as
equações de movimento do veículo no referencial local dadas por
++++=
+++=
++++=
ω
µ
ω
ω
µ
ω
µ
zz
Az
tyTEyTDdyDEyDD
t
xTExTD
d
xDExDD
zz
Ay
yTEyTDyDEyDD
Ay
xTExTDxDExDD
J
b
luuluu
b
uu
b
uu
r
g
uv
m
b
uuuu
g
v
vu
m
b
uuuu
g
u
))()(
2
)(
2
)((
4
)(
4
)(
4
,,,,,,,,
2
,,,,
,,,,
&
&
&
onde cada pneu contribui com uma parcela de ¼ do total máximo das forças
longitudinal e lateral – ou das correspondentes desacelerações, ponderadas
pelos termos u
IJ,i
associados à direção de seus movimentos instantâneos, que
representam, na verdade, as projeções das forças de atrito nas direções x e y do
referencial local, de modo a gerar uma resultante no sentido contrário ao da
translação do veículo em ambos os eixos, que, como mostrado na Figura 19,
podem conter parcelas que se compensem mutuamente, ou mesmo que estejam
no mesmo sentido do movimento.
Quanto ao momento das forças de atrito, além de cada pneu contribuir
também com ¼ da capacidade total máxima de desaceleração angular, tem-se a
PUC-Rio - Certificação Digital Nº 0321180/CA
Modelagem de uma Colisão 46
influência das bitolas dianteira e traseira, e das distâncias dos eixos dianteiros e
traseiros ao CM, ponderadas pelos termos u
IJ,i
, com sinais associados ao
movimento instantâneo local do pneu, de modo a gerar uma resultante no
sentido contrário ao da rotação do veículo, que possui parcelas sempre no
mesmo sentido da resultante, como discutido anteriormente quando da análise
da Figura 20.
Para melhor interpretação do comportamento do veículo ao longo do
tempo podem ser empregadas algumas variáveis complementares àquelas
utilizadas no modelo matemático descrito. Por exemplo, a velocidade absoluta
do veículo, dada por
22
vuV +=
auxilia na compreensão do seu movimento até a parada total. Também o
deslocamento, obtido a partir de
+== dtvudtVs
22
será útil na análise dos problemas relacionados.
Lembra-se ainda que as forças de atrito, e portanto também os momentos
por elas gerados, existem enquanto movimento, significando que nas
equações diferenciais acima, todos os termos da direita se tornarão nulos
quando as velocidades de translação e rotação se anularem, ou seja, quando o
veículo parar.
Observa-se novamente que não será aqui desenvolvido um modelo
supondo as rodas livres para girar. Considerou-se, para os objetivos da análise
que se pretende realizar, suficiente o modelo com as rodas travadas, situação
comum em colisões veiculares, apesar de não ser a única condição possível.
Oportunamente, na medida do necessário um modelo mais completo poderá ser
obtido, tendo como base o desenvolvimento apresentado.
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético e a Reconstituição de 47
3
Algoritmo Genético e a Reconstituição de Acidentes
Métodos de otimização são utilizados quando se pretende minimizar ou
maximizar uma função. Estes algoritmos procuram, de formas diferenciadas,
chegar a valores ótimos. De forma geral, todos se utilizam de iterações,
comparando os valores das anteriores com as novas, e através de algumas
regras de decisão, escolhendo por qual “caminho” seguir adiante.
O Algoritmo Genético (GA) não trabalha diretamente com o problema a
ser otimizado. As equações que regem o sistema não são trabalhadas neste
otimizador. Esse algoritmo gera inúmeros conjuntos de valores aleatoriamente, e
uma função de avaliação dirá quão bom um dado conjunto é em relação aos
demais. Feito isso, a nova geração de valores se dará pela combinação dos
antigos, sendo que os mais bem avaliados pela função terão maiores
probabilidades de serem “escolhidos” para se misturarem. Para efetuar estes
procedimentos existem diversas ferramentas que de formas diferenciadas têm
como objetivo direcionar esta evolução para os valores ótimos.
3.1.
Algoritmo Genético
Na escolha do método a ser utilizado dois fatores foram levados em conta.
O primeiro é quanto à robustez do algoritmo, ou seja, ao se alterar o programa
de simulação, quantas seriam as mudanças necessárias no algoritmo de
otimização. Esta característica foi levada em conta, pois o programa de
simulação desenvolvido pelo grupo de pesquisas de Dinâmica de Veículos da
PUC-Rio ainda está em fase de aperfeiçoamento. Entre as mudanças previstas,
está a inclusão de um modelo de veículo flexível. O segundo fator foi o estado da
arte, que mostra uma tendência na tentativa de utilização da computação
evolucionária em diversas áreas como suporte à decisão, classificação de
dados, reconhecimento de padrões, previsão, otimização, controle, modelagem,
planejamento, descoberta de conhecimento, entre outros. A consideração de
tais fatores levou à escolha do Algoritmo Genético.
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético e a Reconstituição de 48
O Algoritmo Genético é caracterizado pela geração de valores aleatórios
segundo diferentes distribuições estatísticas e pela evolução desses valores, o
que se de forma análoga à evolução dos seres vivos de acordo com a Teoria
Evolutiva de Darwin. Esta prevê que os indivíduos mais aptos têm maiores
chances de sobrevivência. Como na natureza, em alguns casos de engenharia
são muitos os fatores que definem a aptidão de um “indivíduo”, tal como definido
a seguir. Portanto o cruzamento dos mais aptos com aqueles com menos
chance de sobrevivência também é importante, para que se tenha maior
diversidade de informações e portanto maiores chances de se chegar ao
“indivíduo mais apto”. No caso estudado, o número de informações é tamanho
que a análise separada de cada parâmetro relevante à sobrevivência e de suas
interações torna-se impraticável. Portanto, a sinergia proveniente do conjunto
das informações criadas em um primeiro momento de forma aleatória,
direcionada pelas avaliações de cada grupo de informações, torna-se um
recurso eficaz de busca do ótimo sem que seja necessário recorrer a uma
pesquisa exaustiva da influência de cada parâmetro.
Alguns dos principais conceitos aplicados em algoritmos genéticos são:
Gene – Valor a ser otimizado.
Indivíduo ou Cromossomo Vetor com todos os parâmetros que se
pretendem otimizar. Este vetor será manipulado através dos operadores.
População Grupo de indivíduos. Denomina-se população inicial a
primeira população. Esta tem uma particularidade importante quando comparada
às seguintes: a criação de seus indivíduos é dada de forma que cada um não
tem nenhuma ligação com os demais a não ser por suas distribuições de
probabilidade.
Tamanho da População Número de indivíduos de cada geração. Quanto
maior o tamanho da população, maior tende ser a diversidade genética, porém
maior o tempo gasto em avaliação e cruzamento dos indivíduos a cada geração.
Geração O momento em que se encontra a evolução. A população da
primeira geração origem às demais e a princípio é gerada aleatoriamente.
Pode-se utilizar outras distribuições em sua criação, mas o habitual será a
distribuição aleatória. As subseqüentes são geradas principalmente pelo
cruzamento das informações das anteriores.
Função Avaliação Esta é responsável por dar uma “nota” (aptidão) para
um cromossomo. Dada esta aptidão, as gerações seguintes serão formadas,
sendo que os mais aptos terão maior probabilidade de perpetuar parte do seu
cromossomo do que os menos aptos.
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético e a Reconstituição de 49
Seleção Critério utilizado para escolher quais os indivíduos que serão
“misturados” através do operador de cruzamento (a seguir). A seleção é baseada
na avaliação dada pela função descrita anteriormente e tem influência direta
sobre a pressão evolutiva, pois pode ser configurada de forma a diferenciar
fortemente os indivíduos mais aptos ou tornar menos improvável o cruzamento
dos menos aptos.
Cruzamento (Cross-Over) Pares de indivíduos são escolhidos
aleatoriamente pelo critério descrito anteriormente e os valores dos seus vetores
são combinados por este operador de forma a gerar novos indivíduos para a
nova geração. Esta operação tende portanto a combinar os indivíduos mais
aptos, convergindo assim a valores ótimos.
Mutação Este operador troca aleatoriamente um ou mais valores de um
ou mais indivíduos escolhidos aleatoriamente. Esta operação é responsável pela
diversificação genética da população e é importante principalmente para casos
em que o algoritmo esteja tendendo a um ponto de ótimo local e não global.
Elitismo e Steady State No primeiro caso o melhor indivíduo, e no
segundo caso os melhores indivíduos (quantidade definida pelo usuário) da
geração anterior são mantidos inalterados para a geração seguinte. O resto da
população seguinte é o produto de evolução a partir da anterior através dos
operadores já discutidos.
Critério de Parada Pode-se estipular um valor mínimo (ou máximo) na
função de avaliação o qual define a decisão de parada. Demarca-se muito
comumente também o número de gerações que serão utilizadas ou o tempo
limite de processamento. Outros critérios de parada podem ser definidos.
Soluções Inválidas Soluções fora das restrições do problema. Este tipo
de solução pode ser trabalhado através de penalidades, porém deve ser
fortemente evitado, pois gasta tempo de computação e quando em grande
número, pode resultar em soluções não ótimas.
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético Aplicado à Reconstituição de Acidentes 50
3.2.
Algoritmo Genético Aplicado à Reconstituição de Acidentes
Dadas as definições do subitem 3.1, são estabelecidos agora os critérios
para uma “cooperação” adequada entre o otimizador e o simulador. Um fator
importante a ser definido é a função de avaliação, pois esta será a conexão
responsável por “direcionar” o algoritmo para os melhores indivíduos. Quanto
melhor a avaliação de um indivíduo, maior probabilidade ele terá de passar as
suas informações para as gerações seguintes. Portanto, ao se escolher a
função, deve-se ater tanto à preocupação de bem diferenciar entre um bom
indivíduo e um mau indivíduo, quanto à de simplicidade em sua formulação, pois
uma excessiva complexidade aumentaria o risco de se formularem hipóteses
inválidas. Partindo destes dois princípios optou-se pela raiz quadrada da soma
dos quadrados das distâncias entre as posições obitdas e esperadas dos
veículos. Este cálculo é efetuado tomando-se a posição, após a parada, de dois
pontos da carroceria de cada veículo (de preferência que sejam
geometricamente opostos) e medindo-se as distâncias com relação às
respectivas posições esperadas, como se pode ver nas Figuras 22 e 23 (f).
Um outro desafio é definir quais serão as variáveis que o algoritmo deverá
trabalhar em busca da solução ótima. Quanto mais fatores a se otimizar
existirem, mais amplo será o universo de busca do problema e portanto mais
lentamente se dará a convergência ao ponto ótimo. Por outro lado, se os fatores
estiverem demasiadamente presos a limites que não sejam necessariamente
condizentes com a realidade dos acontecimentos, mais provavelmente não se
chegará a uma solução válida. Por estes motivos definem-se, a princípio, as
entradas (genes) do algoritmo como:
Velocidades iniciais;
Posições iniciais;
Atitudes iniciais;
Local da colisão;
Partes colididas dos veículos;
Os limites e/ou a média e distribuição probabilística destes fatores serão
dados de entrada do usuário/especialista. Com isso, apesar do grande número
de parâmetros a ser otimizado, o universo de busca será limitado. Quanto mais
informações reais o analista tiver, será de se esperar uma convergência mais
rápida do algoritmo ao ótimo global.
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético Aplicado à Reconstituição de Acidentes 51
Figura 21- Função de Avaliação
Estes limites serão respeitados no momento de criação da população
inicial e serão utilizados operadores que também respeitem este limite. Por estes
motivos, será recomendado ao usuário que utilize limites razoáveis, no sentido
de evitar a escolha de uma faixa excessivamente estreita, a ponto de deixar
marginalizadas as soluções ótimas.
As entradas do algoritmo não precisam ser necessariamente nas
grandezas dadas. Pode-se por exemplo, parametrizar todos os genes do
cromossomo para valores entre 0 e 1, como se pode ver na Figura 23 (a), com
quantas casas decimais se façam necessárias e com as devidas distribuições
probabilísticas (definidas pelo usuário). Num segundo momento, já independente
do otimizador, transformam-se estes valores em equivalentes entre os limites
inferior e superior (também estabelecidos pelo analista), como mostrado na
Figura 23 (b).
Definir a geometria do problema talvez tenha sido o maior desafio. Como o
algoritmo genético é baseado em um processo estocástico, as posições dos
veículos não podem ser definidas em coordenadas globais. Esta impossibilidade
é devida ao fato de que inicialmente o otimizador gera valores independentes
entre si. Assim, mesmo que fossem impostos limites para cada uma das
variáveis de localização de cada veículo, seriam no entanto muito grandes as
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético Aplicado à Reconstituição de Acidentes 52
chances de geração de situações onde os veículos não colidiriam, ou colidiriam
de forma a não respeitar as áreas de contato pressupostas. Seriam portanto
geradas inúmeras soluções inválidas, que por sua vez “gastariam” muito tempo
computacional e poderiam até levar ao paradoxo de situações irreais com valor
da função de avaliação típico de uma solução ótima, como por exemplo uma
configuração onde os veículos se encontrariam perto das posições finais e
nem chegariam a colidir.
Uma solução encontrada para este problema foi definir a posição inicial de
cada veículo através três parâmetros. O primeiro seria o ângulo formado entre o
sistema de coordenadas locais do veículo, com origem no centro geométrico do
mesmo, e o sistema de coordenadas globais. Os demais parâmetros seriam o
local de colisão e a parte colidida de cada veículo (Figura 23 (c)). De acordo
com o modelo de colisão instantânea descrito no capítulo 2, o ângulo que cada
veículo forma com o sistema de coordenadas globais é obtido a partir das
definições das áreas afetadas na colisão. Com isso, o algoritmo genético irá
gerar valores iniciais para as partes colididas e para o local de colisão,
respeitando os limites estabelecidos, sem criar portanto soluções inválidas a
priori.
Através destas informações, é possível conhecer a posição global de cada
um dos veículos a cada variação dos parâmetros pelo algoritmo. Basta girá-los
pelo ângulo, considerar as partes colididas e ancorá-las no local de colisão
(Figura 23 (d)). Cabe ressaltar que cada uma das características acima (parte
colidida e local de colisão) será aleatoriamente variada pelo GA, dentre os limites
estipulados, sem que soluções inválidas sejam geradas. É importante destacar
que o procedimento de determinação da posição global será todo efetuado no
programa de simulação, portanto à parte do algoritmo otimizador.
Observa-se que a Figura 23 representa conceitualmente o problema que
está se tratando, uma vez que pequenas modificações foram feitas no intuito de
simplificar a sua implementação. O objetivo da figura é meramente de esclarecer
a metodologia utilizada.
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético Aplicado à Reconstituição de Acidentes 53
Figura 22 - Detalhamento do GA conjugado ao programa de simulação
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético Aplicado à Reconstituição de Acidentes 54
Para não haver dificuldades de interpretação das velocidades e atitudes
dos veículos por parte do usuário, estas serão definidas nas coordenadas locais.
As transformações para coordenadas globais, serão efetuadas no próprio
programa de simulação.
Resolvidos os desafios encontrados, tem-se como padrão de solução as
seguintes etapas:
1. O usuário entra com os limites inferior e superior das variáveis a serem
tratadas. Em geral as variáveis serão, como citado acima, as velocidades
iniciais, posições iniciais, atitudes iniciais, partes colididas dos veículos, local
da colisão. Cada valor atribuído a cada uma destas variáveis será, por
definição, um gene do algoritmo. Cada conjunto de valores, sendo cada um
deles atribuído a uma das variáveis, contemplando todas as variáveis, será
portanto um indivíduo ou cromossomo. O usuário deve fornecer também
neste momento, os parâmetros constantes da colisão, como as
características do carro (bitolas, distâncias entre eixos, massa,...) e
características de interação (atrito pneu-solo, coeficiente de
interpenetração,...).
2. O usuário entra com as posições-alvo finais, ou seja, aquelas conhecidas da
cena do acidente, também denominadas posições reais.
3. O algoritmo genético irá então “criar” a primeira população através de
geração aleatória de valores para as variáveis, respeitando obviamente os
limites impostos pelo usuário na etapa 1. A população terá o tamanho, ou o
número de indivíduos estipulados no programa, podendo o usuário mudar
este tamanho ou número a qualquer momento, caso haja necessidade.
4. Cada um destes indivíduos contém todas as informações necessárias para
uma simulação completa. Com isso uma cena do acidente poderá ser
montada, ou seja, através da definição do ângulo de cada veículo, das
partes colididas e do local da colisão, os veículos serão colocados em
posição de colisão. Esta será então simulada e as posições finais dos
veículos serão comparadas com aquela fornecida pelo usuário na etapa 2.
Para esta comparação será utilizada o que se denomina função de
avaliação, definida anteriormente, que tem por objetivo quantificar quanto
uma configuração está próxima da real.
5. Através de cada função de avaliação, cada indivíduo terá suas chances de
se reproduzir, ou seja, de misturar seus valores com o de outro indivíduo.
Para tanto, os indivíduos com melhores funções de avaliação, que neste
caso nada mais são que funções de menores magnitudes (mais próximas de
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético Aplicado à Reconstituição de Acidentes 55
zero), terão maiores chances de se reproduzirem. O critério específico
utilizado para definir qual a diferença de probabilidade de escolha entre os
indivíduos mais aptos e aqueles menos aptos será dado pela função de
seleção. As misturas destes valores são feitas gene a gene, ou seja,
velocidade inicial de um indivíduo com velocidade inicial de outro indivíduo,
local de colisão de um indivíduo com local de colisão de outro indivíduo e
assim por diante. As misturas também respeitam os limites impostos pelos
dois indivíduos e consequentemente os limites impostos inicialmente. Por
exemplo, se um indivíduo tem sua velocidade inicial estipulada em 10 m/s e
vai se misturar com um indivíduo que tem a velocidade inicial de 12 m/s, os
dois indivíduos resultantes ficarão com suas velocidades entre estes dois
valores respeitando a seguinte regra:
Velocidade do primeiro “filho” = 10+(1-p)*(12-10)
Velocidade do segundo “filho” = 10+(p)*(12-10)
onde p é um número aleatório entre 0 e 1 gerado GA.
6. Outra forma utilizada para criar indivíduos para a nova geração é a mutação.
Esta escolhe aleatoriamente, e normalmente a taxas muito baixas (em torno
de 5%), indivíduos que não se cruzarão com nenhum outro, mas terão
somente algumas de suas características alteradas aleatoriamente (dentro
dos limites iniciais) e serão colocados desta forma na nova geração. Estes
indivíduos são responsáveis pela procura de ótimos em outras regiões, caso
a região de ótimo procurada pela maioria seja local e não global. As
chances de se ter mutação na população vão decaindo com o tempo, já que
a pesquisa de outras regiões se mostra interessante somente no começo da
busca.
7. A última forma utilizada na criação de novas gerações é a perpetuação dos
melhores indivíduos. A quantidade de indivíduos mantidos também pode ser
alterada pelo usuário e garante que as melhores combinações de genes
(valores) até um dado momento não serão perdidas na mistura com outros
cromossomos (indivíduos).
8. Através dos três pontos anteriores tem-se a nova população ou geração.
Com esta nova população retorna-se à etapa 4 e se recomeça o processo
para uma nova geração. Assim sucessivamente até que algum critério de
parada seja alcançado, a saber:
Limite inferior da função de avaliação – este é o principal critério e
a partir deste objetivo os parâmetros do GA são configurados. Se a
função de avaliação do melhor indivíduo estiver abaixo do limite
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético Aplicado à Reconstituição de Acidentes 56
estipulado pelo usuário, o otimizador pára e toma este indivíduo como
resultado final. Em particular, o valor da função de avaliação da forma
que se encontra em sua versão final utilizada neste trabalho retorna o
limite superior para as quatro distâncias medidas e a metade deste
valor é a média destas distâncias.
Número máximo de gerações, ou seja, uma vez alcançado o
número estipulado, o otimizador pára e assume como resultado final o
melhor conjunto de valores até então, ou seja, aquele conjunto que tem
a menor função de avaliação.
Limite máximo de tempo em estagnação, ou seja, a quantidade de
segundos que o programa ficará calculando sem achar um indivíduo
melhor que aquele dito como o atual melhor.
Limite máximo de gerações em estagnação. Análogo ao anterior,
somente tendo como critério o número de gerações, e não o tempo.
Estes dois últimos são equivalentes e portanto não faz sentido a
utilização simultânea de ambos.
Na Figura 24 encontra-se o fluxograma relativo ao procedimento de
otimização como um todo. Neste fluxograma não se mostra os dois últimos
critérios de parada citados anteriormente, que estes não são habitualmente
utilizados.
PUC-Rio - Certificação Digital Nº 0321180/CA
Algoritmo Genético Aplicado à Reconstituição de Acidentes 57
Figura 23 – Fluxograma do Procedimento de Otimização
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 58
4
Estudo de Casos
Este capítulo está organizado de forma a explanar como se deu o
progresso no uso, neste trabalho, do algoritmo genético empregando uma
ferramenta da linguagem Matlab. Esta aplicação está estreitamente ligada à
evolução da adaptação do programa de simulação já existente no grupo de
Dinâmica de Veículos da PUC-Rio às necessidades específicas deste caso. Para
tanto, este capítulo foi dividido em quatro seções. Na primeira parte encontra-se
um exemplo de aplicação trivial, onde nenhuma adaptação do modelo existente
tinha sido feita. Com isso o modelo utilizado foi construído de forma simples,
aplicando conhecimentos básicos de mecânica clássica. Em um segundo
momento, onde parte do modelo já estava adaptada, foi possível otimizar os
parâmetros pós-colisão para um veículo. Em seguida, ainda para os parâmetros
pós-colisão, fez-se a otimização para o caso de dois veículos. Finalmente na
última parte fez-se a aplicação para o caso de dois veículos e a obtenção dos
parâmetros de pré-colisão, a partir das posições finais e alguns limites dados no
problema.
Nesta perspectiva, e tendo em consideração a gama de métodos e
algoritmos de otimização brevemente relatados no Capítulo 3, importa aqui
destacar que o presente trabalho não pretende provar que o método escolhido
(GA) é necessariamente superior a outros que eventualmente possam se aplicar
ao fenômeno em estudo, a saber à reconstituição de acidentes envolvendo
colisão de veículos terrestres. O objetivo desta dissertação é tão somente criar e
sugerir critérios e procedimentos para a implementação do GA na solução desse
problema, bem como provar a viabilidade de tal implementação.
4.1.
Uma Aplicação Trivial
No intuito de avaliar a adaptabilidade do algoritmo genético ao caso da
reconstituição da colisão entre dois veículos em uma fase anterior ao
desenvolvimento do projeto propriamente dito, desenvolveu-se um exemplo
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 59
trivial onde se utilizam duas partículas, suas posições finais e o local de encontro
das mesmas. Para tal assumiram-se algumas premissas:
Colisão perfeitamente elástica;
Massas iguais e pontuais;
O movimento é dado no plano.
Dividiu-se o evento da colisão em dois intervalos de tempo. O primeiro
começa imediatamente antes e termina imediatamente depois do choque. Com
isso pode-se assumir como boa aproximação que todas as forças envolvidas são
conservativas. A segunda parte se dá a partir de então, quando há forças
dissipativas, mais exatamente a força de atrito do pneu com o solo, devido ao
arrastamento dos pneus.
Na primeira parte, utilizaram-se as equações de conservação de energia
cinética e de quantidade de movimento. Sejam:
a o instante imediatamente anterior ao choque;
d o instante imediatamente posterior ao choque;
v
i
a velocidade do veículo i (i =1,2);
Então:
+=+
+=+
)(22)(11)(22)(11
2
)(22
2
)(11
2
)(22
2
)(11
2
1
2
1
2
1
2
1
ddaa
ddaa
vmvmvmvm
vmvmvmvm
A partir destas equações, aplicadas às coordenadas x e y, lembrando que
se trata de uma colisão perfeitamente elástica e que as massas são iguais,
obtém-se:
)(1)(2
)(2)(1
)(1)(2
)(2)(1
aydy
aydy
axdx
axdx
vv
vv
vv
vv
=
=
=
=
Para a segunda parte, onde a desaceleração dos veículos, utilizaram-se as
equações que regem o movimento retilíneo uniformemente variado (MRUV),
conforme apresentado a seguir. Sejam:
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 60
S
i
a posição do veículo i;
a
i
a aceleração do veículo i,
Então, para cada veículo valem as seguintes equações:
tavv
tatvSS
iditi
ididiti
=
+=
)()(
2
)()()(
2
1
onde t é o tempo transcorrido até sua parada.
Como no instante de parada as velocidades são nulas e a localização do
centro de massa no instante d é a mesma para ambas as massas (que estas
são pontuais), então aplicando as equações às coordenadas x e y, têm-se:
ydydt
ydydt
xdxdt
xdxdt
avyy
avyy
avxx
avxx
2
2
)(2)()(2
1
2
)(1)()(1
2
2
)(2)()(2
1
2
)(1)()(1
2
2
2
2
+=
+=
+=
+=
Através destas equações, que nada mais são que as conhecidas
Equações de Torricelli aplicadas ao caso em pauta, e tendo as posições finais e
o local de colisão, pode-se obter a função objetivo FA, utilizada para dar a
avaliação de cada gene pelo GA, como:
2222
dcbaF
A
+++=
onde
ydydt
ydydt
xdxdt
xdxdt
avyyd
avyyc
avxxb
avxxa
2
2
)(2)()(2
1
2
)(1)()(1
2
2
)(2)()(2
1
2
)(1)()(1
2
2
2
2
=
=
=
=
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 61
Como se pode perceber, a função de avaliação acima em nada difere
daquela que foi determinada para a aplicação mais complexa, ou seja, para
aquela que compreende o modelo e o simulador discutidos anteriormente. Para
tornar isto mais claro, basta centrar o local de colisão na origem do sistema de
coordenadas e recordar que x
i
(t) são as posições finais esperadas dos veículos
e que v
i(d)
2
/2a
i
são as posições obtidas pelo “simulador”.
Para esta aplicação gerou-se um cromossomo (incógnita do problema)
com somente quatro genes, que são as velocidades iniciais dos dois veículos
projetadas nos eixos do sistema de coordenadas.
Utilizou-se como hipótese que a faixa de incerteza dada pelo
especialista/usuário seria de mesma ordem de grandeza que a velocidade inicial.
Portanto para velocidades de módulo 10m/s, adotou-se para geração da
população inicial valores aleatórios compreendidos na faixa entre 5 e 15m/s. No
caso particular de valores de velocidades iguais a 0m/s, optou-se pela faixa de -5
a 5m/s. Os parâmetros iniciais utilizados foram:
Local de colisão (10m;10m);
Posição final do veículo 1 (0m;10m);
Posição final do veículo 2 (15m;15m);
Acelerações do veículo 1 (5m/s2;5m/s2);
Acelerações do veículo 2 (-10m/s2;-10m/s2).
Depois de alguns ajustes, foram encontrados valores aceitáveis de função
de avaliação para os seguintes parâmetros:
População inicial de 100 indivíduos;
Critério de parada de 50 gerações.
A Figura 25 e a Tabela 3 apresentam os resultados encontrados a partir do
modelo estabelecido, empregando a Toolbox de Algoritmos Genéticos do
MatLab [9]. Lembra-se que o caso apresentado aqui permite obter, através de
cálculos triviais, os valores das velocidades iniciais (indicados na coluna da
Tabela 3), que são muito próximos àqueles encontrados pelo otimizador (como
mostrado na 2ª coluna).
Na Figura 25, a curva superior representa a média da função avaliação,
enquanto a curva inferior mede a avaliação do melhor indivíduo a cada geração.
O gráfico de barras desta figura representa os valores de cada gene do melhor
indivíduo na 50ª geração. A melhor avaliação da função nesta rodada foi
aproximadamente 0,0015m, o que assegura que nenhuma das posições obtidas
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 62
dista mais que 1,5 mm da posição esperada. A partir da Tabela 3, nota-se que o
desvio entre velocidade calculada por métodos analíticos simples e velocidade
obtida pelo GA é desprezível.
Figura 24 - Indivíduo e Evolução da FA
V
calculada
m/s
V
obtida
m/s
|V
cal
-V
obt
| / V
cal
V
1x (t)
10,0 10,000 0,0 %
V
2x (t)
10,0 10,000 0,0 %
V
1y (t)
-10,0 -10,000 0,0 %
V
2y (t)
0,0 0,105 #Div/0
Tabela 3 – Velocidades Iniciais dos Veículos
V1x V2x V1y V2y
-20
-10
0
10
20
Melhor Indivíduo Atual
Velocidades
m/s
5 10 15 20 25 30 35 40 45 50
1.0 E+02
1.0 E+01
1.0 E+00
1.0 E-01
1.0 E-02
1.0 E-03
Geração
Valor da Função (m)
Melhor Avaliação: 0.0015235
Avaliação Média: 0.20546
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 63
4.2.
Pós-Colisão para Um Veículo
Neste item, será apresentada em detalhe a seqüência de eventos desde o
imediato pós-colisão até o momento da parada definitiva de um único veículo,
tendo como objetivo avaliar o modelo desenvolvido para esta etapa.
O modelo de veículo utilizado neste item, bem como nos itens 5.4 e 5.5
está descrito no Capítulo 2. Aqui foi desenvolvida a simulação de um caso
envolvendo condições de contorno inspiradas em uma colisão real.
Os resultados relevantes obtidos encontram-se apresentados na Figura 26
e na Tabela 4, enquanto os códigos-fonte do Matlab estão disponíveis no Anexo.
A função de avaliação utilizada aqui e nos subitens 5.3 e 5.4 é a descrita na
Figura 22 expressa em milímetros. O valor desta função nesta simulação foi de
aproximadamente 4,5 mm.
Figura 25 - Valor das Variáveis do Melhor Indivíduo e Valores da Função de Avaliação da
Média (Preto) e do Melhor Indivíduo (Azul) a cada Geração
Para a otimização neste caso, além dos parâmetros constantes default do
programa, foram utilizados os seguintes valores para os parâmetros do
algoritmo:
Tamanho da população: 100
Números de indivíduos inalterados por geração: 5
Fração de cruzamento: 95%
Função de cruzamento: intermediário (respeita os limites inferior e
superior)
Critério de parada: valor da função de avaliação menor que 5 (mm) ou 40
gerações
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 64
Lim. Inf. Lim. Sup. Valor
Obtido
Valor Real
Aproximado
1. V
x
do veículo A (m/s) 5 15 9,9 10,0
2. X do veículo (m) 15 25 18,6 20,0
3. V
y
do veículo (m/s) -10 0 -7,2 -5,0
4. Y do veículo (m) 0 10 7,1 5,0
5. w do veículo A (rad/s) 0 10 4,7 5,0
6. ψ do veículo (rad) 5 15 11,4 10,0
Tabela 4 – Variáveis e seus Limites Inferiores e Superiores
Como neste caso está se analisando somente um veículo na condição
pós-choque, só existem 6 variáveis. Os seus limites estão apresentados na
Tabela 4. Pode-se notar que, se por um lado as diferenças observadas entre
posição final real e posição final obtida por simulação são desprezíveis, por outro
lado as diferenças entre as respectivas condições iniciais mostraram-se
significativas, contrariando em princípio a intuição. Esta aparente contradição
explica-se pelo fato de que, com um único veículo, o domínio do problema é
pouco restritivo, permitindo um conjunto infinito de soluções viáveis.
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 65
4.3.
Pós-Colisão para Dois Veículos
Neste item, será apresentada em detalhe a seqüência de eventos desde o
imediato pós-colisão até o momento da parada definitiva de dois veículos. Com
essa finalidade, a partir do mesmo caso de colisão real do item 5.2, foi incluído
um segundo veículo, visando observar maior compatibilidade entre as posições e
velocidades iniciais esperadas e obtidas por otimização.
Como neste caso ainda não está se utilizando a matriz que faz a
transformação do pré-choque para o pós-choque, optou-se somente pela
variação das velocidades dos veículos (angulares e lineares) e da localização do
ponto de colisão. A configuração do choque, ou seja, o ângulo inicial que cada
veículo se encontra e as partes colididas não foram variados.
Os resultados relevantes obtidos encontram-se apresentados a seguir na
Tabela 5 e na Figura 27, enquanto os códigos-fonte do Matlab estão disponíveis
no Anexo.
Lim. Inf. Lim. Sup. Valor
Obtido
Valor Real
Aproximado
1. X do local de colisão (m) -4,0 4,0 -0,4 0,0
2. Y do local de colisão (m) -2,5 2,5 0,1 0,0
3. V
x
do veículo A (m/s) 8,0 15,5 12,1 11,8
4. V
y
do veículo A (m/s) -9,5 -3,5 -6,6 -6,5
5. w do veículo A (rad/s) 2,5 8,5 5,4 5,5
6. V
x
do veículo B (m/s) 3,5 10,5 6,9 7,2
7. V
y
do veículo B (m/s) -10,0 -4,0 -6,8 -6,8
8. w do veículo B (rad/s) -1,0 3,0 1,1 1,1
Tabela 5 – Variáveis e seus Limites Inferiores e Superiores
Como somente as velocidades dos veículos e a localização do ponto de
colisão estão sendo variadas, são necessárias somente 8 variáveis, sendo estas
assumidas com os limites apresentados na Tabela 5. O valor da função de
avaliação nesta simulação foi de aproximadamente 72,9 mm.
Para a otimização neste caso foram utilizados os seguintes valores para os
parâmetros do algoritmo:
Tamanho da população: 100
Números de indivíduos inalterados por geração: 5
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 66
Fração de cruzamento: 95%
Função de cruzamento: intermediário (respeita os limites inferior e
superior)
Critério de parada: valor da função de avaliação menor que 100 (mm) ou
40 gerações
Figura 26 – Valor das Variáveis do Melhor Indivíduo e Valores da Função de Avaliação
da Média (Preto) e do Melhor Indivíduo (Azul) a cada Geração
Na Figura 28, se tem a animação da trajetória de dois veículos na situação
de pós-colisão. Os veículos azul e vermelho têm suas dinâmicas calculadas pelo
simulador e suas condições iniciais (posições e velocidades) geradas pelo
otimizador. As marcas azul claro e rosa são as posições finais esperadas ou
reais. O triângulo indica a parte frontal do veículo. Pode-se notar que os veículos
simulados aproximam-se de forma satisfatória às posições esperadas, como
indicava o valor da função de avaliação que pode ser visto na Figura 27. Este
valor indica a maior distância possível entre um ponto esperado e o seu
respectivo calculado, e metade deste valor é a média de todas as distâncias
entre os pontos esperados e seus respectivos obtidos através do otimizador.
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 67
Figura 27 – Simulação da Trajetória de Dois Veículos a partir das Condições Pós-Colisão
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 68
4.4.
Caso completo
Após os ensaios apresentados nos itens anteriores, que serviram para
testar a adequação do algoritmo à evolução do modelo, será apresentada em
detalhe neste item a seqüência de eventos desde o imediato pré-colisão até o
momento da parada definitiva de dois veículos. Os modelos aqui utilizados foram
apresentados no Capítulo 2.
Neste item, incluiu-se a matriz que faz a transformação do pré-choque
para o pós-choque, aumentando consideravelmente o número de variáveis do
problema. A configuração do choque foi variada, ou seja, a atitude de cada
veículo e as partes colididas. Em função da grande quantidade de variáveis, a
otimização mostrou-se consideravelmente mais lenta.
No intuito de gerar cenários de colisão para se avaliar o otimizador,
definiram-se inicialmente valores razoáveis para as variáveis de entrada e
simulou-se a colisão correspondente a tais valores. As posições finais assim
obtidas foram impostas como objetivo para o algoritmo. Naturalmente os limites
do otimizador foram definidos de forma a conter os valores inicialmente
impostos.
Serão aqui abordados dois casos: colisão lateral oblíqua e colisão traseira
oblíqua.
4.4.1.Colisão Oblíqua Lateral
Este tipo de colisão ocorre quando o centro da área colidida de pelo menos
um dos veículos se encontra na sua lateral, como esboçado na Figura 5. A
configuração apresentada poderia ser decorrente de uma ultrapassagem com
invasão de pista de fluxo oposto. A suposta invasão seria feita pelo veículo
destacado em vermelho, que foi denominado veículo A. As características
intrínsecas aos veículos são:
Massa do Veículo A (kg) = 1040;
Momento de Inércia do Veículo A (kg*m²) =1.2694e+003;
Bitola do Veículo A (m) = ba = 1.5480;
Distância Dianteira - Centro de Massa do Veículo A (m) = lda = 1.6148;
Distância Traseira - Centro de Massa do Veículo A (m) = lta = 2.4438;
Massa do Veículo B (kg) = 1668;
Momento de Inércia do Veículo B (kg*m²) = 2.0974e+003;
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 69
Bitola do Veículo B (m) = bb = 1.6080;
Distância Dianteira - Centro de Massa do Veículo B (m) = ldb = 1.6224;
Distância Traseira - Centro de Massa do Veículo B (m) = ltb = 2.4336;
Os resultados relevantes obtidos e os limites das variáveis encontram-se
apresentados a seguir na Tabela 6 e na Figura 29, enquanto os códigos-fonte do
Matlab estão disponíveis no Apêndice. As variáveis de 9 a 16 da Tabela 6
referem-se às partes colididas. O valor da função de avaliação nesta simulação
foi de aproximadamente 99,2 mm.
Lim Inf Lim Sup Valor
Obtido
Valor
Real
1 – X do local da colisão (m) 37.5 42.5 40.5 40.0
2 – Y do local da colisão (m) 0.0 2.0 0.8 1.0
3 – V
x
do veículo A (m/s) 9.0 14.3 11.9 11.8
4 – V
y
do veículo A (m/s) -8.0 -5.0 -6.3 -6.5
5 – w do veículo A (rad/s) 4.0 7.0 5.6 5.5
6 – V
x
do veículo B (m/s) 5.0 9.0 7.6 7.2
7 – V
y
do veículo B (m/s) -8.0 -6.0 -6.9 -6.8
8 – w do veículo B (rad/s) 0.5 1.5 1.0 1.1
9 – x
i
do veículo A (m) 0.81 0.97 0.87 0.89
10 – y
i
do veículo A (m) ba/2 ba/2 ba/2 ba/2
11 – x
f
do veículo A (m) lda lda lda Lda
12 – y
f
do veículo A (m) 0.58 0.66 0.63 0.62
13 – x
i
do veículo B (m) 0.56 0.73 0.65 0.64
14 – y
i
do veículo B (m) bb/2 bb/2 bb/2 bb/2
15 – Atitude do veículo A (°) 0.0 1.0 0.5 0.2
Tabela 6 - Variáveis e seus Limites Inferiores e Superiores
Para a otimização neste caso foram utilizados os seguintes valores para os
parâmetros do algoritmo:
Tamanho da população: 100
Números de indivíduos inalterados por geração: 5
Fração de cruzamento: 95%
Função de cruzamento: intermediário (respeita os limites inferior e
superior)
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 70
Critério de parada: valor da função de avaliação menor que 100 (mm) ou
20 gerações
Figura 28 - Valor das Variáveis do Melhor Indivíduo e Valores da Função de Avaliação da
Média (Preto) e do Melhor Indivíduo (Azul) a cada Geração
Na Figura 30 tem-se a geometria da colisão, a partir da qual se obtêm as
velocidades iniciais para o modelo pós-choque, mediante o procedimento
apresentado no Capítulo 2. Na Figura 31, tem-se a animação da trajetória de
dois veículos na situação de pós-colisão. As convenções de cor e forma dos
veículos adotadas anteriormente foram mantidas. Pode-se notar pela na Figura
32, que os veículos simulados aproximam-se de forma satisfatória às posições
esperadas, como indicava o valor da função de avaliação que pode ser visto
na Figura 29.
Figura 29 – Geometria da Colisão
36 37 38 39 40 41 42 43 44 45
-4
-3
-2
-1
0
1
2
3
4
5
6
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 71
Figura 30 - Simulação da Trajetória de dois Veículos após uma Colisão Lateral Oblíqua
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 72
Figura 31 – Final da Simulação – Superposição das Posições Esperadas e Obtidas
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 73
4.4.2. Colisão Traseira Oblíqua
Este tipo de colisão ocorre quando o centro da área colidida de pelo menos
um dos veículos se encontra na sua traseira, como esboçado na Figura 6. A
configuração apresentada poderia ser decorrente de uma brusca frenagem do
veículo azul. As características intrínsecas aos veículos e os parâmetros do
otimizador foram os idênticos aos definidos no subitem 5.4.1.
Os resultados relevantes obtidos e os limites das variáveis encontram-se
apresentados a seguir na Tabela 7 e na Figura 33, enquanto os códigos-fonte do
Matlab estão disponíveis no Apêndice. As variáveis de 9 a 16 da Tabela 7
referem-se às partes colididas. O valor da função de avaliação nesta simulação
foi de aproximadamente 829,3 mm. A otimização a rigor mostrou-se bastante
lenta e o algoritmo somente cessou por ter alcançado o limite máximo
estabelecido para o número de gerações.
Lim Inf Lim
Sup
Valor
Real
Valor
Obtido
1 – X do local da colisão (m) 39.0 41.0 40.0 39.6
2 – Y do local da colisão (m) -1.5 -0.5 -1.0 -0.9
3 – V
x
do veículo A (m/s) 10.0 14.0 12.0 11.9
4 – V
y
do veículo A (m/s) -2.0 0.0 -1.0 -1.3
5 – w do veículo A (rad/s) 1.0 2.0 1.5 1.7
6 – V
x
do veículo B (m/s) 8.0 12.0 10.0 10.3
7 – V
y
do veículo B (m/s) 0.5 1.5 1.0 1.4
8 – w do veículo B (rad/s) -0.8 -0.2 -0.5 -0.5
9 – x
i
do veículo A (m) lda lda lda lda
10 – y
i
do veículo A (m) -0.43 -0.35 -0.39 -0.37
11 – x
f
do veículo A (m) 1.44 1.47 1.45 1.45
12 – y
f
do veículo A (m) ba/2 ba/2 ba/2 ba/2
13 – x
i
do veículo B (m) -2.21 -2.17 -2.19 -2.18
14 – y
i
do veículo B (m) bb/2 bb/2 bb/2 bb/2
15 – Atitude do veículo A (°) 2.0 4.0 3.0 2.3
Tabela 7 - Variáveis e seus Limites Inferiores e Superiores
Na Figura 34 tem-se a geometria da colisão, ou seja, a configuração dos
veículos no momento que precede o choque. Na Figura 35, tem-se a animação
da trajetória de dois veículos na situação de pós-colisão. As convenções de cor e
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 74
forma dos veículos adotadas anteriormente foram mantidas. Pode-se notar a
diferença de posições entre as esperadas e as obtidas, como indicava o valor
da função de avaliação que pode ser visto na Figura 33.
Figura 32 - Valor das Variáveis do Melhor Indivíduo e Valores da Função de Avaliação da
Média (Preto) e do Melhor Indivíduo (Azul) a cada Geração
Figura 33 - Geometria da Colisão
35 36 37 38 39 40 41 42 43 44 45
-5
-4
-3
-2
-1
0
1
2
3
4
PUC-Rio - Certificação Digital Nº 0321180/CA
Estudo de Casos 75
Figura 34 - Simulação da Trajetória de dois Veículos após uma Colisão Traeira Oblíqua
PUC-Rio - Certificação Digital Nº 0321180/CA
Conclusões e Sugestões 76
5
Conclusões e Sugestões
Acredita-se, pelos resultados encontrados até o momento, que o emprego
de técnicas de otimização, em particular dos algoritmos genéticos, realmente
possa ser uma ferramenta de grande utilidade no tratamento de problemas de
reconstituição de acidentes e colisões de veículos terrestres. O procedimento de
tentativa e erro, normalmente adotado pelos analistas nestes casos, pode ser
substituído com vantagens por uma abordagem científica, levando a resultados
mais precisos e confiáveis, com menores possibilidades de contra-
argumentações. Estaríamos assim atendendo a um dos principais objetivos da
Engenharia Forense, condição necessária para aceitação de tais soluções em
processos judiciais, como discutido em Speranza Neto, et. al. [1].
Ainda não se tem um procedimento completo, nem tampouco resultados
conclusivos, porém está se conseguindo estabelecer modelos matemáticos e
ferramentas que provavelmente levarão aos objetivos pretendidos pelo grupo de
pesquisa em Dinâmica de Veículos da PUC-Rio.
A próxima etapa visando a implementação do algoritmo desenvolvido seria
a criação de uma interface amigável com o usuário, para que uma série de casos
possa ser avaliada, e conseqüentemente o procedimento como um todo seja
validado. Cabe mencionar que no âmbito do grupo de pesquisas citado está se
estudando a possibilidade de evolução do modelo para veículos flexíveis.
Como sugestão final para futuros estudos dentro desta mesma linha,
propõe-se avaliar também a possibilidade de levantamento das características
como coeficiente de atrito, coeficiente de restituição, coeficiente de
interpenetração, bem como de rigidez e plasticidade das estruturas dos veículos
a partir da sua condição deformada após uma colisão, o que pode fornecer
informações sobre a severidade do impacto.
PUC-Rio - Certificação Digital Nº 0321180/CA
Referências Bibliográficas 77
6
Referências Bibliográficas
1. Speranza Neto, M., Barreto, A.R., da Silva, F.R., Pedroza, B.C., “A
Reconstituição de Acidentes Através de uma Abordagem Adequada”,
SAE Paper No. 2003-1103-2282, Congresso SAE BRASIL, 2003.
2. Abdulmassih, D.S., “Modelos de Veículos gidos para Análise de
Colisões e Reconstituição de Acidentes”, Dissertação de Mestrado,
DEM/PUC-Rio, 2003.
3. Macmillan, R.H., “Dynamics of Vehicle Collisions”, Inderscience
Enterprises Ltd., 1983.
4. Fox, R.L, “Optimization Methods for Engineering Design”, Addison-
Wesley Publishing Company, 1973.
5. Genta, G., Motor Vehicle Dynamics Modeling and Simulation”, World
Scientific, 1997.
6. Kost, G. and Werner, S.M., “Use of Monte Carlo Simulation Techniques in
Accident Reconstruction”, SAE Paper No. 940719, Society of Automotive
Engineers, 1994.
7. Moser, A. and Steffan, H., “Automatic Optimization of Pre-Impact
Parameters Using Post Impact Trajectories and Rest Positions”, SAE
Paper No. 9803373, Society of Automotive Engineers, 1998.
8. Pohlheim, H. and Hunt, K.J., “Control of Lateral Vehicle Dynamics and
Dynamic Optimization using Genetic Algorithm Toolbox”,
http://www.pohlheim.com/Papers/vehicle_gal95/gal1_1.html
9. Day, T. D. e Metz, L. D. - “The Simulation for Driver Inputs Using a
Vehicle Driver Model- Artigo SAE No. 2000-01-1313 - SAE 2000 World
Congress – Detroit – Michigan – 2000.
10. Allen, R. W.; Rosenthal T. J. e Hogue J . R. – “Modeling and Simulation of
Driver/Vehicle Interaction” – Artigo SAE No. 960177 – 1996.
11. Genetic Algorithm and Direct Search Toolbox User’s Guide, Version 1
The MathWorks, Inc., 2005.
12. Notas de Aula da disciplina “Computação Evolucionária” ministrada na
PUC-Rio em 2005.
13. Winston, W. L. Operations Research: Applications and Algorithms,
Duxbury Press, Boston, 1987.
14. Speranza Neto, M. e Spínola, A. L., “Análise do Comportamento
Dinâmico de um Veículo em uma Trajetória Pré-Definida através de um
Modelo Cinemático em Malha Fechada”, Artigo SAE Brasil 2005.
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 78
7
Apêndices – Programas Matlab
Encontram-se nestes anexos os códigos fontes utilizados para:
o(s) modelo(s) do(s) veículo(s)
a matriz de transformação das condições pré-choque para as
condições pós-choque
a simulação da trajetória pós-choque
a otimização.
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 79
7.1.
Uma Aplicação Trivial
function z = my_fun(x);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% as massas foram assumidas iguais a 1
% o choque foi assumido perfeitamente elástico
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% índice i indica veículo i
% índice a indica instante imediatamente anterior ao choque
% índice p indica instante imediatamente posterior ao choque
% índice t indica instante posterior ao choque quando as vel. são nulas
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% V1a^2 + V2a^2 = V1p^2 + V2p^2 (conservação de energia cinética)
% V1a + V2a = V1p + V2p (conservação de quantidade de movimento)
% V1p = V2a
% V2p = V1a
% Sit = Sip + Vip*T - Ai*T^2/2
% Vit = 0 = Vip - Ai*T --> T = Vip/Ai
% Sit = Sip + Vip*(Vip/Ai) - Ai*(Vip/Ai)^2/2 = Sip + Vip^2/(2*Ai)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Via --> V1xa = -V2xa = V1ya = 10; V2ya = 0 (esperado)
% Sip --> Xip = Yip = 10
% Ai --> A1x= A1y = -5; A2x = A2y = 10
% Sit --> X1t = 0; X2t = 15; Y1t = 10; Y2t = 15
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% x(1)=V1xa (esperado = 10)
% x(2)=V2xa (esperado = -10)
% x(3)=V1ya (esperado = 10)
% x(4)=V2ya (esperado = 0)
% a =V1xp
% b =V2xp
% c =V1yp
% d =V2yp
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% V1p = V2a:
a = x(2);
c = x(4);
% V2p = V1a:
b = x(1);
d = x(3);
% Sit = Sip + Vip^2/(2*Ai):
e = 0 - 10 - a^2/(-10);
f = 15 - 10 - b^2/20;
g = 10 - 10 - c^2/(-10);
h = 15 - 10 - d^2/20;
% Função a ser minimizada:
z = (e^2 + f^2 + g^2 + h^2)^0.5;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 80
Modelo de Colisão e de Trajetória
Parâmetros e Configurações da Função GA
options = gaoptimset ('PopInitRange', [5 -15 5 -5 ; 15 -5 15 5] , 'PopulationSize', 100 ,
'EliteCount' , 2 , 'Generations' , 50 , 'StallGenLimit' , 5000 , 'StallTimeLimit' ,
600000 , 'CrossoverFcn', @crossoverintermediate , 'PlotFcns' ,
[@gaplotbestindiv , @gaplotbestf] ) ;
[x fval reason] = ga(@my_fun, 4, options);
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 81
7.2.
Pós-Colisão para Um Veículo
A seguir tem-se o diagrama de blocos Simulink/Matlab para a simulação do
modelo pós-choque desenvolvido.
Nas páginas seguintes encontram-se listadas as funções:
log2glob.m, que realiza a transformação de coordenadas do
referencial local para o global;
aceleracoes.m, que calcula as acelerações instantâneas do veículo;
unitarios.m, que determina as direções das velocidades
instantâneas de cada pneu, nas quais as forças de atrito estão
aplicadas, calcula os termos u
IJ,i
que as ponderam em cada eixo
local e realiza seus somatórios.
Modelos e funções equivalentes a estes serão utilizados no caso de pós-
colisão para dois veículos e no caso completo e encontram-se explícitas nos
respectivos anexos.
Diagrama de Blocos do Modelo Pós-Choque
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 82
log2glob.m - Coordenadas Locais para Globais
aceleracoes.m - Acelerações Instantâneas
function[V]=loc2glob(fi,vy,ux)
V(1,1)=ux*cos(fi)-vy*sin(fi);
V(2,1)=ux*sin(fi)+vy*cos(fi);
function[V]=aceleracoes(vx,vy,wz)
global adx ady adz bax bay baz
[sux,suy,suz] = unitarios(vx,vy,wz);
err = 1e-2;
if abs(vx) >= err
ax=-adx*sux-bax*vx;
else
ax=0;
end
if abs(vy) >= err
ay=-ady*suy-bay*vy;
else
ay=0;
end
if abs(wz) >= err
alfaz=-adz*suz-baz*wz;
else
alfaz=0;
end
V(1,1)=ax+wz*vy;
V(2,1)=ay-wz*vx;
V(3,1)=alfaz;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 83
unitarios.m - Direções das Velocidades Instantâneas de cada Pneu
function [sx,sy,sz] = unitarios(u,v,w);
global bd bt ld lt
% uDD
vddx=u+w*bd/2;
vddy=v+w*ld;
vdd=sqrt(vddx^2+vddy^2);
uddx = vddx/vdd;
uddy = vddy/vdd;
% uDE
vdex=u-w*bd/2;
vdey=v+w*ld;
vde=sqrt(vdex^2+vdey^2);
udex = vdex/vde;
udey = vdey/vde;
% uTD
vtdx=u+w*bt/2;
vtdy=v-w*lt;
vtd=sqrt(vtdx^2+vtdy^2);
utdx = vtdx/vtd;
utdy = vtdy/vtd;
% uTE
vtex=u-w*bt/2;
vtey=v-w*lt;
vte=sqrt(vtex^2+vtey^2);
utex = vtex/vte;
utey = vtey/vte;
% SOMATÓRIO DAS COMPONENTES DOS UNITÄRIOS
% Ponderação das forças em X
sx = uddx + udex + utdx + utex;
% Ponderaçao das forças em Y
sy = uddy + udey + utdy + utey;
% Ponderaçao dos momentos em Z
sz =(uddx - udex)*bd/2 + (utdx - utex)*bt/2 + (uddy + udey)*ld - (utdy + utey)*lt;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 84
Parâmetros do Veículo, da Interação e da Simulação
global adx ady adz bax bay baz
global bd bt ld lt
global Xfc Yfc psifc
global ro Cx Cy Cmz S Jz m
global vx0 X0 vy0 Y0 wz0 psi0
global dt tf
Xfc=30;
Yfc=2;
psifc=335;
pista='pista';
g = 9.81;
m = 1000;
Jz = 2000;
rz2 = Jz/m;
ld = 1;
lt = 1.5;
bt = 1.5;
bd = 1.5;
mu = 0.7;
adx = mu*g/4;
ady = mu*g/4;
adz = mu*g/4/rz2;
ro = 1.2;
Cx = 0.30;
Cy = 0.80;
Cmz = 0.2;
S = 2.0;
tf = 3;
dt = 0.05;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 85
Função de Avaliação do GA
function [d]= fun_ga(var)
global adx ady adz bax bay baz
global bd bt ld lt
global Xfc Yfc psifc
global ro Cx Cy Cmz S Jz m
global vx0 X0 vy0 Y0 wz0 psi0
global dt tf
vx0= var(1);
X0 = var(2);
vy0= var(3);
Y0 = var(4);
wz0 = var(5);
psi0 = var(6)*pi/180;
bax = ro*Cx*S*abs(vx0)/2/m;
bay = ro*Cy*S*abs(vy0)/2/m;
baz = ro*Cmz*S*(ld+lt)*abs(wz0)/2/Jz;
sim pos_colisao
Xf=X(length(X));
Yf=Y(length(Y));
psif=psig(length(psig));
Xdd=Xf+ld*cos(psif*pi/180)+(bd/2)*sin(psif*pi/180);
Ydd=Yf+ld*sin(psif*pi/180)-(bd/2)*cos(psif*pi/180);
Xte=Xf-lt*cos(psif*pi/180)-(bt/2)*sin(psif*pi/180);
Yte=Yf-lt*sin(psif*pi/180)+(bt/2)*cos(psif*pi/180);
Xddc=Xfc+ld*cos(psifc*pi/180)+(bd/2)*sin(psifc*pi/180);
Yddc=Yfc+ld*sin(psifc*pi/180)-(bd/2)*cos(psifc*pi/180);
Xtec=Xfc-lt*cos(psifc*pi/180)-(bt/2)*sin(psifc*pi/180);
Ytec=Yfc-lt*sin(psifc*pi/180)+(bt/2)*cos(psifc*pi/180);
d=1000*(sqrt((Xdd
-
Xddc)^2+(Ydd
-
Yddc)^2+(Xte
-
Xtec)^2+(Yte
-
Ytec)^2));
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 86
Parâmetros e Configurações da Função GA
dados_ga
options = gaoptimset ('PopInitRange', [5 15 -10 0 0 5 ; 15 25 0 10 10 15] ,
'PopulationSize', 100 , 'EliteCount' , 5 ,'CrossoverFraction' , 0.95 ,
'Generations' , 40 , 'FitnessLimit' , 10.0 , 'StallGenLimit' , 10 ,
'StallTimeLimit' , 1000 , 'CrossoverFcn', @crossoverintermediate,
'MutationFcn' , {@mutationgaussian [3] [0.6500]} , 'PlotFcns' ,
[@gaplotbestindiv , @gaplotbestf])
[x fval reason finalscores] = ga(@fun2_ga, 6, options)
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 87
7.3.
Pós-Colisão para Dois Veículos
A seguir tem-se o diagrama de blocos Simulink/Matlab para a simulação do
modelo desenvolvido. Na página seguinte, encontra-se o diagrama de blocos
Simulink/Matlab referente bloco “VEÍCULO A”. O bloco para o veículo B é
inteiramente equivalente. As funções citadas nos dois diagramas, bem como
todas as demais funções utilizadas neste caso, encontram-se após a
apresentação dos mesmos.
Além de um segundo veículo no diagrama de blocos, também houve a
inclusão da função teste_de_parada_2.m. Esta função foi utilizada para melhor
determinar em que momento a simulação deve cessar. Através desta função
evita-se a perda de tempo de computação para os casos onde o tempo de
parada é menor que o estipulado (em geral, 3 segundos), evitando também a
parada equivocada para os poucos casos que venham a exceder este mesmo
tempo. As funções utilizadas para gerar a animação sempre utilizarão os dados
referentes ao melhor indivíduo gerado pelo GA depois que este termina sua
otimização.
Diagrama de Blocos de Simulação dos Veículos na Condição Pós-Choque
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 88
Diagrama de Blocos do Veículo A
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 89
Parâmetros dos Veículos, da Interação e da Simulação
% GLOBAL DO CARRO A %
global adxA adyA adzA baxA bayA bazA
global bdA btA ldA ltA
global X0cA Y0cA psi0cA XfcA YfcA psifcA
global CxA CyA CmzA SA JzA mA
global vx0A X0A vy0A Y0A wz0A psi0A
% GLOBAL DO CARRO B %
global adxB adyB adzB baxB bayB bazB
global bdB btB ldB ltB
global X0cB Y0cB psi0cB XfcB YfcB psifcB
global CxB CyB CmzB SB JzB mB
global vx0B X0B vy0B Y0B wz0B psi0B
% GLOBAL DE AMBOS %
global ro dt tf
pista='pista';
g = 9.81;
ro = 1.2;
dt = 0.05;
tf = 5;
% CARRO A%
% - GEOMETRIA INICIAL (IRÁ VARIAR ATRAVÉS DO GA)%
X0cA = 38.9211;
Y0cA = 1.0579;
psi0cA = 0.2099;
% - GEOMETRIA FINAL %
XfcA = 53.7802;
YfcA = -3.4036;
psifcA = 437.5954;
% - CARACTERÍSTICAS %
mA = 1000;
JzA = 2000;
rz2A = JzA/mA;
ldA = 1;
ltA = 1.5;
btA = 1.5;
bdA = 1.5;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 90
Parâmetros dos Veículos, da Interação e da Simulação (continuação)
muA = 0.7;
adxA = muA*g/4;
adyA = muA*g/4;
adzA = muA*g/4/rz2A;
CxA = 0.30;
CyA = 0.80;
CmzA = 0.2;
SA = 2.0;
% CARRO B%
% - GEOMETRIA INICIAL (IRÁ VARIAR ATRAVÉS DO GA)%
X0cB = 41.2513;
Y0cB = 2.8040;
psi0cB = 3.1416;
% - GEOMETRIA FINAL %
XfcB = 36.0249;
YfcB = 7.6644;
psifcB = 212.2860;
% - CARACTERÍSTICAS %
mB = 1000;
JzB = 2000;
rz2B = JzB/mB;
ldB = 1;
ltB = 1.5;
btB = 1.5;
bdB = 1.5;
muB = 0.7;
adxB = muB*g/4;
adyB = muB*g/4;
adzB = muB*g/4/rz2B;
CxB = 0.30;
CyB = 0.80;
CmzB = 0.2;
SB = 2.0;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 91
Função de Avaliação
function [d]= fun_ga(var)
% GLOBAL DO CARRO A %
global adxA adyA adzA baxA bayA bazA
global bdA btA ldA ltA
global X0cA Y0cA psi0cA XfcA YfcA psifcA
global CxA CyA CmzA SA JzA mA
global vx0A X0A vy0A Y0A wz0A psi0A
% GLOBAL DO CARRO B %
global adxB adyB adzB baxB bayB bazB
global bdB btB ldB ltB
global X0cB Y0cB psi0cB XfcB YfcB psifcB
global CxB CyB CmzB SB JzB mB
global vx0B X0B vy0B Y0B wz0B psi0B
% GLOBAL DE AMBOS %
global ro dt tf
% VARIÁVEIS GLOBAIS %
X0 = var(1);
Y0 = var(2);
% VARIÁVEIS DO CARRO A %
vx0A = var(3);
X0A = X0cA + var(1);
vy0A = var(4);
Y0A = Y0cA + var(2);
wz0A = var(5);
psi0A = psi0cA;
baxA = ro*CxA*SA*abs(vx0A)/2/mA;
bayA = ro*CyA*SA*abs(vy0A)/2/mA;
bazA = ro*CmzA*SA*(ldA+ltA)*abs(wz0A)/2/JzA;
% VARIÁVEIS DO CARRO B %
vx0B = var(6);
X0B = X0cB + var(1);
vy0B = var(7);
Y0B = Y0cB + var(2);
wz0B = var(8);
psi0B = psi0cB;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 92
Função de Avaliação (continuação)
baxB = ro*CxB*SB*abs(vx0B)/2/mB;
bayB = ro*CyB*SB*abs(vy0B)/2/mB;
bazB = ro*CmzB*SB*(ldB+ltB)*abs(wz0B)/2/JzB;
% SIMULA AMBOS OS CARROS %
sim pos_colisao_2
% POSIÇÃO DO CARRO A %
XfA=X_A(length(X_A));
YfA=Y_A(length(Y_A));
psifA=psig_A(length(psig_A));
XddA=XfA+ldA*cos(psifA*pi/180)+(bdA/2)*sin(psifA*pi/180);
YddA=YfA+ldA*sin(psifA*pi/180)-(bdA/2)*cos(psifA*pi/180);
XteA=XfA-ltA*cos(psifA*pi/180)-(btA/2)*sin(psifA*pi/180);
YteA=YfA-ltA*sin(psifA*pi/180)+(btA/2)*cos(psifA*pi/180);
XddcA=XfcA+ldA*cos(psifcA*pi/180)+(bdA/2)*sin(psifcA*pi/180);
YddcA=YfcA+ldA*sin(psifcA*pi/180)-(bdA/2)*cos(psifcA*pi/180);
XtecA=XfcA-ltA*cos(psifcA*pi/180)-(btA/2)*sin(psifcA*pi/180);
YtecA=YfcA-ltA*sin(psifcA*pi/180)+(btA/2)*cos(psifcA*pi/180);
% POSIÇÃO DO CARRO B %
XfB=X_B(length(X_B));
YfB=Y_B(length(Y_B));
psifB=psig_B(length(psig_B));
XddB=XfB+ldB*cos(psifB*pi/180)+(bdB/2)*sin(psifB*pi/180);
YddB=YfB+ldB*sin(psifB*pi/180)-(bdB/2)*cos(psifB*pi/180);
XteB=XfB-ltB*cos(psifB*pi/180)-(btB/2)*sin(psifB*pi/180);
YteB=YfB-ltB*sin(psifB*pi/180)+(btB/2)*cos(psifB*pi/180);
XddcB=XfcB+ldB*cos(psifcB*pi/180)+(bdB/2)*sin(psifcB*pi/180);
YddcB=YfcB+ldB*sin(psifcB*pi/180)-(bdB/2)*cos(psifcB*pi/180);
XtecB=XfcB-ltB*cos(psifcB*pi/180)-(btB/2)*sin(psifcB*pi/180);
YtecB=YfcB-ltB*sin(psifcB*pi/180)+(btB/2)*cos(psifcB*pi/180);
% FUNÇÃO DE AVALIAÇÃO %
d = 1000 * sqrt ((XddA - XddcA)^2 + (YddA - YddcA)^2 +
(XteA - XtecA)^2 + (YteA - YtecA)^2 +
(XddB - XddcB)^2 + (YddB - YddcB)^2 +
(XteB - XtecB)^2 + (YteB - YtecB)^2);
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 93
log2glob.m - Coordenadas Locais para Globais
aceleracoes.m - Acelerações Instantâneas do Veículo A
function[V]=loc2glob(fi,vy,ux)
V(1,1)=ux*cos(fi)-vy*sin(fi);
V(2,1)=ux*sin(fi)+vy*cos(fi);
% ACELERACOES NO REF. LOCAL
function[V]=aceleracoes_A(vx,vy,wz)
global adxA adyA adzA baxA bayA bazA
[sux,suy,suz] = unitarios_A(vx,vy,wz);
err = 1e-2;
if abs(vx) >= err
ax=-adxA*sux-baxA*vx;
else
ax=0;
end
if abs(vy) >= err
ay=-adyA*suy-bayA*vy;
else
ay=0;
end
if abs(wz) >= err
alfaz=-adzA*suz-bazA*wz;
else
alfaz=0;
end
V(1,1)=ax+wz*vy;
V(2,1)=ay-wz*vx;
V(3,1)=alfaz;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 94
aceleracoes.m - Acelerações Instantâneas do Veículo B
% ACELERACOES NO REF. LOCAL
function[V]=aceleracoes_B(vx,vy,wz)
global adxB adyB adzB baxB bayB bazB
[sux,suy,suz] = unitarios_B(vx,vy,wz);
err = 1e-2;
if abs(vx) >= err
ax=-adxB*sux-baxB*vx;
else
ax=0;
end
if abs(vy) >= err
ay=-adyB*suy-bayB*vy;
else
ay=0;
end
if abs(wz) >= err
alfaz=-adzB*suz-bazB*wz;
else
alfaz=0;
end
V(1,1)=ax+wz*vy;
V(2,1)=ay-wz*vx;
V(3,1)=alfaz;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 95
unitarios.m - Direções das Velocidades Instantâneas de cada Pneu do Veículo A
% UNITÁRIOS DAS DIRECOES DAS VELOCIDADES DOS PNEUS
function [sx,sy,sz] = unitarios_A(u,v,w);
global bdA btA ldA ltA
% uDD
vddx=u+w*bdA/2;
vddy=v+w*ldA;
vdd=sqrt(vddx^2+vddy^2);
uddx = vddx/vdd;
uddy = vddy/vdd;
% uDE
vdex=u-w*bdA/2;
vdey=v+w*ldA;
vde=sqrt(vdex^2+vdey^2);
udex = vdex/vde;
udey = vdey/vde;
% uTD
vtdx=u+w*btA/2;
vtdy=v-w*ltA;
vtd=sqrt(vtdx^2+vtdy^2);
utdx = vtdx/vtd;
utdy = vtdy/vtd;
% uTE
vtex=u-w*btA/2;
vtey=v-w*ltA;
vte=sqrt(vtex^2+vtey^2);
utex = vtex/vte;
utey = vtey/vte;
% SOMATÓRIO DAS COMPONENTES DOS UNITÄRIOS
% Ponderação das forças em X
sx = uddx + udex + utdx + utex;
% Ponderaçao das forças em Y
sy = uddy + udey + utdy + utey;
% Ponderaçao dos momentos em Z
sz =(uddx - udex)*bdA/2 + (utdx - utex)*btA/2 + (uddy + udey)*ldA - (utdy + utey)*ltA;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 96
unitarios.m - Direções das Velocidades Instantâneas de cada Pneu do Veículo B
% UNITÁRIOS DAS DIRECOES DAS VELOCIDADES DOS PNEUS
function [sx,sy,sz] = unitarios_B(u,v,w);
global bdB btB ldB ltB
% uDD
vddx=u+w*bdB/2;
vddy=v+w*ldB;
vdd=sqrt(vddx^2+vddy^2);
uddx = vddx/vdd;
uddy = vddy/vdd;
% uDE
vdex=u-w*bdB/2;
vdey=v+w*ldB;
vde=sqrt(vdex^2+vdey^2);
udex = vdex/vde;
udey = vdey/vde;
% uTD
vtdx=u+w*btB/2;
vtdy=v-w*ltB;
vtd=sqrt(vtdx^2+vtdy^2);
utdx = vtdx/vtd;
utdy = vtdy/vtd;
% uTE
vtex=u-w*btB/2;
vtey=v-w*ltB;
vte=sqrt(vtex^2+vtey^2);
utex = vtex/vte;
utey = vtey/vte;
% SOMATÓRIO DAS COMPONENTES DOS UNITÄRIOS
% Ponderação das forças em X
sx = uddx + udex + utdx + utex;
% Ponderaçao das forças em Y
sy = uddy + udey + utdy + utey;
% Ponderaçao dos momentos em Z
sz =(uddx - udex)*bdB/2 + (utdx - utex)*btB/2 + (uddy + udey)*ldB - (utdy + utey)*ltB;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 97
teste_de_parada_2.m - Função de Parada da Simulação
Parâmetros e Configurações da Função GA
% teste de parada da simulacao
function[T]=teste_parada_2(vxA,vyA,wzA,vxB,vyB,wzB)
erro=.05;
T = 0;
para=abs(vxA)+abs(vyA)+abs(wzA)+abs(vxB)+abs(vyB)+abs(wzB);
if para <= erro
T = 1;
end
close all
clear
clc
dados_ga_2
options = gaoptimset ('PopInitRange', [-4.0 -2.5 8.0 -9.5 2.5 3.5 -10.0 -1.0 ; 4.0 2.5 15.5 -3.5 8.5 10.5 -4.0 3.0] ,
'PopulationSize', 100 , 'EliteCount' , 5 , 'CrossoverFraction' , 0.95 , 'Generations' , 40 ,
'FitnessLimit' , 100.0 , 'StallGenLimit' , 10 , 'StallTimeLimit' , 1000 ,
'CrossoverFcn', @crossoverintermediate, 'MutationFcn' , {@mutationgaussian [3] [0.6500]} ,
'PlotFcns' , [@gaplotbestindiv , @gaplotbestf])
[x fval reason finalscores] = ga(@fun_ga_2, 8, options)
pause
close all
anima_ga
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 98
anima_ga.m
global adxA adyA adzA baxA bayA bazA
global bdA btA ldA ltA
global adxB adyB adzB baxB bayB bazB
global bdB btB ldB ltB
pista='pista';
g = 9.81;
ro = 1.2;
% ---- VEICULO A -----
x1A=x(3);x2A=X0cA+x(1);x3A=x(4);x4A=Y0cA+x(2);x5A=x(5);x6A=psi0cA*180/pi;
vx0A= x1A;
X0A = x2A;
vy0A= x3A;
Y0A = x4A;
wz0A = x5A;
psi0A = x6A*pi/180;
mA = 1000;
JzA = 2000;
rz2A = JzA/mA;
ldA = 1;
ltA = 1.5;
btA = 1.5;
bdA = 1.5;
muA = 0.7;
adxA = muA*g/4;
adyA = muA*g/4;
adzA = muA*g/4/rz2A;
CxA = 0.30;
CyA = 0.80;
CmzA = 0.2;
SA = 2.0;
baxA = ro*CxA*SA*abs(vx0A)/2/mA;
bayA = ro*CyA*SA*abs(vy0A)/2/mA;
bazA = ro*CmzA*SA*(ldA+ltA)*abs(wz0A)/2/JzA;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 99
anima_ga.m (continuação)
% ---- VEICULO B -----
x1B=x(6);x2B=X0cB+x(1);x3B=x(7);x4B=Y0cB+x(2);x5B=x(8);x6B=psi0cB*180/pi;
vx0B= x1B;
X0B = x2B;
vy0B= x3B;
Y0B = x4B;
wz0B = x5B;
psi0B = x6B*pi/180;
mB = 1000;
JzB = 2000;
rz2B = JzB/mB;
ldB = 1;
ltB = 1.5;
btB = 1.5;
bdB = 1.5;
muB = 0.7;
adxB = muB*g/4;
adyB = muB*g/4;
adzB = muB*g/4/rz2B;
CxB = 0.30;
CyB = 0.80;
CmzB = 0.2;
SB = 2.0;
baxB = ro*CxB*SB*abs(vx0B)/2/mB;
bayB = ro*CyB*SB*abs(vy0B)/2/mB;
bazB = ro*CmzB*SB*(ldB+ltB)*abs(wz0B)/2/JzB;
% ---- SIMULACAO
tf = 5;
dt = 0.05;
sim pos_colisao_2
V_A=sqrt(vx_A.^2+vy_A.^2);
V_B=sqrt(vx_B.^2+vy_B.^2);
anima_trajetoria_t_2(XfcA,YfcA,psifcA,X_A,Y_A,psig_A,V_A,wz_A,
XfcB,YfcB,psifcB,X_B,Y_B,psig_B,V_B,wz_B,t,pista);
pause
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 100
anima_trajetoria_2.m
function
anima_trajetoria_t(XfcA,YfcA,psifcA,XcgA,YcgA,psiA,VA,wA,XfcB,YfcB,psifcB,XcgB,YcgB,psiB,VB,
wB,t,pista)
%
% Funcao que recebe os vetores de deslocamento em X, Y e o vetor contendo o angulo de yaw, ao longo
% de uma trajetoria
%
% Implementada por A. Spinola - maio/2004
% Modificada por M.Speranza Neto - maio/2005
% Modificada por G. N. Martins - outubro/2005
global np nd
np = 100; % numero de pontos para representacao dos carros
nd = 25; % numero de pontos para representacao da dianteira dos carros
% Carro A %
car_A(1) = 0.5; % largura do carro
car_A(2) = 2.5; % comprimento do carro
car_A(3) = 1.5; % distancia entre eixos
car_A(4) = 0.9; % distancia do eixo dianteiro ao CG
car_A(5) = 0.6; % distancia do eixo traseiro ao CG
car_A(6) = 1.2; % bitola dianteira
car_A(7) = 1.0; % bitola traseira
car_A(8) = 0.7; % diametro do pneu
car_A(9) = 0.2; % banda de rodagem do pneu
cor_A ='r'; % cor do carro
corf_A = 'm'; % cor da posição esperada
nome_A='Vermelho'; % nome do carro
% Carro B %
car_B(1) = 0.5; % largura do carro
car_B(2) = 2.5; % comprimento do carro
car_B(3) = 1.5; % distancia entre eixos
car_B(4) = 0.9; % distancia do eixo dianteiro ao CG
car_B(5) = 0.6; % distancia do eixo traseiro ao CG
car_B(6) = 1.2; % bitola dianteira
car_B(7) = 1.0; % bitola traseira
car_B(8) = 0.7; % diametro do pneu
car_B(9) = 0.2; % banda de rodagem do pneu
cor_B ='b'; % cor do carro
corf_B = 'c'; % cor da posição esperada
nome_B='Azul'; % nome do carro
frame=1;
dim = length(t);
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 101
anima_trajetoria_2.m (continuação)
for j = 1:1:dim
plotar_pista(pista);
anima_carro_2(XcgA(j),YcgA(j),psiA(j)*pi/180,cor_A,XcgB(j),YcgB(j),psiB(j)*pi/180,cor_B);
anima_carro_2(XfcA,YfcA,psifcA*pi/180,corf_A,XfcB,YfcB,psifcB*pi/180,corf_B);
st=num2str(t(j));
title(strcat('Animacao de movimento - Instante de tempo :',st,' s'));
% Carro A %
svA=num2str(round(VA(j)*100)/100);
swA=num2str(round(wA(j)*100)/100);
spsiA=num2str(round(psiA(j)*100)/100);
sXA=num2str(round((XcgA(j)-XcgA(1))*100)/100);
sYA=num2str(round((YcgA(j)-YcgA(1))*100)/100);
% Carro B %
svB=num2str(round(VB(j)*100)/100);
swB=num2str(round(wB(j)*100)/100);
spsiB=num2str(round(psiB(j)*100)/100);
sXB=num2str(round((XcgB(j)-XcgB(1))*100)/100);
sYB=num2str(round((YcgB(j)-YcgB(1))*100)/100);
xm=axis;
text(xm(2)-18,xm(4)-1.0,strcat('Tempo :',st,' s'));
% Carro A %
text(xm(2)-29,xm(4)-2.0,strcat('Veículo :',nome_A));
text(xm(2)-29,xm(4)-3.0,strcat('Vel. linear :',svA,'km/h'));
text(xm(2)-29,xm(4)-4.0,strcat('Vel. angular :',swA,'rot/s'));
text(xm(2)-29,xm(4)-5.0,strcat('Desloc. X :',sXA,'m'));
text(xm(2)-29,xm(4)-6.0,strcat('Desloc. Y :',sYA,'m'));
text(xm(2)-29,xm(4)-7.0,strcat('Ângulo :',spsiA,'graus'));
% Carro B %
text(xm(2)-9,xm(4)-2.0,strcat('Veículo :',nome_B));
text(xm(2)-9,xm(4)-3.0,strcat('Vel. linear :',svB,'km/h'));
text(xm(2)-9,xm(4)-4.0,strcat('Vel. angular :',swB,'rot/s'));
text(xm(2)-9,xm(4)-5.0,strcat('Desloc. X :',sXB,'m'));
text(xm(2)-9,xm(4)-6.0,strcat('Desloc. Y :',sYB,'m'));
text(xm(2)-9,xm(4)-7.0,strcat('Ângulo :',spsiB,'graus'));
pause(0.15)
M(frame) = getframe;
frame=frame+1;
end
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 102
anima_carro_2.m
function carro_2(XcgA,YcgA,psiA,cor_A,XcgB,YcgB,psiB,cor_B)
% Função para construção de uma representação de dois veículos.
% Possui como entradas as coordenadas dos CGs, os ângulos de yaw, e as cores dos mesmos.
% Implementada por Guilherme Martins - outubro/2005
global np nd
% Carro A %
largA = 2;
compA = 5;
corA = 'r';
xldA = [(XcgA-cos(psiA)*compA/2+sin(psiA)*largA/2) (XcgA+cos(psiA)*compA/2+sin(psiA)*largA/2)];
xleA = [(XcgA+cos(psiA)*compA/2-sin(psiA)*largA/2) (XcgA-cos(psiA)*compA/2-sin(psiA)*largA/2)];
xdA = [(XcgA+cos(psiA)*compA/2+sin(psiA)*largA/2) (XcgA+cos(psiA)*compA/2-sin(psiA)*largA/2)];
xtA = [(XcgA-cos(psiA)*compA/2-sin(psiA)*largA/2) (XcgA-cos(psiA)*compA/2+sin(psiA)*largA/2)];
xA= [xdA xleA xtA xldA XcgA xleA];
yldA = [(YcgA-sin(psiA)*compA/2-cos(psiA)*largA/2) (YcgA+sin(psiA)*compA/2-cos(psiA)*largA/2)];
yleA = [(YcgA+sin(psiA)*compA/2+cos(psiA)*largA/2) (YcgA-sin(psiA)*compA/2+cos(psiA)*largA/2)];
ydA = [(YcgA+sin(psiA)*compA/2-cos(psiA)*largA/2) (YcgA+sin(psiA)*compA/2+cos(psiA)*largA/2)];
ytA = [(YcgA-sin(psiA)*compA/2+cos(psiA)*largA/2) (YcgA-sin(psiA)*compA/2-cos(psiA)*largA/2)];
yA= [ydA yleA ytA yldA YcgA yleA];
% Carro B %
largB = 2;
compB = 5;
corB = 'b';
xldB = [(XcgB-cos(psiB)*compB/2+sin(psiB)*largB/2) (XcgB+cos(psiB)*compB/2+sin(psiB)*largB/2)];
xleB = [(XcgB+cos(psiB)*compB/2-sin(psiB)*largB/2) (XcgB-cos(psiB)*compB/2-sin(psiB)*largB/2)];
xdB = [(XcgB+cos(psiB)*compB/2+sin(psiB)*largB/2) (XcgB+cos(psiB)*compB/2-sin(psiB)*largB/2)];
xtB = [(XcgB-cos(psiB)*compB/2-sin(psiB)*largB/2) (XcgB-cos(psiB)*compB/2+sin(psiB)*largB/2)];
xB= [xdB xleB xtB xldB XcgB xleB];
yldB = [(YcgB-sin(psiB)*compB/2-cos(psiB)*largB/2) (YcgB+sin(psiB)*compB/2-cos(psiB)*largB/2)];
yleB = [(YcgB+sin(psiB)*compB/2+cos(psiB)*largB/2) (YcgB-sin(psiB)*compB/2+cos(psiB)*largB/2)];
ydB = [(YcgB+sin(psiB)*compB/2-cos(psiB)*largB/2) (YcgB+sin(psiB)*compB/2+cos(psiB)*largB/2)];
ytB = [(YcgB-sin(psiB)*compB/2+cos(psiB)*largB/2) (YcgB-sin(psiB)*compB/2-cos(psiB)*largB/2)];
yB= [ydB yleB ytB yldB YcgB yleB];
plot(xA,yA,cor_A,xB,yB,cor_B);
axis([(XcgA+XcgB)/2-1.5*(compA+compB) (XcgA+XcgB)/2+1.5*(compA+compB) (YcgA+YcgB)/2-
(compA+compB) (YcgA+YcgB)/2+2*(compA+compB)]);
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 103
plotar_pista.m
plotar.m
plotar_i.m
function [] = plotar_i(xc,yc,xd,yd,xe,ye)
% Representar o trecho inicial da pista
plot(xd,yd,'-k');
plot(xc,yc,'-y');
plot(xe,ye,'
-
k');
function [] = plotar_pista(arquivo);
% Representar a pista no referencial global
load(arquivo);
figure(11)
close (11)
figure(11)
hold
lacos=3;
% largura do acostamento
plotar(xcp,ycp,xdp,ydp,xep,yep);
plotar(xcp,ycp,xdp,ydp-lacos,xep,yep+lacos);
% Acostamento
plotar_i(xc,yc,xd,yd,xe,ye);
plotar_i(xc,yc,xd,yd-lacos,xe,ye+lacos);
% Acostament
o
function [] = plotar(xc,yc,xd,yd,xe,ye)
% Representar os trechos da pista no referencial global
quadro(xc,xd,xe,yc,yd,ye);
plot(xd,yd,'-k');
plot(xc,yc,'-y');
plot(xe,ye,'-k');
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 104
7.4.
Caso Completo
Os códigos-fonte apresentados a seguir são somente aqueles que diferem
dos que constam no Apêndice item 8.3.
Cabe esclarecer que os arquivos dados_ga.m e limites_ga.m devem ser
alterados para a análise de cada evento de colisão. Os arquivos dados_ga.m e
limites_ga.m aqui apresentados restringem-se respectivamente aos casos de
colisão lateral oblíqua e colisão traseira oblíqua, trabalhados no Capítulo 5.
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 105
colisao_ga.m
global ma Ja
global mb Jb
global cr lambda
global Xcga Ycga Xcgb Ycgb fiac fibc
global LI1 LS1 LI2 LS2 LI3 LS3 LI4 LS4 LI5 LS5 LI6 LS6 LI7 LS7 LI8 LS8
global wa2 wb2 Vax2 Vay2 Vbx2 Vby2
global var
% Coordenadas dos CG dos veículos em relação ao referencial do impacto (m)
xa=Xcga;
ya=Ycga;
xb=Xcgb;
yb=Ycgb;
Vax1=(LS3+LI3+var(3)*(LS3-LI3))/2;
Vay1=(LS4+LI4+var(4)*(LS4-LI4))/2;
Vbx1=(LS6+LI6+var(6)*(LS6-LI6))/2;
Vby1=(LS7+LI7+var(7)*(LS7-LI7))/2;
wa1 = (LS5+LI5+var(5)*(LS5-LI5))/2;
wb1 = (LS8+LI8+var(8)*(LS8-LI8))/2;
[vax1,vay1]=ref2ref(0,0,fiac,Vax1,Vay1);
[vbx1,vby1]=ref2ref(0,0,fibc,Vbx1,Vby1);
%
% ANALISE DE COLISOES PLANAS DE VEICULOS RIGIDOS
%
% SOLUCAO MATRICIAL
%
A1 = [ ma 0 mb 0 0 0;
0 ma 0 mb 0 0;
ma*(ya-lambda*xa) 0 0 0 -Ja 0;
0 0 mb*(yb-lambda*xb) 0 0 -Jb;
cr 0 -cr 0 cr*ya -cr*yb;
lambda -1 0 0 0 0];
A2 = [ ma 0 mb 0 0 0;
0 ma 0 mb 0 0;
ma*(ya-lambda*xa) 0 0 0 -Ja 0;
0 0 mb*(yb-lambda*xb) 0 0 -Jb;
-1 0 1 0 -ya yb;
lambda -1 0 0 0 0];
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 106
colisao_ga.m (continuação)
geometria_ga.m
v_1=[vax1;vay1;vbx1;vby1;wa1;wb1];
v_2=inv(A2)*A1*v_1;
vax2=v_2(1);
vay2=v_2(2);
vbx2=v_2(3);
vby2=v_2(4);
wa2= v_2(5);
wb2= v_2(6);
%
% Velocidades depois da colisao no referencial local dos veiculos
%
[Vax2,Vay2]=ref2ref(0,0,-fiac,vax2,vay2);
[Vbx2,Vby2]=ref2ref(0,0,-fibc,vbx2,vby2);
global LI1 LS1 LI2 LS2 LI3 LS3 LI4 LS4 LI5 LS5 LI6 LS6 LI7 LS7 LI8 LS8
global LI9 LS9 LI10 LS10 LI11 LS11 LI12 LS12 LI13 LS13 LI14 LS14 LI15 LS15 LI16 LS16 LI17
LS17
global ba lda lta
global bb ldb ltb
global fia_g fib_g
global Xcga Ycga Xcgb Ycgb fiac fibc
global X0 Y0
global Xcgag Ycgag Xcgbg Ycgbg
global var
% VARIÁVEIS GLOBAIS %
X0 = (LS1+LI1+var(1)*(LS1-LI1))/2;
Y0 = (LS2+LI2+var(2)*(LS2-LI2))/2;
% Veiculo 1
xia = (LS9+LI9+var(9)*(LS9-LI9))/2;
yia = (LS10+LI10+var(10)*(LS10-LI10))/2;
xfa = (LS11+LI11+var(11)*(LS11-LI11))/2;
yfa = (LS12+LI12+var(12)*(LS12-LI12))/2;
%
raio2 = (xia-xfa)^2 + (yia-yfa)^2;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 107
geometria_ga.m (continuação)
% Veiculo 2
xib = (LS13+LI13+var(13)*(LS13-LI13))/2;
yib = (LS14+LI14+var(14)*(LS14-LI14))/2;
if (LI13+LS13)/2 == ldb %se ponto inicial na dianteira
if yib > 0 %se ponto inicial na dianteira esquerda
if (LI16+LS16)/2 < yib %se ponto final à direita
if sqrt(raio2) < (bb/2 + yib) %se ponto final na dianteira
xfb = ldb;
yfb = yib - sqrt(raio2);
else %se ponto final na lateral direita
xfb = min (roots([1 -2*xib (xib^2+((bb/2)+yib)^2-raio2)]));
yfb = -bb/2;
end
else %se ponto final à esquerda
if sqrt(raio2) < (bb/2 - yib) %se ponto final na dianteira
xfb = ldb;
yfb = yib + sqrt(raio2);
else %se ponto final na lateral esquerda
xfb = min (roots([1 -2*xib (xib^2+((bb/2)-yib)^2-raio2)]));
yfb = bb/2;
end
end
else %se ponto inicial na dianteira direita
if (LI16+LS16)/2 > yib %se ponto final à esquerda
if sqrt(raio2) < (bb/2 - yib) %se ponto final na dianteira
xfb = ldb;
yfb = yib + sqrt(raio2);
else %se ponto final na lateral esquerda
xfb = min (roots([1 -2*xib (xib^2+((bb/2)-yib)^2-raio2)]));
yfb = bb/2;
end
else %se ponto final à direita
if sqrt(raio2) < (bb/2 + yib) %se ponto final na dianteira
xfb = ldb;
yfb = yib - sqrt(raio2);
else %se ponto final na lateral direita
xfb = min (roots([1 -2*xib (xib^2+((bb/2)+yib)^2-raio2)]));
yfb = -bb/2;
end
end
end
else
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 108
geometria_ga.m (continuação)
if (LI13+LS13)/2 == -ltb
if yib > 0
if (LI16+LS16)/2 < yib
if sqrt(raio2) < (bb/2 + yib)
xfb = -ltb;
yfb = yib - sqrt(raio2);
else
xfb = max (roots([1 -2*xib (xib^2+((bb/2)+yib)^2-raio2)]));
yfb = -bb/2;
end
else
if sqrt(raio2) < (bb/2 - yib)
xfb = -ltb;
yfb = yib + sqrt(raio2);
else
xfb = max (roots([1 -2*xib (xib^2+((bb/2)-yib)^2-raio2)]));
yfb = bb/2;
end
end
else
if (LI16+LS16)/2 > yib
if sqrt(raio2) < (bb/2 - yib)
xfb = -ltb;
yfb = yib + sqrt(raio2);
else
xfb = max (roots([1 -2*xib (xib^2+((bb/2)-yib)^2-raio2)]));
yfb = bb/2;
end
else
if sqrt(raio2) < (bb/2 + yib)
xfb = -ltb;
yfb = yib - sqrt(raio2);
else
xfb = max (roots([1 -2*xib (xib^2+((bb/2)+yib)^2-raio2)]));
yfb = -bb/2;
end
end
end
else
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 109
geometria_ga.m (continuação)
if (LI14+LS14)/2 == bb/2
if xib > 0
if (LI15+LS15)/2 < xib
if sqrt(raio2) < (ltb + xib)
xfb = xib - sqrt(raio2);
yfb = bb/2;
else
xfb = -ltb;
yfb = min (roots ([1 -2*yib (yib^2+(ltb+xib)^2-raio2)]));
end
else
if sqrt(raio2) < (ldb - xib)
xfb = xib + sqrt(raio2);
yfb = bb/2;
else
xfb = ldb;
yfb = min (roots ([1 -2*yib (yib^2+(ldb-xib)^2-raio2)]));
end
end
else
if (LI15+LS15)/2 > xib
if sqrt(raio2) < (ldb - xib)
xfb = xib + sqrt(raio2);
yfb = bb/2;
else
xfb = ldb;
yfb = min (roots ([1 -2*yib (yib^2+(ldb-xib)^2-raio2)]));
end
else
if sqrt(raio2) < (ltb + xib)
xfb = xib - sqrt(raio2);
yfb = bb/2;
else
xfb = -ltb;
yfb = min (roots ([1 -2*yib (yib^2+(ltb+xib)^2-raio2)]));
end
end
end
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 110
geometria_ga.m (continuação)
else
if xib > 0
if (LI15+LS15)/2 < xib
if sqrt(raio2) < (ltb + xib)
xfb = xib - sqrt(raio2);
yfb = -bb/2;
else
xfb = -ltb;
yfb = max (roots ([1 -2*yib (yib^2+(ltb+xib)^2-raio2)]));
end
else
if sqrt(raio2) < (ldb - xib)
xfb = xib + sqrt(raio2);
yfb = -bb/2;
else
xfb = ldb;
yfb = max (roots ([1 -2*yib (yib^2+(ldb-xib)^2-raio2)]));
end
end
else
if (LI15+LS15)/2 > xib
if sqrt(raio2) < (ldb - xib)
xfb = xib + sqrt(raio2);
yfb = -bb/2;
else
xfb = ldb;
yfb = max (roots ([1 -2*yib (yib^2+(ldb-xib)^2-raio2)]));
end
else
if sqrt(raio2) < (ltb + xib)
xfb = xib - sqrt(raio2);
yfb = -bb/2;
else
xfb = -ltb;
yfb = max (roots ([1 -2*yib (yib^2+(ltb+xib)^2-raio2)]));
end
end
end
end
end
end
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 111
geometria_ga.m (continuação)
% Ângulos (em graus) iniciais dos veiculos em relacao ao referencial global
% Veiculo 1
%
ag=0;
%
% Veiculo 2
%
bg=180;
%
fiag = ag*pi/180;
fibg = bg*pi/180;
%
% Angulo do veiculo 1 em relacao ao referencial da colisao
%
aa = atan2((yfa-yia),(xfa-xia));
fiac=(fiag+((pi/2)-aa));
fia=fiag;
% Angulo do veiculo 2 em relacao ao referencial da colisao
%
ab = atan2((yfb-yib),(xfb-xib));
fibc = (fibg+((pi/2)-ab));
fib = fibg;
% Determinacao do plano de colisao
%
if xfa > xia
Xma = xia+(xfa-xia)/2;
else
Xma = xfa+(xia-xfa)/2;
end
if yfa > yfa
Yma = yia+(yfa-yia)/2;
else
Yma = yfa+(yia-yfa)/2;
end
if xfb > xib
Xmb = xib+(xfb-xib)/2;
else
Xmb = xfb+(xib-xfb)/2;
end
if yfb > yfb
Ymb = yib+(yfb-yib)/2;
else
Ymb = yfb+(yib-yfb)/2;
end
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 112
geometria_ga.m (continuação)
ref2ref.m
loc2glob.m
% Posicao dos veiculos no instante da colisao
%
[Xcga,Ycga] = ref2ref(0,0,fiac,-Xma,-Yma);
[Xcgb,Ycgb] = ref2ref(0,0,fibc,-Xmb,-Ymb);
% Posicao do choque
%
px = X0;
py = Y0;
%
% Entre com a orientacao (em graus) do referencial da colisao (eixo x) em relacao ao
%referencial global (eixo X)
%
% Obs:
% 1) Para alinhar o Veiculo 1 com o eixo X: axg = ag-(fiac*180/pi)
% 2) Para alinhar o Veiculo 2 com o eixo X: axg = bg-(fibc*180/pi)
%
%
axg = ag-(fiac*180/pi)-(LS17+LI17+var(15)*(LS17-LI17))/2;
ax = axg*pi/180;
%
% Angulos dos veículos com relação ao eixo X do referencial global (graus)
%
fia_g=(fiac+ax)*180/pi;
fib_g=(fibc+ax)*180/pi;
[Xcgag,Ycgag] = ref2ref(px,py,ax,Xcga,Ycga); % Posicao inicial no referencial global
[Xcgbg,Ycgbg] = ref2ref(px,py,ax,Xcgb,Ycgb);
% Transformacao de coordenadas
function[X,Y] = ref2ref(X0,Y0,fi,x,y)
X=X0+x*cos(fi)-y*sin(fi);
Y=Y0+x*sin(fi)+y*cos(fi);
% local para global
function[V]=loc2glob(fi,vy,ux)
V(1,1)=ux*cos(fi)-vy*sin(fi);
V(2,1)=ux*sin(fi)+vy*cos(fi);
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 113
pos_colisao_ga.m
% GLOBAL DO CARRO A %
global adxA adyA adzA baxA bayA bazA
global bdA btA ldA ltA
global X0cA Y0cA psi0cA XfcA YfcA psifcA
global CxA CyA CmzA SA JzA mA
global vx0A X0A vy0A Y0A wz0A psi0A
% GLOBAL DO CARRO B %
global adxB adyB adzB baxB bayB bazB
global bdB btB ldB ltB
global X0cB Y0cB psi0cB XfcB YfcB psifcB
global CxB CyB CmzB SB JzB mB
global vx0B X0B vy0B Y0B wz0B psi0B
% GLOBAL DE AMBOS %
global ro dt tf
global d
global wa2 wb2 Vax2 Vay2 Vbx2 Vby2
global fia_g fib_g
global Xcga Ycga Xcgb Ycgb fiac fibc
global X0 Y0
global Xcgag Ycgag Xcgbg Ycgbg
% VARIÁVEIS DO CARRO A %
vx0A = Vax2;
X0A = Xcgag;
vy0A = Vay2;
Y0A = Ycgag;
wz0A = wa2;
psi0A = fia_g*pi/180;
baxA = ro*CxA*SA*abs(vx0A)/2/mA;
bayA = ro*CyA*SA*abs(vy0A)/2/mA;
bazA = ro*CmzA*SA*(ldA+ltA)*abs(wz0A)/2/JzA;
% VARIÁVEIS DO CARRO B %
vx0B = Vbx2;
X0B = Xcgbg;
vy0B = Vby2;
Y0B = Ycgbg;
wz0B = wb2;
psi0B = fib_g*pi/180;
baxB = ro*CxB*SB*abs(vx0B)/2/mB;
bayB = ro*CyB*SB*abs(vy0B)/2/mB;
bazB = ro*CmzB*SB*(ldB+ltB)*abs(wz0B)/2/JzB;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 114
pos_colisao_ga.m
fun_ga_2_lim.m
% SIMULA AMBOS OS CARROS %
sim pos_colisao_2
% POSIÇÃO FINAL DO CARRO A %
XfA=X_A(length(X_A));
YfA=Y_A(length(Y_A));
psifA=psig_A(length(psig_A));
XddA=XfA+ldA*cos(psifA*pi/180)+(bdA/2)*sin(psifA*pi/180);
YddA=YfA+ldA*sin(psifA*pi/180)-(bdA/2)*cos(psifA*pi/180);
XteA=XfA-ltA*cos(psifA*pi/180)-(btA/2)*sin(psifA*pi/180);
YteA=YfA-ltA*sin(psifA*pi/180)+(btA/2)*cos(psifA*pi/180);
XddcA=XfcA+ldA*cos(psifcA*pi/180)+(bdA/2)*sin(psifcA*pi/180);
YddcA=YfcA+ldA*sin(psifcA*pi/180)-(bdA/2)*cos(psifcA*pi/180);
XtecA=XfcA-ltA*cos(psifcA*pi/180)-(btA/2)*sin(psifcA*pi/180);
YtecA=YfcA-ltA*sin(psifcA*pi/180)+(btA/2)*cos(psifcA*pi/180);
% POSIÇÃO FINAL DO CARRO B %
XfB=X_B(length(X_B));
YfB=Y_B(length(Y_B));
psifB=psig_B(length(psig_B));
XddB=XfB+ldB*cos(psifB*pi/180)+(bdB/2)*sin(psifB*pi/180);
YddB=YfB+ldB*sin(psifB*pi/180)-(bdB/2)*cos(psifB*pi/180);
XteB=XfB-ltB*cos(psifB*pi/180)-(btB/2)*sin(psifB*pi/180);
YteB=YfB-ltB*sin(psifB*pi/180)+(btB/2)*cos(psifB*pi/180);
XddcB=XfcB+ldB*cos(psifcB*pi/180)+(bdB/2)*sin(psifcB*pi/180);
YddcB=YfcB+ldB*sin(psifcB*pi/180)-(bdB/2)*cos(psifcB*pi/180);
XtecB=XfcB-ltB*cos(psifcB*pi/180)-(btB/2)*sin(psifcB*pi/180);
YtecB=YfcB-ltB*sin(psifcB*pi/180)+(btB/2)*cos(psifcB*pi/180);
% FUNÇÃO DE AVALIAÇÃO %
d = 1000*sqrt((XddA-XddcA)^2+(YddA-YddcA)^2+(XteA-XtecA)^2+(YteA-YtecA)^2+(XddB-
XddcB)^2+(YddB-YddcB)^2+(XteB-XtecB)^2+(YteB-YtecB)^2);
global d
global var
function [d]= fun_ga_2_lim(vet)
var = vet;
geometria_ga
colisao_ga
pos_colisao_ga
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 115
run_fun_2_lim.m
close all
clear
clc
limites_ga
dados_ga_2
options = gaoptimset ('PopInitRange', [-1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0;
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0] , 'PopulationSize', 100 , 'EliteCount' , 5 ,
'CrossoverFraction' , 0.95 , 'MigrationInterval', 50 , 'Generations' , 20 , 'FitnessLimit' , 100.0 ,
'StallGenLimit' , 3 , 'StallTimeLimit' , 1000 , 'CrossoverFcn', @crossoverintermediate,
'MutationFcn' , {@mutationgaussian [1] [0.7500]} , 'OutputFcns', @gaoutputgen ,
'PlotFcns' , [@gaplotbestindiv , @gaplotbestf , @gaplotdistance , @gaplotscorediversity])
[x fval reason finalscores] = ga(@fun_ga_2_lim, 15, options)
pause
close all
anima_ga_lim
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 116
dados_ga.m
%Colisão Frontal%
% GLOBAL DO CARRO A %
global adxA adyA adzA baxA bayA bazA
global bdA btA ldA ltA
global ba lda lta
global X0cA Y0cA psi0cA XfcA YfcA psifcA
global CxA CyA CmzA SA JzA mA
global vx0A X0A vy0A Y0A wz0A psi0A
global ma Ja
% GLOBAL DO CARRO B %
global adxB adyB adzB baxB bayB bazB
global bdB btB ldB ltB
global bb ldb ltb
global X0cB Y0cB psi0cB XfcB YfcB psifcB
global CxB CyB CmzB SB JzB mB
global vx0B X0B vy0B Y0B wz0B psi0B
global mb Jb
% GLOBAL DE AMBOS %
global ro dt tf
global cr lambda
pista='pista';
g = 9.81;
ro = 1.2;
dt = 0.05;
tf = 5;
% CARRO A%
% - GEOMETRIA FINAL %
XfcA = 81.5412;
YfcA = -4.8245;
psifcA = -7.5545;
% - CARACTERÍSTICAS %
mA = ma;
JzA = Ja;
rz2A = JzA/mA;
ldA = lda;
ltA = lta;
btA = ba;
bdA = ba;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 117
dados_ga.m (continuação)
muA = 0.7;
adxA = muA*g/4;
adyA = muA*g/4;
adzA = muA*g/4/rz2A;
CxA = 0.30;
CyA = 0.80;
CmzA = 0.2;
SA = 2.0;
baxA = ro*CxA*SA*abs(vx0A)/2/mA;
bayA = ro*CyA*SA*abs(vy0A)/2/mA;
bazA = ro*CmzA*SA*(ldA+ltA)*abs(wz0A)/2/JzA;
% CARRO B%
% - GEOMETRIA FINAL %
XfcB = 27.0112;
YfcB = 7.7570;
psifcB = 155.1137;
% - CARACTERÍSTICAS %
mB = mb;
JzB = Jb;
rz2B = JzB/mB;
ldB = ldb;
ltB = ltb;
btB = bb;
bdB = bb;
muB = 0.7;
adxB = muB*g/4;
adyB = muB*g/4;
adzB = muB*g/4/rz2B;
CxB = 0.30;
CyB = 0.80;
CmzB = 0.2;
SB = 2.0;
baxB = ro*CxB*SB*abs(vx0B)/2/mB;
bayB = ro*CyB*SB*abs(vy0B)/2/mB;
bazB = ro*CmzB*SB*(ldB+ltB)*abs(wz0B)/2/JzB;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 118
dados_ga.m (continuação)
%
% Coeficiente de Restituição
%
% Choque perfeitamente elástico cr = 1
% Choque inelástico 0 < cr < 1
% Choque perfeitamente plástico cr = 0
%
%
cr=0.5;
%
% Coeficiente de Atrito Transversal
%
%
% sinal(VR1t/VR1n) > 0 lambda > 0
% sinal(VR1t/VR1n) < 0 lambda < 0
%
% ATENÇÃO:
% 1) Ordem de grandeza de lambda: aproximadamente 0,5
% 2) O coeficiente de atrito (lambda) pode ser maior que aquele associado ao
deslizamento das superfícies dos veículos ... !
% 3) Normalmente para choque nao obliquos lambda = 0.
% 4) Para choques laterais lambda >< 0
%
%
lambda=-1.8000;
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 119
limites_ga.m
%Colisão Traseira%
global LI1 LS1 LI2 LS2 LI3 LS3 LI4 LS4 LI5 LS5 LI6 LS6 LI7 LS7 LI8 LS8
global LI9 LS9 LI10 LS10 LI11 LS11 LI12 LS12 LI13 LS13 LI14 LS14 LI15 LS15 LI16 LS16 LI17 LS17
global ba lda lta
global ma Ja
global bb ldb ltb
global mb Jb
% DIMENSOES E PROPRIEDADES DOS VEICULOS
% VEICULO 1
ma=1040;
Ja=1.2694e+003;
ba = 1.5480;
lda = 1.6148;
lta = 2.4438;
% VEICULO 2
mb=1668;
Jb=2.0974e+003;
bb = 1.6080;
ldb = 1.6224;
ltb = 2.4336;
% LIMITES INFERIORES E SUPERIORES
% POSICAO E VELOCIDADES DOS VEICULOS
LI1 = 39; %Limite inferior da variavel x do local de colisao
LS1 = 41; %Limite superior da variavel x do local de colisao
LI2 = -1.5; %Limite inferior da variavel y do local de colisao
LS2 = -0.5; %Limite superior da variavel y do local de colisao
LI3 = 10; %Limite inferior da velocidade x de pre-colisao do veiculo 1
LS3 = 14; %Limite superior da velocidade x de pre-colisao do veiculo 1
LI4 = -2; %Limite inferior da velocidade y de pre-colisao do veiculo 1
LS4 = 0; %Limite superior da velocidade y de pre-colisao do veiculo 1
LI5 = 1.0; %Limite inferior da velocidade angular de pre-colisao do veiculo 1
LS5 = 2.0; %Limite superior da velocidade angular de pre-colisao do veiculo 1
LI6 = 8; %Limite inferior da velocidade x de pre-colisao do veiculo 2
LS6 = 12; %Limite superior da velocidade x de pre-colisao do veiculo 2
LI7 = 0.5; %Limite inferior da velocidade y de pre-colisao do veiculo 2
LS7 = 1.5; %Limite superior da velocidade y de pre-colisao do veiculo 2
LI8 = -0.8; %Limite inferior da velocidade angular de pre-colisao do veiculo 2
LS8 = -0.2; %Limite superior da velocidade angular de pre-colisao do veiculo 2
PUC-Rio - Certificação Digital Nº 0321180/CA
Apêndices – Programas Matlab 120
limites_ga.m (continuação)
% PARTES COLIDIDAS DO VEICULO 1
LI9 = lda; %Limite inferior de xia
LS9 = lda; %Limite superior de xia
LI10 =-0.55*ba/2; %Limite inferior de yia
LS10 =-0.45*ba/2; %Limite superior de yia
LI11 = 0.89*lda; %Limite inferior de xfa
LS11 = 0.91*lda; %Limite superior de xfa
LI12 = ba/2; %Limite inferior de yfa
LS12 = ba/2;; %Limite superior de yfa
% PARTES COLIDIDAS DO VEICULO 2
LI13 =-0.91*ltb; %Limite inferior de xib
LS13 =-0.89*ltb; %Limite superior de xib
LI14 = bb/2; %Limite inferior de yib
LS14 = bb/2; %Limite superior de yib
LI15 = -ltb; %Limite inferior de xfb
LS15 = -ltb; %Limite superior de xfb
LI16 = bb/2; ; %Limite inferior de yfb
LS16 = bb/2; %Limite superior de yfb
%
% LIMITES DO ANGULO (EM GRAUS) DO VEICULO 1 NO REFERENCIAL GLOBAL
%
LI17 = 2; %Limite inferior do angulo (em graus) do veículo 1 em relação ao referencial global
LS17 = 4; %Limite superior do angulo (em graus) do veículo 1 em relação ao referencial global
PUC-Rio - Certificação Digital Nº 0321180/CA
Livros Grátis
( http://www.livrosgratis.com.br )
Milhares de Livros para Download:
Baixar livros de Administração
Baixar livros de Agronomia
Baixar livros de Arquitetura
Baixar livros de Artes
Baixar livros de Astronomia
Baixar livros de Biologia Geral
Baixar livros de Ciência da Computação
Baixar livros de Ciência da Informação
Baixar livros de Ciência Política
Baixar livros de Ciências da Saúde
Baixar livros de Comunicação
Baixar livros do Conselho Nacional de Educação - CNE
Baixar livros de Defesa civil
Baixar livros de Direito
Baixar livros de Direitos humanos
Baixar livros de Economia
Baixar livros de Economia Doméstica
Baixar livros de Educação
Baixar livros de Educação - Trânsito
Baixar livros de Educação Física
Baixar livros de Engenharia Aeroespacial
Baixar livros de Farmácia
Baixar livros de Filosofia
Baixar livros de Física
Baixar livros de Geociências
Baixar livros de Geografia
Baixar livros de História
Baixar livros de Línguas
Baixar livros de Literatura
Baixar livros de Literatura de Cordel
Baixar livros de Literatura Infantil
Baixar livros de Matemática
Baixar livros de Medicina
Baixar livros de Medicina Veterinária
Baixar livros de Meio Ambiente
Baixar livros de Meteorologia
Baixar Monografias e TCC
Baixar livros Multidisciplinar
Baixar livros de Música
Baixar livros de Psicologia
Baixar livros de Química
Baixar livros de Saúde Coletiva
Baixar livros de Serviço Social
Baixar livros de Sociologia
Baixar livros de Teologia
Baixar livros de Trabalho
Baixar livros de Turismo