silnik dc

Symulacja silnika prądu stałego w SPICE

Ostatnio pomagając stażystom pracującym nad budową robota mobilnego stwierdziliśmy, że przy takiej pracy przydałaby się możliwość numerycznej symulacji pracy układu sterowania silnikiem. Najlepiej gdyby dało się to zrobić przy pomocy któregoś ze standardowych programów typu SPICE (ja bardzo lubię darmowego LTSpice’a). Niestety silnik DC jest elementem, którego właściwości elektryczne są ściśle związane z właściwościami mechanicznymi np. prędkością obrotową czy tarciem. Nie da się tych wielkości modelować bezpośrednio w wielu popularnych symulatorach. Na szczeście przy odrobinie pomysłowości i znajomości fizyki można ten problem łatwo obejść.

Plik z obwodem do symulacji silnika w programie LTSpice, który opisuję w tym wpisie możesz znaleźć pod tym linkiem.

Zjawiska fizyczne w silniku prądu stałego

Na początek musimy sobie wyjaśnić kilka zjawisk, które zachodzą w silnikach prądu stałego. Nie będę tutaj opisywał zbyt dokładnie ogólnej zasady działania takiego silnika – można znaleźć te informacje w wielu miejscach w sieci. Skupimy się za to na mniej rozumianych efektach, które są istotne dla symulacji zachowania naszego silnika przy pomocy programów typu SPICE. Bedą to:

  1. Generacja momentu siły obracającego wirnik.
  2. Generacja wstecznej siły elektromotorycznej.
  3. Opory ruchu.
Rys. 1. Uproszczony schemat silnika prądu stałego

Generacja momentu obrotowego

Uproszczony schemat silnika prądu stałego widzisz na rys. 1. Ogólna zasada działania jest dość prosta. Przez uzwojenie wirnika przepływa prąd elektryczny. Ponieważ uzwojenie to jest umieszczone w polu magnetycznym utworzonym przez stojan to zgodnie z prawami fizyki na zwoje zacznie działać siła o wartości $F=Bil$, gdzie $B$ to indukcja pola magnetycznego, $i$ – natężenie prądu płynącego przez uzwojenie, a $l$ długość zwojów.

Siła ta jest prostopadła zarówno do wektora indukcji pola magnetycznego jak i przewodów w uzwojeniu. Jej kierunek widzisz zaznaczony na rysunku. Oczywiście tak skierowana siła zacznie obracać wirnik. Dla nas ważna będzie dalej wartość momentu obrotowego: $T=Fd$, gdzie $d$ to odległość od miejsca działania siły do osi obrotu wirnika. Oczywiście całkowity moment obrotowy jest sumą momentów działających na każdy zwój z osobna.

Ważne jest, że moment obrotowy jest proporcjonalny do płynącego przez uzwojenie prądu. Możemy to zapisać za pomocą wzoru:

$$T = k_1i,$$

gdzie $k_1$ to stała charakterystyczna dla konkretnego silnika. Jest ona wyrażona w $Nm/A$ (niutonometrach na amper) i proporcjonalna do: indukcji pola magnetycznego, ilości i długości zwojów oraz średnicy wirnika.

Druga zasada dynamiki dla silnika

 

Moment obrotowy wytwarza przyspieszenie kątowe. Korzystając drugiej zasady dynamiki możemy zapisać:

$$\frac {d\omega}{dt}  = \frac{T}{I},$$

gdzie $\omega$ to prędkość kątowa (w radianach na sekundę), a $I$ – moment bezwładności wirnika i ewentualnych dołączonych do niego elementów.

Równanie $\frac {d\omega}{dt}  = \frac{T}{I}$ mówi nam, że prędkość kątowa wirnika zwiększa się w tempie proporcjonalnym do momentu obrotowego i odwrotnie proporcjonalnym do momentu bezwładności wirnika. Jest to równanie opisujące działanie części mechanicznej silnika. W programach typu SPICE nie ma bezpośredniej możliwości umieszczania modeli elementów mechanicznych, ale mamy do dyspozycji modele elementów elektrycznych, których działanie opisuje się identycznymi równaniami.

