Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SIMULINK
1. Introdução
Através do ambiente Matlab é possível resolver problemas associados aos sistemas de
controlo, identificação de sistemas, equações diferenciais, sistemas de
telecomunicações, etc. Adicionalmente, foi criado um ambiente de trabalho que
permite recorrer às funções existentes em Matlab, através de um conjunto de blocos,
ou seja o ambiente Simulink.
2. Potencialidades do Simulink
Muito sucintamente podemos considerar alguns pontos de relevância e que se podem
encarar como vantagens em relação ao ambiente Matlab:
- Permite observar o comportamento dos sistemas de uma forma prática e fácil;
- Permite representar os sistemas de controlo como se de um diagrama de
blocos se tratasse;
- Aplicável para sistemas de controlo discretos;
- Cooperação entre o ambiente Matlab e o ambiente simulink (pode-se exportar
e importar informação entre ambos ambientes);
- Existência de um conjunto de blocos pré-definidos que incluem, controladores,
filtros, elementos somadores, funções de transferência, etc.;
- Capacidade de utilização de bibliotecas de tempo real para aplicações
prioritárias.
A figura seguinte mostra o aspecto inicial da livraria de simulink, para a versão 5.3 do
Matlab (na versão Matlab 4.x, a mesma livraria é constituída apenas pelos blocos
pertencentes ao directório Simulink).
5. Inserção de blocos
Na figura seguinte são apresentados alguns componentes disponíveis na livraria do
simulink.
Para os colocar na área de trabalho, pode-se recorrer a duas formas:
- Clicando uma vez no botão esquerdo do rato sobre o bloco, e mantendo-o
pressionado, arrastar o respectivo bloco entre a janela da fonte (área de
6. Simulação
Desta janela, o que há a reter são os parâmetros Start time e Stop time, que indicam
o tempo de inicio e de fim da simulação (Atenção que para a versão 4.x do Matlab o
aspecto da janela é diferente, embora sejam apresentados os mesmos parâmetros). Os
restantes parâmetros deverão ser mantidos inalterados.
• gráficos cruzados
• interface para envio de variáveis para suporte magnético e/ou sessão de Matlab
• etc.
Como complemento aos blocos apresentados atrás, existe ainda a biblioteca simulink
extras e power systems. Na versão Matlab 4.x, simulink extras está incluida na
livraria de simulink.
8. Exemplos
1- Vamos criar um diagrama de blocos para um sistema de controlo composto por um
processo de segunda ordem. Os requisitos são:
- observar a resposta para uma entrada em degrau;
- guardar a saída na sessão do Matlab, através da variável y;
- limitar o tempo de execução a 10 segundos.
Uma possível área de trabalho para concretizar o pretendido está ilustrada na figura
seguinte.
Os requisitos são:
- observar a saída e o sinal de controlo;
- guardar a saída na sessão do Matlab, através da variável y;
- guardar o sinal de controlo na sessão do Matlab, através da variável u;
- utilizar realimentação negativa unitária;
- limitar o tempo de execução a 100 segundos.
Uma possível área de trabalho para concretizar o pretendido, está ilustrada na figura
seguinte.
9. Programação em simulink
Nesta secção pretende-se mostrar como é possível utilizar o ambiente simulink
recorrendo ao ambiente de programação em Matlab. Ou seja, vamos ver que funções
nos permite gerar, executar e analisar um sistema de controlo representado em
simulink, a partir da sessão de Matlab. A grande vantagem associada a esta alternativa
de utilização de simulink está relacionada com a possibilidade de se alterar
dinamicamente os parâmetros de determinados blocos de simulink.
Função Descrição
sim Simula o sistema
New_system Designa um novo sistema em simulink (na área de trabalho)
Open_system Abre um sistema em simulink
9.1. Exemplo1
Requisitos:
- referência é um degrau unitário
- função de transferência de 1º ordem e de tipo 0
- observação da saída
- realimentação unitária
- controlo proporcional em cascata
Passos a cumprir:
- abertura da sessão de Matlab;
- abertura da livraria de simulink;
- criação de uma nova área de trabalho;
- construção do diagrama de blocos representativo do sistema implementado;
- escrita do código em matlab para suporte à programação em simulink.
- Chamada da função/script criado em matlab.
% Function []=simsistema()
% Função que modifica o valor de Kp para um sistema
% de controlo com controlador Proporcional.
%
% parâmetros de entrada:
%
%
% parâmetros de saída:
%
function simsistema()
open_system ('sistema');
%simula o sistema
sim('sistema');
end
%fim da função
9.2. Exemplo2
Requisitos:
- referência é um degrau unitário (podem existir diversas entradas, consoante o
sistema)
- bloco modelo de estado
- observação da saída e salvaguarda em ficheiro
Passos a cumprir:
- abertura da sessão de Matlab;
- abertura da livraria de simulink;
- criação de uma nova área de trabalho;
- construção do diagrama de blocos representativo do sistema inicial
implementado;
- escrita do código em matlab para suporte à programação em simulink.
- Chamada da função/script criado em matlab.
% script sim_varios_sistemas
% Função que simula a resposta ao degrau para vários sistemas
% SISO e MIMO
%
% parâmetros de entrada:
%
%
% parâmetros de saída:
%
open_system ('varios_sistemas');
%----------------------
%É necessário alterar o diagrama de blocos, para ajustar ao
número de entradas...
end
set_param('varios_sistemas/sys','A', 'A','B','B','C','C','D','D');
%simula o sistema
sim('varios_sistemas');
end
save_system('varios_sistemas','varios_temp');
close_system('varios_temp');
SIMULINK – EXERCÍCIOS
I) Representação de sistemas contínuos
Considere o processo com a função de transferência
A( s + 1)
G (s) = .
s ( s + 10)( s + 3 − 2 j )( s + 3 + 2 j )
1) Represente um diagrama de blocos para simular a saída do processo para uma
entrada em degrau unitário. O tempo de simulação máximo pretendido é 100
segundos.
a) Utilizando o bloco função transferência, e A=10.
b) Utilizando a R.E.E e A=40.
2) Analise a resposta do sistema em malha fechada para realimentação negativa
unitária da saída, para A=40.
a) Qual o valor do erro final?
b) Visualize a curva do erro.
1) Represente-o em simulink.
2) Recorrendo a um multiplexador, visualize a entrada e saída no mesmo gráfico.
3) Supondo que o sistema é descrito pelas equações dinâmicas seguintes:
& 0 3 X+ 1
X=
0
U
-5 -6 0 1
1 -2 0 0
Y= X+ U
-3 0 0 0
a) corrija o diagrama de modo a que a entrada u1 seja o degrau unitário e a
entrada u2 seja uma sinusoide de amplitude 1.
b) corrija o diagrama para que o estado x1 seja guardado no ambiente Matlab.
c) Crie uma função com o nome controlo.m que irá permitir implementar a
seguinte regra de controlo:
u1 =E1 -(y1 +2y 2 )
u 2 =3y1 -E 2
onde,
E1 e E2 representam as entradas de referência.
u1 e u2 representam os sinais de controlo.
y1 e y2 representam as saídas do sistema.
e adicione o bloco respectivo no diagrama.
III) Compensação
Tenha em conta o sistema contínuo indicado em II-3).
1) Admitindo que seria desejável compensar o sistema, através de R.V.E:
a) Obtenha a F.T. (em papel e lápis).
b) Converta o sistema para a F.C. Controladora.