modeling and simulation of a six wheel differential …

81
The Pennsylvania State University The Graduate School College of Engineering MODELING AND SIMULATION OF A SIX WHEEL DIFFERENTIAL TORQUE STEER VEHICLE A Thesis in Mechanical Engineering by Madhu Soodhanan Govindarajan Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science August 2010

Upload: others

Post on 09-Dec-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

The Pennsylvania State University

The Graduate School

College of Engineering

MODELING AND SIMULATION OF A SIX WHEEL

DIFFERENTIAL TORQUE STEER VEHICLE

A Thesis in

Mechanical Engineering

by

Madhu Soodhanan Govindarajan

Submitted in Partial Fulfillment

of the Requirements

for the Degree of

Master of Science

August 2010

ii

The thesis of Madhu Soodhanan Govindarajan was reviewed and approved by the following:

H. J. Sommer III

Professor of Mechanical Engineering

Thesis Advisor

E.R. Marsh

Professor of Mechanical Engineering

K.A.Thole

Professor and Head of Mechanical and Nuclear Engineering

iii

ABSTRACT

Autonomous Ground vehicles (AGV) are often required to automatically follow a pre-defined

trajectory. They are used extensively for various tasks in unstructured environments because of

their ability to navigate and perform well in such conditions. AGV‟s can be modeled and various

simulations can be performed on these models to obtain helpful data. This will help us

understand their behavior better under adverse conditions.

Modeling of a six wheeled differential torque system is presented in this thesis. Differential

torque steer vehicles, in order to follow a curved path must skid and have lateral tire motion

which makes control at a kinematic level insufficient. Thus a dynamic model was developed in

this work. This thesis is aimed at developing a mathematical model in MATLAB that will

provide useful results about the performance of the vehicle and also validate the simulations

done using Adams.

iv

Table of Contents

LIST OF TABLES ..................................................................................................................... vi

LIST OF FIGURES ................................................................................................................... vii

NOTATIONS .............................................................................................................................. x

CHAPTER 1 ................................................................................................................................ 1

INTRODUCTION ....................................................................................................................... 1

1.1 Modeling and Simulation ................................................................................................. 1

CHAPTER 2 ................................................................................................................................ 4

LITERATURE REVIEW ............................................................................................................ 4

2.1 Fundamentals of Steering ................................................................................................. 4

2.2 Fundamentals of Skid Steering ........................................................................................ 6

2.3 Previous Skid Steer Modeling .......................................................................................... 7

CHAPTER 3 ................................................................................................................................ 9

PHYSICAL PARAMETER DETERMINATION ...................................................................... 9

3.1 Measuring Mass Moment of Inertia with Torsional Pendulum ....................................... 9

3.2 Mass moment of inertia calculation of axle shaft .......................................................... 10

3.3 Mass moment of inertia calculation of wheel: ............................................................... 11

3.4 Mass moment of inertia calculation of sprockets: .......................................................... 12

3.5 Mass moment of inertia calculation of chain 1: ............................................................. 14

3.6 Mass moment of inertia calculation of chain 2: ............................................................. 14

CHAPTER 4 .............................................................................................................................. 15

ADAMS SIMULATIONS AND RESULTS ............................................................................ 15

4.1 Simulations ..................................................................................................................... 17

4.1.1 Straight line maneuvers .......................................................................................... 17

4.1.1.1 On flat road..................................................................................................... 17

4.1.1.2 Accelerating on flat road ................................................................................ 18

4.1.1.3 Accelerating on a ramp .................................................................................. 19

4.1.1.4 Running over an oblique bump ...................................................................... 21

4.1.1.5 Running over a straight bump ........................................................................ 22

4.1.2 Circular motion ........................................................................................................... 24

v

4.1.2.1 On flat road......................................................................................................... 24

4.1.2.2 On a ramp ........................................................................................................... 27

4.1.3 Lane change maneuver ................................................................................................ 29

4.1.4 J- Turn maneuver ........................................................................................................ 31

CHAPTER 5 .............................................................................................................................. 34

MATLAB MODELING AND SIMULATION ........................................................................ 34

5.1 Tire Modeling ................................................................................................................. 36

5.2 Friction Consideration .................................................................................................... 37

5.2.1 Mechanics of Force Generation ............................................................................ 37

5.3 Dynamic Equations ........................................................................................................ 39

5.4 Simulations ..................................................................................................................... 42

5.4.1 Straight line maneuvers ......................................................................................... 42

5.4.1.1 On flat road .................................................................................................. 42

5.4.1.2 Accelerating on flat road .............................................................................. 42

5.4.1.3 Accelerating on a ramp ................................................................................. 43

5.4.2 Lane change maneuver ........................................................................................... 44

5.4.3 J- turn maneuver ..................................................................................................... 47

CHAPTER 6 .............................................................................................................................. 50

CONCLUSION AND FUTURE WORK .................................................................................. 50

6.1 Scope for Future Research ............................................................................................ 51

REFERENCES .......................................................................................................................... 52

APPENDIX A Model parameters ............................................................................................. 54

APPENDIX B MATLAB code ................................................................................................. 57

vi

LIST OF TABLES

Table 3.1 Time taken for 20 oscillations of the wooden platform for the wheel………………..11

Table 3.2 Time taken for 20 oscillations of the metal platform for the sprockets..……………..13

vii

LIST OF FIGURES Fig 1.1 Organization of thesis……………………………………………………………………..3

Fig 2.1 Types of steering………………………………………………………………………….5

Fig 2.2 Clutch/Brake steering system……………………………..………………………………6

Fig 2.3 Differential steering system………………………………..……………………………...7

Fig 2.4 Planetary Gear steering system……………………………….…………………………..7

Fig 3.1 Torsional pendulum……………………………………….………...…………………..10

Fig 4.1 Tractive effort vs longitudinal slip………………………………………………………17

Fig 4.2 Cornering force vs slip angle………………………………......………………………..17

Fig 4.3 Input torque applied to the wheels (Straight line on a flat road)…….………………….18

Fig 4.4 Distance travelled by the vehicle (Straight line on a flat road)…………………………19

Fig 4.5 Input torque applied to the wheels (Accelerating on flat road)……….………………...19

Fig 4.6 Distance travelled by the vehicle (Accelerating on flat road)………...………………...20

Fig 4.7 Input torque applied to the wheels (Accelerating on a ramp)………….………………..21

Fig 4.8 Distance travelled by the vehicle (Accelerating on a ramp)…………...………………..21

Fig 4.9 Input torque applied to the wheels (Running over an oblique bump)…………………..22

Fig 4.10 Distance travelled by the vehicle (Running over an oblique bump)……...………..….22

Fig 4.11 Path traced by the vehicle (Running over an oblique bump)……………...….……….23

viii

Fig 4.12 Input torque applied to the wheels (Running over a straight bump)………………….24

Fig 4.13 Distance travelled by the vehicle (Running over a straight bump)…………..……….24

Fig 4.14 Path traced by the vehicle (Running over a straight bump)…………………..…........25

Fig 4.15 Input torque applied to one set of wheels (Circular motion on flat road).….…...……25

Fig 4.16 Distance travelled by the vehicle (Circular motion on flat road)…………….…..…...26

Fig 4.17 Path traced by the vehicle (Circular motion on flat road)…………………….…........26

Fig 4.18 Input torque applied to one set of wheels (Circular motion on flat road)……...…..…27

Fig 4.19 Distance travelled by the vehicle (Circular motion on flat road)………………..........27

Fig 4.20 Path traced by the vehicle (Circular motion on flat road)………………………....….28

Fig 4.21 Input torque applied to one set of wheels (Circular motion on a ramp)………...…….28

Fig 4.22 Distance travelled by the vehicle (Circular motion on a ramp)……………….…...….29

Fig 4.23 Path traced by the vehicle (Circular motion on a ramp)………………………........…29

Fig 4.24 Input torque applied to the left set of wheels (Lane change maneuver)…….…….......30

Fig 4.25 Input torque applied to the right set of wheels (Lane change maneuver)…....…….....31

Fig 4.26 Path traced by the vehicle (Lane change maneuver)……………………….……...…31

Fig 4.27 Input torque applied to the left set of wheels (J-Turn maneuver)………….…..…….32

Fig 4.28 Input torque applied to the right set of wheels (J-Turn maneuver)………….....…….33

ix

Fig 4.29 Distance travelled by the vehicle (J-Turn maneuver)……………………..…….…...33

Fig 4.30 Path traced by the vehicle (J-Turn maneuver)………………………..………….…..34

Fig 5.1 Vehicle fixed co-ordinate system in different views……………...………………….36

Fig 5.2 Vehicle in earth-fixed co-ordinate system………………………...…………..…..….37

Fig 5.3 Tire axis system nomenclature………………………………...……………….....…..37

Fig 5.4 Tire deformation mechanism……………………………..……………………….….39

Fig 5.5 Friction force vs slip……………………………………………………………..…...40

Fig 5.6 Braking effort coefficient vs slip…………………………………………..…..……..40

Fig 5.7 Vehicle showing its centre of gravity and origin..…………………………….……...42

Fig 5.8 Throttle command used in design of the motor…..…………………………….…….43

Fig 5.9 Path traced by the vehicle (Straight line maneuver on a flat road)……………….…….……44

Fig 5.10 Path traced by the vehicle (Accelerating on a ramp)……………………………..……....…45

Fig 5.11 Input torque applied to the left and right set of wheels (Lane change maneuver).....46

Fig 5.12 Path traced by the vehicle (Lane change maneuver)………………………………..46

Fig 5.13 Tire forces (Lane change maneuver, 510 rpm axle speed)…………………...….…47

Fig 5.14 Input torque applied to the left and right set of wheels (J-turn maneuver)…………48

Fig 5.15 Path traced by the vehicle (J-turn maneuver)…………………………………….....48

x

NOTATIONS

JO – polar mass moment of inertia of object

JP – polar mass moment of inertia of platform

g – Acceleration of gravity = 32.2 ft/s2

mO – mass of object (wheels)

mP – mass of platform

I – Mass moment of inertia

m – mass of the body

r – Radius of string attachments from center of platform

τ – Time period for one torsional oscillation

s – Length of strings

mO1 – mass of object (sprocket 1)

mO2 – mass of object (sprocket 2)

HRF – Hub Right Front

HRM – Hub Right Middle

HRA – Hub Right Aft

HLF – Hub Left Front

xi

HLM – Hub Left Middle

HLA – Hub Left Aft

G – centroid of the vehicle.

D – origin of the vehicle (for modeling purposes)

𝜔 – Angular velocity at the wheels.

V – forward velocity of the vehicle.

TC – Throttle control.

𝜃 – Pitch.

𝜑 – Roll.

Ψ – Yaw.

1

CHAPTER 1

INTRODUCTION

The research focus in this thesis is on dynamic modeling and computer simulation of a six

wheeled vehicle with non-steerable wheels. These types of vehicles were traditionally called

skid steer vehicles. This term has now been phased out by a more descriptive name “differential

torque steer vehicle”. The reason behind the name change is due to the capacity of the vehicle to

achieve a pivot steer about any arbitrary axis which was not possible before.

Those vehicles which do not possess ability to transfer power from one side to another of the

vehicle while turning are still called skid steer vehicles. Differential torque steer vehicles spin

about a stationary vertical axis also called pivot steer maneuvering. The differential drive torque

between the left and right wheels can be controlled by using differential steering torque.

The advantages of using these vehicles are

a) high degree of maneuverability

b) greater traction on surface than any other steering system and hence best when travelling

on rough terrain

c) compact and light.

1.1 Modeling and Simulation

Autonomous Ground Vehicles (AGV) automatically manipulate their actuation to follow a pre-

defined trajectory. Hence they must be tested under various conditions before they are sent out

on a mission. When modeled, various simulations can be performed on these vehicles to obtain

helpful data. This will help us understand their behavior better in those simulated conditions.

2

This data also lends us a helping hand in the development of vehicle navigation and/or steering

control systems. AGV control is primarily achieved using differential torque steer techniques. In

order to follow a curved path AGV‟s will skid and have substantial amounts of lateral tire motion

which makes control at kinematic level insufficient. Thus a dynamic model has to be developed.

The simulation results can also be used to infer details about the safety while operating at

extremely high speeds.

The organization of this thesis is explained in the following flow chart, Fig 1.1.

3

Fig 1.1 Organization of thesis

Legend

No – Red Arrow

Yes – Green Arrow

Compare

Complex maneuvers in CAD

Test Circular motion

Compare

Test Ramp Maneuvers

CAD Modeling Vehicle Modeling

Test St. Line Maneuvers

Compare Change parameters

4

CHAPTER 2

LITERATURE REVIEW

2.1 Fundamentals of Steering

Steering systems on road vehicles can be classified into three different categories:

a) Independent Steering

b) Axle Steering

c) Skid Steering

The Fig 2.1 below shows different types of steering systems that are used on road vehicles.

Independent Steering articulates each of the wheels to desired heading. Such systems are used in

vehicles that require high maneuverability. Four-Wheel Steering is an example for Independent

Steering Systems.

Single Axle Steering is achieved by adding a free pivot to one of the vehicle axes. The limitation

is that it has only one axis of pivoting other than the vehicles own axes. Front-Wheel, Rear-

Wheel systems are examples.

Skid Steering is achieved by making the wheels on one side turn faster/slower than the other. In

these vehicles, the wheels on one side are not connected to the other using axles. Instead, the

wheels on same side are connected using chains, tracks or other such mechanisms.

5

Fig 2.1 Types of steering

Articulated Frame Steering Articulated and Axle Steering

Front Wheel Steering Rear Wheel Steering

Twin Axle Steering

Twin Axle Steering Skid Steer

Four Wheel Steering Four Wheel Steering Twin Axle Steering

6

2.2 Fundamentals of Skid Steering

Various types of steering mechanisms are available using the principles of skid-steering. Those

are

a) Clutch/Brake Steering System

b) Differential Steering System

c) Planetary Gear Steering System

A clutch/brake steering system is shown in Fig 2.2. To initiate a turn, the inside chain/track is

disconnected from the driveline by declutching, and the brake is applied. The outside chain/track

is driven by the engine and generates a forward thrust. This steering brake absorbs considerable

power during a turn. The clutch/brake steering system is mainly used in low-speed vehicles.

Fig 2.2 Clutch/Brake steering system [1]

A differential steering system is shown in Fig 2.3. This system gets its input from the engine and

the gears are driven through a gearbox. The brake on the inside track is applied to steer the

vehicle. This results in reduction of the speed and a corresponding increase on the outside track.

Thus the forward speed on the Centre of Gravity of the vehicle will remain the same through the

turn.

7

Fig 2.3 Differential steering system [1]

A Planetary Gear steering system is shown in Fig 2.4. The input from the engine is through the

bevel gearing to the shaft. The shaft is connected to the tracks through the planetary gear train.

To steer the vehicle, the clutch on the inside track is disengaged and the brake is applied to the

ring gear. In this type of the system, considerably more power is required during a turn than in a

straight line.

Fig 2.4 Planetary Gear steering system [1]

2.3 Previous Skid Steer Modeling

Mangialardi and Gentile have written [2-4] several papers on the subject of skid steered vehicles.

Methods of analysis used in their papers are characterized by neglecting aerodynamics and

assuming a rigid vehicle frame.

8

Creedy developed a skid steer wheeled vehicle simulation which was implemented in BASIC

[5]. In this model an N-wheeled vehicle was assumed, where vertical loads are calculated using

forces and input torques applied to each wheel. Tire flexibility is not considered and the tire

lateral and longitudinal forces are modeled as Coulomb friction interface.

Schmid andTomaske were motivated to look at skid steering by recent developments in electric

drive motors which would allow each wheel to be independently controlled [6]. This work was

done for an 8 x 8 skid steer vehicle modeling with a steerable front axle. A steerable rear axle

modeling was also included in this work.

The most comprehensive of the skid steer modeling reviewed for this thesis was done by Renou

and Chavant [7]. A steady state model for a constant radius turn was developed and a more

complete dynamic model was written to validate their model.

Wang et al looked at differential steering as a steering system that can assist a four-wheeled

independent drive system [8]. A model was constructed in SIMULINK, and the control strategy

for minimizing the difference between the reference steering effort and the actual steering effort.

This work shows that the return-to-center performance of a steering system is improved using

such an assist.

9

CHAPTER 3

PHYSICAL PARAMETER DETERMINATION

The parameters that are to be used for the modeling can be determined by a few simple

experiments. Mass moment of inertia of shafts can be determined by using the simple formula

𝐽 =m r2

2

More complex objects can be determined by conducting a simple test on torsional pendulum.

3.1 Measuring Mass Moment of Inertia with Torsional Pendulum

Torsional pendulums are often used to measure centroidal polar mass moment of inertia of rigid

objects. Generally, torsional pendulums use a lightweight circular or triangular platform

suspended from three light strings as shown below. The platform must be horizontal and the

strings must be of equal length. The strings should be attached to the platform equidistant from

the center of the platform in an equilateral triangular pattern. The string attachments need not be

at the edge of the platform.

The object should be placed with its center of mass directly over the center of the platform. The

centroidal axis of the object must be vertical. The time period of torsional oscillation should

then be measured over several cycles for small rotational motion. The platform must oscillate in

pure rotation about the central vertical axis and must not swing laterally. Polar mass moment of

inertia of the platform and object are then related to time period for one oscillation by the

equation provided below.

10

This procedure should be used first with an empty platform to determine the mass moment of the

platform itself and then repeated with the object centered on the platform to measure the mass

moment of the object plus the platform [9].

𝐽o + 𝐽p =g mo +mp r2 τ2

4s𝜋2

Fig 3.1 Torsional Pendulum

3.2 Mass moment of inertia calculation of axle shaft

The axles that connect the wheels are made of steel and have an outer diameter of 0.5 in and are

of length 12 in.

Volume = 𝑉 = 𝜋 r2 l = 𝜋 ∗ 0.252 ∗ 12 = 2.3562 in3

Denisty of steel = 𝜌 =0.28lb

in3

Mass = 𝜌 𝑉 = 0.28 ∗ 2.3562 = 0.6597 lb

𝐽 =m r2

2=

0.6597 ∗ 0.252

2= 0.0206 lbin2

s

r

11

3.3 Mass moment of inertia calculation of wheel:

In order to get the values of mass moment of inertia of wheels, a simple test on a torsional

pendulum was conducted. The wheel was placed with its center exactly over the center of

pendulum. The time period was measured over several cycles of small oscillations which has

been tabulated. The mass moment of inertia of the pendulum is first found using the same

method.

Wooden platform Wooden platform

And wheel

23.13 15.88

23.09 15.76

23.07 15.78

23.07 15.8

23.09 15.84

23.16 15.87

23.09 15.86

23.1 15.87

23.07 15.87

23.02 15.79

22.98 15.87

23.11 15.86

23.19 15.8

23.19 15.83

23.13 15.88

23.09933333 15.83733333

Table 3.1 Time taken for 20 oscillations of the wooden platform for the wheel

The formula used for this experiment is

𝐽o + 𝐽p =g mo + mp r2 τ2

4s𝜋2

Here,

12

g = 32.2 ft/s2

mO = 2.48 lb.

mP = 1.002 lb.

r = 5.5 inch.

s = 21.3125 inch.

The time period of the wooden platform alone is τ = 1.1549666667 s.

Using the formula mentioned above the mass moment of inertia of the wooden platform is

computed to be

18.56088173 lb-in2

The time period of the wooden platform along with the wheels is τ = 0.798167 s.

Using the formula mentioned above the mass moment of inertia of the wheel is computed to be

11.75688242 lb-in2

3.4 Mass moment of inertia calculation of sprockets:

Similarly the mass moment of inertia of sprockets was found using another torsional pendulum

and the measured time period is tabulated.

mO1 = 0.11596 lb.

mO2 = 0.63317 lb.

mP = 0.3375 lb.

13

r = 2.752 inch.

s = 22.25 inch.

Metal platform Metal platform Metal platform

And Sprocket 1 And Sprocket 2

23.09 20.19 15.27

23.2 20.12 15.25

23.18 20.27 15.2

23.09 20.33 15.19

23.32 20.23 15.2

23.41 20.13 15.13

23.4 20.09 15.25

23.09 20.22 15.12

23.24 20.2 15.48

23.13 20.07 15.34

23.12 20.24 15.47

23.22 20.22 15.28

23.17 20.16 15.43

23.27 20.17 15.27

23.03 20.17 15.38

23.06 20.14 15.28

23.18875 20.184375 15.28375

Table 3.2 Time taken for 20 oscillations of the metal platform for the sprockets

The time period of the platform alone is τ = 1.1594375 s.

Using the formula mentioned above the mass moment of inertia of the metal platform is

computed to be 1.5138 lb-in2

The time period of the platform along with sprocket 1 is τ = 1.00921875 s.

Using the formula mentioned above the mass moment of inertia of sprocket 1 is computed to be

24.9375 * 10-3

lb-in2

14

The time period of the platform along with sprocket 2 is τ = 0.7641875 s.

Using the formula mentioned above the mass moment of inertia of sprocket 2 is computed to be

0.37425 lb-in2

3.5 Mass moment of inertia calculation of chain 1:

The chain that connects the two 10 tooth sprockets is called the Chain 1 and the mass moment of

inertia of chain is calculated under the assumption that mass of the chain is a point mass rotating

on the sprockets. The chain used is an ANSI #35 Chain.

The chain that was used for this purpose was of length = 20.25 in + (10 * 0.375) = 24 inch.

Mass of the chain = 0.21 ∗24

12= 0.42 lb

𝐽 = m r2 = 0.42 ∗ 0.5052 = 0.1071 lbin2

3.6 Mass moment of inertia calculation of chain 2:

The chain that connects the 10 tooth sprocket and the 20 tooth one is called the Chain 2 and the

mass moment of inertia of chain is calculated under the assumption that mass of the chain is a

point mass rotating on the sprockets. The chain used is an ANSI #35 Chain.

The chain that was used for this purpose was of length = 18 in + (12 * 0.375) = 22.5 inch.

Mass of the chain = 0.21 ∗22.5

12= 0.4125 lb

𝐽 = m r2 = 0.4125 ∗ 0.5052 = 0.1052 lbin2

15

CHAPTER 4

ADAMS SIMULATIONS AND RESULTS

This section presents the solid modeling and the dynamic simulations that were performed under

various conditions. These simulations were done with a view to assist modeling and also verify

the same. Adams (Automated Dynamic Analysis of Mechanical Systems) was used to do solid

modeling and the dynamic simulations. Adams is dynamic analysis software that models and

solves simultaneous equations for kinematic, static, quasi-static and dynamic simulations.

The parts that have the most significant influence on differential torque steer dynamics were

modeled - wheels, tires, frame, terrain, motors and axles. Vehicle model parameters (to scale) are

provided in APPENDIX A. Terrain modeling can be done to simulate reality using coefficients

of static friction, kinematic friction, and cohesion and pressure angle to include soil mechanics.

In this thesis, the terrain properties modeled are that of normal roads using friction model.

Adams was chosen because of its superior tire modeling which is one of the most important

parameter in skid steer dynamics. Adams‟s tire modeling has a module that includes vertical

direction modeling and it is superior to all other linear spring models. Tire damping has been

included in our modeling and they are not merely extrapolated from steady state data. Tire

longitudinal forces, lateral forces and aligning moments are complex non linear functions of pre

normal force, slip, slip angles, and tire road friction coefficient unlike other linear spring models.

The tractive effort against longitudinal slip that has been used by Adams is as shown in the

figure below (Fig 4.1).

16

Fig 4.1 Tractive effort vs longitudinal slip [10]

The figure below (Fig 4.2) shows cornering force against slip angle that has been used by

Adams.

Fig 4.2 cornering force vs slip angle [10]

17

The motors can also be modeled in Adams, which is not easy in most other analysis software.

Solid body modeling plays a crucial role.

4.1 Simulations

4.1.1 Straight line maneuvers

4.1.1.1 On flat road

In order to achieve a straight line, the same torque was provided on both sides. The torque was

increased to 11 lbf-inch over 1 second and held for 5 seconds as shown in the figure below (Fig

4.3).

Fig 4.3 Input torque applied to the wheels (Straight line on a flat road)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The simulated distance travelled by the vehicle was 906 inch. This was measured by plotting the

displacement of the center of gravity during the entire simulation, which is shown in Fig 4.4.

18

Fig 4.4 Distance travelled by the vehicle (Straight line on a flat road)

4.1.1.2 Accelerating on flat road

In order to achieve this simulation, the torque applied on both sets of wheels must be the same,

and increasing. The applied torque to achieve this maneuver was increased linearly to 31.25 lbf-

inch over 5 seconds. The input torque profile on all wheels is shown in Fig 4.5.

Fig 4.5 Input torque applied to the wheels (Accelerating on flat road)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

19

The simulated distance travelled by the vehicle was 895 inch. This distance was obtained in the

same way as before from the following graph, Fig 4.6.

Fig 4.6 Distance travelled by the vehicle (Accelerating on flat road)

4.1.1.3 Accelerating on a ramp

In order to test the behavior of the vehicle in a slope, a ramp of 2 degrees was created and it was

made to move on a straight line by applying equal torque on both wheels. The applied torque was

increased linearly to 31.25 lbf-inch over 5 seconds. The input torque on each set of wheels is

shown in Fig 4.7.

20

Fig 4.7 Input torque applied to the wheels (Accelerating on a ramp)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The simulated distance travelled by the vehicle was 760 inch. This distance was obtained in the

same way as shown in Fig 4.8.

Fig 4.8 Distance travelled by the vehicle (Accelerating on a ramp)

21

4.1.1.4 Running over an oblique bump

In order to perform a simulation of the vehicle hitting an oblique bump (height of bump – 2 inch,

angle of the bump – 6 degrees) while travelling on a straight line, the torque applied on both

sides of the vehicle was increased to 9 lbf-inch over 1 second and held for 5 seconds to get to an

axle speed of 275 rpm. The vehicle rolled over when applied with a higher torque. The input

torque profile is shown below in Fig 4.9.

Fig 4.9 Input torque applied to the wheels (Running over an oblique bump)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The simulated distance travelled by the vehicle was 1115 inch as shown below in Fig 4.10.

22

Fig 4.10 Distance travelled by the vehicle (Running over an oblique bump)

The path of the vehicle is shown in Fig 4.11.

Fig 4.11 Path traced by the vehicle (Running over an oblique bump)

4.1.1.5 Running over a straight bump

In order to run this simulation, the same torque is to be applied on both sets of wheels and a road

with a straight bump of about 1 inch height was used. The torque applied was increased to 15

lbf-inch over 1 second and held for 5 seconds to get an axle speed of 455 rpm. The vehicle hit

23

the bump at this speed and was still stable. The vehicle rolled over on hitting the same bump

when the axle speed was increased above 550 rpm.

The input torque profile applied on the wheels is shown below in Fig 4.12.

Fig 4.12 Input torque applied to the wheels (Running over a straight bump)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The simulated distance travelled by the vehicle was 953 inch as shown in Fig 4.13.

Fig 4.13 Distance travelled by the vehicle (Running over a straight bump)

24

The path traced by the vehicle is shown in Fig 4.14.

Fig 4.14 Path traced by the vehicle (Running over a straight bump)

4.1.2 Circular motion

4.1.2.1 On flat road

This simulation was done to see if the vehicle rolls over carrying heavy weights. The mass center

of the vehicle in this case was moved up by 5 inches. Torque applied on one set of wheels was