Np. pracę kondensatora opisuje równanie:

$$\frac{du}{dt} = \frac{i}{C},$$

gdzie $u$ to napięcie na kondensatorze, $i$ – płynący przez niego prąd, a $C$ – pojemność. Zwróć uwagę, że jeżeli zastąpimy $u$ przez $\omega$, $i$ przez $T$, a $C$ przez $I$ to otrzymamy równanie opisujące ruch wirnika. Będzie to dla nas niedługo bardzo przydatne. 

Generacja wstecznej siły elektromotorycznej

Po podłączeniu uzwojenia wirnika do napięcia stałego płynie przez nie stały prąd. Wynikałoby z tego, że silnik wciąż by przyspieszał. W praktyce silniki prądu stałego tak się jednak nie zachowują. 

Zaraz po podłączeniu napięcia zasilania przez uzwojenie płynie bardzo duży prąd, który później maleje, a silnik przestaje przyspieszać.

Za ten efekt odpowiedzialna jest tzw. wsteczna siła elektromotoryczna. Na czym to polega?

Z prawa Faradaya wynika, że jeżeli pętla z prądem znajduje się w zmiennym polu magnetycznym to pojawi się w niej siła elektromotoryczna, która zachowuje się tak jak dodatkowe dołączone do tej pętli źródło napięcia. Siła te będzie proporcjonalna do szybkości zmian strumienia pola magnetycznego przechodzącego przez pętlę.

Ponieważ wirnik silnika to tak właściwie dużo takich pętli umieszczonych w polu magnetycznym, to gdy wirnik zacznie się poruszać, pojawi się na nim siła elektromotoryczna. W związku z tym możemy zamodelować taki wirnik jako trzy połączone szeregowo elementy:

  1. Rezystor modelujący rezystancję wirnika.
  2. Cewkę indukcyjną (wirnik wytwarza też własne pole magnetyczne).
  3. Źródło napięcia, które modeluje właśnie siłę elektromotoryczną.

Taki model silnika jest pokazany na rys. 2. Zwróć uwagę zwłaszcza na kierunek dodatkowego źródła napięcia. Jest ono skierowane tak, że przeciwdziała napięciu zasilania. 

Co z tego wynika? Na początek zapiszmy równanie mówiące, że siła elektromotoryczna jest proporcjonalna do prędkości wirnika (im szybciej obraca się silnik tym będzie większa):

$$U_{EMF} = k_2 \omega,$$

gdzie $k_2$ to kolejny charakterystyczny parametr silnika mierzony w $V/rad/s$ (woltach na radian na sekundę). 

Im szybciej obraca się wirnik tym mniejszy będzie płynął przez niego prąd ponieważ wsteczna siła elektromotoryczna „wygasza” napięcie zasilania.

W pewnym momencie siła elektromotoryczna będzie równa napięciu zasilania. Wtedy przez wirnik przestanie płynąć prąd i moment obrotowy też całkowicie zniknie.

Rys. 2. Model zastępczy silnika prądu stałego.

Opory ruchu

Doszliśmy do wniosku, że idealny silnik rozpędzałby się do prędkości obrotowej równej $U_{zas}/k_2$, a potem przestałby przez niego płynąć prąd, a prędkość obrotowa by się ustabilizowała.

To oczywiście też nie jest zachowanie, które występuje w rzeczywistych silnikach. W stanie ustalonym przez silnik płynie niezerowy (a czasem nawet dość spory) prąd.

Jest to spowodowane oporami ruchu. Kiedy wirnik się obraca to różne zjawiska powodują powstanie dodatkowego momentu hamującego. Moment ten jest proporcjonalny do prędkości obrotowej wirnika:

$$T_h = \beta \omega,$$

gdzie $\beta$ to współczynnik oporu wyrażony w $Nm/rad/s$ (niutonometrach na radian na sekundę).

