TomSym Winding Factor of Electrical Machines: Difference between revisions

From TomWiki
Jump to navigationJump to search
(Created page with "{{Part Of Manual|title=the TomSym Manual|link=TomSym Manual}} TomSym implementation of GAMS Example (WINDFAC, SEQ=224) This model determines the optimal winding fact...")
 
No edit summary
 
Line 64: Line 64:
<pre>
<pre>
Problem type appears to be: minlp
Problem type appears to be: minlp
Time for symbolic processing: 1.3381 seconds
Time for symbolic processing: 1.3025 seconds
Starting numeric solver
Starting numeric solver
===== * * * =================================================================== * * *
===== * * * =================================================================== * * *
Line 79: Line 79:


FuncEv  32 GradEv  30 HessEv  23 ConstrEv  28 ConJacEv  28 ConHessEv  23  
FuncEv  32 GradEv  30 HessEv  23 ConstrEv  28 ConJacEv  28 ConHessEv  23  
CPU time: 0.078000 sec. Elapsed time: 0.098000 sec.  
CPU time: 0.078000 sec. Elapsed time: 0.068000 sec.  


</pre>
</pre>

Latest revision as of 09:35, 8 November 2011

Notice.png

This page is part of the TomSym Manual. See TomSym Manual.

TomSym implementation of GAMS Example (WINDFAC, SEQ=224)

This model determines the optimal winding factor for electrical machines.

Michna, M, and Gdanska, P, Winding Factor of Electrical Machines, 1984.

clear mex % minlpBB sometimes needs this

ms = 3; % number of phases
p  = 2; % number of pole pairs
K  = 5; % harmonic order
ns = 1; % coil span
clear pi

%     q:  number of slots per one phase and per one pole
%     Nz: number of slots
%     s:  span

toms integer q

% Variable bounds
cbnd = {1 <= q <= 10};

toms kz1 kz3 kz5 ks1 ks3 ks5 % coil-group factor (1-3) coil-span factor
toms kw kw3 kw5 % winding factor
toms kw1 % inding factor for first harmonic

% kw1 bound
cbnd = {cbnd; 0.8 <= kw1};

Nz = 2*ms*q*p;

alfae = (2*pi*p)/Nz;

% Slots pitch
tauz = Nz/(2*p); % == ms*q

s = tauz - ns;

eqs = {
    (q * sin( alfae / 2)) * kz1 == sin(q * alfae / 2)
    ks1 == sin((s * pi) / (tauz * 2))
    kw1 == ks1 * kz1
    (q * sin(3 * alfae / 2)) * kz3 == sin(3 * q * alfae / 2)
    ks3 == sin((3 * s * pi) / (tauz * 2))
    kw3 == ks3 * kz3
    (q * sin(5 * alfae / 2)) * kz5 == sin(5 * q * alfae / 2)
    ks5 == sin((5 * s * pi) / (tauz * 2))
    kw5 == ks5 * kz5
    kw == kw3^2 + kw5^2
};

options = struct;
options.name = 'WindFac';
options.solver = 'KNITRO';
guess = {ks1 == 0.5, ks3 == 0.5, ks5 == 0.5};

solution = ezsolve(kw,{cbnd;eqs},guess,options);
Problem type appears to be: minlp
Time for symbolic processing: 1.3025 seconds
Starting numeric solver
===== * * * =================================================================== * * *
TOMLAB - TOMLAB Development license  999007. Valid to 2011-12-31
=====================================================================================
Problem: ---  1: WindFac                        f_k       0.254487291710305760
                                       sum(|constr|)      0.000000042299732786
                              f(x_k) + sum(|constr|)      0.254487334010038540
                                              f(x_0)      0.000000000000000000

Solver: KNITRO.  EXIT=0.  INFORM=0.
Default MINLP KNITRO
Locally optimal solution found

FuncEv   32 GradEv   30 HessEv   23 ConstrEv   28 ConJacEv   28 ConHessEv   23 
CPU time: 0.078000 sec. Elapsed time: 0.068000 sec.