increased to 15.9 lbf-inch over 1 second, held for 8 seconds, and brought down to 0 again as

shown in Fig 4.15. On the other side, it was maintained at zero.

25

Fig 4.15 Input torque applied to one set of wheels (Circular motion on flat road)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The simulated distance travelled by the vehicle was 1638 inch as shown in Fig 4.16.

Fig 4.16 Distance travelled by the vehicle (Circular motion on flat road)

The path traced by the vehicle is shown in Fig 4.17.

26

Fig 4.17 Path traced by the vehicle (Circular motion on flat road)

The simulation produces axle speeds up to 398 rpm. Higher torque shown in Fig 4.18 produced

axle speeds up to 563 rpm at which the vehicle overturned.

Fig 4.18 Input torque applied to the wheels (Circular motion on flat road)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The simulated distance travelled was 1108 inch as shown in Fig 4.19.

27

Fig 4.19 Distance travelled by the vehicle (Circular motion on flat road)

The path traced by the vehicle is shown in Fig 4.20.

Fig 4.20 Path traced by the vehicle (Circular motion on flat road)

4.1.2.2 On a ramp

This simulation was done to test the vehicle‟s behavior during a turn when it is moving on a

ramp with a slope of 2 degrees, which will be useful to test obstacle avoidance on a ramp. In

order to achieve this motion a torque of 15.9 lbf-inch was increased over 1 second, held for 8

28

seconds, and brought down to 0 again on one side of the vehicle as shown in Fig 4.21. The other

side was held at zero. The vehicle over turned at an axle speed of about 530 rpm on this ramp.

Fig 4.21 Input torque applied to one set of wheels (Circular motion on a ramp)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The simulated distance travelled by the vehicle was 932 inch as shown in Fig 4.22.

Fig 4.22 Distance travelled by the vehicle (Circular motion on a ramp)

The path traced by the vehicle is shown in Fig 4.23.

29

Fig 4.23 Path traced by the vehicle (Circular motion on a ramp)

4.1.3 Lane change maneuver

In order to achieve a lane change maneuver the torque on one set of wheels was decreased while

the other was held at maximum and vice versa. The torque that was applied was 10.5 lbf-inch

increased over 1 second and held for 4 seconds on the right set of wheels. The same value was

applied on the left set of wheels but was held for only 3 seconds and then dropped to 0 over one

second and back up again on both the wheels. The entire simulation was run for 6 seconds, to

achieve an axle speed of 430 rpm. The vehicle rolled over when the same maneuver was

performed at an axle speed of 510 rpm.

The profile that was used for the motor torque on the left set of wheels is shown in Fig 4.24.

30

Fig 4.24 Input torque applied to the left set of wheels (Lane Change maneuver)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The profile that was used for the motor torque on the right set of wheels is shown below in Fig

4.25.

Fig 4.25 Input torque applied to the right set of wheels (Lane Change maneuver)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The path traced by the vehicle is shown in Fig 4.26.

31

Fig 4.26 Path traced by the vehicle (Lane Change maneuver)

4.1.4 J- Turn maneuver

In order to achieve a j-turn maneuver, which will be extremely useful in obstacle avoidance, the

torque applied on one set of wheels must be reduced and increased.

Torque on the left set of wheels was increased to 11.5 lbf-in over 1 second and held for 4

seconds. It was reduced and the right set of wheels were held for 3 seconds and reduced to 0 and

maintained there. This simulation was run for 6 seconds to get an axle speed of about 415 rpm.

The vehicle over turned when the same maneuver was performed at an axle speed of 530 rpm.

The input torque profile on the left set of wheels is shown below in Fig 4.27.

32

Fig 4.27 Input torque applied to the left set of wheels (J-Turn maneuver)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The input torque profile on the right set of wheels is shown in Fig 4.28.

Fig 4.28 Input torque applied to the right set of wheels (J-Turn maneuver)

X axis – time (in seconds)

Y axis – torque (in lbf-inch)

The simulated distance travelled by the vehicle was 867 inch as shown in Fig 4.29

33

Fig 4.29 Distance travelled by the vehicle (J-Turn maneuver)

The path traced by the vehicle is shown in Fig 4.30.

Figure 4.30 Path traced by the vehicle (J-Turn maneuver)

34

CHAPTER 5

MATLAB MODELING AND SIMULATION

Dynamic behavior of any vehicle is determined by the forces imposed on it from the tires,

gravity and aerodynamics. Conventions used to describe motion and forces in any model must be

uniform. Thus SAE Vehicle Axis System [10] has been used throughout. A lumped mass

approximation which has been used in this work is widely accepted under this system. In this, a

vehicle is assumed to behave as a single component (i.e. all components move together). The

mass of such a system is placed on the centre of gravity with appropriate mass and inertia

properties. Vehicle model parameters (to scale) are provided in APPENDIX A.

Two types of co-ordinate systems were used:

a) Vehicle Fixed Co-ordinate system

b) Earth Fixed Co-ordinate system

A vehicle fixed co-ordinate system has been used as shown in Fig 5.1. In this system, the

forward/longitudinal motion is represented by „x‟, right lateral motion by „y‟, downward

direction by „z‟. The rotations about these three axes are roll, pitch and yaw respectively. The

velocities are referenced to the earth fixed coordinate system as shown in Fig 5.2.

35

Fig 5.1 Vehicle fixed co-ordinate system in different views.

Vehicle in Earth Fixed Coordinate System is shown in Fig 5.2:

Y

Z FRONT

D

G

X

Z LEFT

D

G

X

Y

TOP

HLF HLM

HRF HRM

HLA

HRA

D G

36

Fig 5.2 Vehicle in earth-fixed co-ordinate system [11]

5.1 Tire modeling

Vehicle dynamic modeling also requires modeling of tires. Before getting into the details of

mechanics of force generation or the importance of modeling of tires, basic terminology and tire

axis system must be established as shown in Fig 5.3.

Fig 5.3 Tire axis system nomenclature [12]

37

Rolling resistance moment acts on the tire by the road, in the plane of the road and normal to the

intersection of the wheel plane with the road plane. Overturning moment acts on the tire by the

road in the plane of the road and is parallel to the intersection of the wheel plane with the road

plane.

5.2 Friction consideration

5.2.1 Mechanics of force generation

The forces on a tire are not applied at a point, but are the resultant from normal and shear

stresses distributed in the contact patch. The pressure distribution under a tire is not uniform as

shown in Fig 5.4. When rolling, it is generally not symmetrical about the Y-axis but tends to be

higher in the forward region of the contact patch. While modeling, the tractive properties of the

tire are to be taken into account.

Fig 5.4 Tire deformation mechanism [11]

38

The acceleration and braking forces are generated by producing a differential between the tire

rolling speed and its speed of travel. The consequence is production of slip in the contact patch.

Slip % = 1 −r ω

V 100

A good understanding of brake force versus slip plots is necessary for vehicle modeling. Under

typical braking conditions the longitudinal forces will vary with slip as shown in Fig 5.5 and Fig

5.6.

Fig 5.5 Friction force vs Slip [11]

39

Fig 5.6 Braking effort coefficient vs Slip [1]

From these above graphs we can see that the braking effort coefficient hits a maximum at about

20% slip and then dips down. In this work it has been modeled as a straight line that hits

maximum at the same 20% slip and then remains at that value. This is a reasonable assumption

often made in vehicle dynamic analyses. Tire rolling resistance was neglected in this model.

5.3 Dynamic Equations

As two different co-ordinate systems were used in this work, there must be a rotation matrix that

is used to transfer all the information from one to another. The rotation matrix to change from

local co-ordinate system to a global co-ordinate system will be of the following form.

𝐴 = 𝐴𝑧ψ 𝐴𝑦𝜃 𝐴𝑥𝜑

Global angular velocities are obtained from the local angles by using the matrix formula shown

below:

40

𝜔𝑥

𝜔𝑦

𝜔𝑧

= 00ψ + 𝐴𝑧ψ

0𝜃

0 + 𝐴𝑦𝜃 𝐴𝑧ψ

𝜑 00

Where

𝐴𝑧ψ = 𝑐ψ −𝑠ψ 0𝑠ψ 𝑐ψ 00 0 1

𝐴𝑦𝜃 = 𝑐𝜃 0 𝑠𝜃0 1 0

−𝑠𝜃 0 𝑐𝜃

𝑐𝜃 = cos 𝜃

𝑠𝜃 = sin 𝜃

Using these, the final matrix formula can be computed to be:

𝜔𝑥

𝜔𝑦

𝜔𝑧

= 𝑐ψ 𝑐𝜃 −𝑠ψ 0𝑠ψ 𝑠𝜃 𝑐ψ 0−𝑠𝜃 0 1

𝜑

𝜃

ψ

The matrix form equation can also be inverted and used to get from the global to local angular

velocities. The final expression for which is as follows:

𝜑

𝜃

ψ =

1

𝑐𝜃

𝑐𝜃 𝑠𝜃 𝑠𝜑 𝑠𝜃 𝑐𝜑0 𝑐𝜃 𝑐𝜑 −𝑐𝜃 𝑠𝜑0 𝑠𝜑 𝑐𝜑

𝜔𝑥

𝜔𝑦

𝜔𝑧

41

This work used a state space model. The state variables chosen in this work are:

Rg2 – location of center of gravity; the three angular co-ordinates ψ, 𝜃 and 𝜑 and their respective

first and second order derivatives.

The other important transformation is to translate data from the centre of gravity to the origin.

Here in this work, the centre of gravity and the origin are marked by points G and D as shown in

Fig 5.7.

Fig 5.7 Vehicle showing its centre of gravity and origin.

The output torque for a brushed DC motor using an electronic speed controller is shown below

where throttle command TC can vary between -1 (reverse) and +1 (forward)

𝑇𝑚𝑜𝑡𝑜𝑟 = 𝑇𝑚𝑎𝑥 𝑇𝐶 − 𝜔𝑚𝑜𝑡𝑜𝑟

𝜔𝑚𝑎𝑥

X

Z LEFT

D

G

42

5.4 Simulations

5.4.1 Straight line maneuvers

5.4.1.1 On flat road

In order to achieve a straight line constant throttle control command is given to both wheels in MATLAB

code (Appendix B) as shown in Fig 5.8. The distance measured was 901 inch.

Fig 5.8 Path traced by the vehicle (Straight line maneuver on a flat road)

5.4.1.2 Accelerating on flat road

In order to achieve this simulation, the torque applied on both sets of wheels must be the same,

but was increasing. The throttle control was given in such a way that it is monotonically

-40 -30 -20 -10 0 10 20 30 400

10

20

30

40

50

60

70X: -1.174e-015

Y: 75.12

Global Y [ft]

Glo

bal X

[ft

]

43

increasing. The path of vehicle is shown in Fig 5.9 and the distance travelled by the vehicle was

891 inches which matches the Adams simulations (895 inches) in section 4.1.1.1.

Fig 5.9 Path traced by the vehicle (Accelerating on a flat road)

5.4.1.3 Accelerating on a ramp

In order to test the behavior of the vehicle in a slope, a ramp of 2 degrees was created and it was

made to move on a straight line by applying equal torque on both set of wheels. The throttle

command was similar to the one in the previous run. The distance travelled was 776 inch as

shown in the Fig 5.10, which is comparable to 761 inches from Adams simulation in Section

4.1.1.2.

-40 -30 -20 -10 0 10 20 30 400

10

20

30

40

50

60

70 X: 9.478e-016

Y: 74.26

Global Y [ft]

Glo

bal X

[ft

]

44

Fig 5.10 Path traced by the vehicle (Accelerating on a ramp)

5.4.2 Lane change maneuver

In order to achieve a lane change maneuver the torque on one set of wheels decreases when the other is

held constant and vice versa. The throttle command increased the axle speed up to 430 rpm over 1 second

and was held for 4 seconds on the right set of wheels. The left set of wheels were held for only 3 seconds

and then dropped to 0 in one second and back up again on both the wheels as shown in Fig 5.11. The

vehicle over turned when the same maneuver was performed at an axle speed of 510 rpm, which matched

Adams simulations in Section 4.1.3.

-40 -30 -20 -10 0 10 20 30 40

0

10

20

30

40

50

60X: 7.469e-016

Y: 64.65

Global Y [ft]

Glo

bal X

[ft

]

45

Fig 5.11 Input torque applied to the left and right set of wheels (Lane change maneuver).

Fig 5.12 shows the path traced by the vehicle during this maneuver.

0 2 4 60

0.5

1Throttle LEFT

time (in sec)

Thro

ttle

Com

mand

0 2 4 60

0.5

1Throttle RIGHT

time (in sec)

Thro

ttle

Com

mand

0 2 4 60

100

200

300

400

500

time (in sec)

[rpm

]

Wheels LEFT

0 2 4 60

100

200

300

400

500

time (in sec)

[rpm

]

Wheels RIGHT

46

Fig 5.12 Path traced by the vehicle (Lane change maneuver)

Fig 5.13 below shows that the tire forces from the ground fall to zero when this maneuver is

performed at axle speed above 510 rpm.

-20 0 20 40 60 80 100 120

0

100

200

300

400

500

600

Global Y [inch]

Glo

bal X

[in

ch]

47

Fig 5.13 Tire forces (Lane change maneuver, 510 rpm axle speed)

5.4.3 J- turn maneuver

The value of maximum throttle command in this case was 0.83. The left set of wheels were

increased to this value in 1 second and held for 4 seconds as shown in Fig 5.14. The right set of

wheels were held at the maximum throttle command for 3 seconds and then to 0 and maintained

there. This simulation was run for 6 seconds to get an axle speed of about 415 rpm. The vehicle

rolled over when the same maneuver was performed at an axle speed of about 530 rpm.

0 1 2 3 4 5 6-100

-50

0

50

100

time (in sec)

Forc

e [

lbf]

Tire LF

safe operation

wheels off the ground - unsafe

0 1 2 3 4 5 6-100

-50

0

50

100

time (in sec)

Forc

e [

lbf]

Tire RF

0 1 2 3 4 5 6-100

-50

0

50

100

time (in sec)

Forc

e [

lbf]

Tire LM

0 1 2 3 4 5 6-100

-50

0

50

100

time (in sec)

Forc

e [

lbf]

Tire RM

0 1 2 3 4 5 6-100

-50

0

50

100

time (in sec)

Forc

e [

lbf]

Tire LA

0 1 2 3 4 5 6-100

-50

0

50

100

time (in sec)

Forc

e [

lbf]

Tire RA

48

Fig 5.14 Input torque applied to the left and right set of wheels (J-turn maneuver).

The path traced by the vehicle during this maneuver is shown in Fig 5.15.

0 2 4 60

0.5

1Throttle LEFT

time (in sec)

Thro

ttle

Com

mand

0 2 4 60

0.5

1Throttle RIGHT

time (in sec)

Thro

ttle

Com

mand

0 2 4 60

100

200

300

400

500

time (in sec)

[rpm

]

Wheels LEFT

0 2 4 60

100

200

300

400

500

time (in sec)

[rpm

]

Wheels RIGHT

49

Fig 5.15 Path traced by the vehicle (J-turn maneuver)

-20 -10 0 10 20 30

0

5

10

15

20

25

30

35

40

45

Global Y [ft]

Glo

bal X

[ft

]

50

CHAPTER 6

CONCLUSION AND FUTURE WORK

A differential torque steer model was developed analytically and dynamic analysis was also

performed in Adams. Mathematical modeling was done for six wheel differential torque steer

using a six wheel model where the right and left axle torques were independent inputs. A

MATLAB simulation was performed. The Adams program for multi – body systems was also

used for the modeling, analysis, and animation.

Comparing the results of J-turn maneuver and Straight line maneuver on flat road (distance

travelled - 600 inch vs 901 inch), it can be seen that skidding causes excessive slip in tires. This

comparison can be made because, both the simulations were run for same amount of time and the

maximum throttle commands were the same. Skidding demands more power input but allows

zero turn radius which is impossible in other classes of steering systems. Considering the nature

of the terrain on which the AGV operates, power requirements will be high and tire wear will be

greater.

Based on the simulations performed on flat road and ramp the maximum difference in distance

travelled had a deviation of 1.9% (776 inches vs 761 inches). This may be attributed to the lack

of tire rolling resistance in the MATLAB model. The simulations that were performed on the

lane change and J-turn maneuver validates the accuracy of the dynamic details of the model. The

Axle speed at which the vehicle overturns, matched exactly in both the models.

51

6.1 Scope for Future Research

Further work needs to be done to refine the dynamic model to simulate curve motions. A better

friction model between the tires and the ground may lead to a more accurate simulation, while

the vehicle is skidding. Although the Adams model can provide better results, the mathematical

model is of more importance due to its proposed use in control for real-time prediction of

overturn events. The Adams model results can be used to refine the analytical model. The

vehicle model developed here is without a suspension system. Suspension may be needed for

high speed operation.

52

REFERENCES

1. Theory of Ground Vehicles, Wong

2. L. Mangialardi, “Study of the Horizontal Plane Motion of a Skid-Steering Vehicle,”

Proceedings of 7th

International Conference of ISTVS, pp. 1448 – 1472, Calgary, Alberta,

Canada, 1981.

3. A. Gentile and L. Mangialardi, “Behavior of a Non-Conventional Transmission and Skid-

Steering Vehicle,” Proceedings of 19th

International FISITA Congress: Energy Mobility,

Melbourne, Australia, SAEA Paper No. 82090, November 1982.

4. A. Gentile and L. Mangialardi, “Dynamic Steering Multiaxle Vehicles: Influence on

Axle-Numbers,” Proceedings of 20th

International FISITA Congress: The Automotive

Future, Vienna, Austria, SAE Report No. 845056, May 1984.

5. A.P.Creedy, “Skid Steering of Wheeled and Tracked Vehicles – Analysis with Coulomb

Friction Assumptions,” Engineering Development Establishment Report AR No 002.715,

Victoria, Australia, December 1984.

6. I. Schmid and W. Tomaske, “Power and Torque Requirements for Skid Steering

Vehicles,” Proceedings of ISTVS Conference on Off-Road Vehicles, FISITA 92, London,

U.K., pp. 216 – 230, June 1992.

7. C. Renou and S. Chavant, “A Computer Simulation Model for Skid-Steering of Non-

Directed Wheeled Vehicles,” Proceedings of 11th

International Conference of ISTVS, pp.

