Skocz do zawartości

Generowanie sygnału 3 fazowego SINUS PWM


slawek7

Pomocna odpowiedź

Tak mnie zaciekawiła jedna sprawa z tym związana, może mi ktoś wytłumaczy w prosty sposób.

Nie mogę zrozumieć jak jest generowany sygnał sinusoidalny 3 fazowy za pomocą metody PWM tzw. SPWM?

Dokładnie chodzi mi o sytuację gdy nie mamy punktu neutralnego. Są trzy kanały PWM

W nocie atmela robią to jakoś tak że podzielili to na 6 części i są wycinki sinusoidy które chyba po złożeniu dają wypadkowo 3 fazowy sygnał sinusoidalny

Natomiast spotkałem też się z czymś takim że ktoś po prostu na poszczególne kanały PWM podawał synał sinusoidalny przesunięty po prostu o 120st.

tak jak np tu

 

float theta1=0,theta2=120,theta3=240,Va,Vb,Vc,sig1,sig2,sig3;
void GPIO_Config(void);
void TIM_Config(void);
void DAC_Config(void);
void bound_check(float *var);
int main(void)
{		
	GPIO_Config();
	TIM_Config();
	DAC_Config();
	while(1)
	{
		if(sig_flag==1)
		{
			sig_flag=0;
			theta1++;
			bound_check(&theta1);
			theta2++;
			bound_check(&theta2);
			theta3++;
			bound_check(&theta3);

			//Va =MI*sinf(theta1*PI/180)/2; 			// FOR SIN PWM uncommnet three lines
			//Vb =MI*sinf(theta3*PI/180)/2;
			//Vc =MI*sinf(theta2*PI/180)/2;
			sig1 =(ARR_val+(ARR_val*MI*sinf(theta1*PI/180)+ Har_Mag*ARR_val*sinf(theta1*PI/60)))/2;   // for sin PWM with 3rd harmonics
			sig2 =(ARR_val+(ARR_val*MI*sinf(theta2*PI/180)+ Har_Mag*ARR_val*sinf(theta1*PI/60)))/2;
			sig3 =(ARR_val+(ARR_val*MI*sinf(theta3*PI/180)+ Har_Mag*ARR_val*sinf(theta1*PI/60)))/2;
			TIM1->CCR1 = (uint16_t)sig1;
			TIM1->CCR2 = (uint16_t)sig2;
			TIM1->CCR3 = (uint16_t)sig3;
			DAC->DHR12R1=(uint16_t)(TIM1->CNT)/3;
			DAC->DHR12R2=(uint16_t)sig1/8;
		}
	}
}

Moje pytanie jak te dwie sprawy rozumieć i dlaczego tak?

3 faze atmel.jpg

Link do komentarza
Share on other sites

No ale czego dokładnie nie rozumiesz? Typowy sygnał 3-fazowy sieci AC to trzy sinusiody przesunięte względem siebie o 1/3 okresu czyli o 120°. Każda z nich generowana jest względem punktu neutralnego N. A Ty po stronie odbiorczej możesz włączyć się swoim obciążeniem między przewód neutralny i jeden (lub wszystkie trzy ale osobno) przewody fazowe (tzw. gwiazda) lub każde obciążenie włączyć między inną parę przewodów fazowych bez korzystania z przewodu neutralnego (tzw. trójkąt).

Wzięcie takiego sygnału wprost z pinów PWM procesora (plus oczywiście jakieś filtry lowpass) nie jest dokładnie tym samym, bo względem punktu neutralnego jakim jest GND sygnały mają składową stałą czego nie ma w sieci AC. Dlatego żeby to było to samo musisz zrobić układy wyjściowe (wzmacniacze? transformatory? falowniki? kondensatory?) które symetryzują sinusoidy względem linii N lub zwyczajnie przesunąć składową stałą masy wyjściowej o połowę zasilania procesora w górę. Wtedy każdy sygnał "fazowy" będzie symetryczny względem linii N.

  • Lubię! 1
Link do komentarza
Share on other sites

4 godziny temu, marek1707 napisał:

No ale czego dokładnie nie rozumiesz?

Tak w skrócie jak to rozpatrzeć przebiegi, że wychodzi układ 3faz. Piszesz o układach wyjściowych, ale w tych przykładach co pokazałem, nie ma ich. sygnały pwm sterują bezpośrednio cewkami silnika. Silnik co prawda będzie flitem dla pwm, ale układ 3 faz nie powstaje

A drugie dlaczego tak skrajne metody generowania. Jest ta "właściwa" 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

To było trochę złośliwe,  co nie? Przyznasz.

Ja nie mówię o silniku tylko o falowniku dla silnika 3 faz.  np tu był opisywany taki falownik

https://elportal.pl/wp-content/uploads/2016/03/201603_KupiecFalownik.zip

To że załączyłem wycinek z noty dla BLCD to tylko z powodu iż nie miałem pod ręką innego. Nie powinno cie zmylić zamieszczenie z czujników Halla bo pisałem.

