<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://projectswiki.eleceng.adelaide.edu.au/projects/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=A1628662</id>
	<title>Projects - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://projectswiki.eleceng.adelaide.edu.au/projects/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=A1628662"/>
	<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php/Special:Contributions/A1628662"/>
	<updated>2026-04-20T04:01:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.4</generator>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8866</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8866"/>
		<updated>2017-10-26T09:07:34Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182 BMW.jpeg|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|System Structure]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
The vehicle platform that this system is designed for is a 2013 BMW ActiveHybrid 3 with a width of 1.81m assuming a lane of 3.4m this leaves +/- 79 cm of lane on either side&lt;br /&gt;
With a maximum deviation of +/-10cm our vehicle is well within the limits of the lane and if it stays within this state should safely traverse the track set out for it.&lt;br /&gt;
The steering wheel angle shows relatively limited jitter which means that the passenger should experience a reasonably smooth ride.&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[1]    Alleyne, Andrew. 1997. “A Comparison of Alternative Intervention Strategies for Unintended Roadway Departure (URD) Control.” Vehicle System Dynamics 27 157-186.&lt;br /&gt;
&lt;br /&gt;
[2]    B.J. Alshaer, T.T. Darabseh, M.A. Alhanouti. 2013. “Path Planning Modelling And Simulation Of An Autonomous Articulated Heavy Construction Machine Performing A Loading Cycle.” Applied mathematical Modelling 37 5315-5325.&lt;br /&gt;
&lt;br /&gt;
[3]    Bardini, Dieter Schramm Manfred Hiller Roberto. 2014. Vehicle Dynamics Modeling and Simulation. Springer.&lt;br /&gt;
&lt;br /&gt;
[4]    Dollinger, Robert. n.d. “BMW Autonomous Vehicle Project.”&lt;br /&gt;
&lt;br /&gt;
[5]    E. Kim, J.Kim M, Sunwoo. 2014. “Model Predictive Control Strategy For Smooth Path Tracking Of Autonomous Vehicle With Steering Actuator Dynamics.” International Journal of Automotive Technology Vol 15 No 7 1155-1164.&lt;br /&gt;
&lt;br /&gt;
[6]    F. Borrelli*, P. Falcone, T. Keviczky. n.d. “MPC-Based Approach to Active Steering for Autonomous Vehicle Systems.”&lt;br /&gt;
&lt;br /&gt;
[7]    Guilherme V. Raffo, Guilherme K. Gomes, Julio E. Normey-Rico. 2009. “A Predictive Controller for Autonomous Vehicle Path Tracking.” IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS, VOL. 10, NO. 1 92-102.&lt;br /&gt;
&lt;br /&gt;
[8]    Hawes, Dr Nick. 2016. “Driving the revolution.” University of Birmingham. &lt;br /&gt;
&lt;br /&gt;
[9]    Jesse Levinson, Jake Askeland, Jan Becker. n.d. “Towards Fully Autonomous Driving: Systems and Algorithms.”&lt;br /&gt;
&lt;br /&gt;
[10]   2015. Controlling Self Driving Cars. Directed by AerospaceControlsLab. Performed by Shih-Yuan Liu,Brett Lopez, Luke Johnson Justin Miller.&lt;br /&gt;
&lt;br /&gt;
[11]   K.J Astrom, T Hagglund. 2001. “The future of PID control.” Control Engineering Practice 9 1163–1175.&lt;br /&gt;
&lt;br /&gt;
[12]   Martin Buehler, Karl Iagnemma. n.d. “The DARPA Urban Challenge Autonomous Vehicle in City Traffic.” 249-251.&lt;br /&gt;
&lt;br /&gt;
[13]   Ramanata, PP. 1998. Vehicle Dynamics Modeling. &lt;br /&gt;
&lt;br /&gt;
[14]   Riccardo Marino, Stefano Scalzi, Mariana Netto. 2011. “Nested PID steering control for lane keeping in autonomous vehicles.” Control Engineering practice 19 1459-1467.&lt;br /&gt;
&lt;br /&gt;
[15]   S. SAHOO, S. C. SUBRAMANIAN, N. MAHALE and S. SRIVASTAVA. 2015. “Design And Development Of A Heading Angle Controller For An Unmanned Ground Vehicle.” International Journal of Automotive Technology Vol. 16 No. 1 27−37.&lt;br /&gt;
&lt;br /&gt;
[16]   https://www.caranddriver.com/reviews/2013-bmw-activehybrid-3-first-drive-review&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8865</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8865"/>
		<updated>2017-10-26T09:05:37Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182 BMW.jpeg|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|System Structure]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
