You are on page 1of 10

Instituto Tecnológico de Aeronáutica

Divisão de Engenharia Eletrônica


Departamento de Sistemas e Controle
EES-49/2012 – Controle Automático de Sistemas Lineares
LAB 1: Introdução ao uso do MATLAB/SIMULINK para
Simulação de Sistemas Dinâmicos
Turmas ELE e COMP
Prof. Cairo L. Nascimento Jr.

1. OBJETIVO:
Familiarização com uso da ferramenta computacional MATLAB/SIMULINK para simulação de
sistemas dinâmicos contínuos no tempo.

2. INTRODUÇÃO:

Na Engenharia de Controle, a simulação é importante para:


• validar/melhorar o entendimento da teoria já desenvolvida,
• apoiar o desenvolvimento de novas teorias,
• validar o projeto dos controladores para as plantas estudadas.

Textos extraídos da documentação do SIMULINK [1]:

“Simulink is a software package that enables you to model, simulate, and analyze systems
whose outputs change over time. Such systems are often referred to as dynamic systems. The
Simulink software can be used to explore the behavior of a wide range of real-world dynamic
systems, including electrical circuits, shock absorbers, braking systems, and many other electrical,
mechanical, and thermodynamic systems.

SIMULINK supports linear and nonlinear systems, modeled in continuous time, sampled
time, or a hybrid of the two.

Simulating a dynamic system is a two-step process. First, a user creates a block diagram, using
the Simulink model editor, that graphically depicts time-dependent mathematical relationships
among the system's inputs, states, and outputs. The user then commands the Simulink software to
simulate the system represented by the model from a specified start time to a specified stop time.

For modeling, Simulink provides a graphical user interface (GUI) for building models as
block diagrams, using click-and-drag mouse operations. With this interface, you can draw the
models just as you would with pencil and paper (or as most textbooks depict them).

Simulink includes a comprehensive block library of sinks, sources, linear and nonlinear
components, and connectors. You can also customize and create your own blocks.

Models are hierarchical, so you can build models using both top-down and bottom-up approaches.
You can view the system at a high level, then double-click blocks to go down through the
levels to see increasing levels of model detail. This approach provides insight into how a model is
organized and how its parts interact.

After you define a model, you can simulate it, using a choice of integration methods. Using
scopes and other display blocks, you can see the simulation results while the simulation is running.

23/Março/2012 1/10
In addition, you can change many parameters and see what happens for "what if" exploration. The
simulation results can be put in the MATLAB workspace for postprocessing and
visualization.

Passos para simulação de um sistema dinâmico usando SIMULINK:


1. Obtenha o modelo matemático do sistema dinâmico.
2. Construa o diagrama de simulação correspondente no SIMULINK.
3. Selecione o algoritmo de integração (opção Simulation/Configuration Parameters,
Type: variable-step/fixed step).
4. Ajuste o passo do algoritmo de integração (para algoritmos tipo variable-step size, ajuste os
valores initial/min/max step size).

3. TAREFAS:

Use apenas a versão do MATLAB/SIMULINK mais recente que estiver disponível nos
computadores do laboratório. Implemente as simulações indicadas a seguir (adaptadas de [2]).

Simulação 1: Exemplo Simples de Processamento de Sinais Contínuos no Tempo

1) Inicie o MATLAB. Digite “simulink” no prompt do MATLAB. Na janela Simulink Library


Browser selecione File/New/Model para abrir um novo diagrama/modelo de simulação. Adicione os
blocos Sources/Sine Wave, Sinks/Scope e Commonly Used Blocks/Sum e Mux. Use o mouse ou a
tecla CTRL para conectar os blocos e obter o diagrama de simulação como mostrado a seguir:

Curv a 1 Scope
Soma
Sine Wave

Curv a 2
Sine Wave1

Configure os blocos com os seguintes parâmetros:


