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

Fehlermeldung: Übersteigt die anzahl der inputs

 

sauzeck
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 18.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2011, 17:17     Titel: Fehlermeldung: Übersteigt die anzahl der inputs
  Antworten mit Zitat      
hallo bin neu hier und bei matlab und hab folgendes problem dass wenn ich die simulation starte und meine ergebnisse ausgeben will dann kommt immer folgende fehlermeldung

??? Error using ==> sym_opt_2 at 106
Port number of 'mdl_sym_opt_2/n' is out of range (exceeds number of
Inports).

wenn ich aber die inputs "n" und "m" weggeben funktioniert alles

wie kann ich dia anzahl der inputs erhöhen??

Code:
clc                             %Bildschirm löschen
close all                       %beenden eventuell laufender Anwendungen
clear variables                 %löschen aller Variablen
fig = 0;

%temporärer Pfad für eigene MATLAB Funktionen
addpath([pwd, '.\..\mlib\']);

%
%Übertragugnsfunktion des Models und des Reglers
%

%Strecke 1
strecke.Tsigma = 0.1;           %Nachstellzeit
strecke.T1 = 0.4;               %Streckenzeitkonstante
strecke.V = 5;                  %Streckenverstärkung

strecke_UeF1.b = 1;                 %Zähler der ersten Übertragungsfunktion
strecke_UeF1.a = [strecke.Tsigma, 1];   %Nenner der ersten ÜF

%Strecke 2
strecke_UeF2.b = [strecke.V];       %Zähler der zweiten ÜF
strecke_UeF2.a = [strecke.T1, 0];   %Nenner der zweiten ÜF

[strecke_UeF.b, strecke_UeF.a] = series(strecke_UeF1.b, strecke_UeF1.a, strecke_UeF2.b, strecke_UeF2.a);

%ÜF der Strecke
UeF_strecke = tf(strecke_UeF.b, strecke_UeF.a);

%Regler - symemetrisches Optimum standard Einstellungen

a = 2;
regler.Tn = a^2*strecke.Tsigma;
regler.V = strecke.T1/(a*strecke.V*strecke.Tsigma);

%Vorfilter
%wird mit einem PT1-Element realisiert

filter.UeF1.b = 1;
filter.UeF1.a = [a^2*strecke.Tsigma, 1];

regler_UeF.b = [regler.V*regler.Tn, regler.V];
regler_UeF.a = [regler.Tn, 0];
UeF_regler = tf(regler_UeF.b, regler_UeF.a);

%Übertragungsfunktion bei nicht geschlossenem Regelkreis
UeF_OpenLoop = series(UeF_regler, UeF_strecke);

%Übertragungsfunktion bei geschlossenem Regelkreis
UeF_feedback = tf(1,1);
UeF_ClosedLoop = feedback(UeF_OpenLoop, UeF_feedback);

%Ausgabe der Bode-Diagramme
fig = fig+1;
figures(fig) = figoptions(fig, 2, 'sym_opt_a', 'Reglerentwurf nach symmetreischen Optimum');
hold on;
box on;
bode(UeF_strecke, 'b');
bode(UeF_OpenLoop, 'g');
bode(UeF_ClosedLoop, 'r');
grid on;
legend('Strecke', 'offener Regelkreis', 'geschlossener Regelkreis');

%Annäherung der Strecke
strecke_ers_UeF.b = 1;
strecke_ers_UeF.a = [a*strecke.Tsigma, 1];

%Start & Stopzeit der Simulation in Sekunden
t_start = 0;
t_stop = 30;

%Referenzwerte für die Simulation
%Zeitpunkte
t = [0, 5, 5, 10, 20, t_stop]';
%Führungsgröße
w = [0, 0, 10, 10, 10, 10]';
%Störgröße
z = [0, 0, 0, 0, 0, 0,]';

%Filter für das Refernezsignal
filter_UeF1.b = 1;
filter_UeF1.a = [4*strecke.Tsigma, 1];
x0 = [0, 0, 0, 0];

%Simulationseinstellungen des Models
modelname = 'mdl_sym_opt_2';
solvername = 'ode45';
options_org = simget(modelname);
opts = simset( options_org, ...
               'InitialState', x0, ...
               'Solver', solvername, ...
               'RelTol', 1e-6, ...
               'AbsTol', 1e-8, ...
               'MaxStep', 'auto', ...
               'MinStep', 'auto', ...
               'InitialStep', 'auto', ...
               'OutputPoints', 'all');

%Modelsimulation
[T_MDL, X_MDL, Y_MDL] = sim(modelname, [t_start, t_stop], opts, [t, w, z]);

%Ausgabewerte der Simulation
ry = Y_MDL(:,1);
dy = Y_MDL(:,2);
y = Y_MDL(:,3);
u = Y_MDL(:,4);
rfil = Y_MDL(:,5);   %bis hierhin gehts
n = Y_MDL(:,6);     %hier nichtmehr
m = Y_MDL(:,7);


%Druckergebnisse (Bildschirmausgabe)
fig = fig+1;
figures(fig) = figoptions(fig, 3, 'sym_opt_b','Reglerenturf nach symmetrischem Optimum');

subplot(3,1,1);
plot(T_MDL, ry, 'b', T_MDL, rfil, 'g', T_MDL, y, 'r');
xlabel('t in sek');
ylabel('r, y(1)');
axis ([0, t(end), 0, 20]);      %Achsenformatierung (x-start, x-ende, y-start, y-ende)
title('Sprungantwort');
legend('Sollwert', 'Sollwert_{filtered}', 'Istwert')
grid on;

subplot(3,1,2);
plot(T_MDL, dy, 'g');
xlabel('t in sek');
ylabel('d (1)');
%axis ([0, t(end), 0, 20]);      %Achsenformatierung (x-start, x-ende, y-start, y-ende)
title('Störsignal');
legend('Störsignal')
grid on;

subplot(3,1,3);
plot(T_MDL, u, 'b');
xlabel('t in sek');
ylabel('u (1)');
%axis ([0, t(end), 0, 20]);      %Achsenformatierung (x-start, x-ende, y-start, y-ende)
title('Stellgröße');
legend('Stellgröße')
grid on;

% Azeige der Übertragungsfunktion
disp('Übertragungsfunktion der Strecke:');
disp('==========================');
zpk(UeF_strecke)            %create or convert to zero-pole-gain model
disp(' ');

disp('Übertragungsfunktion des Reglers:');
disp('===============================');
zpk(UeF_regler)
disp(' ');

disp('Übertragungsfunktion des offenen Regelkreises:');
disp('==============================');
zpk(UeF_OpenLoop)
disp(' ');

disp('Übertragungsfunktion des geschlossenen Regelkreises:');
disp('================================');
zpk(UeF_ClosedLoop)
disp(' ');

%Ende
 
[/code]

mdl_sym_opt_2.mdl
 Beschreibung:

Download
 Dateiname:  mdl_sym_opt_2.mdl
 Dateigröße:  26.65 KB
 Heruntergeladen:  466 mal
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.