Overview

Due in stages.
Post Reply
goodwine
Site Admin
Posts: 1596
Joined: Tue Aug 24, 2004 4:54 pm
Location: 376 Fitzpatrick
Contact:

Overview

Post by goodwine »

It is now 2022 and you work for Mazda in the MX-5 Miata suspension group.

Image

Your current project is to evaluate the baseline spring and damper values for the Miata and propose new values that give better ride characteristics. Use a 1/4 car model (only looking at one wheel), which is the model we developed in section 4.42 of the book. For a Miata from google:
  • m=250 kg
  • k = 6000 kg/m = 6000*9.81 N/m
  • b = 5370 N s/m.
You inherited some programs from a colleague who was promoted to be your boss.
  1. road.m: this one plots the road profile. Name it whatever you want.

    Code: Select all

    %% Initialization
    clear all; close all; hold off; clc;
    %%% put your NDND here for your own road. You can debug using the same
    %%% number as others, but your design must be based on YOUR number. This
    %%% seeds a random number generator that makes your own individual road
    %%% profile. 
    ndid = 2112;
    
    %%% select sk0 to change quality of the road
    sk0 = 10/10^6;      % very good road
    %sk0 = 40/10^6;     % good road
    %sk0 = 160/10^6;    % average road
    %sk0 = 640/10^6;    % poor road
    %sk0 = 2560/10^6;   % very poor road
    
    %%% DO NOT CHANGE ANY OF THESE!!!
    minwaveno = -2; maxwaveno = 2;  
    N = 61; wavenos = logspace(minwaveno,maxwaveno,N);
    rng(ndid+floor(sk0+10^6*2)); phi = unifrnd(-pi,pi,1,N);  
    %%% END OF DO NOT CHANGE ANY OF THESE
    
    roadlength = 1000;  % 1km track
    
    %%% The y() function returns the height of the road at location x.
    %%% (Road height at location x) = y(sk0,wavenos,phi,x). Do not change the
    %%% first three arguments because they are used to make the road shape.
    x = linspace(0,1000,100000);
    
    %%% This will plot the road profile. This will change if you change NDID or
    %%% change sk0.
    plot(x,y(sk0,wavenos,phi,x)); 
    
    %%% Baseline suspension values
    m = 250; k = 6000*9.81; b = 5370; g = 9.81;
    v = 30; % units are m/s
    t = linspace(0,roadlength/v,100000);
    
    %%% This will plot the road vs time if you are driving at speed v
    plot(t,y(sk0,wavenos,phi,t*v));
    
  2. y.m: this one returns the hight of the road at location x. You probably do not need to change this function. Name it "y.m" unless you want to find all the places in your program that use it.

    Code: Select all

    function h = y(sk0,wavenos,phi,x)
        h = 0; k0 = 1/(2*pi); n1 = -3; n2 = -2.25;
        coef1 = sqrt(2*pi/(length(wavenos)));
        for n=1:length(wavenos)
            wn = wavenos(n);
            coef2 = sqrt(sk0*(wn/k0)^n1*(wn<=k0) + sk0*(wn/k0)^n2*(wn>k0));
            h = h + coef1*coef2*cos(2*pi*wn*x+phi(n));
        end 
    end
  3. dydx.m: returns the slope of the road at location x. You probably do not need to change this function. Name it "dydx.m" unless you want to find all the places it is used. You need the slope to compute the vertical velocity of the wheel.

    Code: Select all

    function dhdx = dydx(sk0,wavenos,phi,x)
        dhdx = 0; k0 = 1/(2*pi); n1 = -3; n2 = -2.25;
        coef1 = sqrt(2*pi/(length(wavenos)));
        for n=1:length(wavenos)
            wn = wavenos(n);
            coef2 = sqrt(sk0*(wn/k0)^n1*(wn<=k0) + sk0*(wn/k0)^n2*(wn>k0));
            dhdx = dhdx - 2*pi*wn*coef1*coef2*sin(2*pi*wn*x+phi(n));
        end
    end
The broad project outline is as follows. The specifics of each will be provided in other posts.
  1. Write a program that computes the height of the car as it drives down the road. It should allow for different velocities, different k, different b and the various road types provided (good, very good, etc.).
  2. From the solution to the road height, determine the maximum compression or extension of the suspension. Car suspensions can compress only so much before they "bottom out" which is hard on the car frame. Also, a good suspension keeps the wheels in contact with the road, so negative accelerations in excess of gravity are bad. Finally, too much acceleration overall is fatiguing for drivers and passengers, so that should be minimized too. From the height solution, these can be determined.
  3. For various velocities and road types, determine the "best" k and b values, where your boss tells you what is best, e.g., max compression is 5 cm.
Bill Goodwine, 376 Fitzpatrick
Post Reply

Return to “Design Project”