Project Final Presentation

Download Report

Transcript Project Final Presentation

By:
Mark Bright
and
Mike Donaldson
Advisor:
Dr. Gary Dempsey





Project Goal
System Applications
Thermal Plant Overview
Engine Side
Thermal Side
The goal of our Engine Control Workstation is to
simulate thermal environments that are found in
liquid-based cooling systems.
With this system we created several different control
methods via MATLAB and Simulink working together to
control both the engine and thermal transient and
steady state responses.
Car Application
PC Application
The overall goal of this project is to protect the motor with
varying loads with minimum energy usage
Engine Side
Thermal Side
Circuitry
Circuitry
Engine
DSP Board
Thermal
DSP Board
Thermistor
Flowmeter
Pump
Cooling
Blocks
Pittman
Generator
Motor
Pittman Motor

Tmax = 311 deg F

Thermal impedance
75.9 deg F/watt

(2.9 A)^2 * (3.91 ohm)
= 36 watts

36W * (75.9 deg F/watt)
= 2732 deg F
Engine Control:




Minimize C-code and execution
time
Learn Auto-Code generation
platform of Simulink/DSP interface
Design software for PWM
generation and velocity calculation
from rotary encoder.
Design closed-loop controllers for
velocity and acceleration control.

32 bit Processor

150 MHz Clock

16 A/D Channels

12 PWM Digital I/O Channels

128K on-chip Flash Memory

9 Ports Total

3.3v Supply

Interfaced to PC by serial port

Inputs and output go through levelshifter IC (5v to 3.3v / 3.3v to 5v)
System Design
User Interaction:
Set RPM and Gain
MATLAB GUI
Simulink Model
Code Composer Auto
Code Generated
C Code
TI 2812 DSP
Board
PWM Output to
Drive Motor

Both encoder channels from the Pittman
motor are offset from each other

Pulses are wired into the DSP board Port
8 – pins 6 and 7

2 counts can be obtained per period for
each channel – 4 times as many counts

Allows for Steady State Error of ± 5 RPM


Simulink codes this as inner shaft RPM,
which must be converted to outer shaft
RPM – 5.9:1 gear ratio
Drag QEP Block into Simulink diagram to
implement

Data sent to GUI is set here

Model is used to generate Code Composer C code

P, PI, and FF Control Implemented

Data sent to GUI is set here

Model is used to generate Code Composer C code

P, PI, and FF Control Implemented

Data sent to GUI is set here

Model is used to generate Code Composer C code

P, PI, and FF Control Implemented

Data sent to GUI is set here

Model is used to generate Code Composer C code

P, PI, and FF Control Implemented

Data sent to GUI is set here

Model is used to generate Code Composer C code

P, PI, and FF Control Implemented
Controller Output
PWM Duty Cycle
Actual RPM
Desired RPM

Data sent to GUI is set here

Model is used to generate Code Composer C code

P, PI, and FF Control Implemented

Simulation model started where the 2008 mini project left off

Bilinear Transform converted analog controllers to digital
controllers

P, PI, and FF Control Implemented
17.1
Gp = ______________
(s/146+1)(s/776+1)
-1
FF=Gp =
(s/146+1)
______________
17.1(s/1460+1)



Simulation:
596 RPM input
FF Output is 17 RPM
Impulse duration was 2mS



Actual:
596 RPM input
FF Output is 17 RPM
As expected from
simulation


PI Control Only
FF Compensation


RPM vs Time (ms) plot
100 RPM Step Input
FF Control decreases
response time by 20
mS
Less overshoot
Smaller time to first
peak
MATLAB GUI Design



Start, Type “guide” in
MATLAB
GUI can be designed
here with many
components
Once designed,
MATLAB creates an
.m file and .fig file