Bloco Sine Wave: amplitude 3 e freqüência 1 rad/s,
Bloco Sine Wave1: amplitude 1 e freqüência 10 rad/s,
Bloco Scope: Selecione Parameters/Data History/Save data to workspace.

2) Execute o diagrama de simulação selecionando a opção Simulation/Start, pressionando CRLT+T


ou clicando no icon Start Simulation. Note que os dados recebidos pelo bloco Scope são repassados
para o workspace do MATLAB. Se necessário, ajuste os parâmetros Simulation/Configuration
Parameters/Solver/Start time, Stop time e Max step size para que os sinais gerados sejam boas
aproximações de sinais senoidais. Por default, esses parâmetros são ajustados para 0 s, 10 s e auto.

3) No prompt do MATLAB execute os comandos:


whos, (mostra as variáveis do workspace)
ScopeData, (mostra o conteúdo da variável tipo estrutura)
ScopeData.signals, (mostra o conteúdo da variável tipo estrutura)
plot(ScopeData.time,ScopeData.signals.values(:,3));
grid;
xlabel('Tempo (s)');
ylabel('Saída');
title('Soma de Senos');

23/Março/2012 2/10
Simulação 2: Exemplo de Simulação de um Sistema Dinâmico usando MATLAB

1) Digite o comando “edit” no prompt do MATLAB para executar o editor de arquivos *.m e crie
o arquivo “fbungie_simul.m” com o seguinte conteúdo:

function [t,x]= fbungie_simul(Massa,CoefElast,CoefTracao,...,


StartTime,StopTime,StepTime)
% Exemplo: [t,x]=fbungie_simul(60,10,5,0,100,1);

% Passo 1: Definição dos parâmetros de simulação


X0=[-10; 0]; % vetor coluna com a condição inicial em [m; m/s]
Tspan=[StartTime:StepTime:StopTime]; % vetor com os instantes de tempo
% Passo 2: Chamada do solver usando "nested function"
[t,x]=ode45(@fbungie_eq,Tspan,X0);
%---------------------------------------
function dxdt = fbungie_eq(t,x)
g = 9.8; % aceleracao da gravidade em m/s^2
K = CoefElast/Massa;
B = CoefTracao/Massa;
dxdt(1,1)=x(2);
dxdt(2,1)=-K*x(1)-B*x(2)-g;
end
%---------------------------------------
% Passo 3: Plotar figures para mostrar os resultados da simulação
figure;
subplot(2,1,1);
plot(t,x(:,1),'r'); grid;
xlabel('Tempo (s)'); title('Variável 1 (unidade)');
subplot(2,1,2);
plot(t,x(:,2),'b'); grid;
xlabel('Tempo (s)'); title('Variável 2 (unidade)');
end
% EOF

2) Execute no prompt do MATLAB os comandos:


clear all; close all;
[t1,x1]=fbungie_simul(60,10,5,0,120,0.5);
[t2,x2]=fbungie_simul(60,10,5,0,120,30); whos;
figure; plot(t1,x1(:,1),'-r*',t2,x2(:,1),'-bs'); grid;
figure; plot(t1,x1(:,2),'-r*',t2,x2(:,2),'-bs'); grid;
[t3,x3]=fbungie_simul(60,10,5,0,120,120); whos;

Observe e explique a dimensão (no de linhas e de colunas) das variáveis t* e x*. Compare os
valores dos vetores t* e Tspan.

3) Proponha um sistema físico que seria simulado pelo programa acima. Deduza o sistema de
equações diferenciais do sistema dinâmico que foi simulado. Explique como o programa acima
implementa a simulação desse sistema dinâmico. Identifique o algoritmo (solver) usado na
integração (solução do sistema de equações diferenciais) e o seu passo de integração. Explique se
tal algoritmo é do tipo passo fixo ou passo variável. Explique as diferenças encontradas nos
resultados da simulação do mesmo sistema dinâmico através da execução dos comandos mostrados
no item 2.

