specs v0.2 - paginas.fe.up.ptpaginas.fe.up.pt/~ee01093/projects/specs_v0.2.pdf · principalmente em...

13
!"#$% &’

Upload: lynhan

Post on 17-Dec-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

�������

������������ �������

����������

�����������������

������

�������������� ����������������������

������ !�"��� #��$�%�

������

�����&��'����

�(����")*���

O SPECS foi desenvolvido tendo em vista facilitar o projecto, por vezes fastidioso, de sistemas de controlo, utilizando algumas ferramentas disponíveis na máquina TI-89 e programas já existentes de outros autores sobre o assunto.

Costumo ser uma pessoa pragmática e não gosto de “reinventar” a

roda muitas vezes. Como já existem programas, livres, bastante aceitáveis sobre diagramas de Bode, de Nyquist, de Nichols e lugar geométrico das raízes, porquê começar tudo do zero? Efectuei uma pequena pesquisa na internet e obtive 3 programas de qualidade aceitáveis e não muito grandes. A partir daí desenvolvi um interface para interagir com eles e acrescentei algumas funcionalidades extra, principalmente em termos de projecto de compensadores, e tentei potenciar ao máximo as boas funções que a TI-89 já possui incorporadas.

A linguagem BASIC-TI foi utilizada para desenvolver o SPECS e todo o código está disponível para consulta e/ou alteração. As funções da minha responsabilidade foram sujeitas a intensos testes durante a preparação para o exame de Teoria dos Sistemas(cadeira do 3º ano da LEEC), mas é possível que tenham uma ou outra falha.

Posteriormente adaptei algumas das funções para a cadeira de

Controlo Digital. ��

�(���+�)*�� Para utilizar o SPECS é necessário copiar alguns ficheiro para a

máquina. O procedimento para esta operação está disponível no manual da TI-89.

Programas necessários:

• SPECS • Differential equation solvers + Laplace v. 2.05 • Control's Toolbox v1.16 • Rlocus v6.0 • Laplace and Z transform R7

Todos estes programas estão disponíveis num ficheiro zip na minha

página

�"(���(�+��������

�����������������������Após a instalação dos programas, para aceder ao menu basta executar o programa specs\menu() �

���(��• Funções sobre características transitórias da resposta a um

degrau: getzeta(Mp) + o2specs(ξξξξ,wn) • Compensador Avanço: getGc(φφφφ,sd)

� ��,"+� �• Atalho para a transformada inversa de Laplace: ilaplace(g(s),s) • Desenhos de gráficos

-(�+.����• Resposta em frequência: ct(g(s)) • Lugar Geométrico das Raízes:rlocus6()+rlocus(g(s),{})

�����������������• Transformação de ss->tf e tf->ss: ss2tf(a,b,c,d) + tf2ss(g(s)) • Controlabilidade e Observabilidade: getctr(a,b) + getobs(c,a) • Compensação e observador: acker(a,b{})+ackero(a,c,{}) • Trajectórias: traje(a,x0) Tabela 1 – Breve resumo das funções disponíveis em SPECS(controlo clássico).

�����������������

Programa specs\menu2()

/��(�

• Transformada Z Directa e Inversa: ztrn(,k,z) e invz(,z,k) • Cálculo da exponencial duma matriz: e_at(a)

� ��0�� �• FT -> SS (Forma canónica Controlável): tf2ss_c(/s) • FT -> SS (Forma canónica Observável): tf2ss_o(/s) • SS -> FT: c*(z-f)^1*g +d • Controlabilidade e Observabilidade: getctr(f,g) + getobs(c,f) • Compensação e observador: acker(a,b{e^})+ackero(a,c,{e^})

��1��• Equivalente discreto dum sistema continuo: zoh_m(a,b) • Dinâmica adicional de sistemas discretos: tracking({}) • Equivalente discreto dum sistema continuo com atraso(a,b,q,γγγγ,T) Tabela 2 – Breve resumo das funções disponíveis em SPECS(controlo digital).

A melhor forma de demostrar a utilidade do SPECS é resolvendo alguns exercícios.

Controlo Clássico

1 – Dada a FT em malha aberta G(s) =10/s(s+2)(s+8) de um sistema com realimentação negativa unitária, compense esse sistema, utilizando métodos de lugar de raízes, de forma que:

a) o sistema realimentado tenha uma sobreelongação máxima de 16% e um tempo de estabelecimento de 4 seg.

b) a constante de erro de velocidade seja Kv = 80 s-1.

(Problema retirado do caderno de exercícios de TS)

Figura 1 – Sistema de controlo original. Resolução: a)

Mp = sobreelongação máxima = 16% Utilizando a função getzeta(Mp), que retorna o coeficiente de amortecimento ξ para um dado overshoot Mp, concluímos que ξξξξ≅≅≅≅0.504

ts= tempo de estabelecimento(2%)= 4ξωn = 4 s � ωωωωn = 1/ξξξξ ≅≅≅≅ 2 rad/s

sd = pólos dominantes = -ξ∗ωn ± jωn√ (1-ξ2) = -1±±±±√√√√3

Para verificar estes resultados podemos utilizar a função o2specs(ξξξξ,wn) que retorna alguns parâmetros da resposta ao degrau de um sistema cujos pólos dominantes complexos sejam definidos por ξ e wn. As características calculadas são:

• tr – tempo de subida • tp – tempo que demora a atingir o pico • mp – sobreelongação máxima • ts – tempo de estabelecimento, com margem de 2%. • sd – pólos dominantes

De seguida podemos representar o lugar geométrico das raízes do

sistema original.

Aparentemente não é possível obter os pólos dominantes apenas com

variação do ganho. É necessário introduzir um compensador avanço:

Gc(s) = k(s+z)/(s+p) , z < p

“Receita” para a obtenção de Gc(s):

1. A partir da condição de fase determinar qual o esfasamento que Gc(s) tem de introduzir em sd.

∠{ Gc(sd)G(sd) } = π ⇔ ∠Gc(sd) + ∠G(sd) = π

∠Gc(sd) = π - ∠G(sd)

∠Gc(sd) ≅ 0.243 rad

2. Determinar z e p utilizando a função getGc(φφφφ,sd), que utiliza o método da divisão do ângulo disponível, que retorna Gc(s):

3. Para determinar o K utiliza-se a condição de módulo:

K=1/|G(sd)(sd+1.747)/(sd+2.304)|

Gc(s)=3.32(s+1.737)/(s+2.304)

Figura 2 – Sistema compensado

Nota: Esta “receita” para obter Gc(s) poderia ser facilmente implementada numa única função.

Agora vem a melhor parte: verificar se o compensador cumpre os requisitos propostos. A melhor forma é obter a resposta ao degrau do sistema de controlo.

Utilizando as funções de Trace e Math é possível concluir que o sistema

compensado satisfaz as requisitos propostos.

b)