The vehicle platform that this system is designed for is a 2013 BMW ActiveHybrid 3 with a width of 1.81m assuming a lane of 3.4m this leaves +/- 79 cm of lane on either side&lt;br /&gt;
With a maximum deviation of +/-10cm our vehicle is well within the limits of the lane and if it stays within this state should safely traverse the track set out for it.&lt;br /&gt;
The steering wheel angle shows relatively limited jitter which means that the passenger should experience a reasonably smooth ride.&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
https://www.caranddriver.com/reviews/2013-bmw-activehybrid-3-first-drive-review&lt;br /&gt;
&lt;br /&gt;
Alleyne, Andrew. 1997. “A Comparison of Alternative Intervention Strategies for Unintended Roadway Departure (URD) Control.” Vehicle System Dynamics 27 157-186.&lt;br /&gt;
&lt;br /&gt;
B.J. Alshaer, T.T. Darabseh, M.A. Alhanouti. 2013. “Path Planning Modelling And Simulation Of An Autonomous Articulated Heavy Construction Machine Performing A Loading Cycle.” Applied mathematical Modelling 37 5315-5325.&lt;br /&gt;
&lt;br /&gt;
Bardini, Dieter Schramm Manfred Hiller Roberto. 2014. Vehicle Dynamics Modeling and Simulation. Springer.&lt;br /&gt;
&lt;br /&gt;
Dollinger, Robert. n.d. “BMW Autonomous Vehicle Project.”&lt;br /&gt;
&lt;br /&gt;
E. Kim, J.Kim M, Sunwoo. 2014. “Model Predictive Control Strategy For Smooth Path Tracking Of Autonomous Vehicle With Steering Actuator Dynamics.” International Journal of Automotive Technology Vol 15 No 7 1155-1164.&lt;br /&gt;
&lt;br /&gt;
F. Borrelli*, P. Falcone, T. Keviczky. n.d. “MPC-Based Approach to Active Steering for Autonomous Vehicle Systems.”&lt;br /&gt;
&lt;br /&gt;
Guilherme V. Raffo, Guilherme K. Gomes, Julio E. Normey-Rico. 2009. “A Predictive Controller for Autonomous Vehicle Path Tracking.” IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS, VOL. 10, NO. 1 92-102.&lt;br /&gt;
&lt;br /&gt;
Hawes, Dr Nick. 2016. “Driving the revolution.” University of Birmingham. &lt;br /&gt;
&lt;br /&gt;
Jesse Levinson, Jake Askeland, Jan Becker. n.d. “Towards Fully Autonomous Driving: Systems and Algorithms.”&lt;br /&gt;
&lt;br /&gt;
2015. Controlling Self Driving Cars. Directed by AerospaceControlsLab. Performed by Shih-Yuan Liu,Brett Lopez, Luke Johnson Justin Miller.&lt;br /&gt;
&lt;br /&gt;
K.J Astrom, T Hagglund. 2001. “The future of PID control.” Control Engineering Practice 9 1163–1175.&lt;br /&gt;
&lt;br /&gt;
Martin Buehler, Karl Iagnemma. n.d. “The DARPA Urban Challenge Autonomous Vehicle in City Traffic.” 249-251.&lt;br /&gt;
&lt;br /&gt;
Ramanata, PP. 1998. Vehicle Dynamics Modeling. &lt;br /&gt;
&lt;br /&gt;
Riccardo Marino, Stefano Scalzi, Mariana Netto. 2011. “Nested PID steering control for lane keeping in autonomous vehicles.” Control Engineering practice 19 1459-1467.&lt;br /&gt;
&lt;br /&gt;
S. SAHOO, S. C. SUBRAMANIAN, N. MAHALE and S. SRIVASTAVA. 2015. “Design And Development Of A Heading Angle Controller For An Unmanned Ground Vehicle.” International Journal of Automotive Technology Vol. 16 No. 1 27−37.&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8864</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8864"/>
		<updated>2017-10-26T09:05:17Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182 BMW.jpeg|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|System Structure]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
