%
function xp = f (t,y)
n = 5; % Anzahl der Massen [-]
m = 1e3; % Masse [kg]
c = 1e7; % Steigfigkeit [N/m]
d = 1e4; % Daempfung [Ns/m]
%Erzeugen einer Einheits- und Nullmatrix
for i = 1:n
E(i,i) = 1; % Einheitsmatrix
N(i,i) = 0; % Nullmatrix end clear i;
% Erzeugen der Steifikeits-, Daempfungs- und Massenmatrix
%Hauptdiagonalen
for i = 1:n
v(i) = -2*c; %Steifikeitsdiagonalen
f(i) = -2 *d; %Daempfungsdiagonalen
r(i) = -m; %Massendiagonale
end clear i;
%Nebendiagonalen
for i = 1:n-1
b(i) = c; %Steifigkeitsnebendiagonale
g(i) = d; %Daempfungsnebendiagonale
end clear i;
C = diag(v)+ diag(b,1) + diag(b,-1);
D = diag(f)+ diag(g,1) + diag(g,-1);
M = diag(r);
% M = [m, 0; 0, m]; % C = [2*c, -c; 2*c, -c]; % D = [2*d, -d; 2*d, -d];
%% Systemmatrix
A =[N E;(-1)*inv(M)*C (-1)*inv(M)*D]; % Systemmatrix
% %% Anregungsvektor % for i = 1 :n % A = 0; % end % F = transpose(A); % clear i;
F = [0; 0; 0; 0; 0; 0; 0; 0; 0; 0];
%% Zustandsraumdarstellung
Soweit so gut, funktioniert auch gut. Allerdings möchte ich nun z.B. den Parameter n im skript und nicht der Funktion definieren, damit ich dann über den input befehl user eingaben ermögliche.. so sieht der versuch aus:
Bei der falschen Version habe ich 'n' bei den Solveroptionen eingefügt, sodass matlab es nicht als Funktionsparameter interpretieren konnte, richtig?!
Einstellungen und Berechtigungen
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
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.