Senhores alunos:
No link abaixo é possível baixar o gabarito da prova.
O único item trabalhoso era o da intersecção (valia 1,5).
Por ser trabalhoso, deveria ser feito após a resolução das outras questões!
Recuperação apenas para quem compareceu a avaliação ou entregou atestado:
DIA 15/12 com início às 8 horas e término às 11 h 30 min.
- Gabarito.
terça-feira, 9 de dezembro de 2014
quarta-feira, 3 de dezembro de 2014
Exercícios de Preparação para a segunda avaliação de Sistemas de Controle
Srs alunos
O link abaixo dá acesso a lista de exercícios sobre Lugar das Raízes (Root Locus), Diagramas de Bode e Critério de Routh-Hurwitz.
Exercícios sobre estabilidade de Sistemas de Controle.
E, no link abaixo a solução de todos exercícios da última lista.
Solução dos Exercícios - Routh/ROOTLOCUS/Bode.
Solução dos Exercícios - Routh/ROOTLOCUS/Bode.
att
Villaça
domingo, 30 de novembro de 2014
Programação de Computadores I - Aula de 01/12 - Scilab: Arquivos e funções
Senhores alunos:
Encontram-se disponíveis neste link as notas referentes a nossa próxima aula.
Clique aqui para conhecer a próxima tarefa.
Até amanhã!
segunda-feira, 24 de novembro de 2014
Sistemas de Controle - Scripts dos controladores
Senhores alunos:
Abaixo apresento os scripts Scilab para projeto de controladores PID pelo Método Analítico e dos controladores em avanço ou atraso de fase pelo Lugar das raízes.
Até amanhã.
Script PID:
s=%s;
ng = input("Entre com o numerador da FTMA da planta - polinômio em s: ")
dg = input("Entre com o denominador da FTMA da planta - polinômio em s:")
wg = input("Entre com a frequencia de cruzamento de ganho: ")
pm = input("Entre com a margem de fase: ")
ki = input("Entre com Ki: ")
ngc=horner(ng,%i*wg); dgc=horner(dg,%i*wg); g=ngc/dgc;
thetar=(pm-180)*3.141592/180;
ejtheta=cos(thetar)+%i*sin(thetar);
sol=(ejtheta/g)+%i*(ki/wg)
x=imag(sol);
r=real(sol);
kp=r;
kd=x/wg;
if ki~=0
dk=s;
nk=kd*s^2+ kp*s+ ki;
else dk=1;
nk=kd*s + kp;
end;
GC=syslin('c',nk,dk);
print(%io(2),GC,"Compensador");
Script Avanço ou atraso - Root Locus:
s=%s;
z = input("Entre com o amortecimento desejado : ")
wn = input("Entre com a frequencia natural desejada:")
ng = input("Entre com o numerador de G- polinomio em s: ")
dg = input("Entre com denominador de G - polinomio em s: ")
H = input("Entre com H: ")
KC=input("Entre com o ganho KC: ")
s1 = -z*wn + %i*wn*sqrt(1-z^2);
ms=abs(s1);
ts=atan(imag(s1),real(s1));
ns1=horner(ng*H,s1); ds1=horner(dg,s1); g=ns1/ds1;
mg=abs(g);
tg=atan(imag(g),real(g));
tauz=(sin(ts)-KC*mg*sin(tg-ts))/(KC*mg*ms*sin(tg));
taup=-(KC*mg*sin(ts)+sin(tg+ts))/(ms*sin(tg));
nk=KC*(tauz*s+1);
dk=taup*s+1;
GC=syslin('c',nk,dk);
print(%io(2),s1,"s1");
print(%io(2),ms,"modulo de s1");
print(%io(2),ts*180/%pi,"fase de s1");
print(%io(2),mg,"modulo de G");
print(%io(2),tg*180/%pi,"fase de G");
print(%io(2),GC,"Compensador")
print(%io(2),tauz,"tauz");
print(%io(2),taup,"tauz");
print(%io(2),GC,"Compensador");
G=syslin('c',ng,dg);
G1=G*GC;
FTMF = G1/.H;
t=linspace(0,0.005,1000);
y=csim('step',t,FTMF);
plot2d(t,2.5*y);
xgrid();
Abaixo apresento os scripts Scilab para projeto de controladores PID pelo Método Analítico e dos controladores em avanço ou atraso de fase pelo Lugar das raízes.
Até amanhã.
Script PID:
s=%s;
ng = input("Entre com o numerador da FTMA da planta - polinômio em s: ")
dg = input("Entre com o denominador da FTMA da planta - polinômio em s:")
wg = input("Entre com a frequencia de cruzamento de ganho: ")
pm = input("Entre com a margem de fase: ")
ki = input("Entre com Ki: ")
ngc=horner(ng,%i*wg); dgc=horner(dg,%i*wg); g=ngc/dgc;
thetar=(pm-180)*3.141592/180;
ejtheta=cos(thetar)+%i*sin(thetar);
sol=(ejtheta/g)+%i*(ki/wg)
x=imag(sol);
r=real(sol);
kp=r;
kd=x/wg;
if ki~=0
dk=s;
nk=kd*s^2+ kp*s+ ki;
else dk=1;
nk=kd*s + kp;
end;
GC=syslin('c',nk,dk);
print(%io(2),GC,"Compensador");
Script Avanço ou atraso - Root Locus:
s=%s;
z = input("Entre com o amortecimento desejado : ")
wn = input("Entre com a frequencia natural desejada:")
ng = input("Entre com o numerador de G- polinomio em s: ")
dg = input("Entre com denominador de G - polinomio em s: ")
H = input("Entre com H: ")
KC=input("Entre com o ganho KC: ")
s1 = -z*wn + %i*wn*sqrt(1-z^2);
ms=abs(s1);
ts=atan(imag(s1),real(s1));
ns1=horner(ng*H,s1); ds1=horner(dg,s1); g=ns1/ds1;
mg=abs(g);
tg=atan(imag(g),real(g));
tauz=(sin(ts)-KC*mg*sin(tg-ts))/(KC*mg*ms*sin(tg));
taup=-(KC*mg*sin(ts)+sin(tg+ts))/(ms*sin(tg));
nk=KC*(tauz*s+1);
dk=taup*s+1;
GC=syslin('c',nk,dk);
print(%io(2),s1,"s1");
print(%io(2),ms,"modulo de s1");
print(%io(2),ts*180/%pi,"fase de s1");
print(%io(2),mg,"modulo de G");
print(%io(2),tg*180/%pi,"fase de G");
print(%io(2),GC,"Compensador")
print(%io(2),tauz,"tauz");
print(%io(2),taup,"tauz");
print(%io(2),GC,"Compensador");
G=syslin('c',ng,dg);
G1=G*GC;
FTMF = G1/.H;
t=linspace(0,0.005,1000);
y=csim('step',t,FTMF);
plot2d(t,2.5*y);
xgrid();
terça-feira, 18 de novembro de 2014
Programação de Computadores I - Aula de 24/11 - Arquivos
Senhores alunos:
Encontram-se disponíveis neste link as notas referentes a nossa próxima aula.
Conforme tratado com os presentes no início da aula passada, nossa próxima aula inicia às 7h e 30min.
Boa leitura!
Boa leitura!
segunda-feira, 17 de novembro de 2014
Circuitos Elétricos - FIltros Passivos: Gabarito das listas de exercícios.
Senhores alunos:
Respostas dos exercícios propostos sobre filtros passivos do livro texto:
14.47 - fc = 796 kHz
14.48 - 1
|G| = ------------------------------------------------
sqrt [ (1 - w^2 * LC) ^2 + (wL/R)^2 ]
Se w = 0 --> G = 1
Se w = 1 / sqrt(LC) --> 0 <G < 1
Se w = infinito --> G = 0
Logo o Filtro é Passa Baixas
14.49 - 0,2 rad/s , -14 dB e -84,3 graus
14.50 - Filtro PA e fc = 318,2 Hz
14.51 - R = 1200 ohms (Valor comercial)
14.52 - R = 27k (valor comercial)
14.53 - R = 18k , L = 2,9 H e Q = 10,5
14.54 - Considerando a configuração RLC série:
B = 0,5 rad/s
Com C= 10 mF --> L = 1H
R = 0.5 ohms
14.55 - 1,56 kHz< f < 1,62 kHz , Q = 25
14.56 - Considerar na demonstração a configuração RLC serie
14.57- (a) wo = 1 rad/s e B = 3 rad/s
(b) wo = 1 rad/s e B = 3 rad/s
14.58 - fo = 79,6 kHz
fci = 78 kHz
fcs = 81,2 kHz
Q = 250
14.59 - B - 2400 rad/s e wo = 15811 rad/s
Respostas dos exercícios propostos sobre filtros passivos - 6 questões:
1) Para R1 = 100k:
C1 = 10 nF, C2 = 2nF, , R2 = 10k,
2) Q = 0,29
3) f0 = 2 kHz
Q = 0,67
Para L = 10mH --> C= 0,68uF e R =180 (Comerciais)
4) Correção - Ruido de 60 Hz!
FPA : R = 3,9 k
C = 68 nF
Redução - 1,32dB
5) FPB: fc = 7860,9 Hz
C = 1,2 nF
R = 16,87 k -> 18k
6) Vo = 1
Vi ( 1 + R2 + wc1 ) + j ( w - wc1 )
R1 wc2 wc2 w
Respostas dos exercícios propostos sobre filtros passivos do livro texto:
14.47 - fc = 796 kHz
14.48 - 1
|G| = ------------------------------------------------
sqrt [ (1 - w^2 * LC) ^2 + (wL/R)^2 ]
Se w = 0 --> G = 1
Se w = 1 / sqrt(LC) --> 0 <G < 1
Se w = infinito --> G = 0
Logo o Filtro é Passa Baixas
14.49 - 0,2 rad/s , -14 dB e -84,3 graus
14.50 - Filtro PA e fc = 318,2 Hz
14.51 - R = 1200 ohms (Valor comercial)
14.52 - R = 27k (valor comercial)
14.53 - R = 18k , L = 2,9 H e Q = 10,5
14.54 - Considerando a configuração RLC série:
B = 0,5 rad/s
Com C= 10 mF --> L = 1H
R = 0.5 ohms
14.55 - 1,56 kHz< f < 1,62 kHz , Q = 25
14.56 - Considerar na demonstração a configuração RLC serie
14.57- (a) wo = 1 rad/s e B = 3 rad/s
(b) wo = 1 rad/s e B = 3 rad/s
14.58 - fo = 79,6 kHz
fci = 78 kHz
fcs = 81,2 kHz
Q = 250
14.59 - B - 2400 rad/s e wo = 15811 rad/s
Respostas dos exercícios propostos sobre filtros passivos - 6 questões:
1) Para R1 = 100k:
C1 = 10 nF, C2 = 2nF, , R2 = 10k,
2) Q = 0,29
3) f0 = 2 kHz
Q = 0,67
Para L = 10mH --> C= 0,68uF e R =180 (Comerciais)
4) Correção - Ruido de 60 Hz!
FPA : R = 3,9 k
C = 68 nF
Redução - 1,32dB
5) FPB: fc = 7860,9 Hz
C = 1,2 nF
R = 16,87 k -> 18k
6) Vo = 1
Vi ( 1 + R2 + wc1 ) + j ( w - wc1 )
R1 wc2 wc2 w
quarta-feira, 12 de novembro de 2014
Programação de Computadores I - Aula de 17/11
Senhores alunos:
Encontram-se disponíveis neste link as notas referentes a nossa próxima aula.
Boa leitura!
Encontram-se disponíveis neste link as notas referentes a nossa próxima aula.
Boa leitura!
Introdução a Programação I - Aula de 12/11
Senhores alunos:
No link abaixo, é possível obter as notas de nossa aula de hoje.
Estruturas.
Até a noite.
No link abaixo, é possível obter as notas de nossa aula de hoje.
Estruturas.
Até a noite.
terça-feira, 11 de novembro de 2014
Sistema de Controle - Gabarito da Segunda Parte da Primeira Avaliação
Senhores Alunos
O gabarito das questões teóricas encontra-se abaixo. O Gabarito das questões práticas neste link.
1) Tempo de subida é o tempo que a resposta a uma entrada em degrau leva para excursionar de 10 a 90% do seu valor final.
2) Quando o amortecimento é razoavelmente maior do que 1.
3) a) O denominador apresenta o termo s^2.
b) Degrau e rampa.
Boa Semana
O gabarito das questões teóricas encontra-se abaixo. O Gabarito das questões práticas neste link.
1) Tempo de subida é o tempo que a resposta a uma entrada em degrau leva para excursionar de 10 a 90% do seu valor final.
2) Quando o amortecimento é razoavelmente maior do que 1.
3) a) O denominador apresenta o termo s^2.
b) Degrau e rampa.
Boa Semana
segunda-feira, 10 de novembro de 2014
Prog. Computadores I - Solução da Tarefa I no Scilab
Senhores alunos:
Em função das tarefas entregues não estarem bem adaptadas ao ambiente Scilab, apresento, no link abaixo, a solução da tarefa.
Script Scilab - Tarefa I.
Boa semana!
Em função das tarefas entregues não estarem bem adaptadas ao ambiente Scilab, apresento, no link abaixo, a solução da tarefa.
Script Scilab - Tarefa I.
Boa semana!
domingo, 9 de novembro de 2014
Programação de Computadores I - Aula de 10/11
Senhores alunos:
Encontram-se no link abaixo, as notas de nossa próximas aula.
Funções recursivas.
Bom início de de semana!
Encontram-se no link abaixo, as notas de nossa próximas aula.
Funções recursivas.
Bom início de de semana!
sexta-feira, 31 de outubro de 2014
Prova de Recuperação de Programação de Computadores I
Senhores Alunos
Lembro que na próxima segunda-feira, dia 3 de novembro, faremos a nossa prova de recuperação das 7h 30 min às 9h 20 min.
Bom final de semana a todos!
Lembro que na próxima segunda-feira, dia 3 de novembro, faremos a nossa prova de recuperação das 7h 30 min às 9h 20 min.
Bom final de semana a todos!
quarta-feira, 22 de outubro de 2014
sexta-feira, 17 de outubro de 2014
Eleições
Depois do debate de ontem no SBT, ou melhor do "bate boca", não posso deixar de dar razão aos anarquistas, que lutam por um mundo sem governos, ou melhor sem "desgovernos":
"Mais importante do que tirar os ratos do navio é afundar o navio, para que este não possa ser ocupado por ratos novos".
Bom final de semana!
quarta-feira, 15 de outubro de 2014
Programação de Computadores I - Aulas de 20/10 e 03/11
Senhores alunos:
Encontram-se no link abaixo, as notas de nossas próximas aulas.
Subprogramas e ponteiros.
Bom final de semana!
-----------------------------------------------------------------
Keywords: pointers, subprograms, C programming, Scilab.
Encontram-se no link abaixo, as notas de nossas próximas aulas.
Subprogramas e ponteiros.
Bom final de semana!
-----------------------------------------------------------------
Keywords: pointers, subprograms, C programming, Scilab.
terça-feira, 14 de outubro de 2014
Programação de Computadores - Solução exercício sobre estruturas
Senhores alunos:
Segue no final do post, o código fonte de uma solução para o exercício:
Criar uma estrutura para armazenar informação sobre alunos de uma disciplina:
Você usará um vetor (matriz) de estruturas, em que o número de elementos é o número alunos.
Por enquanto, fazer a entrada de dados pelo teclado (veremos, mais à frente, como importá-los de um arquivo):
Keywords - struct, sort, C programming.
--------------------------------------------------------------------------------
#include <stdio.h>
struct turma {
char nome[20];
char mat[7];
unsigned short int n1, n2, n3;
float media;
};
int main()
{
struct turma alunos[5],temp;
char controle;
int j=0,k,i;
do {
fflush(stdin);
printf("Entre com o nome do aluno\n");
scanf("%[^\n]s",alunos[j].nome);
printf("Entre com o numero de matric. com 6 caracteres\n");
scanf("%s",alunos[j].mat);
printf("Entre com as 3 notas do aluno separadas por espaco\n");
scanf("%hu %hu %hu",&alunos[j].n1,&alunos[j].n2,&alunos[j].n3);
alunos[j].media = (alunos[j].n1 + alunos[j].n2 +alunos[j].n3)/3.0;
j++;
if(j==5)
{
printf("TURMA COMPLETA\n");
break;
}
printf("Digite <q> + <ENTER> para sair ou qquer tecla + <ENTER> para novo aluno\n");
fflush(stdin);
controle=getchar();
} while(controle!='q'&&controle!='Q');
//Imprime alunos com a media
printf("Alunos Aprovados\t Media\n");
for(k=0;k<j;k++)
{
if(alunos[k].media>=6)
printf("%s\t\t\t %.2f\n",alunos[k].nome,alunos[k].media);
}
//Ordenação
for(k=0;k<j;k++)
for(i=0;i<j-k-1;i++) // A cada elemento ordenado, ao executar o for interno
{ // necessito uma iteração a menos por isso "j-k"
// o menos "1" se deve ao fato de compararmos [i] com [i+1]
if(alunos[i].media<alunos[i+1].media)
{
temp = alunos[i];
alunos[i] = alunos[i+1];
alunos[i+1]=temp;
}
}
printf("\n\nAlunos\t\t\t Media\n");
for(k=0;k<j;k++)
{
printf("%s\t\t\t %.2f\n",alunos[k].nome,alunos[k].media);
}
return 0;
}
Segue no final do post, o código fonte de uma solução para o exercício:
Criar uma estrutura para armazenar informação sobre alunos de uma disciplina:
- Nome do aluno
- Número de matrícula
- Notas de três alunos
- Média das notas
Você usará um vetor (matriz) de estruturas, em que o número de elementos é o número alunos.
Por enquanto, fazer a entrada de dados pelo teclado (veremos, mais à frente, como importá-los de um arquivo):
- A média deve ser calculada
- O programa deve informar os alunos aprovados (média final > = 6).
- Mostrar na tela, também, os alunos em ordem de melhor média.
Keywords - struct, sort, C programming.
--------------------------------------------------------------------------------
#include <stdio.h>
struct turma {
char nome[20];
char mat[7];
unsigned short int n1, n2, n3;
float media;
};
int main()
{
struct turma alunos[5],temp;
char controle;
int j=0,k,i;
do {
fflush(stdin);
printf("Entre com o nome do aluno\n");
scanf("%[^\n]s",alunos[j].nome);
printf("Entre com o numero de matric. com 6 caracteres\n");
scanf("%s",alunos[j].mat);
printf("Entre com as 3 notas do aluno separadas por espaco\n");
scanf("%hu %hu %hu",&alunos[j].n1,&alunos[j].n2,&alunos[j].n3);
alunos[j].media = (alunos[j].n1 + alunos[j].n2 +alunos[j].n3)/3.0;
j++;
if(j==5)
{
printf("TURMA COMPLETA\n");
break;
}
printf("Digite <q> + <ENTER> para sair ou qquer tecla + <ENTER> para novo aluno\n");
fflush(stdin);
controle=getchar();
} while(controle!='q'&&controle!='Q');
//Imprime alunos com a media
printf("Alunos Aprovados\t Media\n");
for(k=0;k<j;k++)
{
if(alunos[k].media>=6)
printf("%s\t\t\t %.2f\n",alunos[k].nome,alunos[k].media);
}
//Ordenação
for(k=0;k<j;k++)
for(i=0;i<j-k-1;i++) // A cada elemento ordenado, ao executar o for interno
{ // necessito uma iteração a menos por isso "j-k"
// o menos "1" se deve ao fato de compararmos [i] com [i+1]
if(alunos[i].media<alunos[i+1].media)
{
temp = alunos[i];
alunos[i] = alunos[i+1];
alunos[i+1]=temp;
}
}
printf("\n\nAlunos\t\t\t Media\n");
for(k=0;k<j;k++)
{
printf("%s\t\t\t %.2f\n",alunos[k].nome,alunos[k].media);
}
return 0;
}
domingo, 12 de outubro de 2014
Programação de Computadores I - Aula de 13/10
Senhores alunos:
Nos link abaixos, disponibilizam-se o material da aula de amanhã e o gabarito da primeira avaliação:
Estruturas.
Primeira Avaliação.
Até amanhã.
Nos link abaixos, disponibilizam-se o material da aula de amanhã e o gabarito da primeira avaliação:
Estruturas.
Primeira Avaliação.
Até amanhã.
quinta-feira, 9 de outubro de 2014
Sistemas de Controle - Tarefa II
Senhores alunos:
A partir do link abaixo, faça o download da tarefa sobre "Resposta transitória e erros em regime permanente".
Tarefa II.
Até amanhã!
A partir do link abaixo, faça o download da tarefa sobre "Resposta transitória e erros em regime permanente".
Tarefa II.
Até amanhã!
Circuitos Elétricos III - Lista de exercícios: ressonância e função de transferência.
Senhores alunos:
Cliquem aqui para baixar uma lista com exercícios sobre Função de Transferência selecionados a partir do livro texto (SADIKU) e aqui para baixar uma lista com exercícios sobre Ressonância selecionados a partir do livro texto (SADIKU) e de EDMINISTER, Joseph. Circuitos Elétricos. Rio de Janeiro: McGraw-Hill do Brasil, 1971.
Até amanhã!
quarta-feira, 8 de outubro de 2014
Lista de Exercícios - Sistemas de Controle
Senhores Alunos:
A partir do link abaixo é possível acessar a lista complementar sobre resposta transitória e erros em regime permanente.
Lista complementar - segunda avaliação.
**** Correção das Respostas ****
**** Questão 2 (a): ess =0 ****
**** Questão 4: Kv = 1,667. ****
*****************************
Até breve!
domingo, 5 de outubro de 2014
Programação de Computadores I - aula de 6/10
Senhores alunos:
As notas relativas a nossa próxima aula podem ser lidas no link abaixo.
Incluo neste post a primeira tarefa que deve ser entregue por correio eletrônico em 16/10.
Até amanhã!
Keywords: arrays, matrices , composite data types, C programming language, Scilab
quarta-feira, 24 de setembro de 2014
Introdução a Programação C - Aula de 24/09
Senhores alunos:
Segue o link para acessar o material da nossa aula de hoje:
- Classes de Armazenamento;
- O Pré-processador C e as macros.
Até a noite!
terça-feira, 23 de setembro de 2014
Programação de Computadores I - Guia de referência rápida para o Scilab
Senhores alunos:
Estou disponibilizando uma primeira versão do "Cartão de referência do Scilab".
Peço que leiam e verifiquem possíveis erros.
Boa semana!
Keywords: Scilab, reference card.
Estou disponibilizando uma primeira versão do "Cartão de referência do Scilab".
Peço que leiam e verifiquem possíveis erros.
Boa semana!
Keywords: Scilab, reference card.
sexta-feira, 19 de setembro de 2014
Programação de Computadores I - Aula de 22/09
Senhores alunos:
As notas relativas a nossa próxima aula podem ser lidas no link abaixo.
Incluo neste post exercícios que podem ser utilizados em uma avaliação escrita.
Até a próxima postagem!
Keywords: select, case, C programming language, Fortran, Scilab.
Até a próxima postagem!
Keywords: select, case, C programming language, Fortran, Scilab.
segunda-feira, 15 de setembro de 2014
Lista de exercícios sobre transitórios de segunda ordem
Senhores Alunos:
Disponibilizo, a lista de exercícios para preparação para a avaliação dos transitórios de segunda ordem. Apenas o primeiro exercício não foi selecionado do livro texto.
A propósito, no primeiro exercício, o primeiro gráfico representa a corrente no indutor em um circuito RL série, medida em ampères. O segundo gráfico representa a tensão no capacitor de um circuito RLC série, medida em volts.
Keywords: transient response, second-order, parallel RLC circuit, series RLC circuits, exercises.
Respostas:
1. R = 5 Ohms
L = 0,32 H
C = 3,7 mF
Valores aproximados.
8.12 a) C > 6 mF b) C = 6 mF c) C < 6 mF
8.13 R > 120 Ohms
8.14 v = -1,33 (e^-0,5t - e^-0,2t)
8.15 L = 25H, C= 0,2 mF e R = 750 Ohms
8.22 C = 0,05 uF
8.23 C = 40 mF
8.24 i = e^-10t ( 4 cos 19,36 t + 1,05 sen 19,36 t)
8.30 C = 150 nF
8.31 VL(0+) = 80
8.36 v = 35 e^-0,8t (15 sen 0,6t + 20 sen 0,6 t)
i = 5 e^-0,8t sen 0,6t
8.43 R = 8 ohms e C= 2,075 mF
8.47 v = 200 t e^-10t
8.53 i'' + (5/4) i' + 100 i = 600
Transitórios RLC de segunda ordem - Script com Scilab
Senhores Alunos:
Segue, abaixo, o script Scilab completo para o cálculo das constantes da solução das equações diferenciais e o traçado dos gráfico da corrente e da tensão dos transitórios RLC série e paralelo de segunda ordem.
Bom uso!
Keywords: transient response, second-order, parallel RLC circuit, series RLC circuit, Scilab.
-----------------------------------------------------------------------
clc;
clear ;
xdel(winsid());
disp('Avaliação da Corrente no transitorio RLC de 2a ordem');
Tipo = input('Informe <1> para circuito serie <2> para paralelo: ')
disp('Entrada de Dados');
R = input('Valor de R =');
L = input('Valor de L =');
C = input('Valor de C =');
I0 = input('Valor de I0 =');
V0 = input('Valor de V0 =');
w0 = 1/(sqrt(L*C));
if Tipo==1
Vs = input('Valor de Vs =');
dI0 = -(-Vs+R*I0+V0)/L;
dV0 = I0/C
alpha = R/(2*L);
else
Is = input('Valor de Is =');
dV0 = -(-Is+I0+V0/R)/C;
dI0 = V0/L;
alpha = 1/(2*R*C);
end
printf('di(0)/dt = %.2f, alpha = %.2f, w0 = %.2f\n',dI0,alpha,w0);
printf('dv(0)/dt = %.2f\n',dV0);
if Tipo==1
if alpha<w0
disp('Caso subamortecido');
wd = sqrt(w0^2-alpha^2);
A1 = I0;
A2 = (dI0 + alpha*A1)/wd;
A3 = V0 - Vs;
A4 = (dV0 + alpha*A3)/wd;
printf('s1 = %.2f + j%.2f, s2 = %.2f - j%.2f\n',-alpha,wd,-alpha,wd);
printf('wd = %.2f\n',wd);
t = 0:0.001:5/alpha;
i = exp(-alpha*t).*(A1*cos(wd*t) + A2*sin(wd*t));
v = exp(-alpha*t).*(A3*cos(wd*t) + A4*sin(wd*t)) + Vs;
elseif alpha>w0
disp('Caso superamortecido');
delta = sqrt(alpha^2-w0^2);
s1 = -alpha + delta;
s2 = -alpha - delta;
A2 = (s1*I0 -dI0)/(2*delta);
A1 = I0 - A2;
A4 = (s1*(V0-Vs)-dV0)/(2*delta);
A3 = V0 - Vs - A4;
printf('s1 = %.2f, s2 = %.2f\n',s1,s2);
tau = (1/s1)*(A1/A2); // pondera em relação as constantes
t = 0:0.001:6*abs(tau);
i = A1*exp(s1*t) + A2*exp(s2*t);
v = A3*exp(s1*t) + A4*exp(s2*t) + Vs;
else
disp('Caso de amortecimento crítico');
s = -alpha;
A1 = I0;
A2 = dI0 + alpha*A1;
A3 = V0 - Vs;
A4 = dV0 + alpha*A3;
printf('s = %.2f\n',s);
t = 0:0.001:5/alpha;
i = (A1 + A2*t).*exp(s*t);
v = (A3 + A4*t).*exp(s*t) + Vs;
end
else
if alpha<w0
disp('Caso subamortecido');
wd = sqrt(w0^2-alpha^2);
A3 = V0;
A4 = (dV0 + alpha*A3)/wd;
A1 = I0 - Is;
A2 = (dI0 + alpha*A1)/wd;
printf('s1 = %.2f + j%.2f, s2 = %.2f - j%.2f\n',-alpha,wd,-alpha,wd);
printf('wd = %.2f\n',wd);
t = 0:0.001:5/alpha;
v = exp(-alpha*t).*(A3*cos(wd*t) + A4*sin(wd*t));
i = exp(-alpha*t).*(A1*cos(wd*t) + A2*sin(wd*t)) + Is;
elseif alpha>w0
disp('Caso superamortecido');
delta = sqrt(alpha^2-w0^2);
s1 = -alpha + delta;
s2 = -alpha - delta;
A4 = (s1*V0 -dV0)/(2*delta);
A3 = V0 - A4;
A2 = (s1*(I0-Is)-dI0)/(2*delta);
A1 = I0 - Is - A2;
printf('s1 = %.2f, s2 = %.2f\n',s1,s2);
tau = (1/s1)*(A1/A2);// pondera em relação as constantes
t = 0:0.001:6*abs(tau);
v = A3*exp(s1*t) + A4*exp(s2*t);
i = A1*exp(s1*t) + A2*exp(s2*t) + Is;
else
disp('Caso de amortecimento crítico');
s = -alpha;
A3 = V0;
A4 = dV0 + alpha*A3;
A1 = I0 - Is;
A2 = dI0 + alpha*A1;
printf('s = %.2f\n',s);
t = 0:0.001:5/alpha;
v = (A3 + A4*t).*exp(s*t);
i = (A1 + A2*t).*exp(s*t) + Is;
end
end
printf('Constantes ED corrente, A1 = %.2f, A2 = %.2f\n',A1,A2);
printf('Constantes ED tensao, A1 = %.2f, A2 = %.2f\n',A3,A4);
subplot(211);
plot(t,i)
xlabel('Tempo (s)');
ylabel('Corrente (A)');
xgrid;
subplot(212);
plot(t,v)
xlabel('Tempo (s)');
ylabel('Tensão (A)');
xgrid;
Gabarito exercícios de controle
Senhores alunos:
Neste link é possível baixar o gabarito da lista de exercícios disponibilizada para preparação para a primeira avaliação.
Até amanhã.
Neste link é possível baixar o gabarito da lista de exercícios disponibilizada para preparação para a primeira avaliação.
Até amanhã.
quinta-feira, 11 de setembro de 2014
Gabarito da Primeira Avaliação do semestre 2014/1
Senhores alunos:
Utilizando o link abaixo, é possível baixar o gabarito da primeira avaliação do semestre 2014/1.
Até amanhã!
quarta-feira, 10 de setembro de 2014
Programação de Computadores I - Aula de 15/09
Senhores alunos:
As notas relativas a nossa próxima aula podem ser lidas no link abaixo.
Estruturas de controle de fluxo por laço - parte ii.
Até a próxima postagem!
Keywords: flow control structures, C programming language, Fortran, Scilab.
quinta-feira, 4 de setembro de 2014
Programação de Computadores I - Aula de 08/09
Senhores alunos:
As notas relativas a nossa próxima aula podem ser lidas no link abaixo.
Estruturas de controle de fluxo por laço.
Até a próxima postagem!
Keywords: flow control structures, C programming language, Fortran, Scilab.
Assinar:
Postagens (Atom)