4) Faça a correspondência entre os resultados numéricos obtidos pela simulação e o sistema físico
proposto identificando como grandezas físicas as variáveis simuladas e as suas respectivas
unidades. Identifique as unidades dos parâmetros CoefElast e CoefTracao.

23/Março/2012 3/10
5) A partir das equações diferenciais que descrevem a dinâmica do sistema e usando os operadores
Transformada de Laplace e Transformada inversa de Laplace, calcule matematicamente a resposta
no tempo e os valores em regime permanente para as variáveis posição e velocidade nos casos com
condições iniciais nulas e não-nulas. Compare estss resultados com os resultados obtidos pelas
simulações feitas em MATLAB.

Simulação 3: Exemplo de Simulação de um Sistema Dinâmico usando SIMULINK

1) Implemente no SIMULINK o seguinte diagrama de simulação (arquivo “Sim3.mdl”):

2) Defina no prompt do MATLAB os valores das variáveis dos blocos dessa simulação (g, x0,
CoefTracao, CoefElast, Massa). Selecione na janela do modelo SIMULINK a opção
Simulation/Configuration Parameters e configure:
• Start Time = 0 s,
• Stop Time = 100 s,
• Max step size = 0,5 s,
• Solver = ode45 (o mesmo da simulação MATLAB).

3) Execute a simulação e compare os resultados com os resultados anteriores da simulação em


MATLAB. Compare as duas formas de simulação (vantagens e desvantagens).

Simulação 4: Uso de Callbacks em SIMULINK

Definição externa dos parâmetros usados nos blocos de simulação: os parâmetros dos blocos são
definidos como variáveis simbólicas. Essas variáveis simbólicas podem ser definidas
numericamente pelo usuário antes da simulação ser executada usando callback functions e um
script (arquivo .m com comandos MATLAB). Uma mesma variável simbólica pode ser usada em
vários blocos, o que minimiza a possibilidade de erros de edição dos blocos.

23/Março/2012 4/10
Pós-processamento dos resultados gerados pela simulação: comandos MATLAB podem ser
automaticamente executados após a simulação para análise dos resultados.
1) No mesmo diretório do arquivo com o modelo Simulink da simulação anterior crie o arquivo
“Sim3_inic.m” contendo os comandos:
clear all; close all;
Massa=60; CoefElast=10; CoefTracao=5;
g=9.8; x0=-10;
Crie também o arquivo “Sim3_analise.m” com os comandos:
X=estados.signals.values;
s1=['Máxima distância = ' num2str(max(abs(X(:,1)))) ' m.'];
s2=['Máxima velocidade = ' num2str(max(abs(X(:,2)))) ' m/s.'];
warndlg({s1;s2});
Selecione na janela do modelo Simulink a opção File/Model Properties/Callbacks/InitFcn e
coloque o texto “Sim3_inic;” (sem aspas). Depois selecione a opção opção File/Model
Properties/Callbacks/StopFunction e coloque o texto “Sim3_analise;” (sem aspas).

Execute novamente a simulação e verifique o resultado. A seguinte caixa de diálogo deverá ser
gerada ao final da simulação:

2) Modifique o diagrama de simulação e os comandos do arquivo “Sim3_analise.m” para que o


vetor de estados do planta seja plotado ao final da simulação.

Simulação 5: Uso de Subsistemas e Máscaras em SIMULINK

Agrupamento de blocos de simulação em sub-sistemas: permite a organização hierárquica dos


blocos do modelo de simulação em grupos funcionais chamados de subsistemas. Um subsistema
pode conter outros subsistemas.
Definição de máscara (mask) para um subsistema: permite: 1) a criação de uma caixa de diálogo
para possibilita ao usuário a entrada dos valores dos parâmetros usados nos blocos do subsistema, e
2) a customização de um texto a ser mostrado para o usuário quando a opção help dessa caixa de
diálogo for acionada.

