📄 multirate.m
字号:
% Jitterbug example: multirate.m% ==============================% Calculate the performance of ordinary/multirate ball & beam controllers = tf('s');Gphi = 4.4/s;Gx = -9.0/s^2;Q = diag([1 0]);R1 = 1; R2 = 0;h = 0.1;delta = h/2;K1 = -0.2;Ti = 10;Td = 1;N = 10;PID1c = -K1*(1+1/Ti/s+s*Td/(1+s*Td/N)); % PID controllerPID1 = c2d(PID1c,h,'matched');K2 = 4;PID2 = K2*[1 -1]; % P controller%% Case 1: ordinary cascade controllerN = initjitterbug(delta,h);N = addtimingnode(N,1,[1],2); % Add node 1N = addtimingnode(N,2); % Add node 2N = addcontsys(N,1,Gphi,4,Q,R1); % Add sys 1 (Gphi)N = addcontsys(N,2,Gx,1,Q); % Add sys 2 (Gx)N = adddiscsys(N,3,PID1,2,1); % Add sys 3 (PID1) to node 1N = adddiscsys(N,4,PID2,[3 1],2); % Add sys 4 (PID2) to node 2N = calcdynamics(N); % Calculate internal dynamicsJ = calccost(N) % Calculate cost%% Case 2: multirate cascade controllerN = initjitterbug(delta,h);N = addtimingnode(N,1,[1],2); % Add node 1N = addtimingnode(N,2,[0 1],3); % Add node 2N = addtimingnode(N,3); % Add node 3N = addcontsys(N,1,Gphi,4,Q,R1); % Add sys 1 (Gphi)N = addcontsys(N,2,Gx,1,Q); % Add sys 2 (Gx)N = adddiscsys(N,3,PID1,2,1); % Add sys 3 (PID1) to node 1N = adddiscsys(N,4,PID2,[3 1],2); % Add sys 4 (PID2) to node 2N = adddiscexec(N,4,[],[3 1],3); % Add exec of sys 4 (PID2) to node 3N = calcdynamics(N); % Calculate internal dynamicsJ = calccost(N) % Calculate cost
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -