Artigo original: DC Motor Speed: Simulink Modeling, Control Tutorials for Matlab & Simulink, URL: http://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed§ion=SimulinkModeling (acessado em 30/09/2020).
Um atuador bastante comum em sistemas de controle é o motor CC (corrente Contínua). A velocidade do mesmo pode ser variada, variando-se sua tensão de alimentação. Ele fornece movimento rotativo diretamente e também pode fornecer movimento linear usando-se mecanismo de fuso (ou trosca trapezoidal):
Exemplo 1 | Exemplo 2 | Exemplo 3 | Exemplo 4 | Exemplo 5 |
---|---|---|---|---|
O circuito elétrico da armadura e o diagrama de corpo livre do rotor CC são mostrados na figura a seguir:
Para este exemplo, iremos supor que a entrada do sistema é a fonte de tensão () aplicada à armadura do motor, enquanto a saída é a velocidade de rotação do eixo (ou velocidade angular, ). O rotor e o eixo são considerados rígidos. Assumimos ainda um modelo de atrito viscoso, ou seja, o torque de atrito é proporcional à velocidade angular do eixo.
Os parâmetros físicos para nosso exemplo são:
Parâmetro | Descrição | Valor (Unidades) |
---|---|---|
Momento de inércia d motor | 0,01 () | |
Constante de atrito viscoso do motor | 0,1 () | |
Constante de força eletromitia | 0,01 () | |
Constante de torque do motor | 0,01 () | |
Resistência elétrica | 1 () | |
Indutância elétrica | 0,5 () |
Em geral, o torque gerado por um motor C é proporcional à corrente da armadura e à força do campo magnético. Neste exemplo, vamos assumir que o campo magnético é constante e, portanto, que o torque do motor é proporcional apenas à corrente da armadura por um fator constante conforme mostrado na equação abaixo. Isso é conhecido como motor controlado por armadura:
A força contra-eletromotriz (f.e.m.), , é proporcional à velocidade angular do eixo por um fator constante :
Em unidades SI, o torque do motor e a constante f.e.m. são iguais, ou seja, ; portanto, usaremos para representar a constante de torque do motor e a constante de f.e.m. posterior.
Este sistema será modelado somando os torques que atuam na inércia do rotor e integrando a aceleração para obter a velocidade. Além disso, as leis de Kirchoff serão aplicadas ao circuito de armadura.
Primeiro, vamos modelar as integrais da aceleração rotacional e da taxa de variação da corrente da armadura:
Para construir o modelo de simulação, abra o Simulink e abra uma nova janela de modelo. Em seguida, siga as etapas listadas abaixo.
A seguir, vamos aplicar a lei de Newton e a lei de Kirchhoff ao sistema do motor para gerar as seguintes equações:
e:
A aceleração angular, , é igual a multiplicado pela soma de dois termos (um positivo, um negativo).
Da mesma forma, a derivada da corrente, , é igual a multiplicado pela soma de três termos (um positivo, dois negativos).
Continuando a modelar essas equações no Simulink, siga as etapas fornecidas abaixo:
1/J
(propriedades).1/L
e seu rótulo para "Indutância".+ -
, uma vez que um termo é positivo e outro é negativo (importante não confundir sequencia dos sinais).- + -
para representar os sinais dos termos na equação elétrica.O resultado esperado é mostrado na próxima figura:
Agora, vamos adicionar os torques que são representados na equação de rotação. Primeiro, vamos adicionar o torque de amortecimento:
Ctrl-I
.b
e renomeie este bloco para "Amortecimento".Ctrl
enquanto desenha ou clique com o botão direito na linha) fora da saída do integrador rotacional e conecte-a à entrada do bloco "Amortecimento".A seguir, adicionaremos o torque da armadura.
Kt
para representar a constante do motor e rotule-o como "Kt".O resultado esperado é mostrado à seguir:
Agora, vamos adicionar os termos de tensão que são representados na equação elétrica.
Primeiro, adicionaremos a queda de tensão na resistência da armadura:
R
e renomeie este bloco para "Resistência".Em seguida, adicionaremos a fem traseira do motor.
Ke
para representar a constante emf de retorno do motor e rotule-o como "Ke".O design final deve ser semelhante ao exemplo mostrado na figura abaixo:
E para salvar todos esses componentes como um único bloco de subsistema, primeiro selecione todos os blocos e, em seguida, selecione Criar Subsistema a partir da Seleção após clicar com o botão direito do mouse na parte selecionada. Nomeie o subsistema "Motor DC" e salve o modelo. Seu modelo deve ficar com a seguinte aparência.
Alguns exemplos de controle de Velocidde deste motor aparecem originalmente aqui: DC Motor Speed: Simulink Controller Design (em inglês).
No nosso caso, resolvi acrescentar um segundo nó de saída: corrente do motor, para propiciar o monitoramento de eventuais correntes elevadas exigidas pelo motor. Foi acrescentado um bloco Out2 associado com “Corrente”. O diagrama de blcoos final do modelo do motor antes da criação so subsistema aparece na próxima figura:
Você também pode baixar o arquivo pronto motor_cc_velocidade.slx
deste sistema clicando aqui.
Note que para este modelo ser usado, é neessário atribuir valores para as variáveis R, L, Ke, Kt, J e b (que aparecem dentro das propriedades de alguns blocos presentes na figura/modelo mostrado na figura anterior). Para facilitar o carregamento destas variáveis no *Workspace do Matlab, pode ser executado o script motor.m
.
Que transformado num sub-sistema resulta em (arquivo motor_cc_velocidade.slx
):
Ex: Teste de controle em Malha aberta (arquivo: motor_cc_velocidade_teste_MA.slx)
Note que neste caso, estamos alimentando o motor com 10 Volts (referência/entrada degrau) e monitorando a velocidade de saída, não em mas em RPM (por isto os blocos Gain de conversão para converter do sistema SI para RPM):
Resultado esperado:
Note que aplicando 10 Volts na entrada (no motor), o mesmo quase alcança 10 RPMs de velocidade (de saída).
Ex: Fechando uma malha de controle Proporcional de velocidade para este motor, para tentar manter velocidade em 10 RPM (arquivo: motor_cc_velocidade_cont_Prop.slx
):
Que resulta em:
Saída do Processo | Monitoramento do Motor |
Ex: Fechando uma malha de controle PI (Proporcional-Integral) de velocidade para este motor, para tentar manter velocidade em 10 RPM (Arquivo: motor_cc_velocidade_cont_PI.slx
):
Que resulta em:
Saída do Processo | Monitoramento do Motor |
Ex: Fechando uma malha de controle PD (Proporcional-Derivaito) de velocidade para este motor, para tentar manter velocidade em 10 RPM (Arquivo: motor_cc_velocidade_cont_PD.slx
):
Resultados:
Saída do Processo | Monitoramento do Motor |
Ex: Fechando uma malha de controle PID (Proporcional-Integrativo-Derivaito) de velocidade para este motor, para tentar manter velocidade em 10 RPM (Arquivo: motor_cc_velocidade_cont_PID.slx
):
Resultados:
A idéia com os exemplos mostrados, é que você varie os ganhos dos controladores e observe o que acontece.
Um “pacote” (bag) de todos os arquivos necessários para as simulações está disponível aqui.
Fernando Passold, em 31/08/2020; atualizado em 20.03.2021.