PWM AVANCADO PIC16F877

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

PWM AVANCADO PIC16F877

Mensagempor Bardelli » 18 Fev 2007 20:10

Olá All

Tenho duas perguntas a fazer.
1-
Preciso gerar um sinal SPWM (Modulação por largura de pulso senoidal). O pic ele gera o PWM comum, alguem teria uma dica, ou uma rotina paa gerar um SPWM?


2- Gostaria de CONTAR COM EXATIDAO a quantidade de pulsos gerados pelo pwm do PIC, ou seja, gostaria por exemplo de gerar somente 1352 pulsos, em vez de ele ficar indefinido. Tem como fazer essa contagem por programação?

abraços
Bardelli
Byte
 
Mensagens: 126
Registrado em: 20 Out 2006 12:42

Mensagempor Kenji » 19 Fev 2007 17:08

Os inversores de frequencia utilizam uma senóide de referência e uma frequência portadora. Repare que o cruzamento da senóide referência com a portadora é que define se o IGBT ficará ligado ou desligado.

Imagem

No caso de acionar um motor trifásico (c/ inversor de freq) a onda quadrada gerada não é problema, pois o motor 'transforma' a onda quadrada numa senóide, pq o motor se comporta como um indutor e atrasa a corrente, etc etc.

Se for um sinal qualquer, acredito que um circuito RC resolva.

Quanto ao n° de pulsos, depende da portadora.
N° de pulsos do IGBT = frequência da portadora. Em média os inversores utilizam 5Khz.

Kenji
Kenji
Bit
 
Mensagens: 25
Registrado em: 13 Out 2006 14:29
Localização: Mauá - SP

Mensagempor Bardelli » 22 Fev 2007 18:58

Eu achei que isso fosse uma coisa teorica, gerar essas duas ondas e compara-las. Na verdade eu pensei em algo bem mais simples, do tipo ja inserir o perfil do PWM (SPWM) na propria programacao do PIC, mesmo que a aproximação não seja tão boa quanto usar a modulação com uma portadora, pois isso me economizaria Hardware.


Em relação a contar os numeros de pulsos, não tem nada a ver com essa historia de acionar motor trifasico, é para um outro proposito (Interpolação de motores usando o PWM dos PICs). Nisso alguem teria alguma ideia tb?
Bardelli
Byte
 
Mensagens: 126
Registrado em: 20 Out 2006 12:42

Mensagempor andre_luis » 23 Fev 2007 12:54

Segue a tabela que fiz para um UPS :

32 amostras por senoide, e 32 níveis de compensação :


Vmin Vmax Dmax 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
36 57,6 160