The vehicle platform that this system is designed for is a 2013 BMW ActiveHybrid 3 with a width of 1.81m assuming a lane of 3.4m this leaves +/- 79 cm of lane on either side&lt;br /&gt;
With a maximum deviation of +/-10cm our vehicle is well within the limits of the lane and if it stays within this state should safely traverse the track set out for it.&lt;br /&gt;
The steering wheel angle shows relatively limited jitter which means that the passenger should experience a reasonably smooth ride.&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
https://www.caranddriver.com/reviews/2013-bmw-activehybrid-3-first-drive-review&lt;br /&gt;
Alleyne, Andrew. 1997. “A Comparison of Alternative Intervention Strategies for Unintended Roadway Departure (URD) Control.” Vehicle System Dynamics 27 157-186.&lt;br /&gt;
B.J. Alshaer, T.T. Darabseh, M.A. Alhanouti. 2013. “Path Planning Modelling And Simulation Of An Autonomous Articulated Heavy Construction Machine Performing A Loading Cycle.” Applied mathematical Modelling 37 5315-5325.&lt;br /&gt;
Bardini, Dieter Schramm Manfred Hiller Roberto. 2014. Vehicle Dynamics Modeling and Simulation. Springer.&lt;br /&gt;
Dollinger, Robert. n.d. “BMW Autonomous Vehicle Project.”&lt;br /&gt;
E. Kim, J.Kim M, Sunwoo. 2014. “Model Predictive Control Strategy For Smooth Path Tracking Of Autonomous Vehicle With Steering Actuator Dynamics.” International Journal of Automotive Technology Vol 15 No 7 1155-1164.&lt;br /&gt;
F. Borrelli*, P. Falcone, T. Keviczky. n.d. “MPC-Based Approach to Active Steering for Autonomous Vehicle Systems.”&lt;br /&gt;
Guilherme V. Raffo, Guilherme K. Gomes, Julio E. Normey-Rico. 2009. “A Predictive Controller for Autonomous Vehicle Path Tracking.” IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS, VOL. 10, NO. 1 92-102.&lt;br /&gt;
Hawes, Dr Nick. 2016. “Driving the revolution.” University of Birmingham. &lt;br /&gt;
Jesse Levinson, Jake Askeland, Jan Becker. n.d. “Towards Fully Autonomous Driving: Systems and Algorithms.”&lt;br /&gt;
2015. Controlling Self Driving Cars. Directed by AerospaceControlsLab. Performed by Shih-Yuan Liu,Brett Lopez, Luke Johnson Justin Miller.&lt;br /&gt;
K.J Astrom, T Hagglund. 2001. “The future of PID control.” Control Engineering Practice 9 1163–1175.&lt;br /&gt;
Martin Buehler, Karl Iagnemma. n.d. “The DARPA Urban Challenge Autonomous Vehicle in City Traffic.” 249-251.&lt;br /&gt;
Ramanata, PP. 1998. Vehicle Dynamics Modeling. &lt;br /&gt;
Riccardo Marino, Stefano Scalzi, Mariana Netto. 2011. “Nested PID steering control for lane keeping in autonomous vehicles.” Control Engineering practice 19 1459-1467.&lt;br /&gt;
S. SAHOO, S. C. SUBRAMANIAN, N. MAHALE and S. SRIVASTAVA. 2015. “Design And Development Of A Heading Angle Controller For An Unmanned Ground Vehicle.” International Journal of Automotive Technology Vol. 16 No. 1 27−37.&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8863</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8863"/>
		<updated>2017-10-26T09:02:43Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182 BMW.jpeg|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|System Structure]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
The vehicle platform that this system is designed for is a 2013 BMW ActiveHybrid 3 with a width of 1.81m assuming a lane of 3.4m this leaves +/- 79 cm of lane on either side&lt;br /&gt;
With a maximum deviation of +/-10cm our vehicle is well within the limits of the lane and if it stays within this state should safely traverse the track set out for it.&lt;br /&gt;
The steering wheel angle shows relatively limited jitter which means that the passenger should experience a reasonably smooth ride.&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8862</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8862"/>
		<updated>2017-10-26T09:02:22Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182 BMW.jpeg|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|System Structure]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
The vehicle platform that this system is designed for is a 2013 BMW ActiveHybrid 3 with a width of 1.81m assuming a lane of 3.4m this leaves +/- 79 cm of lane on either side&lt;br /&gt;
With a maximum deviation of +/-10cm our vehicle is well within the limits of the lane and if it stays within this state should safely traverse the track set out for it.&lt;br /&gt;
The steering wheel angle shows relatively limited jitter which means that the passenger should experience a reasonably smooth ride.&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8861</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8861"/>
		<updated>2017-10-26T09:01:33Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182 BMW.jpeg|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
The vehicle platform that this system is designed for is a 2013 BMW ActiveHybrid 3 with a width of 1.81m assuming a lane of 3.4m this leaves +/- 79 cm of lane on either side&lt;br /&gt;
With a maximum deviation of +/-10cm our vehicle is well within the limits of the lane and if it stays within this state should safely traverse the track set out for it.&lt;br /&gt;
The steering wheel angle shows relatively limited jitter which means that the passenger should experience a reasonably smooth ride.&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8860</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8860"/>
		<updated>2017-10-26T09:01:16Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182 BMW.jpeg|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
The vehicle platform that this system is designed for is a 2013 BMW ActiveHybrid 3 with a width of 1.81m assuming a lane of 3.4m this leaves +/- 79 cm of lane on either side&lt;br /&gt;
With a maximum deviation of +/-10cm our vehicle is well within the limits of the lane and if it stays within this state should safely traverse the track set out for it.&lt;br /&gt;
The steering wheel angle shows relatively limited jitter which means that the passenger should experience a reasonably smooth ride.&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8859</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8859"/>
		<updated>2017-10-26T08:53:26Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182 BMW.jpeg|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
The vehicle this system is designed to fit &lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_BMW.jpeg&amp;diff=8858</id>
		<title>File:182 BMW.jpeg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_BMW.jpeg&amp;diff=8858"/>
		<updated>2017-10-26T08:52:47Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8857</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8857"/>
		<updated>2017-10-26T08:51:58Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Control Module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Output Filter  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
The vehicle this system is designed to fit &lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8856</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8856"/>
		<updated>2017-10-26T08:45:21Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
The results of the system show an average deviation from the track of 2cm with a maximum deviation from the path of 10cm&lt;br /&gt;
&lt;br /&gt;
The vehicle this system is designed to fit &lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8855</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8855"/>
		<updated>2017-10-26T08:28:23Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Project Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
[[Image:182_Peter_Branson.jpg|thumb|left|110px]]&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Peter_Branson.jpg&amp;diff=8854</id>
		<title>File:182 Peter Branson.jpg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Peter_Branson.jpg&amp;diff=8854"/>
		<updated>2017-10-26T08:28:02Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8853</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8853"/>
		<updated>2017-10-26T08:27:05Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8852</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8852"/>
		<updated>2017-10-26T08:26:55Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|left|300px|Result]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8851</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8851"/>
		<updated>2017-10-26T08:26:41Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
