INSTITUTO TECNOLÓGICO DE AERONÁUTICA DIVISÃO DE ENGENHARIA MECÂNICA MPS-36 – Modelagem e Simulação de Sistemas Dinâmicos Prof. Davi Antônio dos Santos LABORATÓRIO 1: Identificação da Dinâmica de um Servomecanismo de Posição Angular Data: Nomes: Turma: Conceito: _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ Objetivos: Esta prática tem por objetivos: Identificar a dinâmica do servomecanismo de posição angular da ECP utilizando métodos paramétricos e não-paramétricos. Avaliar os modelos obtidos comparando suas respostas simuladas com as correspondentes respostas experimentais. Materiais: Kit ECP Modelo 220 Driver do DSP: Desktop\Lab1MPS36\ECPDSPDrivermdl.mdl Reset do DSP: Desktop\Lab1MPS36\ECPDSPResetmdl.mdl 1. Introdução A Seção 1.1 descreve brevemente o servomecanismo de posição angular da ECP. A Seção 1.2 apresenta um modelo dinâmico teórico (obtido por meio de leis da Física) do aparato. A Seção 1.3 resume os conceitos necessários para a realização da prática. 1.1. Servomecanismo da ECP O servomecanismo utilizado nesta experiência consiste no Emulador Industrial Modelo 220 da ECP. Esse kit didático é composto de 4 partes: Sistema mecânico: Constitui-se de dois discos de inércia e um redutor de velocidades (RV) acoplados por correias e polias. Vide ilustração na Figura 1. O disco 1 consiste no disco de acionamento, enquanto que o disco 2 representa a carga. Em cada disco, há um 1 encoder incremental (sensor de posição angular) e um motor de corrente contínua (CC) brushless acoplados. O motor do disco 1, motor 1, é empregado no acionamento do servomecanismo. Figura 1. Emulador Industrial ECP Modelo 220. 1.2. Módulo de interfaceamento com sensores e atuadores: Tem as seguintes funções: 1) Eletrônica de potência para geração de correntes elétricas com potência suficiente para acionar os motores; 2) Condicionamento dos sinais dos sensores de posição angular. Placa de aquisição de dados e controle em tempo real (ECPDSP): Consiste numa placa contendo circuitos de conversão AD/DA e um Processador Digital de Sinais (Digital Signal Processor – DSP) da família M56000. Esta placa está conectada à placa mãe de um computador pessoal via barramento ISA. O DSP executa um sistema operacional de tempo real com base no qual se pode implementar algoritmos para controle da planta mecânica. Programa Executive ECP: Programa executado num PC com sistema operacional Windows que tem por finalidade prover uma interface entre o aluno e o DSP. Permite operar o sistema com facilidade (visualizar dados monitorados, editar o programa de controle a ser executado pelo DSP, gerar gráficos, gerar trajetórias de referência para o sistema de controle, etc). Opcionalmente, pode-se comunicar com o DSP utilizando-se o MATLAB/Simulink. Essa alternativa será empregada na presente prática. Modelagem física Considere que os acoplamentos entre os discos do servomecanismo sejam rígidos e despreze as não-linearidades (saturação dos circuitos amplificadores, atrito seco, etc.). Sendo assim, o movimento angular do disco de carga pode ser descrito pela seguinte EDO linear, invariante no tempo, de segunda ordem, obtida pela 2.a lei de Newton: ̈ ( ) ̇ ( ) ( ), (1a) , (1b) onde é o torque aplicado pelo motor 1 sobre o disco 1. Esse torque é proporcional à corrente de armadura do motor, que por vez é aproximadamente proporcional ao sinal de controle produzido pelo DSP; e são as posições angulares dos discos 1 e 2, respectivamente; é o momento de inércia refletido para o eixo do disco 1; é o coeficiente de atrito refletido para o eixo do disco 1; e é a relação de engrenagem entre os discos 1 e 2. 2 Q1: Obtenha a função de transferência ( ) ( ). ( )), onde ( ) é o sinal de referência de posição, e obtenha a Q2: Faça ( ) ( ( ) função de transferência ( ) ( ). Esse modelo descreve, de forma aproximada, a dinâmica do servomecanismo de posição em malha fechada. Note que neste ponto há duas informações importantes sobre a dinâmica do servomecanismo estudado: 1) ordem 2; 2) comportamento linear. 1.3. Conceitos necessários Em seguida, os conceitos necessários para a realização da prática serão apresentados de forma sucinta. Para maiores detalhes, consulte a bibliografia do curso. 1.3.1. Resposta ao degrau Seja o modelo dinâmico de segunda ordem em formato padrão ( ) ( ) , (2) onde é a freqüência natural não-amortecida e é o coeficiente de amortecimento. A Figura 2 apresenta uma resposta temporal típica do modelo em (2) quando excitado por um sinal tipo degrau de magnitude ̅ . Essa figura ilustra duas figuras de mérito que descrevem a dinâmica do sistema modelado por (2): a máxima ultrapassagem, ; e o instante de pico, . 3 Figura 2. Resposta temporal de um sistema de segunda ordem a uma excitação do tipo degrau de magnitude ̅ . As características e de um sistema de segunda ordem se relacionam de forma exata com os parâmetros e por meio das seguintes equações: { }, √ (3) . √ (4) Isso sugere uma forma simples de se identificar um sistema de segunda ordem a partir de um experimento de resposta ao degrau. 1.3.2. Identificação não paramétrica Seja um sistema discreto no tempo, linear e invariante no tempo (LIT) cujo comportamento dinâmico é descrito pela resposta impulso . Sendo assim, dada a sequência de entradas * + , a saída desse sistema medida no instante discreto é , - , que de forma explícita fica ∑ . (5) Considere que e sejam variáveis aleatórias ortogonais. Sendo assim, multiplicando (5) por e tomando a esperança matemática, obtém-se ( ) ∑ ( ), (6) ( ) * + e ( ) * +. Note que, ao contrário de (5), a onde equação (6) não tem entradas aleatórias, i.e., trata-se de um modelo determinístico. 4 Tomando-se a transformada de Fourier de (6), obtém-se ( )- , , ( )- , ( )- , ou ( ) ( ) ( ), , ( )- é a função resposta em frequência; ( ) , ( )- é a função onde ( ) ( ) ( )- é o espectro cruzado entre a entrada e a saída. Sendo autoespectro da entrada; e , ( ) e assim, a função resposta em frequência pode ser estimada a partir de estimativas de ( ), ou seja, ̂( ) ̂ ( ) ̂ ( ) (7) Nesta prática, a função spa da toolbox “System Identification” do MATLAB será utilizada para gerar a estimativa ̂ ( ) da forma como indicado acima. Esse método é conhecido como método de Blackman-Tukey. 1.3.3. Identificação paramétrica Os métodos de identificação paramétrica constituem-se basicamente de duas etapas. A primeira consiste na escolha de uma estrutura do modelo, enquanto a segunda trata da estimação dos parâmetros dessa estrutura utilizando dados experimentais de entrada e saída do sistema. Uma estrutura de modelo bastante utilizada na identificação de sistemas lineares SISO é o chamado modelo ARX (Auto-Regressive with eXogenous input). Esse modelo é dado por , (8) onde * + é o sinal (ou sequência) de saída; * + é o sinal de entrada; * + é o sinal de ruído; os coeficientes , são os parâmetros a serem estimados; é o atraso de transporte. Conforme visto em sala de aula, os coeficientes de (8) podem ser estimados de forma a minimizar um custo quadrático do erro de estimação da saída (critério de mínimos quadrados - MQ). Nesta prática, a função arx da toolbox “System Identification” do MATLAB será utilizada para gerar as estimativas ̂ , ̂ pelo critério MQ. 5 2. Procedimentos experimentais 2.1. Preparação da bancada a) Configure o servomecanismo da seguinte forma: Disco 1: 2 massas de Disco 2: 2 massas de RV: e , com , com ; ; b) No programa Executive ECP, selecione o menu Utility/Download Controller Personality File. Abra o arquivo C:\Arquivos de programas\ECP Systems\ cn\ M220_rtwt_3.pmc. Feche esse programa e abra o MATLAB 2007/Simulink. (OBS: Esse comando permite que o Simulink se comunique com a placa de controle em tempo real (DSP), ao passo que desabilita tal comunicação por meio do Executive ECP). A Figura 3 ilustra o bloco para Simulink (Emulador Industrial1) correspondente ao driver do DSP da ECP. Há uma cópia desse bloco disponível no arquivo Desktop\ Lab1MPS36 \ECPDSPDrivermdl.mdl. Note que as entradas do bloco ( e ) correspondem aos sinais de controle dos motores, enquanto que as saídas (teta1, teta2,...) são provenientes dos sensores. - clique com o botão direito - clique em look under mask - clique duplamente com o botão esquerdo Figura 3. Bloco correspondente ao Driver do DSP. c) Utilizando o driver do DSP, crie o modelo Simulink ilustrado na Figura 4 e nomeie-o por Desktop\Lab1MPS36\exp1.mdl. Note que esse diagrama corresponde a um controle em malha fechada de utilizando um controlador proporcional em série (cascata) com a planta para gerar . A entrada de referência ( ) é um degrau de amplitude rad. Faça e, no bloco do driver, configure o endereço da placa ECP com „0xB800‟, o período de amostragem com e o time out com 500. 6 Figura 4. Malha de controle de posição angular da carga. d) Abra a caixa de diálogo Tools/Real-Time Workshop/Options. Em system target file, selecione rtwin.tlc. Em Solver, selecione a integração com passo fixo, método de Euler (ODE1) e stop time de 10 seg. e) Abra o Scope e clique no ícone Parameters. Na caixa de diálogo Parameters, selecione a opção Data history. Modifique Limit data points to last para 12500. Selecione Save data to workspace, Variable name = “Dados”, Format = “Structure with time”. (OBS: Isso permite que os dados adquiridos no experimento em tempo real sejam armazenados na variável “Dados” no workspace do MATLAB). f) Abra a caixa de diálogo Tools/External Mode Control Panel. Selecione Signal & Triggering. Em Trigger, configure Duration = 80000. (OBS.: Com isso, a cada 80000 amostras dos sinais do DSP, o Simulink apagará os registros que armazenam os correspondentes dados). 2.2. Experimento de resposta ao degrau a) Com a entrada de referência já configurada (degrau de amplitude rad), Selecione Tools/Real-Time Workshop/Build Model para compilar o diagrama. (OBS.: Neste momento, o Simulink gerou um código em linguagem de máquina do DSP que equivale a esse diagrama). b) Abra o arquivo Desktop\Lab1MPS36\ECPDSPResetmdl.mdl. Compile esse diagrama como no item 2.2a. Execute o código referente a esse diagrama da seguinte forma. No menu Simulation, selecione Connect to Target. Novamente em Simulation, selecione Start Real-Time Code. Aguarde 1 seg, feche esse diagrama e volte ao exp1.mdl. (OBS.: Neste momento, os registros de contagem dos encoders e os flags de segurança do aparato foram “resetados” no DSP). c) Utilizando os passos descritos no item 2.2b, execute o código referente ao diagrama exp1.mdl. O servomecanismo deve se movimentar em resposta ao degrau comandado na entrada de referência (vide Figura 4). Q3: Após finalizada a execução e utilizando os dados salvos no workspace por meio do bloco Scope, os quais podem ser acessados por >> Y = Dados.signals.values(:,1); >> R = Dados.signals.values(:,2); >> T = Dados.time; obtenha e salve o gráfico da resposta ao degrau identificando o arquivo com o nome Desktop\Lab1MPS36\f1.fig. 7 Q4: Meça e e calcule e utilizando (3)-(4). Com isso, tem-se uma estimativa de um modelo de segunda ordem, no formato padrão, para o sistema em malha fechada correspondente ao diagrama da Figura 4. Q5: Obtenha (manualmente) a FT de malha aberta identificada em Q4. ( ) ( ) a partir da FT de malha fechada Essa FT consiste num modelo dinâmico paramétrico do servomecanismo da ECP! 2.3. Experimento de resposta a um sinal aleatório a) “Resete” o DSP como no passo 2.2b. (OBS.: O diagrama ECPDSPResetmdl não precisa ser compilado novamente, pois não foi alterado!). b) Salve uma cópia do diagrama exp1.mdl com o nome Desktop\Lab1MPS36 \exp2.mdl. Modifique esse diagrama de forma que ele fique como ilustrado na Figura 5. Note que, no lugar da entrada degrau, inseriu-se um bloco Sources/Band-Limited White Noise. Adicionalmente, foram inseridos blocos necessários para adequar taxas de amostragem distintas (OBS.: Sem a presença desses blocos, o Simulink geraria mensagens de erro no momento da compilação do diagrama). 8 Figura 5. Experimento de resposta a um sinal aleatório. ) e Sample Time: . a) Configure o bloco Band-Limited White Noise com Power: ( Configure os blocos Rate Transition com os tempos de amostragem ( ) indicados na Figura 5. Configure o tempo de execução do diagrama em e o período de amostragem do Scope em . b) Da forma como fora instruído previamente (itens 2.2a e 2.2b), compile o diagrama exp2.mdl e execute o correspondente experimento em tempo real. Q6: Após finalizada a execução e utilizando os dados salvos no workspace por meio do bloco Scope, os quais podem ser acessados por >> Y = Dados.signals.values(:,1); >> R = Dados.signals.values(:,2); >> T = Dados.time; obtenha e salve o gráfico da resposta ao sinal aleatório com o nome Desktop \Lab1MPS36\f2.fig. 2.3.1. Obtenção de um modelo ARX Q7: Utilizando a função arx disponível no MATLAB, obtenha os parâmetros do modelo ARX com dimensões e e atraso de transporte . Na sequência, converta o modelo obtido para o domínio contínuo. Para tal, utilize os seguintes comandos: >> Ts= 0.1; % período de amostragem >> Z = iddata(Y,R,Ts);% estrutura de dados >> na=2;nb=2;nk=1; %dim. da estrutura arx escolhida >> M = arx(Z,[na nb nk]); % estimação dos parâmetros via critério MQ >> [den num]=polydata(M); % conversão de Arx para FT >> T = tf(num,den,Ts); % ... continuação >> Tc = d2c(T,'zoh'); % discretização no tempo Anote o modelo ARX (armazenado em M) e a função de tranferência em tempo contínuo (armazenada em Tc) obtidos acima. 9 Os modelos acima descrevem a dinâmica do servomecanismo em malha fechada com um controlador proporcional . Q8: Crie um novo diagrama em Simulink para simular o servo em malha fechada por meio do modelo Tc obtido em Q7. Utilize um sinal degrau de amplitude como excitação. Utilize um Scope configurado para salvar os dados no workspace do MATLAB numa estrutura com nome “Dadossim”, similar ao que foi feito no item 2.1e. Configure a duração da execução em . Salve esse diagrama com o nome Desktop\Lab1MPS36\sim1.mdl. Q9: Execute o diagrama criado em Q8 no modo normal (menu Simulation/normal). Após finalizada a execução e utilizando os dados salvos no workspace por meio do bloco Scope, os quais podem ser acessados por >> Y = Dadossim.signals.values; >> T = Dadossim.time; obtenha o gráfico da resposta ao degrau. Na janela da figura, clique no ícone Edit plot (“setinha”) e, em seguida, clique na curva. Copie-a e cole-a sobre o gráfico da figura salva como f1.fig. Edite o gráfico, como desejado, de maneira a distinguir a curva de resposta obtida experimentalmente daquela obtida a partir do modelo Tc. Salve o gráfico resultante em Desktop\Lab1MPS36 \f3.fig. Q10: Comente sobre o gráfico f3. 2.3.2. Obtenção de um modelo de resposta em frequência Na Subseção 2.3.1, a toolbox “System Identification” foi utilizada através da janela de comando do MATLAB. Na sequência, veremos como utilizar a interface gráfica dessa toolbox para obter um modelo de resposta em frequência pelo método de análise espectral descrito na Subseção 1.3.2. a) Abra a interface gráfica da Toolbox: >> ident b) Importe a estutura de dados Z (já criada em Q7) no ambiente gráfico da toolbox mediante os seguintes passos. Em Import data, selecione Time domain data. Em Data Format for Signals selecione Data Object. Na caixa de texto Object, escreva Z. Clique em Import. c) Estime a resposta em frequência mediante os seguintes passos. No menu pull-down “estimate”, selecione Spectral models. Escolha o método SPA (Blackman-Tuckey) e os demais parâmetros em seus valores padrão. Clique em Estimate e feche essa janela. 10 d) Na tela principal do System Identification Tool, selecione o check box “Frequency resp”. Neste momento, aparecerá uma janela contendo o gráfico da resposta em frequência estimada. No menu file dessa janela, selecione copy figure para obter o correspondente gráfico no formato .fig. Salve-o como Desktop\Lab1MPS36\f4.fig. Q11: Utilizando o modelo de segunda ordem padrão obtido em Q4, obtenha a resposta em frequência simulada do sistema em malha fechada. Para tal, utilize os seguintes passos: >> >> >> >> >> >> >> zeta = ? % vide Q4; modelo wn = ? % vide Q4; modelo num = wn^2; den = [1 2*zeta*wn wn^2]; [mag,fas,w]=bode(num,den); figure; plot(w,mag); % curva figure; plot(w,fas); % curva da MF da MF de magnitude de fase Como em Q9, copie as duas curvas obtidas acima sobre os correspondentes gráficos de resposta em frequência experimental, f4.fig. Salve o gráfico resultante em Desktop\ Lab1MPS36 \f5.fig. Q12: Comente sobre o gráfico f5. 3. Conclusão Q13: Escreva uma conclusão que resuma o que essencialmente foi aprendido nesta prática. 11