Matlab连续时间系统仿真报错求助:请求排查代码问题
Matlab连续时间系统仿真错误排查
输入信号与时间向量长度不匹配
时间向量T = 0:0.1:5包含51个采样点,而idinput(N,'prbs',...)生成的ud仅50个点,lsim要求输入信号长度必须和时间向量长度完全一致。
解决:将N改为length(T),或者调整T为0:0.1:4.9(50个点)。初始条件维度不匹配
系统sysc是7阶(分母多项式有7个系数),状态向量维度应为7,但你设置的x0仅4维,导致lsim报错。
解决:将x0改为7维零向量:x0 = zeros(7,1);
修正后的完整代码
clc; Ts=0.1; T=0:0.1:5; N=length(T); % 自动匹配时间向量长度 numc=[1 0.3 4 0.6 3]; denc=[1 0.3 6 1.2 10 1.2 4]; sysc=tf(numc,denc); ud=idinput(N,'prbs',[0 0.1],[-1 1]); x0 = zeros(7,1); % 匹配系统阶数的初始条件 yd=lsim(sysc,ud,T); % 可选:绘制仿真结果 plot(T,yd); xlabel('时间(s)'); ylabel('输出响应'); title('连续系统仿真输出');
内容的提问来源于stack exchange,提问作者Nim4eng
相关产品推荐
相关产品推荐

