Функция шага будет применять шаговый ввод единицы измерения, поэтому эта строка B=[0 0 1/M1 0]'*F;
неверна. Вы модифицируете матрицу ввода. Для того чтобы увидеть ответ системы из-за пошагового ввода, вы делаете
k1=150;
k2=700;
b1=15;
b2=30;
M1=5;
M2=20;
w=1;
t=1e-10:.1:1;
%F=sin(w*t); %Sinewave input
A=[0 0 1 0; 0 0 0 1; -k1/M1 k1/M1 -b1/M1 b1/M1; k1/M2 -(k1+k2)/M2 b1/M2 -(b1+b2)/M2];
B=[0 0 1/M1 0]';
C=[1 0 0 0];
D=0;
sys=ss(A,B,C,D); %State Space Model
step(sys)
figure % create a new figure for Bode plot
margin(sys)
Результаты
![enter image description here](https://i.stack.imgur.com/fjFT6.png)
![enter image description here](https://i.stack.imgur.com/G4KIN.png)
Чтобы определить произвольный ввод, вы можете использовать lsim
. В вашем случае вы можете сделать следующее
k1=150;
k2=700;
b1=15;
b2=30;
M1=5;
M2=20;
w=1;
%t=1e-10:.1:1;
t = linspace(0, 100, 1000);
F=sin(w*t); %Sinewave input
A=[0 0 1 0; 0 0 0 1; -k1/M1 k1/M1 -b1/M1 b1/M1; k1/M2 -(k1+k2)/M2 b1/M2 -(b1+b2)/M2];
B=[0 0 1/M1 0]';
C=[1 0 0 0];
D=0;
sys=ss(A,B,C,D); %State Space Model
% step(sys)
% figure
% margin(sys)
output = lsim(sys, F, t);
plot(t, output)
![enter image description here](https://i.stack.imgur.com/WVItw.png)