[[Image:182_Results_Table.JPG|thumb|right|300px|Result]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Results_Table.JPG&amp;diff=8850</id>
		<title>File:182 Results Table.JPG</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Results_Table.JPG&amp;diff=8850"/>
		<updated>2017-10-26T08:26:10Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8849</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8849"/>
		<updated>2017-10-26T08:24:57Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Result_Output.JPG|thumb|right|300px|Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8848</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8848"/>
		<updated>2017-10-26T08:24:30Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|182_Result_Output.JPG]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Result_Output.JPG&amp;diff=8847</id>
		<title>File:182 Result Output.JPG</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Result_Output.JPG&amp;diff=8847"/>
		<updated>2017-10-26T08:24:00Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8829</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8829"/>
		<updated>2017-10-16T10:48:58Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Control Module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8828</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8828"/>
		<updated>2017-10-16T10:46:39Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Project Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8827</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8827"/>
		<updated>2017-10-16T10:46:24Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Harrison Gruber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|110px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8826</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8826"/>
		<updated>2017-10-16T10:43:17Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Control Module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
[[Image:182_PID.png|thumb|right|220px|PID]]&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_PID.png&amp;diff=8825</id>
		<title>File:182 PID.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_PID.png&amp;diff=8825"/>
		<updated>2017-10-16T10:42:54Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8824</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8824"/>
		<updated>2017-10-16T10:42:15Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Bicycle Model  ===&lt;br /&gt;
[[Image:182_Bicycle_Model.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Bicycle_Model.png&amp;diff=8823</id>
		<title>File:182 Bicycle Model.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Bicycle_Model.png&amp;diff=8823"/>
		<updated>2017-10-16T10:41:55Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8822</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8822"/>
		<updated>2017-10-16T10:40:43Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8821</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8821"/>
		<updated>2017-10-16T10:40:24Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:182_Structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Structure.png&amp;diff=8820</id>
		<title>File:182 Structure.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Structure.png&amp;diff=8820"/>
		<updated>2017-10-16T10:39:45Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8819</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8819"/>
		<updated>2017-10-16T07:45:23Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Control Module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
[[Image:182_Deviation.png|thumb|right|220px|Deviation Calculation Representation]]&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Deviation.png&amp;diff=8818</id>
		<title>File:182 Deviation.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Deviation.png&amp;diff=8818"/>
		<updated>2017-10-16T07:44:49Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8817</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8817"/>
		<updated>2017-10-16T07:43:20Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Determination of Travel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8816</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8816"/>
		<updated>2017-10-16T07:43:02Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Determination of Travel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|left|250px|State Based Equation]]&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8815</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8815"/>
		<updated>2017-10-16T07:42:37Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|250px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|250px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8814</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8814"/>
		<updated>2017-10-16T07:42:11Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_Determination_of_travel.png|thumb|right|450px|Determination of Travel]]&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|450px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8813</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8813"/>
		<updated>2017-10-16T07:41:24Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
[[Image:182_StateBased_equation.jpg|thumb|right|450px|State Based Equation]]&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Determination_of_travel.png&amp;diff=8812</id>
		<title>File:182 Determination of travel.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_Determination_of_travel.png&amp;diff=8812"/>
		<updated>2017-10-16T07:40:27Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_StateBased_equation.jpg&amp;diff=8811</id>
		<title>File:182 StateBased equation.jpg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:182_StateBased_equation.jpg&amp;diff=8811"/>
		<updated>2017-10-16T07:40:08Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8810</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8810"/>
		<updated>2017-10-16T07:38:32Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
This module is designed to take in vehicle information for each cycle and store that data accordingly, once the system has run through the course this information is visually displayed to the user allowing for determinations on the efficiency of the system&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8809</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8809"/>
		<updated>2017-10-16T07:37:03Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8808</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8808"/>
		<updated>2017-10-16T07:36:33Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Control Module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