Natomiast chodziło o mi tylko o zasadę generowania 3 faz gdzie nie ma przewodu neutralnego. 

Prawdą jest natomiast to co piszesz. nie potrafię wyrazić o co dokładnie mi chodzi, bo nie wiem jak o to zapytać abyś zrozumiał.

A może tak.

Poatrz na ta notę atmela. mowa jest o silniku A/C

AVR495: AC Induction Motor Control Using the Constant V/f Principle and a Space-vector PWM Algorithm

https://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en591883

Co prawda nie jest to SPWM tylko metoda wektorowa generowania sygnału 3 faz. ale zwróć uwagę że nie jest to podanie 3 sinusoid na każde w wyjść przesuniętych o 120st.

PS. doszukałem sie takiej informacji, ze zamiast generować sinusoidę na każdym z wyjść można w celu zmniejszenia ilości przełączeń kluczy zastosować właśnie taki trik jak wekowe generowanie lub to z obrazka

Natomiast wydaje mi sie że nadal przy tej podstawowej metodzie cały czas na wyjściu będzie składowa stała. Skoro nie mamy punktu neutralnego i mamy tylko jedno źródło to klucze mogą przełączać pomiędzy 0 a VCC, więc przebieg będzie zmienny ale nie przemienny.

Link do komentarza
Share on other sites

Jeśli dla Ciebie złośliwością są próby odpowiedzenia na niezadane pytanie to OK, niech tak będzie*. Pomóż mi w takim razie nazwać ułomność braku jasnego wysławiania się mimo wysłania trzech (Twoich pierwszych na Forbocie - witamy) postów i w sumie kilku akapitów tekstu. Piszesz mętnie, ale wrzucasz rysunek. Próbuję z niego domyślić się, że chodzi o BLDC bo trapezy na to wskazują, ale w trzecim podejściu precyzujesz, że jednak nie chodzi o żaden silnik tylko o samą metodę produkowania przebiegów przemiennych dysponując jedynie asymetrycznym zasilaniem. Czy tak? No to gdybyś czytał uważnie co napisałem, to pewnie już dawno zrobiłbyś eksperyment (myślowy, na kartce papieru lub przy użyciu kompa) i wykreślił sobie różnice między przebiegami pokazanymi na Twoim pierwszym rysunku. Każdy z trapezów (to oczywiście mogą być sinusoidy) rozpięty jest między zerem a jakąś hipotetyczną wartością maksymalną. Skoro uzwojenia włączone są między trzy linie, to jakie znaczenie ma fakt, że każda z nich ma jakąś (ale każda taką samą) składową stałą względem jakiegoś czwartego przewodu, czyli w tym przypadku masy układu?

1 godzinę temu, slawek7 napisał:

Natomiast wydaje mi sie że nadal przy tej podstawowej metodzie cały czas na wyjściu będzie składowa stała. Skoro nie mamy punktu neutralnego i mamy tylko jedno źródło to klucze mogą przełączać pomiędzy 0 a VCC, więc przebieg będzie zmienny ale nie przemienny.

Masz rację, wydaje Ci się. Jeżeli z tym masz trudności, to wyobraź sobie, nie wiem, może huśtawkę dla dzieciaków. To zwykła belka podparta na środku. Wysokość każdego z jej końców podczas zabawy zmienia się od zera do 2h gdzie h to oczywiście wysokość punktu podparcia. Ale jeśli na środek belki wylejesz wodę, to będzie ona spływać raz w jedną a raz w drugą stronę, prawda? Różnica wysokości może być zatem bipolarna mimo dysponowania jedynie wysokościami dodatnimi. To samo jest w driverze PWM silnika 3F: każde z trzech wyjść dysponuje napięciem od zera do jakiegoś +V zasilania, ale uzwojenie włączone między te wyjścia widzi właśnie różnicę. A ponieważ jest ona w sposób oczywisty dwukierunkowa, to i prąd będzie płynął raz w jedną a raz w drugą stronę. Każde dwa z trzech z wyprowadzeń silnika widzi różnicę tylko między "swoimi" dwoma wyjściami falownika więc całość działa. Mam nadzieję, że umiesz to sobie wyobrazić i nie trzeba tego rysować.