GUI created in MATLAB and
interfaced to Simulink Model
Plots Motor RPM, PWM Duty
Cycle, Transient Response,
and both PI and Feed Forward
Controller Output
User can input desired RPM: 0
to 834 RPM
Optimal controller gains
loaded at startup, but user
can control both the gain and
type of control
GUI updates in real time
numMsgsOchan1 = r.msgcount('ochan1');
if (numMsgsOchan1)
speed = r.readmsg('ochan1', 'int32');
end
numMsgsOchan2 = r.msgcount('ochan2');
if (numMsgsOchan2)
pid = r.readmsg('ochan2', 'int32');
end
numMsgsOchan3 = r.msgcount('ochan3');
if (numMsgsOchan3)
RPM = r.readmsg('ochan3', 'int32');
end
numMsgsOchan4 = r.msgcount('ochan4');
if (numMsgsOchan4)
PI_Out = r.readmsg('ochan4', 'int32');
end
numMsgsOchan5 = r.msgcount('ochan5');
if (numMsgsOchan5)
FFOut = r.readmsg('ochan5', 'int32');
end
if ((numMsgsOchan1 ~=0) && (numMsgsOchan2 ~=
0) && (numMsgsOchan3 ~= 0) &&
(numMsgsOchan4 ~= 0) && (numMsgsOchan5 ~=
0))
axes(handles.axes3);
plot(handles.axes3,x_axis1, RPM);
title(handles.axes3,'Measured speed of the
Motor');
xlabel(handles.axes3,'t (s)');
ylabel(handles.axes3,'Speed (RPM)');
grid(handles.axes3,'on');
axis(handles.axes3,[0 5 1 850]);
axes(handles.axes4);
cycle = double(pid);
plot(handles.axes4,x_axis1, cycle);
title(handles.axes4,'Duty Cycle of the PWM
Waveform');
xlabel(handles.axes4,'t (s)');
ylabel(handles.axes4,'Duty Cycle (%) ');
grid(handles.axes4,'on');
axis(handles.axes4,[0 5 1 100]);

Acceleration Control
◦

CAN Bus Interface
◦

Use the DSP board’s CAN bus to send data between the boards. This would allow for a main GUI to control
both sides of the system.
Data Logging Feature
◦

Adjustable Feed Forward control with different types of input commands: combos of ramps, steps, and
parabolic. Load changes can simulate hills and different road conditions.
Allow for a user to tune controllers and compare results. Could implement a new EE431 / 432 homework or
design project around the system.
Set Control Points for Thermal and Engine Response
◦
Set desired temperature for a change in the coolant as well as a engine RPM governor based on load
conditions

Variable Resistance

Anti-aliasing filter



Use PWM to drive
Pump/Fan
Interface from
digital to analog
Average Voltage
seen by the device

Opto-Isolator

TIP120 choice
Opto-Isolator

Design for 3A

LPF to ‘DC’ the PWM

Ideal Op Amp theory

Voltage @ Input =
Voltage @ Pump
Opto-Isolator


Conversion of A/D Value
to Temperature
Excel Trendline


Conversion of A/D Value
to Temperature
Excel Trendline


Conversion of A/D Value
to Temperature
Excel Trendline


Conversion of A/D Value
to Temperature
Excel Trendline


Datatype conversions
Function auto-code
generated


Datatype conversions
Function auto-code
generated


Bang – Bang
Improved Bang
Bang

P Control

PI Control
100
0
-0.5
95
-1
90
PWM %
PumpPumpPWM%
-1.5
-2
85
-2.5
80
-3
75
-3.5
-4
70
-4.5
65
-5
60
0
10
20
30
40
50
Fan PWM %
Fan PWM%
60
70
80
90
100
-5.5



Supervisory Control
Further improvement
by utilizing Pump
and Fan cooling
efficiencies
Faster PID Control


Use of more
temperature sensors
Use of CAN bus

Nick Schmidt
◦ Case Assembly
◦ Hardware Assembly

Dr. Dempsey
◦ Case Assembly
◦ Hardware Assembly


Plant Wc is at 899 rad/sec
P Control System Wc was at
164 rad/sec

Gain = .08

Phase Margin with P control:
◦
115
17.1
Gp = __________________
(s/146+1)(s/776+1)

Gp(s) =K * 1/(Tc(s)+1) * e^-(s)Td

Pump/Plant
◦ K = (-.8 degrees F / 6.4 V)
◦ Tc = 20
◦ Td = 6

Fan/Plant
◦ K = (-9.6 degrees F / 13V)
◦ Tc = 12
◦ Td = 15
P-Pump

◦ Wc = .148 radians PM = 105 GM =22.1dB

P-Fan
◦ Wc = ? PM = undefined GM =29.4dB

PI-Pump
◦ Wc = .39 radians PM = -139 GM =16.1dB

P-Pump
◦ Wc = .0966 radians PM = -48 GM =-15.92dB

OCHAN’s allow for data
to be outputted to:
◦ GUI
◦ Workspace





PWM Brush Type Servo
Amplifer – Model
10A8DD
Protected for overvoltage and overcurrent
DC Supply Voltage: 2080v
Peak Current: ±10A
Maximum Continuous
Current: ±6A