398 – 407, Lake Tahoe, Nevada, 1993.

8. Junnian Wang, Qingnian Wang and Liqiang Jin, “Modeling and Simulation Studies on

Differential Drive Assisted Steering for EV with Four-Wheel-Independent-Drive,” IEEE

Vehicle Power and Propulsion Conference (VPPC), September 3-5, 2008, Harbin, China.

53

9. Shigley, J.E. and J.J. Uicker, Theory of Machines and Mechanisms, McGraw-Hill, 1995,

second edition.

10. Tire and Vehicle Dynamics, Packeja

11. Fundamentals of Vehicle Dynamics, Thomas. D. Gillespie.

12. “Vehicle Dynamics Terminology”, SAE J670e, Society of Automotive Engineers,

Warrendale, PA.

54

APPENDIX A

MODEL PARAMETERS X [in] Y[in] Z[in]

D - design point 0 0 0

G - mass center -10.125 0 -10

HLF - hub left front 0 -8 0

HLM - hub left middle -10.125 -8 0

HLA - hub left aft -20.25 -8 0

HRF - hub right front 0 8 0

HRM - hub right middle -10.125 8 0

HRA - hub right aft -20.25 8 0

chassis LxWxH = 30x12x7 in

X

Y

TOP

HLF HLM

HRF HRM

HLA

HRA

D G

55

m = total mass of vehicle (including all tires) = 60 lbm

JG_XX = centroidal mass moment of vehicle at G in X direction = 965 lbm.in2

JG_YY = centroidal mass moment of vehicle at G in Y direction = 4745 lbm.in2

JG_ZZ = centroidal mass moment of vehicle at G in Z direction = 5220 lbm.in2

tire OD = unloaded diameter of tire = 8 inch

tire w = unloaded tire width = 2 inch

tire k = tire radial stiffness = 10 lbf/in

tire c = tire radial damping = 0.3 lbf.sec/in

tire μMAX = tire maximum adhesion = 0.8

Y

Z FRONT

D

G

X

Z LEFT

D

G

56

JT_YY = centroidal mass moment of one tire in Y direction = 11.8 lbm.in2

mT = mass of one tire = 2.5 lbm

ωMAX = maximum speed of motor = 500 rpm

TMAX = maximum torque from motor = 500 in.lbf

57

APPENDIX B

MATLAB Code

% sixwh_ini.m - initialize global constants % six wheel solid axle skid steer vehicle %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % tire - assume all tires are identical tire.D = 8; % OD [inch] tire.R = tire.D / 2; % outside radius [in] tire.m = 3; % mass [lbm] J_approx = tire.m * tire.R * tire.R / 2; tire.J = J_approx; % mass moment [lbm.in2] %tire.k = 20; % radial stiffness [lbf/in] tire.k = 10; % radial stiffness [lbf/in] tire.c = 0.3; % radial damping [lbf.sec/in] tire.mu_s = 0.8; % sliding coefficient of adhesion tire.mu_rr = 0.15; % rolling reistance

% tire tractive Pacejka xm = 30; % [ips] yp = 0.8; ya = 0.75; D = yp; C = 1 + (1 - 2 * asin( ya/D ) / pi); slope = yp / (xm/2); B = slope /C /D; E = (B*xm - tan(pi/2/C)) / (B*xm - atan(B*xm)); tire.trac = [ B C D E ];

% tire lateral Pacejka xm = 30; % [ips] yp = 0.80; ya = 0.75; D = yp; C = 1 + (1 - 2 * asin( ya/D ) / pi); slope = yp / (xm/2); B = slope /C /D; E = (B*xm - tan(pi/2/C)) / (B*xm - atan(B*xm)); tire.lat = [ B C D E ];

% tire rolling resistance Pacejka xm = 1; % [ips] yp = 0.15; ya = 0.10; D = yp; C = 1 + (1 - 2 * asin( ya/D ) / pi); slope = yp / (xm/2); B = slope /C /D; E = (B*xm - tan(pi/2/C)) / (B*xm - atan(B*xm)); tire.rr = [ B C D E ];

58

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % motor - assume both motors are identical % M01 motors at 24V n_max = 500; % max speed [rpm] (about 3A) motor.w_max = n_max *2*pi /60; % [rad/sec] motor.T_max = 500; % stall torque [in.lbf] (about 120A) motor.T_drag = 10; % viscous drag torque on drive system

[in.lbf.sec]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ground - define as vertices and faces ground.gravity = 32.174*12 * [ 0 0 1 ]'; % gravity [ips2]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % chassis % mass of chassis and tires m2 = 60; % [lbm] chassis.m2 = m2;

% mass moments of tire triplets % include mass moment for chains and sprockets JL = 3 * tire.J + 0; % [lbm.in2] JR = 3 * tire.J + 0;

% mass moments of chassis in body-fixed directions J2xx = m2*(12*12+7*7) / 12; % roll [lbm.in2] J2yy = m2*(30*30+7*7) / 12; % pitch [lbm.in2] J2zz = m2*(30*30+12*12) / 12; % yaw [lbm.in2]

% subtract tires from whole body Jyy J2yy = J2yy - JL - JR; chassis.J2_G2 = [ J2xx 0 0 ; 0 J2yy 0 ; 0 0 J2zz ];

% mass moments of tires chassis.JL = JL; % [lbm.in2] chassis.JR = JR;

% design point at midline of front axle % location of mass center for chassis and tires wrt design point chassis.sG2wrtD2_D2 = [ -10.125 0 -0 ]'; % [inch] centered fore/aft at

axle height

chassis.sG2wrtD2_D2 = [ -10.125 0 -10 ]'; % [inch] 10 in above axle

% location of tire hubs wrt design point chassis.sHLFwrtD2_D2 = [ 0 -8 0 ]'; % [in] chassis.sHLMwrtD2_D2 = [ -10.125 -8 0 ]'; chassis.sHLAwrtD2_D2 = [ -20.25 -8 0 ]';

59

chassis.sHRFwrtD2_D2 = [ 0 8 0 ]'; chassis.sHRMwrtD2_D2 = [ -10.125 8 0 ]'; chassis.sHRAwrtD2_D2 = [ -20.25 8 0 ]';

% unit direction for axles in body-fixed directions for positive tire

rotation chassis.u_L_G2 = [ 0 -1 0 ]'; % [non-dimensional] chassis.u_R_G2 = [ 0 -1 0 ]';

% bottom of sixwh_ini

%% sixwh_main03.m - six wheel skid steer solid axle UGV

% units [inch] [lbm] [lbf] [sec]

%% assumptions % SAE body-fixed coordinate frame - x forward, y right, z down % mass center attitude is the same as design point attitude % uses z(yaw)-y(pitch)-x(roll) Euler angles for attitude - pitch cannot be

+/- 90 deg % all tires are identical % cross moments of inertia for chassis are small % gyroscopic moments of tires are negligible % J for wheels should also include shafts and chains % spherical (not toroidal tire) geometry % no aligning moment caused by tire rotation about normal to ground % tractive and braking effrots are the same for tires % both motors are identical

% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % debug % rolling resistance does not require any torque at steady state ??? % motor.T_drag = viscous % motor.T_drag = 0

%% clear

% global variables global chassis motor tire ground throttle keep

keep=[];

% constants d2r = pi / 180; r2d = 1 / d2r;

%% define global constants sixwh_ini

%% load throttle plan global constants sixwh_throttle

60

%% initial posture for design point - level ground

%rD2 = [ 0 0 -tire.R ]'; % zero tire deflection zD2 = -tire.R + chassis.m2/(6*tire.k); rD2 = [ 0 0 zD2 ]'; % static ride height

aG2 = [ 0 0 0 ]'; % Euler angles - phi roll local x % - theta pitch intermediate y % - psi yaw global z

% initial velocity for design point rdD2 = [ 0 0 0 ]'; wG2_G2 = [ 0 0 0 ]'; % angular velocity in body-fixed coordinates

% initial attitude matrix and Euler angle derivatives [ AG2, AdG2, adG2 ] = sixwh_makeA( aG2, wG2_G2 );

% initial position and velocity of G2 rG2 = rD2 + AG2 * chassis.sG2wrtD2_D2; rdG2 = rdD2 + AdG2 * chassis.sG2wrtD2_D2;

% initial angle and speed of tire triplets thL = 0; thR = 0;

thdL = 0; thdR = 0;

% 16x1 initial conditions for generalized coordinates y0 = [ rG2' aG2' thL thR rdG2' wG2_G2' thdL thdR ]';

% time range dt = 0.001; t_end = throttle.plan(end,1); time = ( 0 : dt : t_end )'; nt = length( time );

% allocate space y_all = zeros(nt,16);

% fixed step integration loop y = y0; for it = 1 : nt, t = time(it);

% t

yd = sixwh_yd( t, y );

