A tabela abaixo apresenta o torque de um motor à combustão em função da velocidade do motor e da porcentagem do curso do acelerador. Uma porcentagem igual a 100% indica que o acelerador está sendo pisado até o final do curso. Uma porcentagem igual a 0% indica que o motorista não está pisando no acelerador.
Com o MATLAB, execute as seguintes tarefas:
- Copie e cole os dados da tabela, sem o cabeçalho, para um bloco de notas e salve-o com terminação .txt;
- Carregue o arquivo .txt no MATLAB;
- Encontre a razão, para cada velocidade, entre os torques de cada porcentagem de curso e os torques para um curso de 100%. Exemplo: a razão entre o torque do motor com um curso de 75% e com um curso a 100% é de 450/500 = 0,9, para uma velocidade de 500 rpm ;
- Crie uma matriz com a velocidade do motor e as razões de torque;
- Salve em um arquivo .txt a matriz criada no item anterior.
Passo 1
Neste exercício, vamos praticar a função load() do MATLAB. Primeiro, vamos criar um arquivo de texto com a tabela do enunciado. Em seguida, vamos carregar esse arquivo de texto no MATLAB para podermos manipular os dados.
O resultado da manipulação será salvo em um arquivo .txt.
Passo 2
A primeira etapa do exercício consiste em passar os dados da tabela para o Bloco de Notas, como no print abaixo:
Lembre de somente passar para o bloco de notas os valores numéricos, pois quando um arquivo de texto é carregado no MATLAB com a função load(), ele transforma os dados em uma matriz.
No print acima, as colunas estão separadas por espaços e alguns Tabs, fiz dessa forma para deixar o arquivo organizado e identificar bem as colunas. Mas se você separar as colunas somente com um espaço ou um Tab, dá na mesma, fica à gosto do freguês.
Após fazer esse copia e cola, salve o arquivo em formato .txt. Eu salvei o meu arquivo com o nome “motor_pedal.txt”, mas você pode chamar do que quiser. Com isso, terminamos a letra a do exercício
Passo 3
Resolveremos a letra b usando a função load(). No MATLAB, crie um script novo e salve-o na pasta onde você salvou seu arquivo .txt. Então, digite no script o seguinte comando:
load('motor_pedal.txt')
Com esse comando, vamos carregar no MATLAB os valores numéricos do arquivo de texto “motor_pedal.txt”. Lembre de adaptar o comando caso você tenha dado um nome diferente para seu arquivo de texto.
O comando acima armazena os dados do arquivo de texto em uma matriz, cujo nome será o nome do arquivo sem a terminação. No meu caso, será criada uma matriz chamada motor_pedal. Lembre que a sua matriz pode ter um nome diferente, caso você tenha chamado seu arquivo .txt com um nome diferente.
Nosso script ficou assim:
Podemos ver como ficou a matriz que o MATLAB criou após rodarmos o script e entrarmos com o nome da matriz no Command Window, como no print abaixo:
Note que são os mesmos valores do arquivo .txt, mas com 1000 colocado em evidência.
Com isso, concluímos a letra b do exercício.
Passo 4
Para podermos responder o restante da questão, devemos criar alguns vetores, cada um igual a uma coluna da matriz. Desta forma, ficará mais fácil de calcular as razões de torque e criar a matriz contendo as razões.
Para transformar as colunas da matriz motor_pedal em colunas, digite as seguintes linhas de código no nosso script:
vel = motor_pedal(:,1);
pedal_100 = motor_pedal(:,2);
pedal_75 = motor_pedal(:,3);
pedal_50 = motor_pedal(:,4);
pedal_25 = motor_pedal(:,5);
pedal_0 = motor_pedal(:,6);
Repara que, dentro dos parênteses, temos sempre dois pontos “:” antes da vírgula. O que vem antes da vírgula indica quais linhas estamos selecionando. E, quando usamos dois pontos, significa que estamos pegando todas as linhas, ou seja, a coluna inteira. Já o valor que vem depois da vírgula indica qual coluna estamos selecionando em cada caso.
Na primeira linha, armazenamos a primeira coluna da matriz motor_pedal na variável vel. Logo, vel é um vetor que contém os valores de velocidade do motor.
Na segunda linha, armazenamos a segunda coluna da matriz motor_pedal na variável pedal_100. Logo, pedal_100 é um vetor que contém os valores de torque do motor quando o acelerador está sendo pisado até o fundo.
Da terceira linha em diante, a lógica é a mesma. Armazenamos uma coluna da matriz motor_pedal, contendo valores de torque para uma determinada porcentagem de curso do acelerador, em uma variável chamada pedal_ seguida da porcentagem de curso.
Após digitar essas linhas de código, o script fica assim:
Tendo criado um vetor para cada coluna de motor_pedal, podemos responder o restante da questão.
Passo 5
A letra c pede para calcularmos a razão, para cada velocidade, entre os torques de cada porcentagem de curso e os torques para um curso de 100%. Para fazermos isso, incluímos as seguintes linhas de código no nosso script:
razao_100 = pedal_100./pedal_100;
razao_75 = pedal_75./pedal_100;
razao_50 = pedal_50./pedal_100;
razao_25 = pedal_25./pedal_100;
razao_0 = pedal_0./pedal_100;
Na primeira linha de código, dividimos cada elemento do vetor pedal_100 pelo elemento que está na mesma posição no vetor pedal_100 e salvamos o vetor resultante na variável razao_100. O vetor razao_100 será um vetor cujos todos os elementos serão iguais a 1, visto que estamos trabalhando com dois vetores iguais.
Na segunda linha de código, dividimos cada elemento do vetor pedal_75 pelo elemento que está na mesma posição no vetor pedal_100 e salvamos o vetor resultante na variável razao_75. Isso faz com que consigamos encontrar a razão de torque para cada velocidade do motor.
Da terceira linha de código em diante, é a mesma lógica, sendo uma linha para cada porcentagem de curso do acelerador.
Nosso script está assim agora:
A resposta da letra c são os vetores razao_100, razao_75, razao_50, razao_25 , razao_0.
Passo 6
A letra d nos pede para criarmos uma matriz com a velocidade do motor e as respectivas razões de torque. Para responder a esta questão, vamos concatenar o vetor vel, que contém a velocidade do motor, com os vetores que contêm as razões de torque para cada porcentagem de curso do acelerador.
Digite a linha de código abaixo no script para realizar a concatenação:
razoes = [vel razao_100 razao_75 razao_50 razao_25 razao_0];
Com essa linha de código, o MATLAB cria uma matriz chamada razoes cuja primeira coluna contém os valores do vetor vel; a segunda coluna contém os valores do vetor razao_100; a terceira coluna contém os valores do vetor razao_75; e assim sucessivamente.
Atualizando nosso script:
Rodando o código e pedindo para o MATLAB imprimir a matriz razoes, podemos ver como ela ficou:
Está aí a resposta da letra d.
Passo 7
Finalmente, chegamos ao último item do exercício. Nele, temos que salvar a matriz criada na letra d em um arquivo .txt. Para fazer isso, acrescente no final do script o comando save():
save('motor_pedal_razoes.txt','razoes','-ascii')
Lembrando que a função save() tem a seguinte estrutura:
save('Nome do arquivo','variável','-ascii')
Logo, salvamos a matriz razoes em um arquivo de texto chamado “motor_pedal_razoes.txt”.
Nosso código final ficou assim:
Ao rodarmos o código acima, um arquivo chamado “motor_pedal_razoes.txt” será criado na mesma pasta onde se encontra o script do MATLAB. O arquivo conterá a matriz razoes, com os valores em notação científica:
Está aí a solução da letra d.
Resposta
Ei, a resposta está no passo a passo :)