Bolier control application. PWM output with a PIC16F876 to control valve.

Thread Starter

Mitchy190

Joined Apr 23, 2012
33
Hello everyone, bellow shows a question with regards to micro-controllers which I am currently interested in, but stuck on, and need some (a lot) of help!


A boiler has an analogue inlet and outlet temperature sensor and the output controls
a valve in the gas supply to determine the heat input. This valve must be activated
within 1ms from a change in demand. Pulse width modulation with a fundamental
period of 10ms is used to perform the activation and the temperature difference
between the two sensors is used to represent the on period of the valve.

I need to use the PIC16F8761 data sheet to study the subsystems that will be required and
develop a procedure to determine if the time response would be adequate for the application.

data sheet found at "http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf"

It can be assumed that:
i) 8-bit resolution is adequate for the analogue inputs
ii) A 20MHz crystal is used for the PIC

Basically I want to use the assembler language to create the appropriate code needed to perform the control of the valve within the time specifications shown above, and what I understand from the above so far is that:

duty cycle = outlet sensor - inlet sensor

and that the PIC I am using has a PWM module in which I have no clue on how to set it up. I would much appropriate some help in how to go about this question, and where to start first!

Many thanks Mitch! :)
 

John P

Joined Oct 14, 2008
2,026
The first thing I noticed was that the time periods mentioned were wildly out of agreement.

This valve must be activated within 1ms from a change in demand. Pulse width modulation with a fundamental period of 10ms is used to perform the activation and the temperature difference between the two sensors is used to represent the on period of the valve.

You can't activate anything within 1msec using a 10msec frequency. Not even close. In fact there aren't many mechanical things that can respond within 1msec at all. I think you need another look at the timing.

Second, this is a servo system. In general you have to operate servos with due consideration of timing and momentum questions, or you'll get into hideous overshoot and oscillation situations. Can you see this system operating as part of a PID (proportional, integral, derivative) design?

Coming back a few seconds later, I'm imagining a delay from valve actuation that goes:
1 Electrical time cosntant
2 Mechanical time constant
3 Gas flow increases (but not instantaneously)
4 Flame increases in size
5 Thermal time constant as wall of boiler heats up
6 Thermal time constant as liquid vaporizes
7 Fluid time constant as hot fluid travels toward thermal sensor
8 Thermal time constant as sensor warms up

And then, the electronics gets to work on it. And you want a millisecond response time?
 
Last edited:

tomflaherty

Joined Apr 18, 2012
4
Hello everyone, bellow shows a question with regards to micro-controllers which I am currently interested in, but stuck on, and need some (a lot) of help!


A boiler has an analogue inlet and outlet temperature sensor and the output controls
a valve in the gas supply to determine the heat input. This valve must be activated
within 1ms from a change in demand. Pulse width modulation with a fundamental
period of 10ms is used to perform the activation and the temperature difference
between the two sensors is used to represent the on period of the valve.

I need to use the PIC16F8761 data sheet to study the subsystems that will be required and
develop a procedure to determine if the time response would be adequate for the application.

data sheet found at "http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf"

It can be assumed that:
i) 8-bit resolution is adequate for the analogue inputs
ii) A 20MHz crystal is used for the PIC

Basically I want to use the assembler language to create the appropriate code needed to perform the control of the valve within the time specifications shown above, and what I understand from the above so far is that:

duty cycle = outlet sensor - inlet sensor

and that the PIC I am using has a PWM module in which I have no clue on how to set it up. I would much appropriate some help in how to go about this question, and where to start first!

Many thanks Mitch! :)
Did you ever come to an answer for this?
 
Top