Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας τρεχω ενα μοντελο στο simulink μεσω της matlab και παιρνω το παρακατω λαθος

 

Error using run (line 28) Call to MATLAB function aborted: The first input argument of the "mpc" command must be one of the following: an LTI object, an IDMODEL object or a structure of models and offsets. Block Subsystem2/Control plant (#38) While executing: State During Action

 

Το embedeed block που χρησιμποιω εχει μεσα του τον παρακατω κωδικα

function w0u = MPC(x,Sb_bus,Sb,vt,q,p,theta0,ku,xs,u,vf,KvP,KvI,Kp,Ki,Kd,Droop,DroopAvr,v0,wb,r,t0,umaxnow,time,samplingsTime,Rn,Qn,Rw,Qw,ud,uMinMPC,uMaxMPC,udMaxMPC,wmin,wminw,wmax,wmaxw,tFLR,aFLR,genset3connected,debuggingfile,mpcOn,mpcValSaveTime,mpcValFileName,useUMaxNow,wNLstart)

coder.extrinsic('mpc');
w0u = zeros(2,1);
[w0u] = mpc(p,Sb_bus,Sb,vt,q,x,theta0,ku,xs,u,umaxnow,vf,KvP,KvI,Kp,Ki,Kd,Droop,DroopAvr,v0,wb,r,t0,time,samplingsTime,Rn,Qn,Rw,Qw,ud,uMinMPC,uMaxMPC,udMaxMPC,wmin,wminw,wmax,wmaxw,tFLR,aFLR,genset3connected,debuggingfile,mpcOn,mpcValSaveTime,mpcValFileName,useUMaxNow,wNLstart);

end

και η συναρτηση Mpc ειναι

function [w0u] = mpc(p,Sb_bus,Sb,vt,q,x,theta0,ku,xs,u,umaxnow,vf,KvP,KvI,Kp,Ki,Kd,Droop,DroopAvr,v0,wb,r,t0,time,samplingsTime,Rn,Qn,Rw,Qw,ud,uMinMPC,uMaxMPC,udMaxMPC,wmin,wminw,wmax,wmaxw,tFLR,aFLR,genset3connected,debuggingfile,mpcOn,mpcValSaveTime,mpcValFileName,useUMaxNow,wNLstart)
persistent tupdated w0set
eml.extrinsic('saveVariables');
H = [10; 7];
D = [.02;.025];
if (isempty(tupdated))
    % Initialize variables
    tupdated = time;
    w0set = wNLstart;
elseif (time < t0)
    % Wait until t0
elseif (mpcOn == 0)
    % If turned off, do nothing.
elseif (time >= tupdated + samplingsTime)
    % Update w0
    Pbus = sum(p.*Sb)/sum(Sb);
    Qbus = sum(q.*Sb)/sum(Sb);
    pFLR = aFLR*Sb(end)/Sb_bus*Pbus;

    X = [Pbus;Qbus;x];
    u0 = u;
    udw = ud(1);
    %% Calculate the state space equations
    [A B B0 Cu Du ~, ud] = makeLinearSystem(H,D,p,Sb_bus,Sb,q,X,vf,vt,theta0,ku,xs,u0,wb,r,KvP,KvI,Kp,Ki,Kd,Droop,DroopAvr,w0set,v0,samplingsTime,ud);
    [Aw Bw B0w Cuw Duw ~, udw] = makeLinearWorstCaseSystem(H,D,p,Sb_bus,Sb,q,X,vf,vt,theta0,ku,xs,u0,wb,r,KvP,KvI,Kp,Ki,Kd,Droop,DroopAvr,w0set,v0,samplingsTime,genset3connected,pFLR,udw);

    %% Discretize
    if(genset3connected)
        % Discretize system for normal case
        [Ad Bd B0d] = makediscrete(A,B,B0,samplingsTime);
        % Discretize system after FLR reacts
        [AdFLRp, ~, ~] = makediscrete(Aw,Bw,B0w,samplingsTime-tFLR);
    else
        % Sets Ad, Bd, B0d and AdFLRp to remove compilation error (matrices
        % must have the same size for all cases)
        Ad = A;
        Bd = B;
        B0d = B0;
        AdFLRp = Aw;
    end
    % Discretize system for failure case
    [Adw Bdw B0dw] = makediscrete(Aw,Bw,B0w,samplingsTime);

    %% Find input optimal
    [dw0opt PHI PSI dw] = findInput(X,Ad,Bd,B0d,Cu,Du,Adw,Bdw,B0dw,Cuw,Duw,AdFLRp,pFLR,Rn,Qn,Rw,Qw,ud,udw,u,umaxnow,uMinMPC,uMaxMPC,udMaxMPC,wmin,wmax,wminw,wmaxw,p,Sb,genset3connected,time,debuggingfile,useUMaxNow);

    %% Save internal values for plotting
    if(mpcValSaveTime >= time && mpcValSaveTime< time + samplingsTime)
        saveVariables(mpcValFileName,PHI,PSI,dw)
    end
    w0set = w0set + dw0opt;
    tupdated = time;
Δημοσ.

file:///C:/Users/Fanourako/Desktop/1.jpg

file:///C:/Users/Fanourako/Desktop/2.jpg

 

Η εικονα ενα δειχνει απο που βγαινει το P και στην εικονα δυο ειναι το υποσυστημα της εικονας 1 που εκει εχει το embedeed block MPC

Δεν ξερω πως να το διορθωσω αυτο το λαθος.

Δημοσ.

file:///C:/Users/Fanourako/Desktop/1.jpg

file:///C:/Users/Fanourako/Desktop/2.jpg

 

Η εικονα ενα δειχνει απο που βγαινει το P και στην εικονα δυο ειναι το υποσυστημα της εικονας 1 που εκει εχει το embedeed block MPC

Δεν ξερω πως να το διορθωσω αυτο το λαθος.

Λίγο δύσκολο να έχω πρόσβαση στον PC σου για να δω τις εικόνες :P, δοκίμασε να ανεβάσεις εδώ τις εικόνες σου αν και προσωπικά προτιμώ εναν εξωτερικό host σαν το http://imgur.com

 

Παρεπιπτόντως, καλως όρισες στο forum...

Δημοσ.

Λίγο δύσκολο να έχω πρόσβαση στον PC σου για να δω τις εικόνες :P, δοκίμασε να ανεβάσεις εδώ τις εικόνες σου αν και προσωπικά προτιμώ εναν εξωτερικό host σαν το http://imgur.com

 

Παρεπιπτόντως, καλως όρισες στο forum...

ευχαριστω.Θα χρησιμοποιησω το dropbox

https://www.dropbox.com/s/gwjniiq3d1azbgm/1.jpg?dl=0

 

https://www.dropbox.com/s/yv2p5yk0882y2jq/2.jpg?dl=0

Δημοσ.

Εκτώς από το οτι δεν φαίνονται και πολλά και να φαίνονταν λίγα πράγματα καταλαβαίνω. Υποθέτω οτι το p που χτυπάει δημιουργείτε στο ορθογώνιο που λέει bus, οπότε βεβαιώσου οτι οι μεταβλητές σου που μπαίνουν στο bus υπάρχουν. Αν η υπόθεση μου είναι λάνθασμένη δεν ξέρω πως να σε βοηθήσω, ίσως άλλα μέλη ξέρουν περισσότερο απο simulink.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...