# Numerical parameter file (TwoLinkGPC_input.txt) # Generated by MTT at Mon Apr 13 11:02:37 BST 1998 # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # %% Version control history # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # %% $Id$ # %% $Log$ # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% global ObserverGain; if t<10 tau = 0; else tau = 0.1; end # Reference signals Period = 20; u(1) = -pi*sign(cos(2*pi*t/Period))*(t>5); # TwoLinkGPC (Ref_1) u(2) = pi*sign(sin(2*pi*t/Period)); # TwoLinkGPC (Ref_2) w = u(1:2); # Reference signal # Control signals x_model = x(9:12); # Observed states [O_o, O_h] = TwoLinkPS_obs(x_model) #GPC O function (affine case) [spec_n,spec_d] = msdP_tf; # Spec transfer function P = spec_d(3:-1:1); # P poly with ascending coeffs PP = [eye(2)*P(1) eye(2)*P(2) eye(2)*P(3)]; # Matrix version PO_o = PP*O_o; # Compute Py with u zero PO_h = PP*O_h; # Coefficient of u u_control = PO_h\(w - PO_o); # GMV control signal u(3:4) = u_control; # TwoLinkGPC (Tau_1) # Observer x_system = x(5:8); # System states error = x_system-x_model; # Error in states ObserverInput = ObserverGain*error; u(5:8) = ObserverInput; # Set the state-input to the observer