Utilizando um controlador atraso da forma: Gc2(s) = (s+0.1)/(s+0.002) é possível obter um Kv > 80 s-1.

2) Considere o sistema definido pela FT T(s) =(3s+4)/(s3+3s2+2.75s+0.75).

a) Obtenha uma representação no espaço de estados b) Verifique se o sistema é controlável. E observável? c) Através de uma realização no espaço dos estados determine a realimentação de estado adequada de modo a que os pólos do sistema passem a ser -2,-3 e -4. d) Projecte um observador de estado de forma a possuir um pólo triplo em –12.

Resolução: a)

b)

Como a caracteristica da matriz controlabilidade = 3, o sistema é completamente controlável.

Como a caracteristica da matriz observabilidade = 3, o sistema é completamente observável.

c)

Como o sistema é completamente controlável podemos efectuar uma realimentação de estado. Para determinar o vector k, recorremos à função acker(a,b{}), onde {} representa a lista de pólos pretendidos.

d) Como o sistema é completamente observável podemos efectuar um observador de estado. Para determinar o vector L, recorremos à função ackero(a,c{}), onde {} representa a lista de pólos pretendidos.

3) Represente G(s) = 1/((s+2)(s+1)) na forma dx/dt =Ax+bu, y=cx e esboce a trajectória no espaço de estado para x0=[1,1]t

Exemplos de Controlo Digital

1) Cálculo da exponencial de A=���

���

343012021

, e^(A*t)

, ,

Exame de 11/01/2005

a)

, ,

, , ,

, Para aceder ao φ e ao Γ no HOME basta ver o conteúdo das variáveis f

e g. O t que aparece nas expressões é, neste caso, 0.1s – tempo de amostragem.

b) D = q*T + γ =0.15 0.15 = 1*0.1+0.5

, ,

,

a) 1º) Passagem da FT para o Espaço de Estados:

, , 2º) Definição dos pólos do sistema realimentado:

A função bessel, com parâmetros 2 e 60, retorna os polinómios de bessel de 2ª ordem com um tempo de estabelecimento de 60s.

3º) Cálculo do ganho de realimentação

b) 1º) Definição dos pólos do observador(4 vezes mais rápido que o sistema)

2º) Cálculo dos ganhos do observador:

d) 1º)Dinâmica Adicional: pólo em 0 ( equivale em 1 no discreto)

,

2º) Definição das matrizes do sistema completo

, ,

, ,

3º) Cálculo dos ganhos para realimentação:

,

Uma vez que a parte imaginária é zero:

��,�(�2������(�+�

Espero que estes exemplos sejam de alguma utilidade para o leitor. Julgo que na maioria dos casos as imagens apresentadas são auto-explicativas e que o leitor será capaz de executar os passos efectuados sem dificuldade de maior. No entanto, se surgirem obstáculos de monta ou se tiverem algum tipo de sugestão podem sempre entrar em contacto comigo, através do e-mail apresentado na 1ª página.