1) Selecione com o mouse os blocos Ktracao e Kelast e no menu do modelo selecione a opção
“Edit/Create Subsystem”. Faça o mesmo com os blocos Integrador1 e Integrador2. Edite os
labels das portas de entrada e de saída dos blocos subsistemas. O seu diagrama de simulação deverá
ser similar ao seguinte diagrama:

23/Março/2012 5/10
Subsistema Integradores:

Subsistema Ganhos:

2) O help do SIMULINK define: “A mask is a custom user interface for a subsystem that hides the
subsystem's contents, making it appear to the user as an atomic block with its own icon and
parameter dialog Box.”

23/Março/2012 6/10
Modifique o callback InitFcn do modelo de simulação para incluir apenas a definição dos valores
de g e de x0 usando os comandos MATLAB (“g=9.8; x0=−10;”). Selecione o subsistema Ganhos e
com o botão direiro selecione a opção Mask Subsystem. Selecione a janela Parameters. Use o
botão Add para preencher no campo Dialog parameters as opções:
Prompt: Coeficiente de Tração (kg/s) Variable: CoefTracao
Prompt: Coeficiente de Elasticidade (kg/s^2) Variable: CoefElast
Prompt: Massa (kg) Variable: Massa
Selecione para esse mesmo subsistema a janela Documentation. No campo Mask Description
insira o texto:
Parâmetros usados para cálculo dos ganhos para as variáveis velocidade e
posição do sistema simulado.
No campo Mask Help insira o texto:
Leia com atenção o guia do laboratório. Se ainda tiver dúvida, pergunte ao
professor.
Consulte o <i>help</i> do SIMULINK e a documentação sobre o SIMULINK no
<i>web site</i> da <b>MATHWORKS</b>.
Salve as modificações. Na janela de simulação do modelo, dê um double-click com o botão
esquerdo do mouse para abrir a máscara que foi definida para o subsistema. Defina os parâmetros
do subsistema como mostrado na figura a seguir.

Depois clique no botão Help e verifique o texto mostrado. Execute novamente a simulação e
verifique o resultado.

Simulação 6: Animação gráfica do sistema físico usando os resultados da simulação

Com poucos comandos do MATLAB é possível gerar uma animação gráfica simplificada do
comportamento do sistema físico. Tal animação pode ser muito útil na interpretação dos resultados
da simulação..

23/Março/2012 7/10
Use o seguinte programa MATLAB para fazer a animação da variável Posição do sistema:
close all; figure(1); axis([-1 1 -100 10]); hold on; grid;
ylabel('Posição (m)'); title('Animação do sistema');
set(gca,'XTickLabel',[])
line([-0.4 0.4],[0 0],'Color','b','LineWidth',4);
h1=line([0 0],[0 X(1,1)]);
h2=plot(0,X(1,1));
EM='none'; % valores: 'none','xor','background'
for i=1:size(X,1);
delete(h1); delete(h2);
h1=line([0 0],[0 X(i,1)],'Color','b','LineWidth',4);
h2=plot(0,X(i,1),'sr','MarkerFaceColor','r','MarkerSize',20);
set(h1,'EraseMode',EM);
set(h2,'EraseMode',EM);
drawnow;
end;

Para criar um arquivo AVI com a sua animação, veja a documentação do MATLAB da função
AVIFILE (no prompt do MATLAB digite: doc avifile).

A animação do sistema simulado deve gerar uma janela como mostrado na figura a seguir.

Simulação 7: Simulação de um sistema rotacional

Seja uma barra cilíndrica fixada mas livre para girar em torno de uma de suas pontas conforme
mostrado na figura a seguir. Esta barra tem massa desprezível, comprimento L e uma massa pontual
M na sua ponta livre. Um motor de corrente contínua é usado para aplicar um torque de controle
Tc na base fixa desta barra. Existe um torque de atrito Ta na base fixa da barra proporcional à sua
velocidade de rotação.