== GUI/Export Module  ==&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8807</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8807"/>
		<updated>2017-10-16T07:35:22Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
The purpose of the initialization program is to handle all inputs within the system and assign them to be used in the later modules, these variables are either feed in through the Simulink input into the system or through the MATLAB workspace.&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8806</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8806"/>
		<updated>2017-10-16T07:33:19Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is component of a larger project run by Robert Dollinger that aims to develop the systems required to operate an autonomous BMW. Some autonomous modules have been previously completed; however there are still a portion of systems that have not been developed or only been partially developed &lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8805</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8805"/>
		<updated>2017-10-13T09:00:20Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is the continuation of a several year autonomous system development for BMW under the university of Adelaide&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
The purpose of the determination of travel module is to take in the variables previously initialized and run a linear single-track model so that the variables required to determine direction can be determined. &lt;br /&gt;
Due to the longitudinal forces on the vehicle it does not travel at the same angle as steering angle, the follow module allows for the extraction of the two variables that can give the true angle of the vehicles travel.  &lt;br /&gt;
&lt;br /&gt;
The system runs this model through a state based formula that takes in the general characteristics of the vehicle and outputs the expected behaviour of the vehicle&lt;br /&gt;
As can be seen in this equation the new state of Yaw rate and Side Slip both rely on the numbers of their previous states. Due to this requirements feedback is built into the system to return the output of this equation into the next iteration.&lt;br /&gt;
&lt;br /&gt;
ψ(PSI_estimated)=ψ_initial+(ψ ̈(yaw acceleration)+ψ ̇(yaw rate))*time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direction of travel=PSI_estimated-β&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
The Determination of Position is designed to generate the expected position based on the information generated within both of the previous modules. This system takes in a velocity vector that is run alongside the initial position of the vehicle to output the estimated position of the vehicle after the cycle time.&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8804</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8804"/>
		<updated>2017-10-13T08:55:07Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Vehicle Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is the continuation of a several year autonomous system development for BMW under the university of Adelaide&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
The vehicle model architecture is based on the usage of the bicycle model, this sub-system takes in velocity and steering angle and determines an expected velocity, using the provided velocity it then calculates a predicted position east and north. This information is instrumental in controlling the vehicle as it provides the necessary information to accurately track the movement of the vehicle. This module fits into both the control module as well as the GUI with an input of steering angle from the feedback of the steering rack.&lt;br /&gt;
&lt;br /&gt;
The module of three major sub-modules: &lt;br /&gt;
&lt;br /&gt;
1. Variable initialisation &lt;br /&gt;
&lt;br /&gt;
2. Determination of travel &lt;br /&gt;
&lt;br /&gt;
3. Determination of position.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8803</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8803"/>
		<updated>2017-10-13T03:25:50Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is the continuation of a several year autonomous system development for BMW under the university of Adelaide&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Developed System ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8802</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8802"/>
		<updated>2017-10-13T03:25:30Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is the continuation of a several year autonomous system development for BMW under the university of Adelaide&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