W stanie ustalonym, gdy silnik porusza się ze stałą prędkością, musi wytwarzać moment obrotowy równoważący moment hamujący. Wymaga to przepływu pewnego prądu. Oznacza to, że wsteczna siła elektromotoryczna nigdy nie dojdzie do wartości $U_{zas}$, a silnik nigdy nie rozpędzi się do prędkości $\omega = U_{zas}/k_2.$

Symulacja silnika w programie typu SPICE

Jesteśmy już gotowi na to, żeby zbudować model silnika DC w LTSpice (a właściwie to w każdym innym programie do symulacji obwodów elektrycznych).

Zrobimy to stopniowo dodając modele kolejnych zjawisk, o których sobie powiedzieliśmy.

Krok 1 - rezystor i cewka

Na początku zamodelujmy wirnik silnika jako rezystor połączony szeregowo z cewką indukcyjną. Odpowiednie parametry można znaleźć np. w kartach katalogowych silników. My w naszym przykładzie użyjemy wartości rezystancji $0.6 \text{ }\Omega$ i indukcyjności $0.3 \text{ mH}$.

Do tego wykonamy symulację typu transient pokazującą co się będzie działo przez pierwsze $10 \text{ ms}$. Założymy, że po $1 \text{ ms}$ od startu symulacji dołączamy do silnika napięcie zasilania $12 \text{ V}$. Odpowiedni schemat znajdziesz na rys. 3.

silnik schemat spice 1
Rys. 3. Model wirnika z rezystancją i indukcyjnością.

Wynik symulacji znajdziesz na rys. 4. Znajduje się na nim wykres prądu wirnika. Jego wartość dochodzi do $20 \text{ A}$, co wynika wprost z prawa Ohma. Ze względu na indukcyjność prąd nie dochodzi do tej wartości natychmiast, ale dopiero po jakimś czasie. 

Rys. 4. Tempo wzrostu prądu uzwojenia jest ograniczone przez jego indukcyjność.

Krok 2 - prędkość i moment obrotowy

Zanim przejdziemy do modelowania wstecznej siły elektromotorycznej dołączymy do układu model mechaniczny wirnika. Zgodnie z tym co sobie powiedzieliśmy, możemy użyć do tego celu kondensatora.

Napięcie na kondensatorze będzie równe co do wartości prędkości obrotowej wirnika, a jego pojemność – momentowi bezwładności. Moment obrotowy będziemy modelować przez sterowane źródło prądowe, którego prąd będzie proporcjonalny do prądu uzwojenia.

Poprawiony schemat znajdziesz na rys. 5. Jak widzisz użyłem wartości $k_1=0.015 \text{ Nm/A}$ i $I=15 \cdot 10^{-6} \text{ kg} \cdot \text{m}^2$.

Zauważ, że dodałem do układu rezystor o dużej rezystancji. Nie wpływa on na wynik symulacji, ale eliminuje ostrzeżenie zwracane przez symulator.

silnik schemat spice 2
Rys. 5. Model silnika z uzwględnieniem części mechanicznej.

Wynik symulacji (z czasem wydłużonym do $100 \text{ ms}$) znajdziesz na rys. 6. Jak widzisz moment obrotowy dochodzi szybko do wartości $300 \text{ mNm}$ i utrzymuje się na tym poziomie. Zgodnie z drugą zasadą dynamiki taki stały moment powoduje liniowy wzrost prędkości obrotowej. Na rysunku jej wartość dochodzi aż do $1800 \text {rad/s}$. Zwróć uwagę, że zamiast natężenia prądu w amperach odczytujemy wartość momentu w niutonometrach, a zamiast napięcia w woltach – prędkości obrotowej w radianach na sekundę.

silnik wykres 1
Rys. 6. Wynik symulacji momentu i prędkości obrotowej wirnika poprzez prąd i napięcie na kondensatorze.

Krok 3 - wsteczna siła elektromotoryczna

