Vi börjar med vektorstyrningen:
Kod: Markera allt
Ualfa = 2 ./ 3 .* Ua - Ub .* 1 ./ 3 - Uc .* 1 ./ 3;
Ubeta = Ub .* 1 ./ sqrt(2) - Uc .* 1 ./ sqrt(3);
Ud = cos(theta) .* Ualfa - sin(theta) .* Ubeta;
Uq = sin(theta) .* Ualfa + cos(theta) .* Ubeta;
För strömmarna är det bara att ersätta U med respektive i.
theta är rotorvinkeln som jag pratat om tidigare... Det är den som är hela bekymret i vektorstyrningen. Id är magnetiseringsströmmen och Iq är den momentgenererande strömmen. Skrivet på komplex form blir det Is = Id + j .* Iq. Detta gäller dock endast när man har perfekt fältorientering, men det är det man eftersträvar vid vektorstyrning och därför kan man anta att det gäller.
Momentet och flödet blir:
Te = 3 n ./ 2 .* phiR .* iq;
Phi = id .* LM; % LM är inversa-Pi-modellens magnetiseringsinduktans.
Det är dessa som är de båda kontrollparametrarna vid verktorstyrning. Flödet sätter man till märkflödet (för drift upp till märkvarvtal, fältförsvagning för högre varv kan jag skriva om lite senare) och momentet kontrollerar man till det som önskas för att få rätt varvtal eller annan parameter man vill styra.
Det var den lätta biten, den svåra kommer nu. Det finns fyra vanligen använda kombinationer av flödesgissning(flux estimator på engelska, ingen aning om den korrekta svenska översättningen) där jag bara tänkt ta upp (SC)VM IFO, där man endast behöver mäta två av strömmarna i trefasen samt har ganska enkla beräkningar för att få fram styrspänningarna.
ed = Ud - (Rs .* id + w1 .* L .* iq);
eq = Uq - (Rs .* iq - w1 .* L .* id);
wr = w1 - w2; % w1 är alltså statorfrekvensen och w2 är eftersläpningen
w2 = RR .* iq ./ PhiR;
PhiR = (my .* ed + lamda .* sign(w1) .* eq) ./ (p + lamda .* abs(w1));
w1 = (eq - lamda .* sign(w1) .* ed) ./ PhiR;
Det här torde vara det enda vi behöver...
Hmm, kom på en sak. Räkna såhär:
d PhiR / dt = ed + lamda .* eq - lamda .* w1 .* PhiR
w1 = (eq - lamda .* ed) ./ PhiR
theta = int(w1,dt)
börja med PhiR = 0, w1 = 0 och räkna ut dPhiR/dt, så får du nästa PhiR-värde med PhiR + dPhiR/dt med vilket du kan räkna ut w1 osv. Det blir algoritmiskt eftersom det inte finns algebraiska lösningar, lamda är dämpningen, sätt till typ 0.1-0.2 eller så.
Förmagnetisering sker automagiskt genom att sätta referensen för phi till nått och vänta med att sätta momentreferensen. Eller så kan du göra det genom att sätta Ud = 325 och Uq = 0 och theta = 0. Efter nån sekund är det bara att räkna ut ekvationerna längst upp igen med nytt theta och Uq. Du bör kunna få igång det ganska hyffsat så, men det blir inte speciellt dynamiskt. Jag har lite svårt att förklara här och har inte riktigt tid just nu. Ska ta och kolla lite mer på det sen, och bland annat lägga upp en simulink-fil med det. Tror det är det lättaste sättet att förklara på.