Professional Documents
Culture Documents
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:
“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.
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]).
Curv a 1 Scope
Soma
Sine Wave
Curv a 2
Sine Wave1
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:
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.
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).
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:
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.
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.
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.
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 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.
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:
[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