Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Matlab help with design problem

  1. Apr 27, 2005 #1
    I'm attempting to use Matlab to help me solve a controller design problem...
    I'm using the Polynomial Equations Approach for this design, but I'm getting an error, and a result I wasn't looking for.

    I'm getting an error that reads "Warning: Matrix is singular to working precision."

    Also, the last Matrix M is returning the values NaN for all values...

    My code is bellow. Any help would be appreciated.
    (this post is cross listed in the Electrical Engineering section)

    %Servo Position Controller
    %Using Polynomial Equation Method

    %Defining the vairables in the TF

    Rm = 2.6; %armature resistance
    Km = 0.00767; %Back-emf constant
    Kt = 0.00767; %motor torque constant
    Jm = 3.87*exp(-7); %motor moment of inertia
    Jeq = 2.0*exp(-3); %equivalent moment of inertia at the laod
    Beq = 4.0*exp(-3); %equivalent viscous damping coefficent
    Kg = 70; %srv02 system gear ratio (motor->load) (14X5)
    Ng = 0.9; %gearbox efficiency
    Nm = 0.69; %motor efficiency

    a0 = Jeq*Rm %defining the terms of plant denominator
    a1 = (Beq*Rm + Ng*Nm*Km*Kt*(Kg)^2)
    a2 = 0;

    b0 = Ng*Nm*Kt*Kg %defining terms of plant Numerator

    PlantNum = [b0] %plant numerator
    PlantDenom = [a0 a1 a2] %plant denominator

    PlantTF = tf(PlantNum, PlantDenom); %building the plant transfer function

    %becuase a second order system is desired (from the lab handout)
    %the closed loop poles will be at s^2 + 2s + 1 ie at +-45 degrees from the
    %axis...

    E = [a2, 0, 0, 0; %the Sylvester Matrix E for a plant with the equation
    a1, a2, 0, 0; %like this (0*s^2) + (0*s) + X
    1, a1, b0, 0; % ---------------------
    0, 1, 0, b0;] % (z*s^2) + (y*s) + w


    % D = F*H, D = (s^3) + (2s^2) + s + 0 = (d0*s^3)+(d1*s^2)+(d2*s)+d3
    % D = [d3
    % d2
    % d1
    % d0]

    D = [0;
    1;
    2;
    1;]

    M = (inv(E))*D %inverting the Sylvester Matrix and multiplying by D
    %this gives the coefficients which will produce the desired
    %controller...
    % M = [alpha1
    % alpha0
    % beta1
    % beta0]
    %The dseired controller is of the form
    % beta0 + beta1 Beta(z)
    % --------------- = --------
    % alpha0 + alpha1 Alpha(z)
     
  2. jcsd
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Can you help with the solution or looking for help too?
Draft saved Draft deleted



Similar Discussions: Matlab help with design problem
Loading...