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

图像:

先凑合用吧。

posted @ 2024-03-23 10:55  叕叒双又  阅读(26)  评论(0编辑  收藏  举报