计算机绘制系统单位阶跃响应曲线程序
出处:按学科分类—工业技术 北京理工大学出版社《新编液压工程手册上册》第144页(6475字)
(1)功能
本程序可在PC/XT或其它兼容机的屏幕及打印纸上绘出自动控制系统的单位阶跃响应曲线;绘图同时,可自动给出该响应的性能指标tr,tp,σp,ts(△=±5%)及所使用的时间比例尺C。
(2)闭环传递函数表达式
(3)程序使用符号
M——系统闭环传递函数分子的阶次;
N——系统闭环传递函数分母的阶次;
H1——积分步长;
C——时间坐标比例尺;
L1——屏幕限制;
T——时间;
A(N-1)——由a0,a1,…,an-1构成的数组;
B(M)——由b0,b1,…,bm构成的数组;
Y——系统输出;
tr——上升时间;
tp——峰值时间;
Mp——超调量,即σp;
ts——调节时间(△=±5%)。
(4)使用方法
·在1520行的DATA中给出M,N,H1,C的数据。H1,C的数值可参考例题。
·在1525行的DATA中给出b0,b1,…,bm的数据。
·在1530行的DATA中给出a0,a1,…,an-1的数据。
(5)注意事项
(A)要适当地选择积分步长H1。H1小则画图慢,H1大则画图快,但H1太大使精度下降,甚至使计算发散。
(B)要适当地选择时间比例尺C。C值加大,曲线横向展宽,反之则压缩。
(6)例题
例 若系统闭环传递函数为
试用计算机绘制其单位阶跃响应曲线,并给出性能指标。[解]①给出数据
1520 DATA 1,4,1E-1,1E-3,0.25
1525 DATA 5.1,1.275
1530 DATA 5.1,7.775,9.25,5
②运行结果示于图5.4-7。
图5.4-7 例题的单位阶跃响应曲线
(7)BASIC参考程序
1000 REM UNIT STEP RESPONSE
1005 CLS∶KEY OFF∶SCREEN 2,0
1010 LINE(150,10)-(150,160)
1015 LINE(150,10)-STEP(4,5)
1020 LINE(150,10)-STEP(-4,5)
1025 LINE(150,40)-(158,40)
1030 LINE(150,80)-(158,80)
1035 LINE(150,120)-(158,120)
1040 FOR Ⅰ=1 TO 30
1045 PSET(150+15*Ⅰ,80)
1050 NEXT Ⅰ
1055 LOCATE 2,15∶PRINT”h”
1060 LOCATE 5,15∶PRINT”1.5”
1065 LOCATE 10,15∶PRINT”1.0”
1070 LOCATE 15,15∶PRINT”0.5”
1075 LOCATE 20,15∶PRINT”0.0”
1080 LINE(150,160)-(600,160)
1085 LINE(600,160)-STEP(-10,-2)
1090 LINE(600,160)-STEP(-10,2)
1095 FOR Ⅰ=1 TO 5
1100 LINE(150+72*Ⅰ,155)-(150+72*Ⅰ,160)
1105 NEXT Ⅰ
1110 LOCATE 22,19∶PRINT”0”
1115 LOCATE 22,28∶PRINT”1”
1120 LOCATE 22,37∶PRINT”2”
1125 LOCATE 22,46∶PRINT”3”
1130 LOCATE 22,55∶PRINT”4”
1135 LOCATE 22,64∶PRINT”5”
1140 LOCATE 22,73∶PRINT”Ct”
1145 LOCATE 2,1
1150 READ C1,C2,L1,T
1155 READM,N,H1,E,C
1160 DIM X(N),X1(N),H(4),K(N,4)
1165 PRINT”C=”;C
1170 FOR Ⅰ=0 TO M
1175 READ B(Ⅰ)
1180 NEXTⅠ
1185 FOR Ⅰ=0 TO N-1
1190 READ A(Ⅰ)
1195 NEXT Ⅰ
1200 FOR Ⅰ=1 TO N
1205 X(Ⅰ)=0
1210 NEXT Ⅰ
1215 FOR Ⅰ=0 TO M
1220 Y(0)=B(Ⅰ)*X(Ⅰ+1)
1225 NEXT Ⅰ
1230 X5=150+C1*C*T
1235 Y5=160-C2*Y(0)
1240 H=H1∶L=0∶P=0∶MP=0∶TR=0
1245 H(1)=H/2∶H(2)=H∶H(3)=H∶H(4)=H/2
1250 J=1
1255 GOSUB 1475
1260 FOR Ⅰ=1 TO N
1265 X(Ⅰ)=X(Ⅰ)+H(J)*K(Ⅰ,J)/3
1270 NEXT Ⅰ
1275 J=J+1
1280 IF J<=4 THEN 1255
1285 T=T+H∶L=L+1∶P=P+1
1290 FOR Ⅰ=1 TO N
1295 X1(Ⅰ)=X(Ⅰ)
1300 NEXT Ⅰ
1305 IF P<2 THEN1315
1310 P=2
1315 Y(P)=0
1320 FOR Ⅰ=0 TO M
1325 Y(P)=Y(P)+B(Ⅰ)*X(Ⅰ+1)
1330 NEXT Ⅰ
1335 Y2=Y(P)-B(0)/A(0)∶Y(4)=ABS(Y2)-.05
1340 Y2=Y(P)-B(0)/A(0)∶Y(4)=ABS(Y2)-.05
1345 IF TR<>0THEN 1375
1350 IF ABS(Y2)>.1 THEN 1375
1355 IF Y1*Y2>0 THEN1370
1360 TR=T-.5*H
1365 PRINT”tr=”;TR
1370 H=.1*H1∶GOTO1380
1375 H=H1
1380 IF P<2 THEN 1425
1385 IF MP<>0 THEN 1415
1390 IF Y(2)>Y(1)THEN 1415
1395 IF Y(1)<=Y(0)THEN 1415
1400 MP=Y2
1405 PRINT”tp”;T
1410 PRINT”Mp”;MP
1415 IF Y3*Y4>0 THEN 1425
1420 TS=T-.5*H
1425 IF(L/3-INT(L/3))<>0 THEN 1450
1430 X6=150+C1*C*T∶Y6=160-C2*Y(P)
1435 LINE(X5,Y5)-(X6,Y6)
1440 IF X6>L1 THEN 1535
1445 X5=X6∶Y5=Y6
1450 IF P=1 THEN 1465
1455 Y(0)=Y(1)∶Y(1)=Y(2)∶Y1=Y2∶Y3=Y4
1460 GOTO 1470
1465 Y(0)=Y(1)∶Y3=Y4
1470 GOTO 1245
1475 FOR Ⅰ=1 TO N-1
1480 K(Ⅰ,J)=X1(Ⅰ+1)
1485 NEXT Ⅰ
1490 K(N,J)=1
1495 FOR Ⅰ=1 TO N
1500 K(N,J)=K(N,J)-A(Ⅰ-1)*X1(Ⅰ)
1505 NEXT Ⅰ
1510 RETURN
1515 DATA 72,80,550,0
1520 DATA
1525 DATA
1530 DATA
1535 PRINT”ts=”;TS
1540 END