I teraz, skoro samą ideę sterowania PWM masz już opanowaną, to  - jak próbuję zrozumieć - problem masz z samymi sposobami generacji sygnałów na poszczególnych fazach. Oczywiście najprostsza metoda bazująca na "jawnym" produkowaniu sygnałów 3-fazowych działa, bo pewnie 9/10 świata jest napędzane zwykłymi 3-fazowymi silnikami AC zasilanymi z sieci 3F gdzie z definicji jest symetria i 120°. No ale ludzie w dobie oszczędzania szybko zauważyli, że taka metoda nie zawsze jest optymalna a mając pod ręką trochę mocy obliczeniowej można modelować zjawiska zachodzące w silniku w czasie rzeczywistym i tak generować napięcia na liniach fazowych, by prądy uzwojeń produkowały moment jakoś specjalnie zorientowany względem wirnika, co daje maksymalizację momentu, albo minimalizację energii albo np. poprawę osiągów dynamicznych silnika. Tak, w takiej metodzie rzeczywiście nie ma z góry "zaszytej" symetrycznej "3-fazowości" sygnałów i przesunięcia o 120°, ale de facto takie przebiegi dostajesz, bo wynika to z konstrukcji silnika i modelu jaki jest przyjęty. Przecież transformacje Parka i Clarka używane do przekształcania układów z 3F na 2F i odwrotnie właśnie takie 120° zakładają. Nie rozumiem więc Twojego niezrozumienia. Możemy robić jakieś optymalizacje np. przełączania modulatorów PWM i w pewnych momentach okresu załączać je na stałe (albo w ogóle zrezygnować z PWM), można produkować trapezy albo wręcz prostokąty (mówimy o napięciu nie o prądach), ale patrząc na pełny obrót silnika w ustalonych warunkach zawsze dostaniesz 3 identyczne przebiegi przesunięte o 120°, bo jest to zaszyte w samej strukturze silnika 3F.

-------------------------

* - Jakoś nie widzę odpowiedzi od ludzi mniej złośliwych.

-------------------------

EDIT: Jeśli masz jakąś awersję do rysowania, to może to zadziała:

Przyjmując, że:

V - składowa stała na wyjściu każdego z trzech modulatorów PWM,

A - amplituda sygnału sinusoidalnego,

Omega - pulsacja sygnału

Fi - przesunięcie fazy między sygnałami

to na jednym wyjściu masz powiedzmy:

Ua = V + A*sin(Omega*t)

a na drugim masz:

Ub = V + A*sin(Omega*t + Fi)

Jeśli odejmiesz te sygnały (czyli włączysz między nie uzwojenie widzące różnicę) to dostaniesz:

2 * A * sin(Fi/2) * cos(Omega*t + Fi/2)

Co niewątpliwie jest sygnałem sinusoidalnym bez składowej stałej, ale o większej amplitudzie (człon 2*A*sin(Fi/2) jest stały i wynosi 1.73) i fazie niż każde z dwóch wyjść PWM. Jeżeli zrobisz takie obliczenie dla każdej pary z trzech wyjść przesuniętych względem siebie w fazie o 120° to dostaniesz trzy nowe sygnały także przesunięte względem siebie w fazie o 120°.

 

Edytowano przez marek1707
  • Lubię! 1
Link do komentarza
Share on other sites

Tak masz rację nie umiem się wysłowić, tzn może umiem ale nie potrafię tego przelać na formę pisemną. O złośliwości pisałem w domyśle w cudzysłowie. Nie obrażaj się nie warto 🙂

Nie chodziło mi dokładnie o BLDC tylko jak pisałeś generowanie 3 faz. Nie miałem pod ręką nic co mogłoby pokazać o co mi chodzi, ale wprowadziła większe zamieszanie. Na temat BLDC nie chcę zaczynać bo tu jest duże zamieszanie. Jedni piszą że można je zasilać przebiegiem sinusoidalnym pokazują przykłady na youtubie, a jak próbuję na takich samych silnikach z tymi samymi kodami i układami to nie chce ruszyć. Co prawda sa silniki BLDC bardzo odbiegające budową od typowych maszyn synchronicznych, ale sa takie które idelanie budową do nich pasują. Sam mam taki.

https://allegro.pl/oferta/nowy-przemyslowy-silnik-bldc-24v-150w-sterownik-6517141012

rozbierałem i wiem jak uzwojenie jest ułożone, nie jest skupione  jak w tym

https://allegro.pl/oferta/silnik-x2204s-2300kv-ccw-fv-pl-7497579666?bi_s=ads&bi_m=leftpanel&bi_c=NTJhZjI4MTUtMmVkMy00N2EzLTgwNjEtNDE0ODE3ZGVlOGUzAA&bi_t=ape&referrer=proxy&emission_unit_id=d93873d0-fb2e-47cd-8c51-505701f6a5ae

 

W każdym razie wiem co co chodzi tylko moje eksperymenty sie nie udają (może z barku cierpliwości przy drobnych błędach) i potrzebuję potwierdzenia w myśleniu (co nie oznacza że potrafię opisać o co chodzi).

Wklejam jeszcze coś z tej noty . Penie wiesz że silnik PMSM to silnik synchroniczny wymaga wirującego pola. więc to co tu piszą teoretycznie działa. Jeśli przeczytasz to nie zwracając uwagę że piszą o silniku tylko popatrzysz na to jak na generowanie 3faz przebiegu bez punktu neutralnego to powinno dać to samo o czym pisałeś wyżej. Oczywiście wymaga to automatu do przeskakiwania płynnego z 6 częsci po kolei, ale to już problem na program.

 

 

PMSM.jpg

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.