Row and column lsim error?

조회 수: 11 (최근 30일)
Raymond
Raymond 2014년 10월 16일
답변: Mischa Kim 2014년 10월 16일
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"

채택된 답변

Mischa Kim
Mischa Kim 2014년 10월 16일
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);
...

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Frequency-Domain Analysis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by