Row and column lsim error?

clear all close all clc
A = [0 1;0 0]; B2 = [0; 64013000]; Cc = [-10.588174398921385 -0.318818010164237]; Bc = [2.409919108480979e3 ; 4.696699700129756e2]; C2 = [1 0]; Ac = [-2.409587000245264e3 1.000000016273038 ; -6.777812774681246e8 -2.040849728464332e7];
B1 = [0 0;1 0]; D21 = [0,1];
C1 = [1 0; 0 0]; D12 = [0; 0.1];
Acl = [A B2*Cc ; Bc*C2 Ac]; Bcl = [B1 ; Bc*D21]; Ccl = [C1 D12*Cc]; Dcl = zeros(2,2);
clsys = ss(Acl, Bcl, Ccl, Dcl);
t = 0:0.01:10; A = 1; f = 1000; q = A*sin(f*t);
z = lsim(clsys, q, t);
figure(1) plot (t, q(1,:),'b', t, z(:,1),'r')
figure(2) plot (t, z(:,2))
omega = logspace(-2, 4, 5000); [mag, phase] = bode(clsys,omega); mag1 = reshape(mag(1,1,:),1,5000); figure(3) semilogx(omega, 20*log10(mag1))
Does the problem lies with how I tried to generate my sin wave?
The error message was: "When simulating the response to a specific input signal, the input data U must be a matrix with as many rows as samples in the time vector T, and as many columns as input channels"

 Accepted Answer

Hello Raymond, the system has two inputs, therefore the input signal needs to be a 2-by-n vector. Use, e.g.
...
t = 0:0.01:10;
A = [1 2];
f = 1000;
q = A'*sin(f*t);
...

More Answers (0)

Asked:

on 16 Oct 2014

Answered:

on 16 Oct 2014

Community Treasure Hunt

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

Start Hunting!