WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Wie aus Pspsice Netzliste die Zustandsraummodelle darstellen

 

Abdoulaye
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2013, 12:49     Titel: Wie aus Pspsice Netzliste die Zustandsraummodelle darstellen
  Antworten mit Zitat      
Hallo,

ich muss ein Matlab Algo schreiben, was die Pspice Netzliste einliest und die state space Matrixen aufstellt.
Ich habe nach der Vorgehensweise des Buches LUNZE Regelungstechnik1 Kapitel 4 seite 89 gemacht.
Mit meinem bis jetzt geschriebene Code habe kann ich eine Pspice Netzliste im Matlab einlesen und die Systemkomponenten zerlegen.
Aber wie kann ich aus der Netzliste die physikalische Gesetze von den Bauelementen(z.B: Ur = R*i oder UL = L di/dt...usw) aufstellen. Und auch wie kann ich aus der Netzliste die Maschengleichung aufstellen?
Anbei finden Sie meine bisherige code.
Code:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%      A Algorithm for state Space Circuit Analysis.                  %
%                                                                     %
%                                                                     %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

[Name,N1,N2,arg3] = textread('C:\Program Files\Orcad\PSpice\reihenschwingskreis1-schematic1.net',...
    '%s %s %s %s','headerlines',1);

% Initialise
numStateVar = 0; % The number of state variabel,ist the order of the circuit
numElem = 0;     % Number of element(R,L,C)
numV = 0;        % Number of independant voltage source
numI = 0 ;       % Number of independant courant source
numNode = 0;     % Number of Node
numO = 0;        % Number of Aps Amps
numInputs = 0;   % Number of Inputs

% Preallocation of the structure array
Element = struct('Name',{},'Node1',{},'Node2',{},'Value',{});
Vsource = struct ('Name',{},'Node1',{},'Node2',{},'Value',{});
Isource = struct ('Name',{},'Node1',{},'Node2',{},'Value',{});
NumStateVar = struct('Name',{},'Node1',{},'Node2',{},'Value',{});
NumNode = struct('Name',{});


%% Parse the Inputs
for i = 1:length(Name)
    % Get the order of the circuit
    % count the number of C and L in order to get the order of the circuit
   
       if( strcmp(Name{i}(1),'C') || strcmp(Name{i}(1),'L'))
       numStateVar = numStateVar + 1;
       NumStateVar(numStateVar).Name = Name{i};    
       NumStateVar(numStateVar).Node1 = str2num(N1{i});
       NumStateVar(numStateVar).Node2 = str2num(N2{i});
       end
     
    %% Systemzerlegung : Hier werden die Komponenten aussortiert
   
    switch (Name{i}(1)),
      case {'R','L','C'},
          numElem = numElem + 1 ;
          Element(numElem).Name = Name{i};
          Element(numElem).Node1 = str2num(N1{i});
          Element(numElem).Node2 = str2num(N2{i});
          try
              Element(numELem).Value = str2num(arg3{i});
          catch
             
             Element(numElem).Value = nan
          end
         
        case {'V'},
           numV = numV + 1 ;
           Vsource(numV).Name = Name{i}
           Vsource(numV).Node1 = str2num(N1{i});
           Vsource(numV).Node2 = str2num(N2{i});
            try
                Vsource(numV).Value = str2num(arg3{i})
            catch
                Vsource(numV).Value = nan
            end
           
            case {'I'}
            numI = numI + 1;
            Isource(numI).Name = Name{i}
            Isource(numI).Node1 = str2num(N1{i});
            Isource(numI).Node2 = str2num(N2{i});
            try
                Isource(numI).Value = str2num(arg3{i})
            catch
                Isource(numI).Value = nan
            end
    end
    numNode = max(str2num(N1{i}),max(str2num(N2{i}),numNode));
   
    %% Kopplungsbeziehungen : Aufstellen der Maschengleichung
   
   
     %% Komponentenmodelle : Aufstellen der Gleichungen von jeden Bauelementen
   
   
     
 
end

%% Aufstellung des Deskriptorssystems


 


Anbei findet ihr die Lunze Regelungstechnik1.
Vielen Dank im voraus

Lunze2010.pdf
 Beschreibung:

Download
 Dateiname:  Lunze2010.pdf
 Dateigröße:  7.23 MB
 Heruntergeladen:  15732 mal

_________________

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.