new microsoft word dwserocument

3
Matlab code: clc,clear all; % Define the state space matrices (A, B, C, D) Ap = [0,1,0; 0,0,1; 0,-10,-7]; Bp = [0; 0; 1]; Cp = [1,0,0]; % Get the number of states, n, number of controls, m, and the number of % outputs, p. [n,m] = size(Bp); p = size(Cp,1); Dp = zeros(p,m); % Define the state space model. sys_p.Ap = Ap; sys_p.Bp = Bp; sys_p.Cp = Cp; sys_p.Dp = Dp; %define control state system Ki = 5.55; Kp = 1.11; Ac = 0; Bc1 = -Ki; Bc2 = Ki; Cc = 1; Dc1 = -Kp; Dc2 = Kp; sys_c.Ac = Ac; sys_c.Bc1 = Bc1; sys_c.Bc2 = Bc2; sys_c.Cc = Cc; sys_c.Dc1 = Dc1; sys_c.Dc2 = Dc2; %closed loop system

Upload: akinojohnkennedy

Post on 17-Jan-2016

212 views

Category:

Documents


0 download

DESCRIPTION

dfgdfgfdg

TRANSCRIPT

Page 1: New Microsoft Word Dwserocument

Matlab code:

clc,clear all;% Define the state space matrices (A, B, C, D)Ap = [0,1,0; 0,0,1; 0,-10,-7]; Bp = [0; 0; 1];Cp = [1,0,0];% Get the number of states, n, number of controls, m, and the number of% outputs, p.[n,m] = size(Bp);p = size(Cp,1);Dp = zeros(p,m);% Define the state space model.sys_p.Ap = Ap;sys_p.Bp = Bp;sys_p.Cp = Cp;sys_p.Dp = Dp;%define control state systemKi = 5.55;Kp = 1.11;Ac = 0;Bc1 = -Ki;Bc2 = Ki;Cc = 1;Dc1 = -Kp;Dc2 = Kp;sys_c.Ac = Ac;sys_c.Bc1 = Bc1;sys_c.Bc2 = Bc2;sys_c.Cc = Cc;sys_c.Dc1 = Dc1;sys_c.Dc2 = Dc2;%closed loop system[A,B,C,D] = closed_loop_system(sys_p, sys_c);ABCD

Page 2: New Microsoft Word Dwserocument

function [A,B,C,D] = closed_loop_system(sys_p, sys_c)% Extract plant matrices.Ap = sys_p.Ap;Bp = sys_p.Bp;Cp = sys_p.Cp;Dp = sys_p.Dp; % Extract controller matrices.Ac = sys_c.Ac;Bc1 = sys_c.Bc1;Bc2 = sys_c.Bc2;Cc = sys_c.Cc;Dc1 = sys_c.Dc1;Dc2 = sys_c.Dc2; % Intermediate matrices.Dc1Dp = Dc1*Dp;Z = eye(size(Dc1Dp,1)) - Dc1Dp;DpiZDc1 = Dp*inv(Z)*Dc1; if (all(abs(sys_c.Ac(:)) < 1e-6) && all(abs(sys_c.Bc1(:)) < 1e-6) && ... all(abs(sys_c.Bc2(:)) < 1e-6)) % No controller state defined. % Closed loop A matrix. A = Ap + Bp*inv(Z)*Dc1*Cp; % Closed loop B matrix. B = Bp; % Closed loop C matrix. C = Cp; % Closed loop D matrix. D = Dp;else % Controller state defined. % Closed loop A matrix. A = [Ap + Bp*inv(Z)*Dc1*Cp, Bp*inv(Z)*Cc; Bc1*(eye(size(DpiZDc1,1))+DpiZDc1)*Cp, Ac+Bc1*Dp*inv(Z)*Cc]; % Closed loop B matrix. B = [Bp*inv(Z)*Dc2; Bc2 + Bc1*Dp*inv(Z)*Dc2];

Page 3: New Microsoft Word Dwserocument

% Closed loop C matrix. C = [(eye(size(DpiZDc1,1))+DpiZDc1)*Cp, Dp*inv(Z)*Cc]; % Closed loop D matrix. D = Dp*inv(Z)*Dc2;end

Result:A = 0 1.0000 0 0 0 0 1.0000 0 -1.1100 -10.0000 -7.0000 1.0000 -5.5500 0 0 0

B = 0 0 1.1100 5.5500

C = 1 0 0 0

D = 0