Você está na página 1de 22

UNIVERSIDADE DO ALGARVE - ESCOLA SUPERIOR DE TECNOLOGIA

ÁREA DEPARTAMENTAL DE ENGENHARIA ELECTROTÉCNICA


CURSO DE ENGENHARIA ELÉCTRICA E ELECTRÓNICA – 1º Ciclo

SIMULINK

Ano lectivo 2005-06


Índice
1. Introdução ..........................................................................................................1
2. Potencialidades do Simulink..............................................................................1
3. Iniciação ao ambiente Simulink.........................................................................2
4. Criação de uma nova área de trabalho ...............................................................2
5. Inserção de blocos..............................................................................................3
6. Simulação...........................................................................................................4
7. Descrição de alguns blocos ................................................................................6
8. Exemplos..........................................................................................................10
9. Programação em simulink...............................................................................12
9.1. Exemplo1 .................................................................................................13
9.2. Exemplo2 .................................................................................................15
Exercícios................................................................................................................. 18
Controlo Automático II Introdução ao Simulink Pág. 1

SIMULINK – AMBIENTE DE SIMULAÇÃO GRÁFICA


PARA MATLAB

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.

O presente documento visa mostrar o funcionamento, importância e utilidade que este


ambiente de trabalho tem no contexto da análise e projecção de sistemas de controlo.

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.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 2

3. Iniciação ao ambiente Simulink


Para começar uma sessão de simulink, é necessário executar o seguinte comando na
linha de comandos de Matlab:
»simulink

após o qual é disponibilizada uma janela relativa à livraria do simulink.

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).

Figura 1: Livraria do Simulink.

4. Criação de uma nova área de trabalho


- Seleccionar a opção New no menu File ou o respectivo ícone, , na barra de
tarefas da janela da livraria.
- Para criação de subsequentes ambientes de trabalho, pode recorrer ao menu
File, opção New, selecção Model de um dos ambientes previamente criados,
ou então clicar no respectivo ícone. A Figura 3 ilustra essa operação.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 3

Figura 2: Área de trabalho do Simulink: aspecto inicial.

Figura 3: Criação de uma nova área de trabalho em 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

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 4

trabalho ou livraria de simulink) e a área de trabalho destino – se a janela fonte


e destino forem as mesmas, estamos a mover o bloco.
- Clicando uma vez no botão direito do rato sobre o bloco, e mantendo-o
pressionado, arrastar o respectivo bloco entre a janela da fonte (área de
trabalho ou livraria de simulink) e a área de trabalho destino – se a janela fonte
e destino forem as mesmas, estamos a efectuar uma cópia do bloco.

A figura seguinte ilustra o resultado da cópia de vários blocos entre a livraria do


simulink e uma área de trabalho.

Figura 4: Área de trabalho do Simulink: presença de alguns componentes


frequentemente utilizados.

6. Simulação

Antes de iniciar a simulação relativa ao conteúdo de uma área de trabalho, é


necessário definir alguns parâmetros. Para isso, temos que:
- seleccionar o menu Simulation, opção parameters.

Aparece a janela da figura seguinte:

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 5

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.

Depois, e mediante a correcta interconexação de blocos, basta utilizar o menu


Simulation, opção start, para executar a simulação. Um exemplo de um sistema
pronto para execução é o apresentado na figura seguinte.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 6

7. Descrição de alguns blocos


A quantidade de blocos pré-definidos é enorme, pelo que nos vamos limitar a designar
a função daquelas de utilização mais regular.

Blocos pertencentes à biblioteca Continuous:


Incluem-se:
• representação de processos através de espaço de estados
• funções transferência na frequência
• representações de processos através de polos-zeros
• elementos de atraso e de memória
• etc.

Blocos pertencentes à biblioteca Discrete:


Incluem-se os blocos relativos à análise de sistemas discretos:
• bloco de atraso
• amostrador de topo-plano
• amostrador first-order-hold
• função de transferência discreta
• representação em espaço de estados para sistemas discretos

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 7

Alguns dos Blocos pertencentes à biblioteca Signals & Systems:


Incluem-se os blocos da mais diversa funcionalidade, embora relacionados com os
sistemas e sinais:
• multiplexadores e desmultiplexadores
• pontos de entrada e de saída
• máscaras de subsistemas
• etc.

Blocos pertencentes à biblioteca sinks:


Incluem-se os blocos relacionados com a observação e análise de variáveis do
sistema:
• gráficos temporais

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 8

• gráficos cruzados
• interface para envio de variáveis para suporte magnético e/ou sessão de Matlab
• etc.

Blocos pertencentes à biblioteca sources:


Incluem-se os blocos utilizados como referência ou sinal de entrada para sistemas:
• entrada constante, gerador de sinais, degrau, sinais sinusoidais
• sequências periódicas deterministas
• interface para recepção de valores de suporte magnético ou da sessão de
Matlab
• sequências aleatórias

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 9

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.

Blocos pertencentes à biblioteca simulink extras:

Em additional discrete encontram-se os blocos para sistemas discretos com


condições iniciais.

Em additional linear encontram-se os blocos para sistemas lineares com condições


iniciais e também controladores PID.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 10

Em additional sinks encontram-se outros blocos de tratamento de resultados, tais


como funções de correlação, funções densidade de potência e analisadores de
espectro.

Em flip flops encontram-se blocos representativos de circuitos com as propriedades


dos flip flops.

Em linearization encontram-se os blocos para linearização de sistemas.

E, em transformations encontram-se as transformações entre os diversos sistemas de


coordenadas.

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.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 11

2- Vamos criar o diagrama de blocos para um sistema de controlo composto pelo


processo anterior, mas utilizando um controlador PID série, com os seguintes valores
para as constantes de tempo: Ti=1s, Td=0s e Kp=2. A referência é uma função
degrau de valor unitário.

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.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 12

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.

Para proceder com este tipo de simulação, é aconselhável a criação de um script ou


então de uma função personalizada em Matlab (ficheiro *.m).

Na livraria do simulink encontramos muitas funções, mas vamo-nos limitar a


descrever as presentes na seguinte tabela.

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

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 13

Close_system Fecha a área de trabalho respectiva


Add_block Adiciona um novo bloco ao sistema
add_line Adiciona ligação entre dois blocos
delete_block Elimina um bloco
delete_line Elimina uma linha
set_param Define os parâmetros de determinado bloco, do sistema
respectivo
Get_param Obtém o valor dos parâmetros para determinado bloco, do
sistema respectivo
Find_system Procura por todos os sistemas activos – indica qual a
designação para cada bloco existente em simulink

9.1. Exemplo1

Pretende-se observar o comportamento de um sistema de controlo simples, composto


por um controlador Proporcional, de uma forma automática.

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.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 14

A figura seguinte mostra o diagrama de blocos do sistema, criado na área de trabalho


do simulink.

A função de suporte criada foi a seguinte:

% 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');

%Inicializa e Incrementa o valor de Kp


for Kp=1:10,

%vamos definir o valor de Kp


set_param('sistema/Gain','Gain',num2str(Kp));

%Vamos tentar alterar a função de transferência


if Kp==2 | Kp==4,
den=[1 2]/Kp;
set_param('sistema/TF1','Denominator',['[' num2str(den) ']']);
end

%simula o sistema
sim('sistema');

input('Pressione tecla para continuar...');

end

%fim da função

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 15

9.2. Exemplo2

Pretende-se caracterizar a estabilidade de alguns sistemas de controlo, em malha


aberta, salvaguardando os resultados das simulações em ficheiros separados.

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.

O diagrama de blocos inicial designou-se varios_sistemas e é ilustrado na figura


seguinte.

E o ficheiro script .m de suporte é o seguinte:

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 16

% 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');

%Inicializa e Incrementa o valor de Kp


for sistema=1:5,

%utilizamos um modelo de estado com uma entrada apenas


%também se poderia ler as matrizes de um ficheiro...
A=[0 -2 1;0 -1 2;1 0 -5]+rand(3);
B=[1;2;3];
C=[1 0 3];D=[0];

%Vamos tentar alterar o modelo de estado


if sistema==2,
A=[0 -3 2;0 -1 1;3 -1 -5];
B=[1 0;2 3;1 1];
C=[1 2 3;0 1 0];D=[0 0;0 0];

