Effacer les filtres
Effacer les filtres

Differences in simulation results in state space models using matlab

2 vues (au cours des 30 derniers jours)
Andrew Wileman
Andrew Wileman le 12 Déc 2013
Commenté : Andrew Wileman le 12 Déc 2013
Hi,
I'm writing some code to simulate a relay dynamically. I've derived differential equations, linearised them around an operating point and put into state space form. Firstly, I checked the impulse and step response at the operating input using the state space function in matlab, the response was ok. I then implemented the same equations in code (see attached) and the impulse response is different, in fact unstable - any ideas anyone?
Cheers,
Andy

Réponse acceptée

Suneesh
Suneesh le 12 Déc 2013
You are using continuous SS coefficients while you are (discrete) simulating your system in:
% Perform the system simulation:
x = x0; % Set initial state
for n=1:Ns-1 % Iterate through time
y(n) = C*x + D*u(n); % Output for time n-1
x = A*x + B*u(n); % State transitions to time n
end
y' % print the output y (transposed)
%plot(y')
Instead use the discrete coefficients, which you already have available in 'sysd':
discA = sysd.a;
discB = sysd.b;
discC = sysd.c;
discD = sysd.d;
Then try:
x = x0; % Set initial state
for n=1:Ns-1 % Iterate through time
y(n) = discC*x + discD*u(n); % Output for time n-1
x = discA*x + discB*u(n); % State transitions to time n
end
y' % print the output y (transposed)
%plot(y')
  1 commentaire
Andrew Wileman
Andrew Wileman le 12 Déc 2013
Hi,
Thanks Suneesh for your help, works fine now.
Once again many thanks,
Andy

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur General Applications dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by