octave中matlab中的双变量循环的解决思路,不是双层循环,请钢精回避吧
同时画出K=1,KI=0和K=1,KI=1和K=10,KI=5,传递函数为Ts=(Ks+KI)/(s^3+3*s^2+(2+K)*s+KI)的暂态响应曲线。
刚开始用循环时,发现不能像c中的for中双变量循环,很明显,此处也不能双重循环,否则图像就不对了,后来的解决的办法,虽然不是很高明,但总算解决了,记录下,代码的注释已经很详细了,具体就说了。
代码如下:
1 pkg load control 2 3 t=0:0.01:10; 4 %充分利用matlab中yis 列输出的特性,将KKI按照2行3列的方法形成一个矩阵 5 KKI=[1 1 10; 0 1 5] 6 7 for kki=KKI 8 %此时kki是第一列数值,也就是1 0 9 denT=[1 3 2+kki(1) kki(2)]; 10 %kki(1)=1 kki(2)=0,变相实现了并行的双变量循环,而不是二层循环 11 numT=[kki(1) kki(2)]; 12 sysT=tf(numT,denT); 13 hold on; 14 grid on; 15 step(sysT); 16 end
图像:
先凑合用吧。
人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。