%----------------------
%É necessário alterar o diagrama de blocos, para ajustar ao
número de entradas...

%adiciona bloco multiplexador para juntar as entradas


add_block('built-in/mux', 'varios_sistemas/mux', 'inputs',
'2');

%adiciona nova entrada


add_block('built-in/step',
'varios_sistemas/u2','after','5','sampleTime','0');

%conecta as duas entradas com o multiplexador


add_line('varios_sistemas','u1/1','mux/1');
add_line('varios_sistemas','u2/1','mux/2');
delete_line('varios_sistemas','u1/1','sys/1');
add_line('varios_sistemas','mux/1','sys/1');
%------------------------

end

%guarda os resultados em variáveis no ambiente Matlab


nome=['y' num2str(sistema)];
set_param('varios_sistemas/To Workspace','VariableName', nome,
'SaveFormat','structurewithtime');

%guarda os resultados em ficheiro .mat


nome_var=['y' num2str(sistema)];
nome_fich=['fich' num2str(sistema)];

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Introdução ao Simulink Pág. 17

eval(['save ' nome_fich ' ' nome_var]);

%atribui as variáveis A,B,C,D aos parâmetros A,B,C,D do modelo de


espaço de estados
%NOTA: as variáveis devem estar definidas no ambiente Matlab

set_param('varios_sistemas/sys','A', 'A','B','B','C','C','D','D');

%simula o sistema
sim('varios_sistemas');

input('Pressione tecla para continuar...');

%necessario para garantir que o sistema volta a ser o inicial


if sistema==2,
save_system('varios_sistemas','varios_temp');
close_system('varios_temp');
open_system('varios_sistemas');
end

end
save_system('varios_sistemas','varios_temp');
close_system('varios_temp');

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Exercícios Simulink Pág. 18

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.

3) Suponha que era utilizado um controlador PID em série. O tempo de


simulação máximo pretendido é 40 segundos.
a) Sem recorrer a cálculos, identifique que valores para Kp, Ti e Td são
adequados para que o erro seja nulo e para que ts (5%) ≤ 10 segundos.
b) Qual o valor do erro final?
c) Visualize a curva do sinal de controlo.
d) Suponha que o processo também evidencia atraso em relação ao sinal de
controlo de 0.2 segundos. Coloque um bloco de atraso e observe o que
acontece na saída. E se o atraso for de 1 segundo? Diminua o valor da
constante de tempo dominante. O que observa na saída? Justifique.
e) Obtenha um sub-sistema da malha de realimentação.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Exercícios Simulink Pág. 19

II) Programação + simulink


Considere o diagrama de blocos seguinte.

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.

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica


Controlo Automático II Exercícios Simulink Pág. 20

c) Escreva o diagrama de blocos relativo ao sistema de II-3), em simulink.


d) Projecte o compensador por R.V.E. tal que a saída 1 não exiba erro em
relação à referência, e ts(2%)<10s.
e) Modifique o diagrama de d) para que reflicta o sistema+compensador.
f) Visualize a saída para o sistema compensado. Será necessário voltar a
calcular o valor dos ganhos de K?

2) Admitindo que seria desejável compensar o sistema, através um PID:


a) Obtenha a função de transferência. Após o qual:
(1) Determine o polinómio característico em malha fechada, incluindo a
F.T. do PID.
(2) Determine o polinómio pretendido para a malha fechada, em função
das especificações de III-1-d).
(3) Iguale os coeficientes de igual expoente em S e determine o valor de
Kp, Ti, e Td.
b) Faça a representação do sistema com o PID incluído em simulink.
c) Observe a saída do sistema.

3) Supondo a utilização de um controlador digital usando R.V.E:


a) Obtenha a F.T. discreta em função de T.
b) Projecte o compensador por R.V.E. tal que a saída 1 não exiba erro em
relação à referência, e ts(2%)<10s.
c) Trace o diagrama do sistema discreto+compensador.
d) Visualize a saída para o sistema discreto compensado. Compare com os
resultados obtidos em III-2-c).

EST- Universidade do Algarve Curso de Engenharia Eléctrica e Electrónica

Você também pode gostar