% disp( 'yd' ) % disp( yd' ) % pause

61

y = y + yd*dt; y_all(it,:) = y'; if mod( it, 200 ) == 1, disp( t ) end end

xG2 = y_all(:,1)/12; % [ft] yG2 = y_all(:,2)/12; zG2 = -y_all(:,3); % [in]

thxG2 = y_all(:,4) * r2d; % roll [deg] thyG2 = y_all(:,5) * r2d; % pitch thzG2 = y_all(:,6) * r2d; % yaw

xdG2 = y_all(:,9) /12 /88 *60; % [mph] ydG2 = y_all(:,10) /12 /88 *60; % [mph] vG2 = sqrt( xdG2.*xdG2 + ydG2.*ydG2 ); zdG2 = -y_all(:,11); % [ips]

thdL = y_all(:,15)*60/2/pi; % [rpm] thdR = y_all(:,16)*60/2/pi;

%% Figures

% x-y trajectory figure( 1 ) clf iplot = ( 1 : 200 : nt )'; plot( yG2,xG2,'b', yG2(iplot),xG2(iplot),'ro' ) axis equal xlabel( 'Global Y [ft]' ) ylabel( 'Global X [ft]' )

figure( 2 ) clf subplot( 2, 2, 1 ) plot( time,vG2 ) ylabel( '[mph]' ) title( 'Forward velocity' )

subplot( 2, 2, 2 ) plot( time,thzG2 ) ylabel( '[deg CW from X]' ) title( 'Global heading (yaw)' )

subplot( 2, 2, 3 ) plot( time,thxG2 ) ylabel( '[deg]' ) title( 'Body-fixed roll' )

subplot( 2, 2, 4 ) plot( time,thyG2 ) ylabel( '[deg]' ) title( 'Pitch' )

62

% left wheel velocity, motor torque,torque control tcL = keep(:,1); tcR = keep(:,2);

TmotorL = keep(:,3); % [in.lbf] TmotorR = keep(:,4);

fCLF = keep(:,5); % [lbf] fCLM = keep(:,6); fCLA = keep(:,7);

fCRF = keep(:,8); fCRM = keep(:,9); fCRA = keep(:,10);

figure( 3 ) clf subplot( 3, 2, 1 ) plot( time, tcL ) title( 'Throttle LEFT' )

subplot( 3, 2, 2 ) plot( time, tcR ) title( 'Throttle RIGHT' )

subplot( 3, 2, 3 ) plot( time, TmotorL ) ylabel( 'Torque [in.lbf]' ) title( 'Motor LEFT' )

subplot( 3, 2, 4 ) plot( time, TmotorR ) ylabel( 'Torque [in.lbf]' ) title( 'Motor RIGHT' )

subplot( 3, 2, 5 ) plot( time, thdL ) ylabel( '[rpm]' ) title( 'Wheels LEFT' )

subplot( 3, 2, 6 ) plot( time, thdR ) ylabel( '[rpm]' ) title( 'Wheels RIGHT' )

figure( 4 ) clf subplot( 3, 2, 1 ) plot( time,fCLF,'b', time(fCLF==0),fCLF(fCLF==0),'ro' ) ylabel( 'Force [lbf]' ) title( 'Tire LF' )

subplot( 3, 2, 2 )

63

plot( time,fCRF,'b', time(fCRF==0),fCRF(fCRF==0),'ro' ) ylabel( 'Force [lbf]' ) title( 'Tire RF' )

subplot( 3, 2, 3 ) plot( time,fCLM,'b', time(fCLM==0),fCLM(fCLM==0),'ro' ) ylabel( 'Force [lbf]' ) title( 'Tire LM' )

subplot( 3, 2, 4 ) plot( time,fCRM,'b', time(fCRM==0),fCRM(fCRM==0),'ro' ) ylabel( 'Force [lbf]' ) title( 'Tire RM' )

subplot( 3, 2, 5 ) plot( time,fCLA,'b', time(fCLA==0),fCLA(fCLA==0),'ro' ) ylabel( 'Force [lbf]' ) title( 'Tire LA' )

subplot( 3, 2, 6 ) plot( time,fCRA,'b', time(fCRA==0),fCRA(fCRA==0),'ro' ) ylabel( 'Force [lbf]' ) title( 'Tire RA' )

function [ A, Ad, ad ] = sixwh_makeA( a, w_bf ) % make rotation matrix and derivatives % six wheel solid axle skid steer vehicle % HJSIII, 09.03.07 % % INPUTS - a = 3x1 Euler angles [ phi theta psi ]' % phi roll local x % theta pitch intermediate y % psi yaw global z % w_bf = 3x1 body-fixed angular velocity [ wx_bf wy_bf wz_bf ]' % % OUTPUTS - A = 3x3 attitude matrix % Ad = 3x3 time derivative of attitude matrix % ad = 3x1 time derivative of Euler angles

% attitude matrix and derivative phi_x = a(1); theta_y = a(2); psi_z = a(3); Az = [ cos(psi_z) -sin(psi_z) 0 ; sin(psi_z) cos(psi_z) 0 ; 0 0 1 ];

Ay = [ cos(theta_y) 0 sin(theta_y) ; 0 1 0 ; -sin(theta_y) 0 cos(theta_y) ];

Ax = [ 1 0 0 ; 0 cos(phi_x) -sin(phi_x) ;

64

0 sin(phi_x) cos(phi_x) ];

A = Az * Ay * Ax; Ad = A * skew_sym( w_bf );

% convert body-fixed angular velocity to derivatives of Euler angles T = [ cos(theta_y) sin(theta_y)*sin(phi_x) sin(theta_y)*cos(phi_x) ; 0 cos(theta_y)*cos(phi_x) -cos(theta_y)*sin(phi_x) ; 0 sin(phi_x) cos(phi_x) ]; T = T / cos(theta_y); ad = T * w_bf;

% bottom of sixwh_makeA

% sixwh_throttle.m - throttle control plan % six wheel solid axle skid steer vehicle

% t [sec], tcL [-1 to 1], tcR [-1 to 1]

% straight speed = 0.87; plan01 = [ 0.00 0 0 ; 2.00 speed speed ; % 2 sec, accelerate to full speed, straight 6.00 speed speed ; % 4 sec, hold full speed, straight 8.00 speed speed ]; % 2 sec, declerate to sero, straight

% J-turn - straight, hard right, stop speed = 0.90; plan02 = [ 0.00 0 0 ; 1.00 speed speed ; % 1 sec, accelerate to full speed, straight 3.00 speed speed ; % 2 sec, hold full speed, straight 4.00 speed speed ; % 1 sec, hold L full speed, cut R to zero 5.00 speed 0 ; 6.00 0 0 ]; % 1 sec, cut L to zero, hold R at zero

% S-turn - straight, hard right, hard left, resume speed = 1.02; plan03 = [ 0.00 0 0 ; 1.00 speed speed ; % 1 sec, accelerate to max, straight 3.00 speed speed ; % 2 sec, hold at max, straight 4.00 speed 0 ; % 1 sec, hold L at max, cut R to zero 5.00 0 speed ; % 1 sec, cut L to zero,acclerate R to max 6.00 speed speed ; % 1 sec, accelerate L to max, hold R at max 8.00 speed speed ]; % 2 sec, accelerate L to max, hold R at max

% plan02 - speed=1.0, zG2wrtD2=-10, k=20 - lift RM/RA % - speed=1.0, zG2wrtD2=-10, k=10 - complete overturn % - speed=0.99, zG2wrtD2=-10, k=10 - lift LA/RF/RM/RA % - speed=0.88, zG2wrtD2=-10, k=10 - lift RA

speed = 1.02;

65

plan04 = [ 0.00 0 0 ; 1.00 speed speed ; % 1 sec, accelerate to max, straight 3.00 speed speed ; % 2 sec, hold at max, straight 4.00 speed 0 ; % 1 sec, hold L at max, cut R to zero 5.00 0 speed ; % 1 sec, cut L to zero,acclerate R to max 6.00 speed speed ; % 1 sec, accelerate L to max, hold R at max 11.00 speed speed ]; % 2 sec, accelerate L to max, hold R at

max

throttle.plan = plan02;

% bottom of sixwh_throttle

function [ rC, fC ] = sixwh_tire( rH, rdH, w, u_axle ) % compute tire contact patch location and force % six wheel solid axle skid steer vehicle % % INPUTS - rH = 3x1 global location of wheel hub % rdH = 3x1 global velocity of wheel hub % w = 3x3 global angular velocity of wheel % u_axle = 3x1 global unit direction for axle % % OUTPUTS - rC = 3x1 global location of tire contact patch % fC = 3x1 global force on tire at contact patch

% global variables global chassis motor tire ground throttle keep

% constants eps = 1e-1; % small value for slip r2d = 180 / pi; % radians to degrees

% normal from tire hubs to ground

% need ground here % check from hub to planar patches % from hub to each edge % from hub to each vertex

% contact point for flat infinite ground % assumes spherical (not toroidal tire)

% contact point for a flat ramp temp = tand(2); z = - temp * rH(1); ramp = 0; if ramp == 0 rC = [ rH(1) rH(2) 0 ]'; else rC = [ rH(1) rH(2) z ]'; end

% effective rolling radius rho = rC - rH; Re = norm( rho );

66

if Re < tire.R,

% tire local directions if norm( w ) > 0.0001, VCwrtH = cross( w, rho ); % velocity of C on tire with respect to hub

due to rotation Vroll = norm( VCwrtH ); % pure rolling velocity else VCwrtH = cross( u_axle, rho ); % direction if w=0 Vroll = 0; end

u_nor = -unit( rho ); % normal direction (from ground to hub) u_rol = -unit( VCwrtH ); % rolling direction u_lat = cross( u_nor, u_rol ); % lateral direction

% hub velocity in tire local directions VH_nor = u_nor' * rdH; VH_rol = u_rol' * rdH; VH_lat = u_lat' * rdH;

% percent slip in rolling direction %{ den = max( [ Vroll abs(VH_Rol) ] ); if den > eps, slip = Vroll - VH_Rol; pct_slip = 100 * slip / den; else slip = 0; pct_slip = 0; end % lateral slip angle alpha_deg = atan( abs(VH_Lat) / Vroll ) * r2d; % rudimentary tire model mu_trac = min( [ tire.mu_s*pct_slip/20 tire.mu_s ] ); mu_lat = min( [ tire.mu_s*alpha_deg/20 tire.mu_s ] ); %}

% normalized tire forces with saturation V_max_trac = 30; % [ips] V_max_lat = 30; V_max_rr = 1;

slip = Vroll - VH_rol;

mu_trac = tire.mu_s * min( [ abs(slip)/V_max_trac 1 ] ); mu_lat = tire.mu_s * min( [ abs(VH_lat)/V_max_lat 1 ] ); mu_rr = tire.mu_rr * min( [ Vroll/V_max_rr 1 ] );

% tractive coefficient using Pacejka model B = tire.trac(1); C = tire.trac(2); D = tire.trac(3); E = tire.trac(4); x = abs(slip);

67

% mu_trac = D*sin( C*atan( B*x - E*(B*x-atan(B*x)) ) );

% lateral coefficient using Pacejka model B = tire.lat(1); C = tire.lat(2); D = tire.lat(3); E = tire.lat(4); x = abs(VH_lat); % mu_lat = D*sin( C*atan( B*x - E*(B*x-atan(B*x)) ) );

% rolling resistance coefficient using Pacejka model B = tire.rr(1); C = tire.rr(2); D = tire.rr(3); E = tire.rr(4); x = Vroll; % mu_rr = D*sin( C*atan( B*x - E*(B*x-atan(B*x)) ) );

% tire forces f_nor = tire.k * (tire.R-Re) - tire.c * VH_nor; % f_rol = mu_trac * f_nor * sign(slip) - mu_rr * f_nor; f_rol_trac = mu_trac * f_nor * sign(slip); f_rol_rr = - mu_rr * f_nor; f_rol = f_rol_trac + f_rol_rr; f_lat = -mu_lat * f_nor * sign(VH_lat);

%disp( [ slip f_rol_trac Vroll f_rol_rr ] ) %pause

% rotation about normal and steering torque w_nor = u_nor' * w; mu_r_steer = 0; % ????????????? m_nor = - mu_r_steer * f_nor * sign(w_nor);

% combined force fC = f_nor*u_nor + f_rol*u_rol + f_lat*u_lat;

% no contact else fC = [ 0 0 0 ]'; end

% bottom of sixwh_tire

function yd = sixwh_yd( t, y ) % derivatives of state variables % six wheel solid axle skid steer vehicle

% global variables global chassis motor tire ground throttle keep

% rip state variables into smaller terms rG2 = y(1:3); aG2 = y(4:6); thL = y(7);

68

thR = y(8);

rdG2 = y(9:11); wG2_G2 = y(12:14); thdL = y(15); thdR = y(16);

% current attitude matrix and Euler angle derivatives [ AG2, AdG2, adG2 ] = sixwh_makeA( aG2, wG2_G2 );

% angular velocity of chassis in global directions wG2 = AG2 * wG2_G2;

% axles and angular velocities of tires in global directions u_L = AG2 * chassis.u_L_G2; u_R = AG2 * chassis.u_R_G2;

wL = wG2 + thdL * u_L; wR = wG2 + thdR * u_R;

% global position and velocity of D2 rD2 = rG2 - AG2 * chassis.sG2wrtD2_D2; rdD2 = rdG2 - AdG2 * chassis.sG2wrtD2_D2;

% global position and velocity of tire hubs rHLF = rD2 + AG2 * chassis.sHLFwrtD2_D2; rHLM = rD2 + AG2 * chassis.sHLMwrtD2_D2; rHLA = rD2 + AG2 * chassis.sHLAwrtD2_D2;

rHRF = rD2 + AG2 * chassis.sHRFwrtD2_D2; rHRM = rD2 + AG2 * chassis.sHRMwrtD2_D2; rHRA = rD2 + AG2 * chassis.sHRAwrtD2_D2;

rdHLF = rdD2 + AdG2 * chassis.sHLFwrtD2_D2; rdHLM = rdD2 + AdG2 * chassis.sHLMwrtD2_D2; rdHLA = rdD2 + AdG2 * chassis.sHLAwrtD2_D2;

rdHRF = rdD2 + AdG2 * chassis.sHRFwrtD2_D2; rdHRM = rdD2 + AdG2 * chassis.sHRMwrtD2_D2; rdHRA = rdD2 + AdG2 * chassis.sHRAwrtD2_D2;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %t

% contact patch and force on each tire [ rCLF, fCLF ] = sixwh_tire( rHLF, rdHLF, wL, u_L ); [ rCLM, fCLM ] = sixwh_tire( rHLM, rdHLM, wL, u_L ); [ rCLA, fCLA ] = sixwh_tire( rHLA, rdHLA, wL, u_L );

[ rCRF, fCRF ] = sixwh_tire( rHRF, rdHRF, wR, u_R ); [ rCRM, fCRM ] = sixwh_tire( rHRM, rdHRM, wR, u_R ); [ rCRA, fCRA ] = sixwh_tire( rHRA, rdHRA, wR, u_R );

% show tire forces

69

%disp( 'contact forces' ) %disp( [ fCLF fCLM fCLA fCRF fCRM fCRA ] ) %pause

% summation of tire forces on chassis in global directions [lbf] sumF2 = fCLF + fCLM + fCLA + fCRF + fCRM + fCRA;

% summation of tire moments on chassis about centroid in global directions

[in.lbf] sumM2 = cross( rCLF-rG2, fCLF ) + cross( rCLM-rG2, fCLM ) + cross( rCLA-rG2,

fCLA ) ... + cross( rCRF-rG2, fCRF ) + cross( rCRM-rG2, fCRM ) + cross( rCRA-rG2,

fCRA );

% summation of moments on tire triplets about axles in global directions

[in.lbf] sumML = cross( rCLF-rHLF, fCLF ) + cross( rCLM-rHLM, fCLM ) + cross( rCLA-

rHLA, fCLA ); sumMR = cross( rCRF-rHRF, fCRF ) + cross( rCRM-rHRM, fCRM ) + cross( rCRA-

rHRA, fCRA );

% motor torques [in.lbf] tcL = interp1( throttle.plan(:,1), throttle.plan(:,2), t ); tcR = interp1( throttle.plan(:,1), throttle.plan(:,3), t ); TmotorL = motor.T_max * ( tcL - thdL / motor.w_max ); TmotorR = motor.T_max * ( tcR - thdR / motor.w_max );

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %if t>0.1, % TmotorL = 0; % TmotorR = 0; %end

keep = [ keep ; [ tcL tcR TmotorL TmotorR fCLF(3) fCLM(3) fCLA(3) fCRF(3)

fCRM(3) fCRA(3) ] ];

% summation of moments on tire triplets about axles in axle directions

[in.lbf] sumML_axleL = u_L' * sumML; sumMR_axleR = u_R' * sumMR;

% angular acceleration of tires %netML = sumML_axleL + TmotorL - motor.T_drag*sign(thdL); % [in.lbf] %netMR = sumMR_axleR + TmotorR - motor.T_drag*sign(thdR); %netML = sumML_axleL + TmotorL - motor.T_drag*thdL; % [in.lbf] %netMR = sumMR_axleR + TmotorR - motor.T_drag*thdR; netML = sumML_axleL + TmotorL; % [in.lbf] netMR = sumMR_axleR + TmotorR;

thddL = 32.174*12 * netML / chassis.JL; % [rad/sec2] thddR = 32.174*12 * netMR / chassis.JR;

% angular acceleration of chassis in body-fixed directions netM2 = sumM2 - netML*u_L - netMR*u_R; % global moments [in.lbf] netM2_G2 = AG2' * netM2; % body-fixed moments

70

wdG2_G2 = 32.174*12 * inv(chassis.J2_G2) * netM2_G2; % [rad/sec2]

% acceleration of chassis in global directions rddG2 = ( sumF2*32.174*12 + chassis.m2*ground.gravity ) / chassis.m2; %

[ips2]

% 16x1 derivatives of generalized coordinates yd = [ rdG2' adG2' thdL thdR rddG2' wdG2_G2' thddL thddR ]';

% bottom of sixwh_yd

function amat = skew_sym( avec ) % form skew symmetric matrix from vector % % USAGE % amat = skew_sym( avec ) % % INPUT % avec = 3x1 vector % % OUTPUT % amat = 3x3 matrix

amat = zeros(3,3); amat(1,2) = -avec(3); amat(1,3) = avec(2); amat(2,3) = -avec(1); amat(2,1) = avec(3); amat(3,1) = -avec(2); amat(3,2) = avec(1);

% bottom of skew_sym.m

function unit = unit( avec ) % form unit vector % % USAGE % unit = unit( avec ) % % INPUT % avec = 3x1 vector % % OUTPUT % unit = 3x1 matrix

n_vec = norm (avec); unit = avec/n_vec;

% bottom of unit.m