April 30, 200719 yr I've nearly finished the pressurization system for a Boeing 307, but the last little detail has me stumped. It's probably something obvious I'm missing, but I can't see it.Displaying cabin altitude is simple enough; if the pressurization system is on, the cabin altimeter and the cabin vsi show 60% of the real values. Otherwise, they show real values. All this works properly.The problem is the cabin vsi. In level flight, if the pressurization is turned off or fails, the cabin vsi should show a climb. If pressurization is turned on again, it should show a descent. To get that response, I'm using L:altcabon and L:altcaboff to temporarily stow the 60% of indicated altitude value whenever the pressurization is switched on or off. If the altitude and the L:var differ, the code pushes 4930 or -4930 into L:cabinROC (the value driving the cabin vsi. The L:altcabxx value increases each time the code is read and eventually the L:var and altitude match, so the vsi reverts to displaying either vertical speed or 60% of vertical speed, as appropriate.For some reason, the code below works perfectly when the pressurization is turned OFF but not when it is turned on again. (NOTE: The code values re confusing. "0" is ON and "1" is OFF, so the system defaults to ON for users who don't want to operate it manually.)I am monitoring L:altcabon and L:altcaboff values with test gauges. They are being set properly and are changing correctly.(L:cabpress, bool) 0 == (A:Indicated Altitude, feet) (L:altcaboff,feet) > && if{ -4930 (>L:cabinROC,enum) (A:Indicated Altitude,feet) 0.6 * (>L:altcabon,feet) (L:altcaboff,feet) 4.6 + (>L:altcaboff,feet) } els{ (A:Vertical speed,feet per minute) 0.6 * (>L:cabinROC,enum) }(L:cabpress, bool) 1 == (A:Indicated Altitude, feet) (L:altcabon,feet) > && if{ 4930 (>L:cabinROC,enum) (A:Indicated Altitude,feet) 0.6 * (>L:altcaboff,feet) (L:altcabon,feet) 4.6 + (>L:altcabon,feet) } els{ (A:Vertical speed,feet per minute) (>L:cabinROC,enum) } Any ideas, anybody?Thanks, Glenn
April 30, 200719 yr Hi,Absolutely not familiar with the 307, but may be this can help:When pressurization starts again, the cabin descends slowly to (A:indicated altitude,feet) 0.6 * and in that period the vsi must show a negative value.Start value is:(L:pressurization,bool) ! if{ (A:Indicated Altitude,feet) (>L:cabin altitude,feet) }Then a slow decrease with:(L:cabin altitude feet) x - (A:Indicated Altitude,feet) 0.6 * max (>L:cabin altitude,feet) And as long as (L:cabin altitude,feet) (A:Indicated Altitude,feet) 0.6 * > if{ -y (>L:cabin vsi,ft/min) } els{ 0 (>L:cabin vsi,ft/min) } Depending of your update and the power of the press. system of the 307 you can calculate x and yMostly cabin vsi (y) is less then 500 ft/min (pass. comfort) regulated by the outflow valve(s) Jan"Beatus ille qui procul negotiis..."..." Jan "Beatus ille qui procul negotiis..."
May 1, 200719 yr Author Thanks, Jan...That's pretty much what I'm doing, although you've used a slightly different way to vary the L:var. I'll have a try with your method. There must be something amiss with using my way for both climbs AND descents in cabin altitude. You're quite right about the vsi rate. I'm using a high value for the cabin altitude climb to simulate a rapid decompression, so I just reversed it for testing. I should, and will, use a more normal value for re-pressurization.Fwiw, the Boeing 307 pressurization technology was ground-breaking development and it flowed on into later Boeing aircraft, including the 707, 727, etc. The only major difference was that the 1930s technology did not include an automatic controller, so the flight engineer had to manually tweak the outlet valve to control the cabin altitude. He would have been a busy boy on climbs and descents, me thinks.Cheers,Glenn
Create an account or sign in to comment