0 36,0 160 0 7 15 23 31 38 46 53 61 68 75 82 88 95 101 107 113 118 123 128 133 137 141 144 147 150 153 155 156 158 159 159 160
1 36,7 157 0 7 15 23 30 38 45 52 60 67 74 80 87 93 99 105 111 116 121 126 130 134 138 141 145 147 150 152 154 155 156 156 157
2 37,4 154 0 7 15 22 30 37 44 51 59 65 72 79 85 91 97 103 109 114 119 123 128 132 136 139 142 145 147 149 151 152 153 154 154
3 38,0 151 0 7 14 22 29 36 43 51 57 64 71 77 84 90 96 101 107 112 117 121 125 129 133 136 139 142 144 146 148 149 150 151 151
4 38,7 149 0 7 14 21 29 36 43 50 56 63 70 76 82 88 94 99 105 110 115 119 123 127 131 134 137 140 142 144 145 147 148 148 148
5 39,4 146 0 7 14 21 28 35 42 49 55 62 68 75 81 87 92 98 103 108 113 117 121 125 129 132 135 137 139 141 143 144 145 146 146
6 40,1 144 0 7 14 21 28 34 41 48 55 61 67 73 79 85 91 96 101 106 111 115 119 123 126 130 132 135 137 139 141 142 143 143 143
7 40,7 141 0 6 13 20 27 34 41 47 54 60 66 72 78 84 89 94 100 104 109 113 117 121 124 127 130 133 135 137 138 139 140 141 141
8 41,4 139 0 6 13 20 27 33 40 46 53 59 65 71 77 82 88 93 98 103 107 111 115 119 122 125 128 130 133 134 136 137 138 138 139
9 42,1 137 0 6 13 20 26 33 39 46 52 58 64 70 76 81 86 91 96 101 105 109 113 117 120 123 126 128 131 132 134 135 136 136 136
10 42,8 135 0 6 13 19 26 32 39 45 51 57 63 69 74 80 85 90 95 99 104 108 112 115 118 121 124 126 128 130 132 133 134 134 134
11 43,4 133 0 6 13 19 25 32 38 44 50 56 62 68 73 79 84 89 93 98 102 106 110 113 116 119 122 124 126 128 130 131 132 132 132
12 44,1 131 0 6 12 19 25 31 37 44 49 55 61 67 72 77 82 87 92 96 100 104 108 112 115 118 120 122 124 126 128 129 129 130 130
13 44,8 129 0 6 12 18 25 31 37 43 49 55 60 66 71 76 81 86 90 95 99 103 106 110 113 116 118 121 123 124 126 127 128 128 128
14 45,5 127 0 6 12 18 24 30 36 42 48 54 59 65 70 75 80 85 89 93 97 101 105 108 111 114 117 119 121 122 124 125 126 126 126
15 46,1 125 0 6 12 18 24 30 36 42 47 53 58 64 69 74 79 83 88 92 96 100 103 107 110 112 115 117 119 121 122 123 124 124 124
16 46,8 123 0 6 12 18 24 29 35 41 47 52 58 63 68 73 78 82 87 91 95 98 102 105 108 111 113 115 117 119 120 121 122 122 123
17 47,5 121 0 5 11 17 23 29 35 40 46 51 57 62 67 72 76 81 85 89 93 97 100 104 107 109 112 114 116 117 118 120 120 121 121
18 48,2 120 0 5 11 17 23 29 34 40 45 51 56 61 66 71 75 80 84 88 92 96 99 102 105 108 110 112 114 116 117 118 119 119 119
19 48,8 118 0 5 11 17 23 28 34 39 45 50 55 60 65 70 74 79 83 87 91 94 98 101 104 106 108 111 112 114 115 116 117 117 117
20 49,5 116 0 5 11 17 22 28 33 39 44 49 54 59 64 69 73 78 82 86 89 93 96 99 102 105 107 109 111 112 114 115 115 116 116
21 50,2 115 0 5 11 16 22 27 33 38 43 49 54 59 63 68 72 77 81 85 88 92 95 98 101 103 106 108 109 111 112 113 114 114 114
22 50,9 113 0 5 11 16 22 27 32 38 43 48 53 58 62 67 71 76 80 83 87 90 94 97 99 102 104 106 108 109 111 112 112 113 113
23 51,5 112 0 5 10 16 21 27 32 37 42 47 52 57 62 66 70 75 79 82 86 89 92 95 98 101 103 105 106 108 109 110 111 111 111
24 52,2 110 0 5 10 16 21 26 32 37 42 47 52 56 61 65 70 74 78 81 85 88 91 94 97 99 101 103 105 107 108 109 109 110 110
25 52,9 109 0 5 10 15 21 26 31 36 41 46 51 56 60 64 69 73 77 80 84 87 90 93 96 98 100 102 104 105 106 107 108 108 108
26 53,6 108 0 5 10 15 20 26 31 36 41 45 50 55 59 64 68 72 76 79 83 86 89 92 94 97 99 101 102 104 105 106 107 107 107
27 54,2 106 0 5 10 15 20 25 30 35 40 45 50 54 59 63 67 71 75 78 82 85 88 91 93 96 98 100 101 103 104 105 105 106 106
28 54,9 105 0 5 10 15 20 25 30 35 40 44 49 53 58 62 66 70 74 77 81 84 87 89 92 94 96 98 100 101 102 103 104 104 104
29 55,6 104 0 5 10 15 20 25 30 34 39 44 48 53 57 61 65 69 73 76 80 83 86 88 91 93 95 97 99 100 101 102 103 103 103
30 56,3 102 0 5 10 15 19 24 29 34 39 43 48 52 56 60 64 68 72 75 79 82 85 87 90 92 94 96 97 99 100 101 101 102 102
31 56,9 101 0 4 9 14 19 24 29 34 38 43 47 52 56 60 64 67 71 74 78 81 84 86 89 91 93 95 96 98 99 100 100 101 101
32 57,6 100 0 4 9 14 19 24 29 33 38 42 47 51 55 59 63 67 70 74 77 80 83 85 88 90 92 94 95 97 98 98 99 99 100


Essa tabela foi gerada no Exel. Segue trecho da planilha :

=INT(SEN((J7*PI())/64)*$E$10)
Editado pela última vez por andre_luis em 26 Fev 2007 10:53, em um total de 1 vez.
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor Bardelli » 23 Fev 2007 20:41

Beleza e, em relação a contar quantos pulsos foram dados no PWM??

Alguem tem alguma ideia??

abracos
Bardelli
Byte
 
Mensagens: 126
Registrado em: 20 Out 2006 12:42

Mensagempor Vonnilmam » 24 Fev 2007 14:48

ola, todos.


Vou passar o email de um amigo que domina muito essa tecnica que vcs estão se referindo o nome dele é paulo theodoro...

Seu email é : paulo_theodoro@terra.com.br ou uol.com.br não me recordo agora...

Esse cara é um cranio e desenvolveu toda uma sistematica que envolvel aplicação para pic e dsp da texas...

von
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x