23/Março/2012 8/10
1) Escreva o sistema de equações diferenciais que descreve o comportamento dinâmico desse
sistema físico. Adote ângulo θ = 0o quando a barra estiver na posição horizontal no lado direito do
ponto de rotação e que o ângulo θ e o torque de controle Tc são positivos no sentido anti-horário.
Calcule os pontos de equilíbrio do sistema nos casos Tc = 0 e Tc ≠ 0. Verifique através das
simulações se esses pontos de equilíbrio são estáveis ou instáveis.

2) Monte o diagrama de simulação desse sistema físico com os subsistemas:


• Gerador do sinal de referência,
• Controlador, e
• Planta.

Crie máscaras para cada subsistema para a entrada dos parâmetros dos subsistemas.

A máscara do subsistema Gerador do Sinal de Referência deve conter o valor desejado para o
ângulo da barra em regime permanente θ ref .em graus. Para esse valor use 0o, ±45o, ±90o.

A máscara do subsistema Controlador deve conter os parâmetros necessários para a sua


implementação.

A máscara do sub-sistema Planta deve conter: Ângulo inicial θ 0 (graus), Velocidade angular
inicial w0 (graus/s), Coeficiente de atrito rotacional k v (deduzir unidade), Massa M (kg),
Comprimento da barra L (m), gravidade g (m/s2).

3) Verifique o desempenho das seguintes leis de controle através das simulações para várias
condições iniciais próximas e distantes dos valores constantes de θ ref :
Tc = TBIAS = M L g cos (θ ref )
Tc = Kc (θ ref − θ ) + TBIAS.
Tc = Kc sign (θ ref − θ ) + TBIAS.
Faça uma análise comparativa (vantagens e desvantagens) dessas leis de controle. Verifique através
das simulações se alguma dessas leis de controle estabiliza a planta em torno de θref = 0o ou
θref = 90o.

4) Tipicamente TBIAS é calculado em função da estimativa dos parâmetros da planta M, L e g. e do


valor escolhido pelo usuário para o ângulo desejado para a barra em regime permanente θ ref .
Entretanto no “real world” os valores usados no controlador como parâmetros da planta podem

23/Março/2012 9/10
estar ligeiramente errados. Verifique o desempenho dos controladores propostos nessa condição.
Proponha alguma solução para esse problema.

5) Faça uma animação gráfica em MATLAB da dinâmica desse sistema físico. Para tal estude o
código de animação mostrado anteriormente e faça as modificações necessárias.

Importante: Faça na seção “Conclusões” do seu relatório a síntese do que você aprendeu ao
realizar este laboratório.

Referências Bibliográficas:

Os exemplos de simulação deste guia de laboratório foram adaptados de [2].

[1] The MathWorks, Simulink - Product Documentation,


http://www.mathworks.com/help/toolbox/simulink/

[2] Matsumoto, Élia Y., Simulink 5 – Fundamentos, Editora Érica, São Paulo, 2002.

[3] Ogata, K., Engenharia de Controle Moderno, 2a ed., Prentice-Hall do Brasil, Rio de Janeiro,
1990.

Observação:

Coloque o relatório (apenas arquivo em formato .pdf) da dupla e os respectivos arquivos auxiliares
no ftp server labattmot.ele.ita.br, username: ele13, password: itaele13. Dentro do diretório da
disciplina, cada dupla de alunos deve criar o seu próprio diretório (p. ex.,
\EES49_2012\Alunos\JoaoSilva_MariaAparecida), e nele colocar os seus respectivos arquivos.
Dentro do diretório da sua dupla, crie um sub-diretório LabX (X = 1, 2, ...) para cada experiência.
Abaixo do diretório \EES49_2012\Alunos\, o usuário “ele13” tem permissão de escrita de arquivos e
criação de diretórios mas não tem permissão de leitura/remoção de arquivos ou remoção de
diretórios.

23/Março/2012 10/10

You might also like