Jak już sobie powiedzieliśmy taki nieograniczony wzrost prędkości obrotowej w silnikach DC nie występuje. Głównym ograniczeniem jest tutaj siła elektromotoryczna. Możemy ją zamodelować dodając do obwodu źródło napięcia sterowane napięciem na kondensatorze. Odpowiedni schemat znajdziesz na rys. 7. Użyłem w nim stałej proporcjonalności między siłą elektromotoryczną, a prędkością obrotową wirnika równą $0.02 \text {V/rad/s}$.

silnik schemat spice 3
Rys. 7. Model silnika z uwzględnieniem wstecznej siły elektromotorycznej.

Wynik symulacji przedstawia rys. 8. Zielona linia pokazuje wartość wstecznej siły elektromotorycznej. Zgodnie z tym co pisałem wcześniej, narasta ona aż do wartości napięcia zasilania.

Wzrost siły elektromotorycznej powoduje oczywiście spradek natężenia prądu uzwojenia wirnika. Ponieważ nie modelujemy oporów ruchu to prąd w stanie ustalonym spada aż do zera.

Rys. 8. Wartość wstecznej siły elektromotorycznej i prądu uzwojenia wirnika po włączeniu zasilania.

Krok 4 - opory ruchu

Jak zamodelować opory ruchu silnika? Tak właściwie to nasz schemat zawiera już odpowiedni element. Jest to rezystor $R2$. Aby poprawnie modelować moment hamujący $T_h = \beta \omega$, to wartość tego rezystora musi być równa $1/\beta$. 

Zwróć uwagę, że im większe opory tym mniejsza rezystancja $R2$. Obecna wartość $100 \text{ M}\Omega$ właściwie nie wprowadza to układu strat energii. Zmniejszmy ją do bardziej realistycznej wartości $15 \text{ k}\Omega$. Zmodyfikowany schemat i wynik symulacji znajdziesz na rys. 9 i 10. 

Zwróć uwagę na to, że wsteczna siła elektromotoryczna nie osiąga już wartości $12 \text{ V}$, a prąd uzwojenia zatrzymuje się na wartości około $3 \text{ A}$. Dzięki temu udało nam się w końcu uzyskać realistyczny model pracy silnika.

silnik schemat spice 4
Rys. 9. Model silnika ze stratami ruchu.
silnik wykres 4

Podsumowanie

Jak widzisz, poprawne zamodelowanie pracy silnika elektrycznego nie jest takie proste. Należy połączyć ze sobą wiedzę zarówno na temat części elektrycznej jak i mechanicznej silnika.

Mam nadzieję, że ten artykuł pomoże Ci nie tylko w symulacjach obwodów z silnikiem elektrycznym ale też lepiej zrozumieć jak te silniki działają.

Maciej Kraszewski

Maciej Kraszewski

Inżynier, menedżer R&D i nauczyciel akademicki. Uwielbiam zajmować się tworzeniem nowych technologii, zdobywaniem nowej wiedzy i dzieleniem się swoim doświadczeniem z innymi. Specjalizuję się w zagadnieniach przetwarzania obrazu i widzenia maszynowego.
Szukasz dobrych materiałów o projektowaniu elektroniki?

Załóż darmowe konto na naszej platformie i odbierz pakiet materiałów edukacyjnych.

Zakładając konto zgadzasz się na przesyłanie Ci treści marketingowych przez IT20 sp. z o.o. zgodnie z dostępną na stronie Polityką Prywatności. Możesz wycofać zgodę w każdej chwili.

2 komentarze do “Symulacja silnika prądu stałego w SPICE

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Szukasz dobrych materiałów o projektowaniu elektroniki?

Załóż darmowe konto na naszej platformie i odbierz pakiet materiałów edukacyjnych.

Zakładając konto zgadzasz się na przesyłanie Ci treści marketingowych przez IT20 sp. z o.o. zgodnie z dostępną na stronie Polityką Prywatności. Możesz wycofać zgodę w każdej chwili.

Zapisz się na listę mailową i odbierz swoje bonusy!

Więcej treści na temat elektroniki i robotyki, darmowe e-booki i dostęp do minikursów on-line. Otrzymasz to wszystko zapisując się na naszą listę mailową.