|
Post by turboron on Dec 18, 2017 16:19:15 GMT -5
All, this is my first thread on this site after following it for a few years. I have built and tested a DIY turbine based on Mike Early's (may he rest in peace) SJ-10 design. The recent thread by the University of Kansas team has inspired me to attempt a Full Authority Digital Control (FADEC). I plan to flowchart and pseuocode my work and post it here along with other hardware information. To address the falling oil pressure issue that our DIY turbines have I installed a second 12 volt Shuflo pump. For reasons I can not explain at present, this has been a limited success as the pressure is still low when the second pump is turned on. These pumps do not draw a lot of current. Anyway, from a control standpoint, I plan to keep both pumps on a pressure regulator. However, I plan to control the second pump using the University of Kansas approach which is pulse width modulation (PWM) to control speed to maintain pressure.
I tried to upload my Power Point flow charts without success. Any Ideas?
Thanks, Ron
|
|
CH3NO2
Senior Member
Joined: March 2017
Posts: 455
|
Post by CH3NO2 on Dec 19, 2017 5:55:30 GMT -5
Hi Turboron,
Try converting the Power Point page(s) to JPG images so you can upload them here.
Tony
|
|
|
Post by jetjeff on Dec 19, 2017 7:20:05 GMT -5
You can also try hitting the reply button, not quick reply. Once on the "Create Post", click on the BBCode tab, then upload your picture using postimage.
Hope this helps, as I had problems uploading pictures too.
Regards
Jeff
|
|
|
Post by turboron on Dec 19, 2017 7:42:22 GMT -5
Thanks, CH3N02 and jetjeff, I used both of your suggestions with success. The flow charts links are below: Thanks again, Turboron
|
|
CH3NO2
Senior Member
Joined: March 2017
Posts: 455
|
Post by CH3NO2 on Dec 19, 2017 8:24:41 GMT -5
404 error on the images. Page not found....
|
|
|
Post by turboron on Dec 19, 2017 20:42:44 GMT -5
I selected thumbnail to try to eliminate the 404 error. Thanks, Turboron
|
|
CH3NO2
Senior Member
Joined: March 2017
Posts: 455
|
Post by CH3NO2 on Dec 19, 2017 21:45:52 GMT -5
The thumbnail posts but the link doesnt work.
|
|
|
Post by madrocketscientist on Dec 20, 2017 0:50:49 GMT -5
The images worked fine for me before they were changed!
|
|
|
Post by turboron on Dec 21, 2017 2:46:28 GMT -5
|
|
|
Post by turboron on Dec 21, 2017 2:47:53 GMT -5
All, okay - the flowcharts can now be seen.
Thanks, Ron
|
|
|
Post by turboron on Dec 22, 2017 13:33:28 GMT -5
All, my knowledge of electrical switches and other hardware is very limited so I will post my choices and ask for you comments. 1) Ignition Switch Cole Hersee M-712-BP ignition switch (4 position). Sold by TreatYourBoatRight $29.14 through Amazon 2) Emergency Stop 2.a) Uxcell DC 24 V 1 Amp light SPDT NO NC latching emergency stop mushroom pushbutton switch. Sold by Uxcell $9.79 through Amazon This looked small to me and it had small (.2 inch) slip on terminals so I also bought the following: 2.b) Uxcell AC 600 V 10 A Red mushroom emergency stop pushbutton switch 22 mm NO NC. Sold by Uxcell $7.04 through Amazon. This switch has screw terminals. 3. Latching pushbutton Ulincos latching pushbutton switch ON/OFF silver stainless steel shell with red LED ring suitable for 16 mm (5/8") mounting hole (Red). Sold by Ulincos direct $8.59 through Amazon 4. Relays I bought these solid state relays on Amazon last year for approximately $10.00. Feel free to suggest other choices as this is all new to me. Thanks, Ron
|
|
|
Post by turboron on Dec 30, 2017 10:54:14 GMT -5
All, the pseudo code of the oil pump part of the On/Oil Pump/Run FADEC Control is posted below. Please advise any questions or comments.
Thanks, Ron
December 30, 2017 /******************************************************************************************************************* Turboron Off_Oil Pump_Run Control Pseudo Code During digital control development we need a control that can be switch from Manual to Automatic control mode. Before power is established to the FADEC a control mode (Manual, Off or Auto) will be selected using Single Pole Double Throw (SPDT) switches on the gage board.
The microturbine primary oil pump is controlled by a spring operated relief valve. Currently as the oil temperature during operation increases the oil pressure starts to fall from the 50 psig set pressure. A second pump was added to maintain the pressure. However, it does not increase the pressure all the time when it is turned on. This is perhaps due to excessive amperage draw from the battery. To address this problem I will control the second pump using the pulse width modulation (PWM) method developed by the University of Kansas students for their kart. I will retain their nomenclature for convenience. This paper will set forth the pseudocode use to regulate the microturbine oil pressure by using a second oil pump controlled by an Arduino Uno (ATMEGA328p).
To start the microturbine after Auto is selected the Emergency Stop Button is armed and the power to Oil Pump #1 is turned on by the keyed ignition switch being set to the On #1 (Accessory) position. This action also powers up the Oil Pump #1 and #2 Arduino code. Once oil pressure is observed on the gage and the Oil Pump #1 LED is lit the microturbine is ready to proceed to the automatic start and run sequence. The keyed ignition switch is turned to the On #2 position to enable the control system. A latching pushbutton labeled Start is pressed to start the sequence start by powering up the main FADEC Arduino and the Tachometer Arduino. The starter solenoid is also engaged by this action. Upon the microturbine achieving idle the Oil Pump #2 Arduino will sense and modulate the oil pressure by PWM of the Oil Pump #2. When the microturbine is running the ignition key is turned back to the keyed ignition switch On #1 position to initiate the Stop sequence. Oil pressure is maintained by the Oil Pump Arduino until Compressor Discharge Pressure (CDP) is zero. Once the microturbine has stopped the keyed ignition switch will be turned to Off position to shutdown Oil Pump #1.
The first part of the code defines values that are constants. There are three different ways to define a value that is a constant. They are 1) use a variable, 2) use a constant or 3) use a define statement. The use of a define statement. Although there are some good arguments for using a constant statement here we will use the define statement to follow the KU code. Pin numbers will not be assigned until the pins are connected to the Arduino Uno. The code below is italicized to separation from the comments. Extensive comments are provided to help first time Arduino coders. *******************************************************************************************************************/
#define ledpin //goes to LED #define pwmpin // goes to PWM controller #define pressurein // goes to pressure sensor #define oilcheck // goes oil pressure within range check
/****************************************************** We need a flag to alert us to whether the oil pressure is okay. A Boolean data type is frequently used for things like checking the whether a switch is pressed or not. You can use HIGH and LOW as equivalents to true and false where it makes more sense. *************************************************/ boolean oilok = LOW; // indicates that oil pressure is okay or not int pressure =0; // sets initial oil pressure variable integer to zero
/***************************************************** The byte datatype can take a valve from 0 to 255. Pulse Width Modulation, or PWM, is a technique for getting analog results with digital means. Digital control is used to create a square wave, a signal switched between on and off. This on-off pattern can simulate voltages in between full on (5 Volts) and off (0 Volts) by changing the portion of the time the signal spends on versus the time that the signal spends off. The duration of "on time" is called the pulse width. To get varying analog values, you change, or modulate, that pulse width. The Arduino's PWM frequency is approximately 500Hz. A call to analogWrite() is on a scale of 0 - 255, such that analogWrite(255) requests a 100% duty cycle (always on), and analogWrite(127) is a 50% duty cycle (on half the time) for example. Therefore, the duty cycle set below at 150 means that when the analogWrite() is made later in the code Oil Pump #2 is on 150/255 or 58.8% of the time. ****************************************************/ byte psi = 0; // initializes byte variable as zero int pumpower = 150; //duty cycle supplied to oil pump when the analogWrite() is made int upperbound = 52; // set oil pressure upperbound constant int lowerbound = 48; // set oil pressure lowerbound constant int maxpressure = 60; // set oil pressure maxpressure constant int minpressure = 40; // set oil pressure minpressure constant void setup() // Arduino required input { // start setup statements Serial.begin(9600); // open serial port } // end setup statements void loop() // start program /* the next statements are tricky since an analogRead is called to fetch the pressure sensor voltage value. The pressure sensor normally has an output voltage between 0.5 volts and 4.5 volts. The Arduino analogRead statement converts the voltage to a number between 0 (zero) and 1023. For the 150 psi sensor I ordered a 50 psi oil pressure voltage will read as 1023/3 =341. Using a straight line formula with a zero intercept to plot the sensor voltage versus the analogRead value we find the slope of the line which converts the any analogRead value to psi. For this sensor the formula is PSI = (Arduino analogRead)/6.82 = 341/6.82 = 50psi. Therefore my code similar to the KU code will be: pressure = (analogRead(pressurein)/6.28); // read pressure from port psi = pressure; Whereas the KU code is” pressure = (analogRead(pressurein)/4); // read pressure from port psi = (pressure-25)/2; The difference is the first line of code is probably due to a different pressure sensor range. Since there is no explanation comment for the second line of code I have messaged Austin to explain this statement. Now I will proceed to finish the code. *****************************************************/ pressure = (analogRead(pressurein)/6.28); // read pressure from port psi = pressure; Serial.write(psi);//display pressure value if((psi > maxpressure) || (psi < minpressure)) { // start LOW action oilok = LOW; //indicate that oil pressure is below the acceptable range (different the KU statement) digitalWrite(oilcheck, LOW); } // end LOW action else { // start HIGH action oilok = HIGH; // indicate the oil pressure is exceed acceptable range ( different the KU statement) digitalWrite(oilcheck, HIGH); } // end HIGH action If (psi > upperbound) { // start high pressure corrective action pumppower--; //decrease pump power } // end high pressure corrective action else if ( psi <lowerbound) { // start low pressure corrective action pumppower++; // increase pump power } // end low pressure corrective action digitalWrite(ledpin, oilok); digitalWrite(oilcheck, oilok); analogWrite(pwmpin, pumppower); // operate oil pump at new duty cycle delay(100); // allow oil pressure to adjust to new pump power } end program
|
|
|
Post by turboron on Jan 1, 2018 10:00:27 GMT -5
To test the Oil Pump Arduino code I need a test setup. I plan to use a throwaway propane cylinder with a 1 inch diameter by 20 threads per inch fitting. The are readily available here in the US at hardware and camping stores. I first need to by an adapter. 5. (see previous post for numbering system Mr. Heater F273754 1/4" male pipe thread x 1" female thread. Sold y The BT Group through Amazon. $45.33 for a pack of six. The are available individually. I also need a pressure sensor. 6. Eyourlife Universal 150 psi pressure transducer sender solenoid for oil fuel gas air water D4. Sold by eyourgifts through Amazon. $17.98
|
|
|
Post by turboron on Jan 1, 2018 10:07:47 GMT -5
Post continued from earlier: I may want to swap out the sensor for one with a lower range later to improve accuracy. Of Course, I need some fittings and valves. 7. Nigo brass pipe fitting, forged brass tee, 1/4" x 1/4" x 1/4" npt female pipe. Sold by Nigo industrial co., LTD through Amazon. Pack of three (3) $11.65 8. Smith-Cooper International 8140 series brass mini ball valve, inline, lever handle, 1/4" npt female , non-portable water use only. Sold by Amazon.com Services inc. $9.51 Watch this space.
|
|
marvnero
Member
Joined: February 2017
Posts: 33
|
Post by marvnero on Jan 4, 2018 6:32:14 GMT -5
Hi turboron,
your project is very interesting to me. I started experimenting with arduinos just a few weeks ago and still have no clue about the abilities of them. To see whats possible if someone knows what he's doing is quite inspiring. Keep up the good work!
Cheers,
Marvin
|
|