== Developed System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
== Vehicle Model ==&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
=== Initilization of Variables  ===&lt;br /&gt;
&lt;br /&gt;
=== Determination of Travel  ===&lt;br /&gt;
&lt;br /&gt;
=== Determination of Position  ===&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Module  ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8797</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8797"/>
		<updated>2017-10-06T07:39:45Z</updated>

		<summary type="html">&lt;p&gt;A1628662: /* Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is the continuation of a several year autonomous system development for BMW under the university of Adelaide&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
4.	Evaluate which of vehicle control algorithms tested would serve as the best foundation for future development&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
== Developed System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== Vehicle Model ===&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vehicle Control Module  ===&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8796</id>
		<title>Projects:2017s1-182 BMW Autonomous Vehicle Project Development of Vehicle Control Algorithm</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2017s1-182_BMW_Autonomous_Vehicle_Project_Development_of_Vehicle_Control_Algorithm&amp;diff=8796"/>
		<updated>2017-10-06T07:38:38Z</updated>

		<summary type="html">&lt;p&gt;A1628662: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
The Development Vehicle Control Algorithm project is a component of the Autonomous Vehicle Development Project &lt;br /&gt;
&lt;br /&gt;
Investigation of numerous control strategies to determine the ideal steering angle to enable an autonomous vehicle to follow a predetermined path whilst also providing a comfortable ride for all its occupants. Utilizing the core principles of feedback control systems, signal processing and complex domain vector calculus, the control strategy is capable of track manipulation, predictive pathing and past-movement compensation to ensure a a smooth and accurate ride is achieved.&lt;br /&gt;
&lt;br /&gt;
To enable this control strategy development, a system model has been developed to simulate the real-world performance of a given control strategy. This system model represents the larger BMW system to allow easy integration of the chosen control strategy into the current autonomous development vehicle platform. This model allows the control strategy to be tested on a variety of different paths.&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|450px|Placeholder]]&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
This project is the continuation of a several year autonomous system development for BMW under the university of Adelaide&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
1.	Create a variety of algorithms that use minimal steering wheel angle to remain on a predefined track with minimum deviation.&lt;br /&gt;
&lt;br /&gt;
2.	Develop a simulator in which vehicle control algorithms can be tested&lt;br /&gt;
&lt;br /&gt;
3.	Test algorithms on the simulator and fine tune VCA’s&lt;br /&gt;
&lt;br /&gt;
== Vehicle Control Algorithm ==&lt;br /&gt;
[[Image:Autonomous_vehicle_structure.png|thumb|right|500px|Autonomous Vehicle Structure]]&lt;br /&gt;
&lt;br /&gt;
The vehicle Control Algorithm is a module of Autonomous vehicles within the driver strategy portion of an autonomous system, this module is responsible for providing the steering wheel angle required to keep the vehicle on the desired track, this module then sends that information to the actuating interface so that it can interact with the vehicle.&lt;br /&gt;
&lt;br /&gt;
== Developed System ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our approach to the algorithm splits it into three major sub-modules; the Control Module, the Vehicle Model and the Export/GUI module. each of these module is designed to be separate from one another to allow for them to be independently developed and inserted into the final product. &lt;br /&gt;
&lt;br /&gt;
The program is designed to take in a reference track provided by the vehicle model &lt;br /&gt;
&lt;br /&gt;
One of the major features of our VCA is that it does not project the required steering angle ahead it instead calculates the change of each point along the track with a deviation from the track used as a control mechanism.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:182_Program_Structure.png|500px|thumb|center|Developed VCA]]&lt;br /&gt;
&lt;br /&gt;
=== Vehicle Model ===&lt;br /&gt;
The purpose of the vehicle model is to take the characteristics of the vehicle in motion to project the future behavior of the vehicle as it progresses on the track.&lt;br /&gt;
This information takes the current coordinates of the vehicle along with the velocity and steering angle and projects the future coordinates the vehicle is expected to be at, this information flows through to the position control module to allow for adjustment of the steering angle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vehicle Control Module  ===&lt;br /&gt;
&lt;br /&gt;
The purpose of the vehicle control module is to take in the reference track and the current position of the vehicle to determine the required steering wheel angle to keep the vehicle on or towards the desired track.&lt;br /&gt;
&lt;br /&gt;
This module works by using three major sub-modules, a Look-ahead distance to reduce the search range for nearby track locations, a Deviation Calculation that determines how close the nearest track point is to the vehicle, a control system that uses the deviation to generate an output steering angle as well as a Max change limiter that controls the maximum steering wheel angle change to be within the operating parameters of the real world system.&lt;br /&gt;
&lt;br /&gt;
==== Look Ahead Distance  ====&lt;br /&gt;
[[Image:182_LAD.png|thumb|right|220px|Look ahead Distance Representation]]&lt;br /&gt;
When providing the reference track points to the rest of the control module it is important to reduce the range of searchable reference points, whilst this lowers to computational complexity of the later portions of the program it also restricts the deviation calculator to only look at points that are a certain amount of points ahead of the current position along the track.&lt;br /&gt;
&lt;br /&gt;
Without a look ahead system it is possible that the vehicle could get confused when coming to an intersection of the track as it may lock onto portions of the track that it has not reached yet, a look ahead system restricts this issue by ensuring the the vehicle can only track points within its immediate future.&lt;br /&gt;
&lt;br /&gt;
==== Proportional Integral Derivative Controller  ====&lt;br /&gt;
The control system used to control the steering angle&lt;br /&gt;
&lt;br /&gt;
==== Slew  ====&lt;br /&gt;
Due to limitation in the real world equipment the change of steering angle over time must be limited by the software to provide and accurate result within the system.&lt;br /&gt;
To achieve this a limiter has been added to the simulink module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Deviation Calculation  ====&lt;br /&gt;
&lt;br /&gt;
For our control system the calculation of the deviation from the track is extremely important as the way that it is calculated can greatly effect the final result.&lt;br /&gt;
&lt;br /&gt;
Our improvement on this deviation calculation was by adding a projection deviation &lt;br /&gt;
The actual deviation used to check the accuracy of the system is independently recorded and saved into the system &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GUI/Export Module  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results  ==&lt;br /&gt;
[[Image:182_Track_Results.png|thumb|right|300px|System Track Results]]&lt;br /&gt;
[[Image:182_Results_output.png|thumb|right|300px|System Result Output]]&lt;br /&gt;
__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
_&lt;br /&gt;
_&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Project Team ==&lt;br /&gt;
&lt;br /&gt;
===Harrison Gruber===&lt;br /&gt;
[[Image:182_Harrison_Gruber_picture.jpg|thumb|left|100px|Harrison Gruber]]&lt;br /&gt;
Undergraduate Electrical and Electronics Engineer(Honours)&lt;br /&gt;
&lt;br /&gt;
Born in Sydney, Australia Harrison is a final year Electrical &amp;amp; Electronics Engineering student at the University of Adelaide, he has worked within the industry both as a Software engineer for QinetiQ Australia and a Quality Engineer for Holden Australia, Once completing his degree he plans to enter the automotive field as a Product Development Engineer. &lt;br /&gt;
&lt;br /&gt;
Throughout the development of the Vehicle Control Algorithm Harrison has been responsible for Control System Research, development of the GUI and development of the Vehicle Model.&lt;br /&gt;
&lt;br /&gt;
===Peter Branson===&lt;br /&gt;
&lt;br /&gt;
Responsible for Control System Research and Control Module Development&lt;br /&gt;
&lt;br /&gt;
=== Supervisors ===&lt;br /&gt;
====Nesimi Ertugrul====&lt;br /&gt;
Associate Professor Adelaide University&lt;br /&gt;
&lt;br /&gt;
====Robert Dollinger====&lt;br /&gt;
&lt;br /&gt;
====Dr Wen Soong====&lt;br /&gt;
[[Image:182_Wen_Soong.jpg|thumb|left|100px|Wen Soong]]&lt;br /&gt;
Wen L. Soong was born in Kuala Lumpur, Malaysia. He received the B.Eng. degree from the University of Adelaide, Australia, in 1989, and the Ph.D. degree from the University of Glasgow, U.K., in 1993.&lt;br /&gt;
For four years, he was engaged as an Electrical Engineer in the Power Controls Program, General Electric Corporate Research and Development, Schenectady, New York, before joining the Electrical and Electronic Engineering Department, University of Adelaide, where he is currently an Associate Professor. His research interests include permanent magnet and reluctance machines, renewable energy generation, and condition monitoring and diagnostics.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>A1628662</name></author>
		
	</entry>
</feed>