Escolar Documentos
Profissional Documentos
Cultura Documentos
net/publication/267840894
Article
CITATIONS READS
0 127
6 authors, including:
Antonio A. R. Coelho
Federal University of Santa Catarina
109 PUBLICATIONS 369 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
sliding mode control based on long range predictive control View project
All content following this page was uploaded by Antonio A. R. Coelho on 19 November 2014.
Abstract⎯ This paper aims to show the advantages of using Free Open Source Software (FOSS) for automatic control systems
in education. Accordingly, this paper presents two control tasks for a process control course that can be done entirely with FOSS.
These activities consist of the modeling and digital control of a damped pendulum.
Keywords⎯ control education, free open source software, dynamic systems simulation, real-time control.
Resumo⎯ Este artigo procura mostrar as reais potencialidades de uso de software livre na educação de sistemas de controle au-
tomático. Apropriadamente, este artigo ilustra o conteúdo de duas tarefas de controle para um curso de controle de processos que
pode ser implementado inteiramente com software livre. As atividades consistem em modelagem e controle digital de um pêndulo
amortecido.
Palavras-chave⎯ educação em controle, software livre, simulação de sistemas dinâmicos, controle em tempo real.
3035
XVIII Congresso Brasileiro de Automática / 12 a 16-setembro-2010, Bonito-MS
d 2 θ(t) dθ(t)
J 2
+c + mgdsinθ(t) = T(t) (1) Figura 3. Ambiente computacional ScicosLab/Scicos.
dt dt
3036
XVIII Congresso Brasileiro de Automática / 12 a 16-setembro-2010, Bonito-MS
3037
XVIII Congresso Brasileiro de Automática / 12 a 16-setembro-2010, Bonito-MS
Para utilizar a nova biblioteca, é necessário ligar modelo matemático reduzido é adequado em diferen-
a mesma ao ScicosLab. Para isto, pode-se criar um tes aplicações práticas (Coelho e Coelho, 2004).
script de inicialização como o da tabela 2. Para respostas oscilatórias o seguinte modelo
contínuo é utilizado, sendo y(t) a saída, u(t) a entrada,
Tabela 2. Script de inicialização da placa.
ζ o fator de amortecimento e wn a freqüência natural.
// loader.sce
id_d2xx = link('ftd2xx_scicoslab.dll','load_d2xx','c');
link(id_d2xx,'free_d2xx','c');
d 2 y(t) dy(t)
link(id_d2xx,'openUSB','c');
2
+ 2ζ w n + w n2 y(t) = K p w n2 u(t) (2)
link(id_d2xx,'closeUSB','c');
link(id_d2xx,'readUSB','c');
dt dt
link(id_d2xx,'writeUSB','c');
link(id_d2xx,'SetLatencyTimer','c');
link(id_d2xx,'PurgeTxRx','c'); Na identificação dos parâmetros é necessário ob-
function openUSB() ter a curva de reação da resposta ao degrau e medir o
status = call('openUSB','out',[1,1],1,'i');
if(status == 0) then
ganho estático, Kp=Δy/Δu, o período de oscilação,
disp('USB device opened'); To, e os dois primeiros picos da resposta, a1 e a2,
end
endfunction conforme ilustra a figura 5.
function data_read = readUSB(n_bytes_read)
[d_r,s_r,b_r] = call('readUSB',n_bytes_read,1,'i',
'out',[1,1],2,'d',[1,1],3,'i',[1,1],4,'i');
endfunction
function writeUSB(n_bytes,data)
[s_w,b_w] = call('writeUSB',n_bytes,1,'i',data,2,'i',
'out',[1,1],3,'i',[1,1],4,'i');
endfunction
function boot_daq()
load_d2xx; openUSB; SetLatencyTimer(2);
purgeRxTx(1); purgeRxTx(2); writeUSB(1,1);
endfunction
3038
XVIII Congresso Brasileiro de Automática / 12 a 16-setembro-2010, Bonito-MS
a2_tmp = vectorfind(y(ind_minimo:n),a2_y,'r'); ⎡ 0 1 ⎤ ⎡ 0 ⎤
a2 = ind_minimo + a2_tmp; A c = ⎢ mgd
⎢− c , Bc = ⎢⎢ K m ⎥⎥
⎥
ts = 0.1; // período de amostragem − ⎥
⎢⎣ J J ⎥⎦ ⎢⎣ J ⎥⎦
T0 = (a2 - a1)*ts;
pi = %pi;
e x(k) = [x1 (k) x 2 (k)]T ≈ [θ θ ]T . O controle por
qsi = 1 / (sqrt(1+((2*pi)/(log(a2/a1)))^2));
realimentação de estados é
wn = 2*pi / T0*sqrt(1-(qsi)^2);
Kp = media_y(n) / 2.5; // degrau u = 2.5;
u(k) = − Kx(k) + Fy r (k) (5)
// modelo estimado
s = poly(0,'s');
G = Kp*(wn^2) / (s^2 + 2*qsi*wn*s + wn^2); sendo yr(k) a referência e K o ganho de realimentação
de estados, selecionado com base na equação carac-
Para completar a atividade de modelagem a reali- terística de malha fechada, A mf = (A d − Bd K ) , cujas
zação da figura 6 deve ser implementada no ambiente raízes determinam o comportamento dinâmico e com
Scicos (num(s) = 4.9, den(s) = s2 + 0.674s + 5.724). ajuste pela técnica da alocação de pólos. Para garan-
O resultado obtido com o diagrama de blocos do tir um adequado comportamento servo (a saída deve
Scicos é ilustrado na figura 7, onde pode ser obser- rastrear referências constantes), então assumir
vado que a resposta dinâmica do modelo linear esti- F = [C(I 2 − A mf ) −1 Bd ]−1 . Como o estado x2(k) não
mado é similar as medidas de observação do pêndulo está acessível para realimentação, é necessário esti-
amortecido na faixa de operação selecionada. má-lo. A equação do estimador de ordem completa é
dada por
ˆ + 1) = A d x(k)
x(k ˆ + Bd u(k) + L[y(k) − Cx(k)]
ˆ (6)
onde Ad e Bd são obtidas das relações Figura 8. Diagrama do Scicos com o controlador por realimentação
de estados em tempo real no pêndulo.
3039
XVIII Congresso Brasileiro de Automática / 12 a 16-setembro-2010, Bonito-MS
Agradecimentos
Referências Bibliográficas
3040