Appendix A. Cruise Control System

Implementation Resources

The cruise control system is to be implemented on a single powerful microprocessor with 16 interrupts which shall be connected to the control signals that come from the driver’s console.

The system software for the chosen microprocessor permits several (up to 8) tasks to run simultaneously, and it has the capability to schedule tasks on a timer to a resolution of 10 milliseconds. The operating system and the interrupt handler each count as a single task. The operating system occupies 16K bytes of memory; each task may occupy up to 16K bytes. However, the total memory of the system is only 64K bytes which must be shared among the tasks, including the operating system and the interrupt handler. There is also provision for a single data area which can be shared among all tasks; there is no shared code capability.

The microprocessor can execute one million instructions per second; the code for context switching between tasks is 400 instructions long.

Transformation Schemas

Illustrations:cruise control microproessorTransformation schemascruise control systemCruise control microprocessor.

Figure A.0. Cruise control microprocessor.

Illustrations:monitor engine, control learning, and report speedMonitor engine, control learning, and report speed.

Figure A.1. Monitor engine, control learning, and report speed.

Illustrations:control engine monitoring, learning, and speed reportingControl engine monitoring, learning, and speed reporting.

Figure A.1.1. Control engine monitoring, learning, and speed reporting.

Illustrations:manage speed controlManage speed control.

Figure A.2. Manage speed control.

Illustrations:control mode of operationControl mode of operation.

Figure A.2.1. Control mode of operation.

Illustrations:continuous speed controlContinuous speed control.

Figure A.3. Continuous speed control.

Illustrations:continuous speed monitoringContinuous speed monitoring.

Figure A.4. Continuous speed monitoring.

Data Dictionary

accumulate rotations flag

=

**

  

*values : [true | false]*

increase speed flag

=

**

  

* values: [true | false]*

maintain constant speed flag

=

**

  

* values: [true | false]*

report current speed flag

=

**

  

*values : [true | false]*

return to previous speed flag

=

**

  

= *values : [true | false]*

speed control flags

=

*flags to manage periodic speed control*

 

=

return to previous speed flag + increase speed flag + maintain constant speed flag

speed monitoring flags

=

*flags to manage periodic speed monitoring*

 

=

accumulate rotations flag + report current speed flag

Transformation Specifications

  

1.2 Set Accumulate Rotations Flag

Precondition

 

None

Postcondition

 

ACCUMULATE ROTATIONS FLAG = TRUE

1.3 Reset Accumulate Rotations and Flag

Precondition

 

None

Postcondition

 

ACCUMULATED ROTATIONS = 0

 

ACCUMULATED ROTATIONS FLAG = FALSE

1.4 Set Conversion Factor

Precondition

 

None

Postcondition

 

SPEED CONVERSION FACTOR = ACCUMULATED ROTATIONS

1.5 Reset Report Current Speed Flag

Precondition

 

None

Postcondition

 

REPORT CURRENT SPEED FLAG = FALSE

1.6 Set Report Current Speed Flag

Precondition

 

None

Postcondition

 

REPORT CURRENT SPEED FLAG = TRUE

2.2. Record Rotation Rate

Precondition

 

None

Postcondition

 

ROTATION RATE in ROTATION RATE SETPOINT

2.3 Set Return to Previous Speed Flag

Precondition

 

None

Postcondition

 

RETURN TO PREVIOUS SPEED FLAG = TRUE

2.4 Reset Return to Previous Speed Flag

Precondition

 

None

Postcondition

 

RETURN TO PREVIOUS SPEED FLAG = FALSE

2.5 Reset Increase Speed Flag

Precondition

 

None

Postcondition

 

INCREASE SPEED FLAG = FALSE

2.6 Set Increase Speed Flag

Precondition

 

None

Postcondition

 

INCREASE SPEED FLAG = TRUE

2.7 Reset Maintain Constant Speed

Precondition

 

None

Postcondition

 

MAINTAIN CONSTANT SPEED FLAG = FALSE

2.8 Set Maintain Constant Speed Flag

Precondition

 

None

Postcondition

 

MAINTAIN CONSTANT SPEED = TRUE

3.1 (Discrete) Increase Speed

Precondition 1

 

THROTTLE POSITION < 80% of max.

and

INCREASE SPEED FLAG set

Postcondition 1

 

Instantaneous rate of increase per second of ROTATION RATE maintained at 2% ± .25% of current value of ROTATION RATE

Precondition 2

 

THROTTLE POSITION at ≥ 80% of max.

and

INCREASE SPEED FLAG set

Postcondition 2

 

Instantaneous rate of increase per second of ROTATION RATE maintained at 0

3.2 (Discrete) Return to Previous Speed

Precondition 1

 

RETURN TO PREVIOUS SPEED FLAG set

and

time since flag set ≤ 0.5 sec.

Postcondition 1

 

Match THROTTLE CONTROL to THROTTLE POSITION

Precondition 2

 

RETURN TO PREVIOUS SPEED FLAG set

and

time since flag set > 0.5 sec.

Postcondition 2

 

Maintain rate of increase per second of ROTATION RATE at 0.1* (ROTATION RATE SETPOINT - ROTATION RATE)

3.3 (Discrete) Maintain Constant Speed

Precondition 1

 

MAINTAIN CONSTANT SPEED FLAG set

and

ROTATION RATE within 1% of ROTATION RATE SETPOINT

and

time since flag set ≤ 0.5 sec.

Postcondition 1

 

Match THROTTLE CONTROL to THROTTLE POSITION

Precondition 2

 

MAINTAIN CONSTANT SPEED FLAG set

and

ROTATION RATE within 1% of ROTATION RATE SETPOINT

and

time since flag set > 0.5 sec.

Postcondition 2

 

Maintain ROTATION RATE within 1% of ROTATION RATE SETPOINT

4.1 (Discrete) Report Current Speed

Precondition 1

 

REPORT CURRENT SPEED FLAG is set

Postcondition 1

 

AUTO SPEED = ROTATION RATE/(SPEED CONVERSION FACTOR * 3600)

4.2 (Discrete) Accumulate Rotations

Precondition 1

 

ACCUMULATE ROTATIONS FLAG is SET

Postcondition 1

 

ACCUMULATED ROTATIONS = ACCUMULATED ROTATIONS + ROTATION RATE * ΔT

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.190.160.221