Advertisement
Guest User

reactor model

a guest
Jun 26th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 93.41 KB | None | 0 0
  1. unit CHILDWIN;
  2.  
  3. interface
  4.  
  5. uses Winapi.Windows, System.Classes, Vcl.Graphics, Vcl.Forms, Vcl.Controls,
  6.   Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.Grids, ComObj, Math, SysUtils, Dialogs,
  7.   Vcl.OleServer, Variants, ExcelXP;
  8.  
  9. type
  10.   a = array [1..1000] of extended;
  11.   aa = array [1..100, 1..100] of extended; // 10.03.2019
  12.   TMDIChild = class(TForm)
  13.     Memo1: TMemo;
  14.     PageControl1: TPageControl;
  15.     Panel1: TPanel;
  16.     TabSheet1: TTabSheet;
  17.     TabSheet2: TTabSheet;
  18.     TabSheet3: TTabSheet;
  19.     PageControl2: TPageControl;
  20.     TabSheet4: TTabSheet;
  21.     TabSheet5: TTabSheet;
  22.     PageControl3: TPageControl;
  23.     TabSheet6: TTabSheet;
  24.     TabSheet7: TTabSheet;
  25.     Panel2: TPanel;
  26.     StringGrid1: TStringGrid;
  27.     Label1: TLabel;
  28.     Panel3: TPanel;
  29.     Label2: TLabel;
  30.     StringGrid2: TStringGrid;
  31.     StringGrid3: TStringGrid;
  32.     StringGrid4: TStringGrid;
  33.     StringGrid5: TStringGrid;
  34.     Panel4: TPanel;
  35.     Label3: TLabel;
  36.     StringGrid6: TStringGrid;
  37.     StringGrid7: TStringGrid;
  38.     Panel5: TPanel;
  39.     StringGrid8: TStringGrid;
  40.     Label4: TLabel;
  41.     StringGrid9: TStringGrid;
  42.     Panel6: TPanel;
  43.     Label5: TLabel;
  44.     PageControl4: TPageControl;
  45.     TabSheet8: TTabSheet;
  46.     TabSheet9: TTabSheet;
  47.     Panel7: TPanel;
  48.     Label6: TLabel;
  49.     StringGrid10: TStringGrid;
  50.     Button1: TButton;
  51.     Label7: TLabel;
  52.     Label8: TLabel;
  53.     Panel8: TPanel;
  54.     Panel9: TPanel;
  55.     Label9: TLabel;
  56.     StringGrid11: TStringGrid;
  57.     CheckBox1: TCheckBox;
  58.     Panel10: TPanel;
  59.     StringGrid12: TStringGrid;
  60.     Panel11: TPanel;
  61.     Button2: TButton;
  62.     Panel12: TPanel;
  63.     Edit1: TEdit;
  64.     Edit2: TEdit;
  65.     Label10: TLabel;
  66.     Label11: TLabel;
  67.     Edit3: TEdit;
  68.     StringGrid13: TStringGrid;
  69.     Panel13: TPanel;
  70.  
  71.     function getON (c, o:a):extended;
  72.     function mix (density1, volflow1, comp1, density2, volflow2, comp2:extended): extended;
  73.     function iC4_Ratio(c: a): extended;
  74.     function d(density, c: a):extended;
  75.     procedure mol(masdoli, density, Mr: a; var mol_l: a);
  76.     procedure mas(mol_l, Mr: a; var mas_percent: a);
  77.     procedure Kinetic(t:extended; var C, f: a);
  78.     procedure RK (var C: a);
  79.     procedure FormCreate(Sender: TObject);
  80.     procedure Button1Click(Sender: TObject);
  81.     procedure Wilson(xf:a; var Ki: a);
  82.     procedure getMol(Fmas: extended; xmas: a; var xmol: a; var Fmol: extended);
  83.     procedure Rashford_Rice (xf, Ki: a; var e: extended; var xw, xp: a); // 10.03.2019
  84.     procedure getF(xw, xp: a; var Fw, Fp: a); // Проедура для определения коэффициентов сжимаемости для жидкости и газа // 10.03.2019
  85.     procedure podborKi(Fp, Fw: a; var Ki, xw, xp:a); // Подбор коэффициентов распределения // 10.03.2019
  86.  
  87.  
  88.   private
  89.     { Private declarations }
  90.   public
  91.     { Public declarations }
  92.   end;
  93. const
  94.   v = 43.525; // объем контактора из регламента, м3
  95.   h = 1e-1; // шаг по времени контакта
  96.   NProp = 40;
  97.   NKonst = 82;
  98.   NBBF = 22;
  99.   NIzobutHlad = 19;
  100.   NIzobutCirc =  18;
  101.   NTehPar = 13;
  102.   NSerKis = 8;
  103.   NSosAlk = 40;
  104.   NSyrC4 = 18;
  105.  
  106.   //начало---------------------------------Долганов-----------19,02,2019
  107.   //свойства компонентов
  108. FProperConst: array[1..NProp, 1..12] of string =
  109. (('Компонент',     'Молярная масса, г/моль',     'Плотность, кг/м3',     'A',    'B',    'C',    'D',    'ОЧ ИМ',    'ОЧ ММ',    'Pкритич.,  бар',  'Ткритич., К',  'ω'),
  110. ('Бутен-1',    '56,1077003479004',     '593,789001464844',     '-0,715',   '0,08436',  '-0,00004754',  '0,00000001066',    '94,2963814413153',     '76,9383346106406',     '40,2260009765625',     '419,450006103516',     '0,187000006437302'),
  111. ('Бутен-2',    '56,1077003479004',     '625,953002929688',     '0,105',    '0,07054',  '-0,00002431',  '-0,000000000147',  '97,4894864213387',     '95,1420451525046',     '41,5406005859375',     '431,952508544922',     '0,210565000772476'),
  112. ('Изобутен',    '56,1077003479004',     '592,793029785156',     '3,834',    '0,06698',  '-0,00002607',  '0,000000002173',   '97,9884090744673',     '83,6767247007228',     '40,02330078125',   '417,748010253906',     '0,189980000257492'),
  113. ('Н(+)',   '1,008',    '70,811',   '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0'),
  114. ('Изобутан',    '58,1240005493164',     '561,966003417969',     '-0,332',   '0,09189',  '-0,00004409',  '0,000000006915',   '101,780221238245',     '98,1592347450787',     '36,476201171875',  '407,946008300781',     '0,184790000319481'),
  115. ('iC4H9(+)',    '57,1160005493164',     '561,966003417969',     '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0'),
  116. ('nC4H10',  '58,1240005493164',     '583,223022460938',     '2,266',    '0,07913',  '-0,00002647',  '-0,000000000674',  '93,3983206656837',     '90,6162607636434',     '37,966201171875',  '425,049005126953',     '0,20100000500679'),
  117. ('TMC5(+)',     '113,224002258301',     '694,955017089844',     '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0'),
  118. ('224TMC5',     '114,232002258301',     '694,955017089844',     '-2,201',   '0,1877',   '-0,0001051',   '0,00000002316',    '104,274834503888',     '103,590176011712',     '25,6757006835938',     '543,810021972656',     '0,310000002384186'),
  119. ('233TMC5',     '114,232002258301',     '729,041015625',    '-2,201',   '0,1877',   '-0,0001051',   '0,00000002316',    '111,858458831444',     '101,679289269749',     '28,198701171875',  '573,409020996094',     '0,28999000787735'),
  120. ('234TMC5',     '114,232002258301',     '721,9580078125',   '-2,201',   '0,1877',   '-0,0001051',   '0,00000002316',    '105,771602463274',     '105,601635740095',     '27,296201171875',  '566,258020019531',     '0,319990009069443'),
  121. ('ДMC6(+)',    '113,224002258301',     '696,671020507813',     '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0'),
  122. ('25ДMC6',     '114,232002258301',     '696,671020507813',     '-2,201',   '0,1877',   '-0,0001051',   '0,00000002316',    '55,5799835585319',     '55,8180074626216',     '24,8651000976563',     '549,909020996094',     '0,345990002155304'),
  123. ('24ДMC6',     '114,232002258301',     '703,263000488281',     '-2,201',   '0,1877',   '-0,0001051',   '0,00000002316',    '69,7493869073856',     '65,573587145278',  '25,563701171875',  '553,37001953125',  '0,340990006923676'),
  124. ('23ДMC6',     '114,232002258301',     '715,013000488281',     '-2,201',   '0,1877',   '-0,0001051',   '0,00000002316',    '77,2332267043154',     '72,9154151538751',     '26,283701171875',  '563,339013671875',     '0,340000003576279'),
  125. ('C3H6',    '42,0806007385254',     '520,955017089844',     '0,886',    '0,05602',  '-0,00002771',  '0,000000005266',   '105,472248871397',     '100,572986419138',     '46,2041015625',    '364,85',   '0,148000001907349'),
  126. ('24ДMC5',     '100,205001831055',     '675,994018554688',     '-11,966',  '0,2139',   '-0,0001519',   '0,00000004146',    '83,6194366643621',     '83,5761517143037',     '27,3678002929688',     '519,639001464844',     '0,307000011205673'),
  127. ('223TMC4',     '100,205001831055',     '693,25',   '-5,48',    '0,1796',   '-0,0001056',   '0,000000024',  '111,858458831444',     '101,679289269749',     '29,536201171875',  '531,019006347656',     '0,259990006685257'),
  128. ('2MC6',    '100,205001831055',     '681,539001464844',     '-9,408',   '0,2064',   '-0,0001502',   '0,00000004386',    '44,3043315978243',     '40,6314865133318',     '27,336201171875',  '530,219018554688',     '0,340000003576279'),
  129. ('23ДMC5',     '100,205001831055',     '698,046020507813',     '-11,966',  '0,2139',   '-0,0001519',   '0,00000004146',    '90,9037074000405',     '89,0070929809372',     '29,0802001953125',     '537,198022460938',     '0,305000007152557'),
  130. ('3MC6',    '100,205001831055',     '690,200012207031',     '-1,683',   '0,1633',   '-0,00008919',  '0,00000001871',    '53,8836465378945',     '51,2922230737604',     '28,137900390625',  '535,1',    '0,326990008354187'),
  131. ('I7',  '100,205001831055',     '701,168029785156',     '-9,408',   '0,2064',   '-0,0001502',   '0,00000004386',    '69,1506797236312',     '65,3724411724397',     '28,9080004882813',     '540,490014648438',     '0,314000010490417'),
  132. ('I8',  '114,232002258301',     '716,465026855469',     '-2,201',   '0,1877',   '-0,0001051',   '0,00000002316',    '99,7845306257305',     '93,5328773697984',     '24,843701171875',  '559,488000488281',     '0,38400000333786'),
  133. ('C5H10',   '70,1350009765625',     '638,723022460938',     '-0,032',   '0,1034',   '-0,00005534',  '0,00000001118',    '93,4981051963095',     '78,0446374612511',     '35,2869995117188',     '464,549005126953',     '0,232960000634193'),
  134. ('I9',  '128,259002685547',     '730,927001953125',     '-2,201',   '0,1877',   '-0,0001051',   '0,00000002316',    '79,8276245005844',     '70,4010904933966',     '22,898701171875',  '586,6',    '0,416680008172989'),
  135. ('C3H8',    '44,0970001220703',     '506,678009033203',     '-1,009',   '0,07315',  '-0,00003789',  '0,000000007678',   '105,472248871397',     '100,572986419138',     '42,5666015625',    '369,748010253906',     '0,152400001883507'),
  136. ('iC5H12',  '72,1510009765625',     '623,442016601563',     '-2,275',   '0,121',    '-0,00006519',  '0,00000001367',    '92,7996134819294',     '91,2196986821582',     '33,3359008789063',     '460,248010253906',     '0,222240000963211'),
  137. ('23ДMC4',     '86,1779022216797',     '665,168029785156',     '-3,489',   '0,1469',   '-0,00008063',  '0,00000001629',    '102,578497483251',     '96,3489209895342',     '31,268701171875',  '499,830010986328',     '0,246950000524521'),
  138. ('22ДMC4',     '86,1779022216797',     '652,565002441406',     '-3,973',   '0,1503',   '-0,00008314',  '0,00000001636',    '93,1987516044323',     '92,3260015327687',     '31',   '488,85',   '0,231940001249313'),
  139. ('2MC5',    '86,1779022216797',     '656,507019042969',     '-2,524',   '0,1477',   '-0,00008533',  '0,00000001931',    '73,3416300099119',     '73,8205720316473',     '30,1036010742188',     '497,347009277344',     '0,279100000858307'),
  140. ('3MC5',    '86,1779022216797',     '667,684020996094',     '0,57',     '0,1359',   '-0,00006854',  '0,00000001202',    '74,3394753161692',     '74,7257289094196',     '31,2384008789063',     '504,299005126953',     '0,275000005960464'),
  141. ('iC12H25(+)',  '169,331004516602',     '751,14501953125',  '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0'),
  142. ('iC12H26',     '170,339004516602',     '751,14501953125',  '-14,932',  '0,2362',   '-0,0001384',   '0,00000003084',    '49,8922653128652',     '40,2291945676552',     '18,2992004394531',     '658,149011230469',     '0,561990022659302'),
  143. ('I10',     '142,285003662109',     '751,544006347656',     '-3,928',   '0,1671',   '-0,00009841',  '0,00000002228',    '59,8707183754383',     '50,286493209569',  '23,096201171875',  '619,889001464844',     '0,409990012645721'),
  144. ('I11',     '156,313003540039',     '742,846008300781',     '-7,473',   '0,1788',   '-0,0001099',   '0,00000002582',    '49,8922653128652',     '40,2291945676552',     '19,6493005371094',     '638,149011230469',     '0,535000026226044'),
  145. ('C2H6',    '30,0699005126953',     '355,683013916016',     '1,292',    '0,04254',  '-0,00001657',  '0,000000002081',   '106,869232300157',     '104,595905875904',     '48,8385009765625',     '305,278009033203',     '0,0986000001430511'),
  146. ('HSO4',    '97,0720018310547',     '1840',     '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0'),
  147. ('H2SO4',   '98,0800018310547',     '1840',     '',     '',     '',     '',     '0',    '0',    '0',    '0',    '0'),
  148. ('Polymer',     '504,969303131104',     '1025',     '',     '',     '',     '',     '0',    '0',    '0',    '0',    '0')
  149. );
  150.  
  151. //константы скорости
  152. FKonstantConst: array[1..NKonst, 1..6] of string =(('№',  'Реагенты',     '',     'Продукты',     'Предэкспоненциальный множитель',  'Ea, кДж/моль'),
  153. ('1',   '1-C4H8',   '--->',     '2-C4H8',   '0',    '40'),
  154. ('2',   '2-C4H8',   '--->',     '1-C4H8',   '0',    '40'),
  155. ('3',   '1-C4H8',   '--->',     'i-C4H8',   '0',    '40'),
  156. ('4',   'i-C4H8',   '--->',     '1-C4H8',   '0',    '40'),
  157. ('5',   '2-C4H8',   '--->',     'i-C4H8',   '0',    '40'),
  158. ('6',   'i-C4H8',   '--->',     '2-C4H8',   '0',    '40'),
  159. ('7',   '1-C4H8 + H(+) + i-C4H10',  '--->',     'i-C4H9(+) + n-C4H10',  '973,643079538067',     '42'),
  160. ('8',   'i-C4H9(+) + n-C4H10',  '--->',     '1-C4H8 + H(+) + i-C4H10',  '0',    '58'),
  161. ('9',   'i-C4H8 + H(+)',    '--->',     'i-C4H9(+) ',   '973,643079538067',     '42'),
  162. ('10',  'i-C4H9(+) ',   '--->',     'i-C4H8 + H(+)',    '0',    '58'),
  163. ('11',  '2-C4H8 + H(+) + i-C4H10',  '--->',     'i-C4H9(+) + n-C4H10',  '973,643079538067',     '42'),
  164. ('12',  'i-C4H9(+) + n-C4H10',  '--->',     '2-C4H8 + H(+) + i-C4H10',  '0',    '58'),
  165. ('13',  'i-C4H9(+) + 2-С4Н8',     '--->',     'TMC5(+)',  '729,915013772956',     '40'),
  166. ('14',  'i-C4H9(+) + i-С4Н8',     '--->',     'TMC5(+)',  '405,508340984976',     '40'),
  167. ('15',  'TMC5(+) + i-C4H10',    '--->',     '2,2,4-TMC5 + i-C4H9(+)',   '3008,55711577263',     '42'),
  168. ('16',  'TMC5(+) + i-C4H10',    '--->',     '2,3,3-TMC5 + i-C4H9(+)',   '6520,37045376731',     '45'),
  169. ('17',  'TMC5(+) + i-C4H10',    '--->',     '2,3,4-TMC5 + i-C4H9(+)',   '12959,4336851955',     '47'),
  170. ('18',  'i-C4H9(+) + 1-С4Н8',     '--->',     'ДМС6(+)',   '54707,9448858251',     '47'),
  171. ('19',  'ДМС6(+) + i-C4H10',     '--->',     '2,5ДМС6 + i-C4H9(+)',   '104,852634538551',     '48'),
  172. ('20',  'ДМС6(+) + i-C4H10',     '--->',     '2,4ДМС6 + i-C4H9(+)',   '135,741642994039',     '49'),
  173. ('21',  'ДМС6(+) + i-C4H10',     '--->',     '2,3ДМС6 + i-C4H9(+)',   '177,976404624525',     '50'),
  174. ('22',  'i-C4H10 + C3H6',   '--->',     '2,4-ДМС5',  '5332730,92744861',     '59'),
  175. ('23',  'i-C4H10 + C3H6',   '--->',     '2,2,3-ТМС4',    '1666478,41482769',     '59'),
  176. ('24',  'i-C4H10 + C3H6',   '--->',     '2-МС6',  '1166534,89037938',     '59'),
  177. ('25',  'i-C4H10 + C3H6',   '--->',     '2,3-ДМС5',  '8332392,07413846',     '59'),
  178. ('26',  'i-C4H10 + C3H6',   '--->',     '3-МС6',  '2166421,939276',   '59'),
  179. ('27',  'i-C4H10 + C3H6',   '--->',     'I7',   '0',    '59'),
  180. ('28',  'i-C4H10 + i-C4H8',     '--->',     'I8',   '1666,47841482769',     '59'),
  181. ('29',  'i-C4H10 + 1-C4H8',     '--->',     'I8',   '1666,47841482769',     '59'),
  182. ('30',  'i-C4H10 + 2-C4H8',     '--->',     'I8',   '1666,47841482769',     '59'),
  183. ('31',  'i-C4H10 + C5H10',  '--->',     'I9',   '133318273,186215',     '59'),
  184. ('32',  '2 i-C4H10 + C3H6',     '--->',     '2,2,4-TMC5 + C3H8',    '0',    '59'),
  185. ('33',  '2 i-C4H10 + C3H6',     '--->',     '2,3,3-TMC5 + C3H8',    '0',    '59'),
  186. ('34',  '2 i-C4H10 + C3H6',     '--->',     '2,3,4-TMC5 + C3H8',    '0',    '59'),
  187. ('35',  '2 i-C4H10 + C3H6',     '--->',     '2,5ДМС6 + C3H8',    '0',    '59'),
  188. ('36',  '2 i-C4H10 + C3H6',     '--->',     '2,4ДМС6 + C3H8',    '0',    '59'),
  189. ('37',  '2 i-C4H10 + C3H6',     '--->',     '2,3ДМС6 + C3H8',    '0',    '59'),
  190. ('38',  ' i-C4H10 + 1-C4H8',    '--->',     'i-C5H12 + C3H6',   '1666,47841482769',     '59'),
  191. ('39',  ' i-C4H10 + 2-C4H8',    '--->',     'i-C5H12 + C3H6',   '16664,7841482769',     '59'),
  192. ('40',  ' i-C4H10 + i-C4H8',    '--->',     'i-C5H12 + C3H6',   '14998,3057334492',     '59'),
  193. ('41',  '2 i-C4H8 + C3H6',  '--->',     'i-C5H12 + 2,3-ДМС4',    '88323355,9858676',     '59'),
  194. ('42',  '2 i-C4H8 + C3H6',  '--->',     'i-C5H12 + 2,2-ДМС4',    '0',    '59'),
  195. ('43',  '2 i-C4H8 + C3H6',  '--->',     'i-C5H12 + 2-МС5',    '23330697,8075877',     '59'),
  196. ('44',  '2 i-C4H8 + C3H6',  '--->',     'i-C5H12 + 3-МС5',    '11665348,9037938',     '59'),
  197. ('45',  '2 i-C4H8 + C4H8',  '--->',     'i-C5H12 + 2,4-ДМС5',    '0',    '59'),
  198. ('46',  '2 i-C4H8 + C4H8',  '--->',     'i-C5H12 + 2,2,3-ТМС4',  '0',    '59'),
  199. ('47',  '2 i-C4H8 + C4H8',  '--->',     'i-C5H12 + 2-МС6',    '0',    '59'),
  200. ('48',  '2 i-C4H8 + C4H8',  '--->',     'i-C5H12 + 2,3-ДМС5',    '0',    '59'),
  201. ('49',  '2 i-C4H8 + C4H8',  '--->',     'i-C5H12 + 3-МС6',    '0',    '59'),
  202. ('50',  'TMC5(+) + 2-C4H8',     '--->',     'i-C12H25(+)',  '183,312625631046',     '59'),
  203. ('51',  'ДМС6(+) + 2-C4H8',  '--->',     'i-C12H25(+)',  '1166534,89037938',     '59'),
  204. ('52',  'i-C12H25(+) + i-C4H10',    '--->',     'i-C12H26 + i-C4H9(+)',     '8332,39207413846',     '59'),
  205. ('53',  '2,3-ДМС4 + 2-С4Н8',   '--->',     'I10',  '1583154,49408631',     '59'),
  206. ('54',  '2,2-ДМС4 + 2-С4Н8',   '--->',     'I10',  '1583154,49408631',     '59'),
  207. ('55',  '2-МС5 + 2-С4Н8',   '--->',     'I10',  '916563,12815523',  '59'),
  208. ('56',  '3-МС5 + 2-С4Н8',   '--->',     'I10',  '916563,12815523',  '59'),
  209. ('57',  '2,4-ДМС5 + 2-С4Н8',   '--->',     'I11',  '86656,8775710399',     '59'),
  210. ('58',  '2,2,3-ТМС4 + 2-С4Н8',     '--->',     'I11',  '131651,794771388',     '59'),
  211. ('59',  '2-МС6 + 2-С4Н8',   '--->',     'I11',  '149983,057334492',     '59'),
  212. ('60',  '2,3-ДМС5 + 2-С4Н8',   '--->',     'I11',  '12498588,1112077',     '59'),
  213. ('61',  '3-МС6 + 2-С4Н8',   '--->',     'I11',  '83323,9207413846',     '59'),
  214. ('62',  '2,2,4-ТМС5',    '--->',     'i-C4H10 + i-C4H8',     '0',    '59'),
  215. ('63',  '2,3,4-ТМС5',    '--->',     'i-C5H12 + C3H8',   '0',    '59'),
  216. ('64',  '2,3,3-ТМС5',    '--->',     '2,3-ДМС4 + С2Н6',     '0',    '59'),
  217. ('65',  '2,5-ДМС6',  '--->',     'С3Н6 + i-C5H12',     '0',    '59'),
  218. ('66',  '2,4-ДМС6',  '--->',     'С3Н6 + i-C5H12',     '0',    '59'),
  219. ('67',  '2,3-ДМС6',  '--->',     'С3Н6 + i-C5H12',     '0',    '59'),
  220. ('68',  'i-C12H26',     '--->',     'I9 + C3H6',    '14165066526035,4',     '59'),
  221. ('69',  'i-C12H26',     '--->',     'I8 + 1-C4H8',  '0',    '59'),
  222. ('70',  'i-C12H26',     '--->',     'I8 + 2-C4H8',  '0',    '59'),
  223. ('71',  'i-C12H26',     '--->',     '2,4-ДМС5 + С5Н10',    '16664,7841482769',     '59'),
  224. ('72',  'i-C12H26',     '--->',     '2,2,3-ТМС4 + С5Н10',  '1333182,73186215',     '59'),
  225. ('73',  'i-C12H26',     '--->',     '2-МС6 + С5Н10',    '116653489,037938',     '59'),
  226. ('74',  'i-C12H26',     '--->',     '2,3-ДМС5 + С5Н10',    '14998305,7334492',     '59'),
  227. ('75',  'i-C12H26',     '--->',     '3-МС6 + С5Н10',    '149983057,334492',     '59'),
  228. ('76',  'i-C4H9(+) + HSO4(-)',  '--->',     'i-C4H8 + H2SO4',   '0',    '59'),
  229. ('77',  'H2SO4',    '--->',     'H(+) + HSO4(-)',   '628,347348124414',     '41'),
  230. ('78',  'H(+) + HSO4(-)',   '--->',     'H2SO4',    '628,347348124414',     '41'),
  231. ('79',  '1-C4H8',   '--->',     'Polymer',  '0',    '59'),
  232. ('80',  '2-C4H8',   '--->',     'Polymer',  '0',    '59'),
  233. ('81',  'i-C4H8',   '--->',     'Polymer',  '0',    '59'));
  234.  
  235.  
  236. //бинарные коэффициенты
  237. FBinKoeff: array [1..NProp] of array [1..NProp] of string = (('',   'Бутен-1',     'Бутен-2',     'Изобутен',     'Н(+)',    'Изобутан',     'iC4H9(+)',     'nC4H10',   'TMC5(+)',  '224TMC5',  '233TMC5',  '234TMC5',  'ДMC6(+)',     '25ДMC6',  '24ДMC6',  '23ДMC6',  'C3H6',     '24ДMC5',  '223TMC4',  '2MC6',     '23ДMC5',  '3MC6',     'I7',   'I8',   'C5H10',    'I9',   'C3H8',     'iC5H12',   '23ДMC4',  '22ДMC4',  '2MC5',     '3MC5',     'iC12H25(+)',   'iC12H26',  'I10',  'I11',  'C2H6',     'HSO4',     'H2SO4',    'Polymer' ),
  238. ('Бутен-1',    '0',    '0,00298308907076716',  '-0,00112131319474429',     '0',    '-0,000337440549628809',    '0',    '-0,00430000014603138',     '0',    '0,0365192480385304',   '0,0317998826503754',   '0,0387585014104843',   '0',    '0,0446275770664215',   '0,0435423217713833',   '0,0433285012841225',   '-0,00270000007003546',     '0,03542809933424',     '0,023536704480648',    '0,0434411354362965',   '0,0347208045423031',   '0,040261447429657',    '0,0371174439787865',   '0,0529845505952835',   '0,013658132404089',    '0,0587591454386711',   '0,0100345015525818',   '0,0109295006841421',   '0,0191836766898632',   '0,0152783198282123',   '0,0277606695890427',   '0,0266961883753538',   '0',    '0,0756538510322571',   '0,0576223321259022',   '0,075098067522049',    '0,0272161979228258',   '0',    '0',    '0' ),
  239. ('Бутен-2',    '0,00298308907076716',  '0',    '0,00205013458617032',  '0',    '0,00460988329723477',  '0',    '-0,00048090485506691',     '0',    '0,0330476835370064',   '0,0283327735960484',   '0,0352108255028725',   '0',    '0,0410890206694603',   '0,0399718396365643',   '0,0397410467267036',   '0,0164812970906496',   '0,0316948145627975',   '0,0198485106229782',   '0,0396095700562',  '0,0308573246002197',   '0,0363849550485611',   '0,0333491861820221',   '0,049323808401823',    '0,00946305133402348',  '0,055208545178175',    '0,0143577177077532',   '0,00681023951619864',  '0,0152998045086861',   '0,0114448303356767',   '0,02382942289114',     '0,0227773413062096',   '0',    '0,07203259319067',     '0,0540599152445793',   '0,0714457333087921',   '0,0311121642589569',   '0',    '0',    '0' ),
  240. ('Изобутен',    '-0,00112131319474429',     '0,00205013458617032',  '0',    '0',    '-0,00100000004749745',     '0',    '0,00194285437464714',  '0',    '0,0358590818941593',   '0,0311391949653625',   '0,0380851402878761',   '0',    '0,043957743793726',    '0,0428662672638893',   '0,0426492691040039',   '0,0131005560979247',   '0,0347200408577919',   '0,0228341314941645',   '0,0427171960473061',   '0,0339889079332352',   '0,0395284742116928',   '0,0364034399390221',   '0,0522951930761337',   '0,0128626869991422',   '0,0580930337309837',   '0,0108413072302938',   '0,0101473033428192',   '0,0184450428932905',   '0,0145480716601014',   '0,0270150490105152',   '0,0259526092559099',   '0',    '0,0749927386641502',   '0,0569534040987492',   '0,0744267180562019',   '0,0279396902769804',   '0',    '0',    '0' ),
  241. ('Н(+)',   '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0' ),
  242. ('Изобутан',    '-0,000337440549628809',    '0,00460988329723477',  '-0,00100000004749745',     '0',    '0',    '0',    '0,00044334409176372',  '0',    '0,0100278835743666',   '0,0115735111758113',   '0,00759202102199197',  '0',    '0,00597491953521967',  '0,00558876013383269',  '0,00526887690648437',  '-0,0355000011622906',  '0,00434362562373281',  '0,00892096664756536',  '-0,000325787579640746',    '0,00156126206275076',  '-0,000391123961890116',    '0,0030326887499541',   '0,000560226326342672',     '0,0134564517065883',   '0,00109055114444345',  '0,00831524841487408',  '0,00252065830864012',  '0,00564188556745648',  '0,00794588401913643',  '0,00204798043705523',  '0,00264576124027371',  '0',    '-0,00764581561088562',     '0,00121817109175026',  '-0,00753172766417265',     '0,0161370262503624',   '0',    '0',    '0' ),
  243. ('iC4H9(+)',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0' ),
  244. ('nC4H10',  '-0,00430000014603138',     '-0,00048090485506691',     '0,00194285437464714',  '0',    '0,00044334409176372',  '0',    '0',    '0',    '0,0144354198127985',   '0,0159396100789309',   '0,0119395013898611',   '0',    '0,0103972349315882',   '0,00996221695095301',  '0,0096207233145833',   '0,01676981523633',     '0,00845768861472607',  '0,0129896020516753',   '0,00375111075118184',  '0,0055288877338171',   '0,00360715575516224',  '0,00712323654443026',  '0,00494398921728134',  '0,00907906051725149',  '0,00570504320785403',  '0,00459793256595731',  '0,00608017528429627',  '0,00948229338973761',  '0,0118138240650296',   '0,00589366815984249',  '0,00649740733206272',  '0',    '-0,00248833722434938',     '0,00579669512808323',  '-0,00256689079105854',     '0,0122999995946884',   '0',    '0',    '0' ),
  245. ('TMC5(+)',     '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0' ),
  246. ('224TMC5',     '0,0365192480385304',   '0,0330476835370064',   '0,0358590818941593',   '0',    '0,0100278835743666',   '0',    '0,0144354198127985',   '0',    '0',    '-0,000167586898896843',    '0,000689112988766283',     '0',    '-0,00225589098408818',     '-0,00234367023222148',     '-0,00251590250991285',     '0,0445642620325089',   '0,00541766593232751',  '0,000948693719692528',     '0,00144321937114',     '0,00772964814677835',  '0,00489791296422482',  '0,00547651993110776',  '-0,00690267886966467',     '0,0240257140249014',   '-0,00755858654156327',     '0,0223968140780926',   '0,00724720861762762',  '0,00365750677883625',  '0,00138967658858746',  '0,00719620613381267',  '0,00661416538059711',  '0',    '-0,017275795340538',   '-0,00727541605010629',     '-0,0165055636316538',  '0,0370704717934132',   '0',    '0',    '0' ),
  247. ('233TMC5',     '0,0317998826503754',   '0,0283327735960484',   '0,0311391949653625',   '0',    '0,0115735111758113',   '0',    '0,0159396100789309',   '0',    '-0,000167586898896843',    '0',    '-0,00204892875626683',     '0',    '-0,00391448754817247',     '-0,00400438997894526',     '-0,00417849561199546',     '0,0409839041531086',   '0,00238648219965398',  '0,00256414222531021',  '-0,00236121658235788',     '0,00514850160107017',  '0,00100330682471395',  '0,00162333506159484',  '-0,0085946973413229',  '0,0185861941426992',   '-0,00925386976450682',     '0,0238717682659626',   '0,00880555063486099',  '0,00524662062525749',  '0,00299793691374362',  '0,00875664874911308',  '0,00817943550646305',  '0',    '-0,0190867222845554',  '-0,00896843429654837',     '-0,0182938352227211',  '0,038520660251379',    '0',    '0',    '0' ),
  248. ('234TMC5',     '0,0387585014104843',   '0,0352108255028725',   '0,0380851402878761',   '0',    '0,00759202102199197',  '0',    '0,0119395013898611',   '0',    '0,000689112988766283',     '-0,00204892875626683',     '0',    '0',    '-0,000362994964234531',    '-0,000466853816760704',    '-0,000646081636659801',    '0,0464208386838436',   '0,00344835268333554',  '-0,00104215554893017',     '0,00221111299470067',  '0,00569950137287378',  '0,00564878573641181',  '0,00459380587562919',  '-0,00501856533810496',     '0,0264886282384396',   '-0,00559689803048968',     '0,0195445343852043',   '0,00499364081770182',  '0,00156379281543195',  '-0,00069128698669374',     '0,00510717369616032',  '0,00452773412689567',  '0',    '-0,0151182636618614',  '-0,00532603450119495',     '-0,0144152510911226',  '0,0336499325931072',   '0',    '0',    '0' ),
  249. ('ДMC6(+)',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0' ),
  250. ('25ДMC6',     '0,0446275770664215',   '0,0410890206694603',   '0,043957743793726',    '0',    '0,00597491953521967',  '0',    '0,0103972349315882',   '0',    '-0,00225589098408818',     '-0,00391448754817247',     '-0,000362994964234531',    '0',    '0',    '0,00157114781904966',  '0,00175637856591493',  '0,0506556928157806',   '0,00167512497864664',  '-0,0028568129055202',  '0,00592559715732932',  '0,00397455552592874',  '0,00586237339302897',  '0,00283622997812927',  '-0,00314024090766907',     '0,0333947688341141',   '-0,00374015863053501',     '0,0181203298270702',   '0,00331951584666967',  '-0,000189859623787925',    '-0,00247639999724925',     '0,00339568546041846',  '0,00280844117514789',  '0',    '-0,0131687996909022',  '-0,00346826063469052',     '-0,0124742574989796',  '0,0323811173439026',   '0',    '0',    '0' ),
  251. ('24ДMC6',     '0,0435423217713833',   '0,0399718396365643',   '0,0428662672638893',   '0',    '0,00558876013383269',  '0',    '0,00996221695095301',  '0',    '-0,00234367023222148',     '-0,00400438997894526',     '-0,000466853816760704',    '0',    '0,00157114781904966',  '0',    '0,00164733163546771',  '0,0499977543950081',   '0,00151971401646733',  '-0,00300585851073265',     '0,0057488321326673',   '0,00377928419038653',  '0,0056679118424654',   '0,00267209578305483',  '-0,00305519578978419',     '0,0320310890674591',   '-0,00361760752275586',     '0,0175094809383154',   '0,00302212266251445',  '-0,000399086100514978',    '-0,00266980356536806',     '0,00317347748205066',  '0,00258994637988508',  '0',    '-0,0130001725628972',  '-0,0033508709166199',  '-0,0123291537165642',  '0,0315013825893402',   '0',    '0',    '0' ),
  252. ('23ДMC6',     '0,0433285012841225',   '0,0397410467267036',   '0,0426492691040039',   '0',    '0,00526887690648437',  '0',    '0,0096207233145833',   '0',    '-0,00251590250991285',     '-0,00417849561199546',     '-0,000646081636659801',    '0',    '0,00175637856591493',  '0,00164733163546771',  '0',    '0,0499026589095593',   '0,00131605088245124',  '-0,00320897391065955',     '0,0055368859320879',   '0,0035570755135268',   '0,00544718978926539',  '0,0024647384416312',   '-0,00287761446088552',     '0,0317379273474216',   '-0,00342069217003882',     '0,0170793645083904',   '0,00274717109277844',  '-0,000631054688710719',    '-0,00289529282599688',     '0,00293736415915191',  '0,00235532317310572',  '0',    '-0,0127717964351177',  '-0,00315674510784447',     '-0,0121143301948905',  '0,0309339202940464',   '0',    '0',    '0' ),
  253. ('C3H6',    '-0,00270000007003546',     '0,0164812970906496',   '0,0131005560979247',   '0',    '-0,0355000011622906',  '0',    '0,01676981523633',     '0',    '0,0445642620325089',   '0,0409839041531086',   '0,0464208386838436',   '0',    '0,0506556928157806',   '0,0499977543950081',   '0,0499026589095593',   '0',    '0,044317115098238',    '0,0346646793186665',   '0,0508328378200531',   '0,0440406911075115',   '0,0484995655715466',   '0,0457292683422565',   '0,0569610707461834',   '0,0265192203223705',   '0,0597170293331146',   '0,00749990018084645',  '0,0240870695561171',   '0,0311613660305738',   '0,0278129521757364',   '0,0384404435753822',   '0,0375333279371262',   '0',    '0,0613845139741898',   '0,0591827072203159',   '0,0648484230041504',   '0,000600000028498471',     '0',    '0',    '0' ),
  254. ('24ДMC5',     '0,03542809933424',     '0,0316948145627975',   '0,0347200408577919',   '0',    '0,00434362562373281',  '0',    '0,00845768861472607',  '0',    '0,00541766593232751',  '0,00238648219965398',  '0,00344835268333554',  '0',    '0,00167512497864664',  '0,00151971401646733',  '0,00131605088245124',  '0,044317115098238',    '0',    '-0,00301987631246448',     '-0,00266028637997806',     '0,00351665518246591',  '5,36315492354333E-05',     '0,000711528351530433',     '-0,00307633448392153',     '0,0223359353840351',   '-0,00343429297208786',     '0,0150968106463552',   '0,00223504076711833',  '-0,000727371138054878',    '-0,00291287223808467',     '0,00277251238003373',  '0,00220905034802854',  '0',    '-0,0126248029991984',  '-0,00319474190473557',     '-0,0120711224153638',  '0,0277041811496019',   '0',    '0',    '0' ),
  255. ('223TMC4',     '0,023536704480648',    '0,0198485106229782',   '0,0228341314941645',   '0',    '0,00892096664756536',  '0',    '0,0129896020516753',   '0',    '-0,00104215554893017',     '-0,0028568129055202',  '-0,00300585851073265',     '0',    '-0,0028568129055202',  '-0,00300585851073265',     '-0,00320897391065955',     '0,0346646793186665',   '-0,00301987631246448',     '0',    '-0,0072008054703474',  '-0,00406351825222373',     '-0,00691138952970505',     '-0,00413504103198648',     '-0,00768049340695143',     '0,00903783459216356',  '-0,00810087192803621',     '0,0197495948523283',   '0,00674651516601443',  '0,00376170594245195',  '0,00160450313705951',  '0,00202436675317585',  '0,0025803956668824',   '0',    '-0,0177009496837854',  '-0,00784732308238745',     '-0,017046669498086',   '0,0325890779495239',   '0',    '0',    '0' ),
  256. ('2MC6',    '0,0434411354362965',   '0,0396095700562',  '0,0427171960473061',   '0',    '-0,000325787579640746',    '0',    '0,00375111075118184',  '0',    '0,00221111299470067',  '0,00592559715732932',  '0,0057488321326673',   '0',    '0,00592559715732932',  '0,0057488321326673',   '0,0055368859320879',   '0,0508328378200531',   '-0,00266028637997806',     '-0,0072008054703474',  '0',    '-0,000664266350213438',    '0,00125584262423217',  '-0,00155697169248015',     '0,00119667768012732',  '0,0312729999423027',   '0,000956057920120656',     '0,00997510645538569',  '-0,00221999804489315',     '-0,00501206004992127',     '-0,00719896657392383',     '-0,00148061686195433',     '-0,00204519368708134',     '0',    '-0,0078243687748909',  '0,00117514375597239',  '-0,00739337783306837',     '0,0219008475542068',   '0',    '0',    '0' ),
  257. ('23ДMC5',     '0,0347208045423031',   '0,0308573246002197',   '0,0339889079332352',   '0',    '0,00156126206275076',  '0',    '0,0055288877338171',   '0',    '0,00569950137287378',  '0,00397455552592874',  '0,00377928419038653',  '0',    '0,00397455552592874',  '0,00377928419038653',  '0,0035570755135268',   '0,0440406911075115',   '0,00351665518246591',  '-0,00406351825222373',     '-0,000664266350213438',    '0',    '-0,000452305161161348',    '0,00238855765201151',  '-0,000839502492453903',    '0,0213238708674908',   '-0,00102225446607918',     '0,0115097537636757',   '-0,000212761035072617',    '-0,00286272843368351',     '-0,00500707607716322',     '0,000617568904999644',     '6,33984309388325E-05',     '0',    '-0,00990636460483074',     '-0,000808299926575273',    '-0,00947941280901432',     '0,023088663816452',    '0',    '0',    '0' ),
  258. ('3MC6',    '0,040261447429657',    '0,0363849550485611',   '0,0395284742116928',   '0',    '-0,000391123961890116',    '0',    '0,00360715575516224',  '0',    '0,00564878573641181',  '0,00586237339302897',  '0,0056679118424654',   '0',    '0,00586237339302897',  '0,0056679118424654',   '0,00544718978926539',  '0,0484995655715466',   '5,36315492354333E-05',     '-0,00691138952970505',     '0,00125584262423217',  '-0,000452305161161348',    '0',    '0,000812531681731343',     '0,00108724308665842',  '0,0275463256984949',   '0,000916699296794832',     '0,00957269594073296',  '-0,00215526949614286',     '-0,00481443526223302',     '-0,00697471154853702',     '-0,00130749319214374',     '-0,00186575204133987',     '0',    '-0,00780848320573568',     '0,00112663663458079',  '-0,00741575378924608',     '0,0211072862148285',   '0',    '0',    '0' ),
  259. ('I7',  '0,0371174439787865',   '0,0333491861820221',   '0,0364034399390221',   '0',    '0,0030326887499541',   '0',    '0,00712323654443026',  '0',    '0,00459380587562919',  '0,00283622997812927',  '0,00267209578305483',  '0',    '0,00283622997812927',  '0,00267209578305483',  '0,0024647384416312',   '0,0457292683422565',   '0,000711528351530433',     '-0,00413504103198648',     '-0,00155697169248015',     '0,00238855765201151',  '0,000812531681731343',     '0',    '-0,00191652833018452',     '0,0241922289133072',   '-0,00223094969987869',     '0,0136031713336706',   '0,00100574421230704',  '-0,00188686430919915',     '-0,00406830944120884',     '0,00161775178276002',  '0,00105503329541534',  '0',    '-0,0113000059500337',  '-0,00199849344789982',     '-0,0107861813157797',  '0,0259547047317028',   '0',    '0',    '0' ),
  260. ('I8',  '0,0529845505952835',   '0,049323808401823',    '0,0522951930761337',   '0',    '0,000560226326342672',     '0',    '0,00494398921728134',  '0',    '-0,00501856533810496',     '-0,00314024090766907',     '-0,00305519578978419',     '0',    '-0,00314024090766907',     '-0,00305519578978419',     '-0,00287761446088552',     '0,0569610707461834',   '-0,00307633448392153',     '-0,00768049340695143',     '0,00119667768012732',  '-0,000839502492453903',    '0,00108724308665842',  '-0,00191652833018452',     '0',    '0,0430208928883076',   '0,000971067056525499',     '0,0121594816446304',   '-0,00183262676000595',     '-0,0051370351575315',  '-0,00742871034890413',     '-0,00150741811376065',     '-0,00209689629264176',     '0',    '-0,00807475298643112',     '0,00122446194291115',  '-0,00749269407242537',     '0,0255826860666275',   '0',    '0',    '0' ),
  261. ('C5H10',   '0,013658132404089',    '0,00946305133402348',  '0,0128626869991422',   '0',    '0,0134564517065883',   '0',    '0,00907906051725149',  '0',    '0,0264886282384396',   '0,0333947688341141',   '0,0320310890674591',   '0',    '0,0333947688341141',   '0,0320310890674591',   '0,0317379273474216',   '0,0265192203223705',   '0,0223359353840351',   '0,00903783459216356',  '0,0312729999423027',   '0,0213238708674908',   '0,0275463256984949',   '0,0241922289133072',   '0,0430208928883076',   '0',    '0,0507339760661125',   '0,0246301926672459',   '0,00143296632450074',  '0,00409875391051173',  '0,000434659596066922',     '0,0134860007092357',   '0,0123249161988497',   '0',    '0,0772536173462868',   '0,0492127537727356',   '0,0741448402404785',   '0,0391637608408928',   '0',    '0',    '0' ),
  262. ('I9',  '0,0587591454386711',   '0,055208545178175',    '0,0580930337309837',   '0',    '0,00109055114444345',  '0',    '0,00570504320785403',  '0',    '-0,00559689803048968',     '-0,00374015863053501',     '-0,00361760752275586',     '0',    '-0,00374015863053501',     '-0,00361760752275586',     '-0,00342069217003882',     '0,0597170293331146',   '-0,00343429297208786',     '-0,00810087192803621',     '0,000956057920120656',     '-0,00102225446607918',     '0,000916699296794832',     '-0,00223094969987869',     '0,000971067056525499',     '0,0507339760661125',   '0',    '0,0135964704677463',   '-0,0016409280942753',  '-0,00530503829941154',     '-0,00767881516367197',     '-0,00159135775174946',     '-0,00220053340308368',     '0',    '-0,00776507193222642',     '0,00119372189510614',  '-0,00708310445770621',     '0,0280276704579592',   '0',    '0',    '0' ),
  263. ('C3H8',    '0,0100345015525818',   '0,0143577177077532',   '0,0108413072302938',   '0',    '0,00831524841487408',  '0',    '0,00459793256595731',  '0',    '0,0195445343852043',   '0,0181203298270702',   '0,0175094809383154',   '0',    '0,0181203298270702',   '0,0175094809383154',   '0,0170793645083904',   '0,00749990018084645',  '0,0150968106463552',   '0,0197495948523283',   '0,00997510645538569',  '0,0115097537636757',   '0,00957269594073296',  '0,0136031713336706',   '0,0121594816446304',   '0,0246301926672459',   '0,0135964704677463',   '0',    '0,0106336493045092',   '0,0152438739314675',   '0,0177976675331593',   '0,0114809749647975',   '0,0121385026723146',   '0',    '0,00573941087350249',  '0,013603107072413',    '0,00532805966213346',  '0,00650981580838561',  '0',    '0',    '0' ),
  264. ('iC5H12',  '0,0109295006841421',   '0,00681023951619864',  '0,0101473033428192',   '0',    '0,00252065830864012',  '0',    '0,00608017528429627',  '0',    '0,00499364081770182',  '0,00331951584666967',  '0,00302212266251445',  '0',    '0,00331951584666967',  '0,00302212266251445',  '0,00274717109277844',  '0,0240870695561171',   '0,00223504076711833',  '0,00674651516601443',  '-0,00221999804489315',     '-0,000212761035072617',    '-0,00215526949614286',     '0,00100574421230704',  '-0,00183262676000595',     '0,00143296632450074',  '-0,0016409280942753',  '0,0106336493045092',   '0',    '0,00397450895980001',  '0,00616419827565551',  '0,000471877719974145',     '0,00104195217136294',  '0',    '-0,0105195250362158',  '-0,00147113634739071',     '-0,0102435639128089',  '0,0200366210192442',   '0',    '0',    '0' ),
  265. ('23ДMC4',     '0,0191836766898632',   '0,0152998045086861',   '0,0184450428932905',   '0',    '0,00564188556745648',  '0',    '0,00948229338973761',  '0',    '0,00156379281543195',  '-0,000189859623787925',    '-0,000399086100514978',    '0',    '-0,000189859623787925',    '-0,000399086100514978',    '-0,000631054688710719',    '0,0311613660305738',   '-0,000727371138054878',    '0,00376170594245195',  '-0,00501206004992127',     '-0,00286272843368351',     '-0,00481443526223302',     '-0,00188686430919915',     '-0,0051370351575315',  '0,00409875391051173',  '-0,00530503829941154',     '0,0152438739314675',   '0,00397450895980001',  '0',    '-0,000426527840318158',    '-0,00197465973906219',     '-0,00142721075098962',     '0',    '-0,0145696867257357',  '-0,00508663943037391',     '-0,0140783982351422',  '0,0265270993113518',   '0',    '0',    '0' ),
  266. ('22ДMC4',     '0,0152783198282123',   '0,0114448303356767',   '0,0145480716601014',   '0',    '0,00794588401913643',  '0',    '0,0118138240650296',   '0',    '-0,00069128698669374',     '-0,00247639999724925',     '-0,00266980356536806',     '0',    '-0,00247639999724925',     '-0,00266980356536806',     '-0,00289529282599688',     '0,0278129521757364',   '-0,00291287223808467',     '0,00160450313705951',  '-0,00719896657392383',     '-0,00500707607716322',     '-0,00697471154853702',     '-0,00406830944120884',     '-0,00742871034890413',     '0,000434659596066922',     '-0,00767881516367197',     '0,0177976675331593',   '0,00616419827565551',  '-0,000426527840318158',    '0',    '-0,00407735724002123',     '-0,00353029230609536',     '0',    '-0,0171965919435024',  '-0,00744664575904608',     '-0,0166256986558437',  '0,0294412802904844',   '0',    '0',    '0' ),
  267. ('2MC5',    '0,0277606695890427',   '0,02382942289114',     '0,0270150490105152',   '0',    '0,00204798043705523',  '0',    '0,00589366815984249',  '0',    '0,00510717369616032',  '0,00339568546041846',  '0,00317347748205066',  '0',    '0,00339568546041846',  '0,00317347748205066',  '0,00293736415915191',  '0,0384404435753822',   '0,00277251238003373',  '0,00202436675317585',  '-0,00148061686195433',     '0,000617568904999644',     '-0,00130749319214374',     '0,00161775178276002',  '-0,00150741811376065',     '0,0134860007092357',   '-0,00159135775174946',     '0,0114809749647975',   '0,000471877719974145',     '-0,00197465973906219',     '-0,00407735724002123',     '0',    '0,000922293169423938',     '0',    '-0,0104734720662236',  '-0,00138906494248658',     '-0,0100864646956325',  '0,0224655717611313',   '0',    '0',    '0' ),
  268. ('3MC5',    '0,0266961883753538',   '0,0227773413062096',   '0,0259526092559099',   '0',    '0,00264576124027371',  '0',    '0,00649740733206272',  '0',    '0,00452773412689567',  '0,00280844117514789',  '0,00258994637988508',  '0',    '0,00280844117514789',  '0,00258994637988508',  '0,00235532317310572',  '0,0375333279371262',   '0,00220905034802854',  '0,0025803956668824',   '-0,00204519368708134',     '6,33984309388325E-05',     '-0,00186575204133987',     '0,00105503329541534',  '-0,00209689629264176',     '0,0123249161988497',   '-0,00220053340308368',     '0,0121385026723146',   '0,00104195217136294',  '-0,00142721075098962',     '-0,00353029230609536',     '0,000922293169423938',     '0',    '0',    '-0,01114656124264',    '-0,00199488457292318',     '-0,0107398666441441',  '0,0232107322663069',   '0',    '0',    '0' ),
  269. ('iC12H25(+)',  '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0' ),
  270. ('iC12H26',     '0,0756538510322571',   '0,07203259319067',     '0,0749927386641502',   '0',    '-0,00764581561088562',     '0',    '-0,00248833722434938',     '0',    '-0,0151182636618614',  '-0,0131687996909022',  '-0,0130001725628972',  '0',    '-0,0131687996909022',  '-0,0130001725628972',  '-0,0127717964351177',  '0,0613845139741898',   '-0,0126248029991984',  '-0,0177009496837854',  '-0,0078243687748909',  '-0,00990636460483074',     '-0,00780848320573568',     '-0,0113000059500337',  '-0,00807475298643112',     '0,0772536173462868',   '-0,00776507193222642',     '0,00573941087350249',  '-0,0105195250362158',  '-0,0145696867257357',  '-0,0171965919435024',  '-0,0104734720662236',  '-0,01114656124264',    '0',    '0',    '-0,00802091415971518',     '0,000738524075131863',     '0,0063999998383224',   '0',    '0',    '0' ),
  271. ('I10',     '0,0576223321259022',   '0,0540599152445793',   '0,0569534040987492',   '0',    '0,00121817109175026',  '0',    '0,00579669512808323',  '0',    '-0,00532603450119495',     '-0,00346826063469052',     '-0,0033508709166199',  '0',    '-0,00346826063469052',     '-0,0033508709166199',  '-0,00315674510784447',     '0,0591827072203159',   '-0,00319474190473557',     '-0,00784732308238745',     '0,00117514375597239',  '-0,000808299926575273',    '0,00112663663458079',  '-0,00199849344789982',     '0,00122446194291115',  '0,0492127537727356',   '0,00119372189510614',  '0,013603107072413',    '-0,00147113634739071',     '-0,00508663943037391',     '-0,00744664575904608',     '-0,00138906494248658',     '-0,00199488457292318',     '0',    '-0,00802091415971518',     '0',    '-0,00735085178166628',     '0,0279116686433554',   '0',    '0',    '0' ),
  272. ('I11',     '0,075098067522049',    '0,0714457333087921',   '0,0744267180562019',   '0',    '-0,00753172766417265',     '0',    '-0,00256689079105854',     '0',    '-0,0144152510911226',  '-0,0124742574989796',  '-0,0123291537165642',  '0',    '-0,0124742574989796',  '-0,0123291537165642',  '-0,0121143301948905',  '0,0648484230041504',   '-0,0120711224153638',  '-0,017046669498086',   '-0,00739337783306837',     '-0,00947941280901432',     '-0,00741575378924608',     '-0,0107861813157797',  '-0,00749269407242537',     '0,0741448402404785',   '-0,00708310445770621',     '0,00532805966213346',  '-0,0102435639128089',  '-0,0140783982351422',  '-0,0166256986558437',  '-0,0100864646956325',  '-0,0107398666441441',  '0',    '0,000738524075131863',     '-0,00735085178166628',     '0',    '0,0195555612444878',   '0',    '0',    '0' ),
  273. ('C2H6',    '0,0272161979228258',   '0,0311121642589569',   '0,0279396902769804',   '0',    '0,0161370262503624',   '0',    '0,0122999995946884',   '0',    '0,0336499325931072',   '0,0323811173439026',   '0,0315013825893402',   '0',    '0,0323811173439026',   '0,0315013825893402',   '0,0309339202940464',   '0,000600000028498471',     '0,0277041811496019',   '0,0325890779495239',   '0,0219008475542068',   '0,023088663816452',    '0,0211072862148285',   '0,0259547047317028',   '0,0255826860666275',   '0,0391637608408928',   '0,0280276704579592',   '0,00650981580838561',  '0,0200366210192442',   '0,0265270993113518',   '0,0294412802904844',   '0,0224655717611313',   '0,0232107322663069',   '0',    '0,0063999998383224',   '0,0279116686433554',   '0,0195555612444878',   '0',    '0',    '0',    '0' ),
  274. ('HSO4',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0' ),
  275. ('H2SO4',   '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0' ),
  276. ('Polymer',     '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0',    '0' ));
  277.  
  278.  
  279. //исходные данные
  280. FBBFConst: array [1..NBBF, 1..2] of string = (('Параметр',  'Значение'),
  281. ('Плотн. при 20°С, г/см3',     '0,582'),
  282. ('МД метана',   '0'),
  283. ('МД этана',     '0'),
  284. ('МД этилена',     '0'),
  285. ('МД суммы С2',     '0'),
  286. ('МД пропана',     '0,3'),
  287. ('МД пропилена',     '0,03'),
  288. ('МД суммы пропан+пропилена',     '0,33'),
  289. ('МД изо-бутана',    '43,41'),
  290. ('МД н-бутана',    '8,43'),
  291. ('МД бутилена',   '15,75'),
  292. ('МД изо-бутилена',    '5,76'),
  293. ('МД транс-бутилена',    '16,07'),
  294. ('МД цис-бутилена',    '9,92'),
  295. ('МД бутадиена-1,3',     '0,3'),
  296. ('МД суммы бутиленов',  '47,5'),
  297. ('МД изо-пентана',  '0,03'),
  298. ('МД н-пентана',  '0'),
  299. ('МД суммы С6+',    '0'),
  300. ('МД суммы УВ С5 и выше',    '0,03'),
  301. ('МД H2S+RSH',    '0,0002'));
  302.  
  303. FIzobutHladConst: array [1..NIzobutHlad, 1..2] of string = (('Параметр',    'Значение'),
  304. ('МД метана',   '0'),
  305. ('МД этана',     '0'),
  306. ('МД этилена',     '0'),
  307. ('МД суммы С2',     '0'),
  308. ('МД пропана',     '8,4'),
  309. ('МД пропилена',     '0'),
  310. ('МД суммы пропан+пропилена',     '8,4'),
  311. ('МД изо-бутана',    '79,04'),
  312. ('МД н-бутана',    '11,01'),
  313. ('МД бутилена',   '0'),
  314. ('МД изо-бутилена',    '0'),
  315. ('МД транс-бутилена',    '0'),
  316. ('МД цис-бутилена',    '0'),
  317. ('МД суммы бутиленов',  '0'),
  318. ('МД изо-пентана',  '1,55'),
  319. ('МД н-пентана',  '0'),
  320. ('МД суммы С5',     '1,55'),
  321. ('МД суммы С6+',    '0'));
  322.  
  323. FIzobutCircConst: array [1..NIzobutCirc, 1..2] of string = (('Параметр',    'Значение'),
  324. ('МД метана',   '0'),
  325. ('МД этана',     '0'),
  326. ('МД этилена',     '0'),
  327. ('МД суммы С2',     '0'),
  328. ('МД пропана',     '3,08'),
  329. ('МД пропилена',     '0'),
  330. ('МД суммы пропан+пропилена',     '3,08'),
  331. ('МД изо-бутана',    '84,73'),
  332. ('МД н-бутана',    '11,01'),
  333. ('МД изо-бутилена',    '0'),
  334. ('МД бутилена',   '0'),
  335. ('МД транс-бутилена',    '0'),
  336. ('МД цис-бутилена',    '0'),
  337. ('МД суммы бутиленов',  '0'),
  338. ('МД изо-пентана',  '0,31'),
  339. ('МД н-пентана',  '0'),
  340. ('МД суммы С5',     '0,31'));
  341.  
  342. FTehParConst: array [1..NTehPar, 1..2] of string = (('Параметр',    'Значение'),
  343. ('Расход олефинового сырья, м3/ч',  '41,1598014831542'),
  344. ('Расход циркулирующего изобутана, м3/ч',    '120,160858154296'),
  345. ('Расход хладоагента в R-311A, м3/ч',   '25,0332489013671'),
  346. ('Расход хладоагента в R-311B, м3/ч',   '40,9003677368164'),
  347. ('Расход хладоагента в R-311C, м3/ч',   '40,897346496582'),
  348. ('Расход хладоагента в R-311D, м3/ч',   '37,0884399414062'),
  349. ('Температура на входе в R-311A, °С',  '1,64329051971435'),
  350. ('Температура на входе в R-311B, °С',  '1,88445091247558'),
  351. ('Температура на входе в R-311C, °С',  '0,514559030532836'),
  352. ('Температура на входе в R-311D, °С',  '-0,354238390922546'),
  353. ('Давление комбинированного сырья, МПа',    '0,636030673980712'),
  354. ('Сырье С4 насыщенное, т/ч',  '5,073291779'));
  355.  
  356.  
  357. FSerKisConst: array [1..NSerKis, 1..2] of string = (('Параметр',    'Значение'),
  358. ('МД H2SO4 (свежая кислота), %',     '96,1'),
  359. ('Кислота в R-311A, м3/ч',    '84,3854370117187'),
  360. ('Кислота в R-311В, м3/ч',   '84,2852401733398'),
  361. ('Кислота в R-311С, м3/ч',   '91,1081848144531'),
  362. ('Кислота в R-311D, м3/ч',    '91,3201904296875'),
  363. ('Свежая кислота в реакционный контур 1, т/ч',     '5,7554874420166'),
  364. ('Свежая кислота в реакционный контур 2, м3/ч',    '3,59131789207458'));
  365.  
  366.  
  367.  
  368. FSosAlkConst: array [1..NSosAlk, 1..2] of string = (('Компонент',  'Содержание, мас. %'),
  369. ('Бутен-1',    '0'),
  370. ('Бутен-2',    '0'),
  371. ('Изобутен',    '0'),
  372. ('Н(+)',   '0'),
  373. ('Изобутан',    '0'),
  374. ('iC4H9(+)',    '0'),
  375. ('nC4H10',  '4,917'),
  376. ('TMC5(+)',     '0'),
  377. ('224TMC5',     '29,991'),
  378. ('233TMC5',     '16,666'),
  379. ('234TMC5',     '13,922'),
  380. ('ДMC6(+)',    '0'),
  381. ('25ДMC6',     '3,548'),
  382. ('24ДMC6',     '2,915'),
  383. ('23ДMC6',     '2,563'),
  384. ('C3H6',    '0'),
  385. ('24ДMC5',     '2,71'),
  386. ('223TMC4',     '0,17'),
  387. ('2MC6',    '0,162'),
  388. ('23ДMC5',     '1,411'),
  389. ('3MC6',    '0,116'),
  390. ('I7',  '0'),
  391. ('I8',  '2,324'),
  392. ('C5H10',   '0'),
  393. ('I9',  '3,587'),
  394. ('C3H8',    '0'),
  395. ('iC5H12',  '5,15'),
  396. ('23ДMC4',     '3,787'),
  397. ('22ДMC4',     '0'),
  398. ('2MC5',    '0,869'),
  399. ('3MC5',    '0,415'),
  400. ('iC12H25(+)',  '0'),
  401. ('iC12H26',     '0,185'),
  402. ('I10',     '1,132'),
  403. ('I11',     '3,501'),
  404. ('C2H6',    '0'),
  405. ('HSO4',    '0'),
  406. ('H2SO4',   '0'),
  407. ('Polymer',     '0'));
  408.  
  409. FSyrC4Const: array [1..NSyrC4, 1..2] of string = (('Параметр', 'Значение'),
  410. ('МД метана', '0'),
  411. ('МД этана', '0'),
  412. ('МД этилена', '0'),
  413. ('МД суммы С2', '0'),
  414. ('МД пропана', '0'),
  415. ('МД пропилена', '0'),
  416. ('МД суммы пропан+пропилена', '0'),
  417. ('МД изо-бутана', '95'),
  418. ('МД н-бутана', '5'),
  419. ('МД изо-бутилена', '0'),
  420. ('МД бутилена', '0'),
  421. ('МД транс-бутилена', '0'),
  422. ('МД цис-бутилена', '0'),
  423. ('МД суммы бутиленов', '0'),
  424. ('МД изо-пентана', '0'),
  425. ('МД н-пентана', '0'),
  426. ('МД суммы С5', '0'));
  427.  
  428.   //конец---------------------------------Долганов-----------19,02,2019
  429.  
  430. var
  431.   C0, C, Cm, R, k, f: a;
  432.   BBF: a; // массив для бутан-бутиленовой фракции
  433.   RecIsobutane: a; // массив для циркулирующего изобутана
  434.   IHA: a; // массив для изобутана-хладоагента
  435.   TechPar: a; // массив для технологических параметров
  436.   CombFeed: a; // массив для состава комбинированного сырья
  437.   AcidPar: a; // массив с параметрами серной кислоты
  438.   Acid: a; // массив состава кислоты
  439.   Alkylat,AlkylatL,AlkylatG : a; // состав алкилата
  440.   Mr: a; // молярные массы компонентов
  441.   Density: a; // плотность компонентов
  442.   RON: a; // ОЧ ИМ
  443.   MON: a;// ОЧ ММ
  444.   tk: extended; // время контакта
  445.   iC4_Yeild, Alkylate_Yeild, iC4_Rating: extended;
  446.   SyrC4: a; // Сырье С4 наыщенное // 23.02.2019
  447.   xf: a; // Мольные доли в составе потока алкилата // 05.03.2019
  448.   xw: a; // Мольные доли в составе жидкости // 05.03.2019
  449.   xp: a; // Мольные доли в составе пара // 05.03.2019
  450.   Fmol: extended; // Мольный расход потока
  451.   Ki: a; // Коэффициенты распределения // 10.03.2019
  452.   Fw, Fp: a; // Коэффициенты летучести для жидкости и пара // 10.03.2019
  453.   e: extended; // Доля отгона // 10.03.2019
  454.   //Долганов
  455.   FBBFIn: array [1..NBBF, 1..2] of string;
  456.   FIzobutHladIn: array [1..NIzobutHlad, 1..2] of string;
  457.   FIzobutCircIn: array [1..NIzobutCirc, 1..2] of string;
  458.   FTehParIn: array [1..NTehPar, 1..2] of string;
  459.   FSerKisIn: array [1..NSerKis, 1..2] of string;
  460.   FSosAlkIn: array [1..NSosAlk, 1..2] of string;
  461.   FSyrC4In: array [1..NSyrC4, 1..2] of string;
  462.  
  463. implementation
  464.  
  465. {$R *.dfm}
  466.  
  467. function TMDIChild.getON (c, o:a):extended;
  468. var
  469.   i: integer;
  470.   s: extended;
  471. begin
  472.   s:= 0;
  473.   for I := 1 to 1000 do
  474.     s:= s + c[i] * o[i] / 100;
  475.   result:= s;
  476.  
  477. end;
  478.  
  479. function TMDIChild.mix (density1, volflow1, comp1, density2, volflow2, comp2: extended): extended;
  480. begin
  481.   result:= {10 *} (density1 * volflow1 * comp1 + density2 * comp2 * volflow2) / 100;
  482. end;
  483.  
  484. function TMDIChild.iC4_Ratio(c: a): extended;
  485. var
  486.   s: extended;
  487.   i: integer;
  488. begin
  489.   s:= 0;
  490.   for I := 1 to 3 do
  491.     s:=  s + c[i];  // 1-C4=; 2-C4=; iC4=
  492.   s:= s + c[24] + c[16]; // C5=; C3=
  493.   result:= c[5] / s
  494. end;
  495.  
  496. procedure TMDIChild.Wilson(xf:a; var Ki: a); //05.03.2019
  497. const
  498.   h = 1e-5;
  499.   eps = 1e-3;
  500. var
  501.   i: integer;
  502.   Pc, Tc: a; // Киртические давление и температура
  503.   omega: a; // Ацентрический фактор
  504.   e: extended; // Доля отгона
  505.   Ps: a; // Парциальное давление пара
  506.   P, T: extended; // Давление и температура в системе
  507.   sw, sp: extended; // Сумма мольных долей жидкости и пара
  508.   n: integer; // число итераций
  509. begin
  510.   // Инитциализация параметров
  511.  
  512.   with StringGrid4 do
  513.     for I := 1 to RowCount-1 do
  514.       begin
  515.         Pc[i]:= StrToFloat(Cells[ 9, i]);
  516.         Tc[i]:= StrToFloat(Cells[10, i]);
  517.         omega[i]:= StrToFloat(Cells[11, i]);
  518.       end;
  519.   P:= techpar[11] * 10; // Перевод в бары
  520.   T:= techpar[ 7] + 273;
  521.   {T:= techpar[ 7] * 1.8 + 491.67;
  522.   P:= techpar[11] * 1000 * 0.145;
  523.   for I := 1 to StringGrid4.RowCount-1 do
  524.     begin
  525.       Tc[i]:= (Tc[i] - 273) * 1.8 + 494.67;
  526.       Pc[i]:= 0.145 * Pc[i] * 100
  527.     end; }
  528.   // Расчет парциальных давлений и коэффициентов распределения
  529.   for I := 1 to StringGrid4.RowCount-1 do
  530.     begin
  531.       Ps[i]:= Pc[i] * exp(5.372697 * (1 + omega[i]) * (1 - Tc[i] / T));
  532.       Ki[i]:= Ps[i] / P;     // 5 - коэффициент Долганова))
  533.     end;
  534.  
  535.  
  536.  (*
  537.   repeat//Подбор доли отгона
  538.     n:= n + 1;
  539.     sw:= 0;
  540.     sp:= 0;
  541.   // Расчет мольного состава жидкости и пара
  542.     for I := 1 to StringGrid4.RowCount-1 do
  543.       begin
  544.         if K[i] = 0 then
  545.           xw[i]:= 0
  546.         else
  547.           xw[i]:= xf[i] / (1 + e * (K[i] - 1));
  548.         xp[i]:= K[i] * xw[i];
  549.         sw:= sw + xw[i];
  550.         sp:= sp + xp[i];
  551.       end;
  552.     if (n = 2e5) or (e < 0) then
  553.       begin
  554.         ShowMessage('200 000 итераций или е < 0');
  555.         break;
  556.       end;
  557.     e:= e - h;
  558.   until abs(1 - sp) <= eps;
  559.   for I := 1 to StringGrid4.RowCount-1 do
  560.     begin
  561.       xw[i]:= xw[i] / sw;
  562.       xp[i]:= xp[i] / sp;
  563.     end;
  564.   ShowMessage(FloatToStr(e));  *)
  565. end;
  566.  
  567. procedure TMDIChild.Rashford_Rice (xf, Ki: a; var e: extended; var xw, xp: a); // Решение уравнения Рашфорда-Райса 10.03.2019
  568. const
  569.   eps = 1e-6;
  570. var
  571.   a, b: extended;
  572.   I: Integer;
  573. function fn (e: extended): extended;
  574. var
  575.   s: extended;
  576.   i: integer;
  577. begin
  578.   s:= 0;
  579.   for I := 1 to StringGrid4.RowCount-1 do
  580.     if Ki[i] > 0 then
  581.       s:= s + xf[i] * (Ki[i] - 1) / (1 + e * (Ki[i] - 1));
  582.   result:= s;
  583. end;
  584.  
  585. begin
  586.   a:= 0.5;
  587.   b:= 1;
  588.   if fn(a) * fn(b) < 0 then
  589.     begin
  590.       repeat
  591.         e:= (a + b) / 2;
  592.         if fn(a) * fn(e) > 0 then
  593.           a:= e
  594.         else
  595.           b:= e;
  596.       until abs(a - b) <= eps;
  597.       e:= (a + b) / 2
  598.     end; (*e:= 0.8680;*)
  599.   //showmessage(floattostr(e));
  600.   for I := 1 to StringGrid4.RowCount-1 do
  601.     begin
  602.       xw[i]:= xf[i] / (1 + e * (Ki[i] - 1));
  603.       xp[i]:= Ki[i] * xw[i]
  604.     end
  605. end;
  606.  
  607. procedure TMDIChild.getF(xw, xp: a; var Fw, Fp: a); // 10.03.2019
  608. var
  609.   i, j: integer;
  610.   m, alpha, Ap, Bp: a; // Параметры для определения коэффициента сжимаемости
  611.   Ab: array [1..100, 1..100] of extended;
  612.   Av, Bv: extended;
  613.   omega: a; // Ацентрический фактор;
  614.   Tc, Pc: a; // Критические температура (К) и давление (бар)
  615.   Tr, Pr: a; // Приведенные температура и давление
  616.   T, P: extended; // Температура(°С) и давление(МПа) в системе
  617.   //Параметры для решения кубического уравнения
  618.   vA, vB, vC, vD, ppv, qqv, SSv, fiv, vA1, vB1, vC1, x1v, x2v, x3v, FFv, plbsv, y1v, y2v, y3v: extended;
  619.   lA, lB, lC, lD, ppl, qql, SSl, fil, lA1, lB1, lC1, x1l, x2l, x3l, FFl, plbsl, y1l, y2l, y3l: extended;
  620.   zw, zp: extended; // Коэффицииенты сжимаемости для жидкости и пара
  621.   kij: aa; // Коэффициенты бинарного взаимодействия
  622. begin
  623.   //with StringGrid14 do
  624.     for i := 2 to NProp do
  625.       for j := 2 to NProp do
  626.         kij[i, j]:= StrToFloat(FBinKoeff[j, i]);
  627.   with StringGrid4 do
  628.     for I := 1 to RowCount-1 do
  629.       begin
  630.         omega[i]:= StrToFloat(Cells[11, i]);
  631.         Pc[i]:= StrToFloat(Cells[ 9, i]);
  632.         Tc[i]:= StrToFloat(Cells[10, i]);
  633.       end;
  634.   //Перевод температуры в °Рэнкина
  635.   T:= techpar[ 7] * 1.8 + 491.67;
  636.   for I := 1 to StringGrid4.RowCount-1 do
  637.     if Tc[i] <> 0 then
  638.       Tr[i]:= T / ((Tc[i] - 273) * 1.8 + 494.67)
  639.     else
  640.       Tr[i]:= 0;
  641.   //Перевод давления
  642.   P:= techpar[11] * 1000 * 0.145;
  643.   for I := 1 to StringGrid4.RowCount-1 do
  644.     if Pc[i] <> 0 then
  645.       Pr[i]:= P / (0.145 * Pc[i] * 100)
  646.     else
  647.       Pr[i]:= 0;
  648.   // Расчет пара
  649.   for I := 1 to StringGrid4.RowCount-1 do
  650.     begin
  651.       m[i]:= 0.48 + 1.574 * omega[i] - 0.176 * sqr(omega[i]);
  652.       alpha[i]:= sqr(1 + m[i] * (1 - sqrt(Tr[i])));
  653.       if Tr[i] <> 0 then
  654.         Ap[i]:= 0.42747 * alpha[i] * Pr[i] / sqr(Tr[i])
  655.       else
  656.         Ap[i]:= 0;
  657.       for j := 1 to StringGrid4.RowCount-1 do
  658.         Ab[i, j]:= (1 - kij[i, j]) * sqrt(Ap[i] * Ap[j]);
  659.       if Tr[i] <> 0 then
  660.         Bp[i]:= 0.08664 * Pr[i] / Tr[i]
  661.       else
  662.         Bp[i]:= 0;
  663.     end;
  664.   Av:= 0;
  665.   Bv:= 0;
  666.   for I := 1 to StringGrid4.RowCount-1 do
  667.     begin
  668.       for j := 1 to StringGrid4.RowCount-1 do
  669.         Av:= Av + xp[i] * xp[j] * Ab[i, j];
  670.       Bv:= Bv + xp[i] * Bp[i];
  671.     end;
  672.   //Решение кубического уравнения
  673.   vA := 1;
  674.   vB := (-1);
  675.   vC := Av - Bv - sqr(Bv);
  676.   vD := (-Av) * Bv;
  677.   ppv := (3 * vA * vC - vB * vB) / (3 * vA * vA);
  678.   qqv := (2 * vB * vB * vB - 9 * vA * vB * vC + 27 * vA * vA * vD) / (27 * vA * vA * vA);
  679.   SSv := (4 * (3 * vA * vC - vB * vB) * (3 * vA * vC - vB * vB) * (3 * vA * vC - vB * vB) + (2 * vB * vB * vB - 9 * vA * vB * vC + 27 * vA * vA * vD) * (2 * vB * vB * vB - 9 * vA * vB * vC + 27 * vA * vA * vD)) / (2916 * vA * vA * vA * vA * vA * vA);
  680.   if SSv < 0 then
  681.     begin
  682.       if qqv < 0 then
  683.         FFv := Arctan(-2 * Sqrt(-SSv) / qqv);
  684.       if qqv > 0 then
  685.         FFv := Arctan(-2 * Sqrt(-SSv) / qqv) + Pi;
  686.       if qqv = 0 then
  687.         FFv := Pi / 2;
  688.       x1v := 2 * Sqrt(-ppv / 3) * Cos(FFv / 3) - vB / vA / 3;
  689.       x2v := 2 * Sqrt(-ppv / 3) * Cos((FFv + 2 * Pi) / 3) - vB / vA / 3;
  690.       x3v := 2 * Sqrt(-ppv / 3) * Cos((FFv + 4 * Pi) / 3) - vB / vA / 3;
  691.       if qqv = 0 then
  692.         x3v := -vB / vA / 3;
  693.     end;
  694.   if SSv > 0 then
  695.     begin
  696.       if -qqv / 2 + Sqrt(SSv) > 0 then
  697.         y1v := exp(ln(abs(-qqv / 2 + Sqrt(SSv))) / 3);
  698.       if -qqv / 2 + Sqrt(SSv) < 0 then
  699.         y1v := -exp(ln(abs(-qqv / 2 + Sqrt(SSv))) / 3);
  700.       if -qqv / 2 + Sqrt(SSv) = 0 then
  701.         y1v := 0;
  702.       if -qqv / 2 - Sqrt(SSV) > 0 then
  703.         y2v := exp(ln(abs(-qqv / 2 - Sqrt(SSv))) / 3);
  704.       if -qqv / 2 - Sqrt(SSv) < 0 then
  705.         y2v := -exp(ln(abs(-qqv / 2 - Sqrt(SSv))) / 3);
  706.       if -qqv / 2 - Sqrt(SSv) = 0 then
  707.         y2v := 0;
  708.       x1v := y1v + y2v - vB / vA / 3;
  709.       x2v := x1v;
  710.       x3v := x1v;
  711.     end;
  712.   if SSv = 0 then
  713.     begin
  714.       if qqv < 0 then
  715.         y1v := exp(ln(abs(-qqv / 2)) / 3);
  716.       if qqv > 0 then
  717.         y1v := -exp(ln(abs(-qqv / 2)) / 3);
  718.       if qqv = 0 then
  719.         y1v := 0;
  720.       x1v := 2 * y1v - vB / vA / 3;
  721.       x2v := -y1v - vB / vA / 3;
  722.       x3v := -y1v - vB / vA / 3;
  723.     end;
  724.   zp := x1v;
  725.   if x2v > x1v then
  726.     zp := x2v
  727.   else
  728.     if x3v > x1v then
  729.       zp := x3v
  730.     else
  731.       zp := x1v;
  732.   for I := 1 to StringGrid4.RowCount-1 do
  733.      Fp[i]:= exp((zp - 1) * Bp[i] / Bv - ln(zp - Bv) - Av / Bv * (2 * sqrt(Ap[i]) / sqrt(Av) - Bp[i] / Bv) * ln((zp + Bv) / zp));
  734.   // Расчет жидкости
  735.   Av:= 0;
  736.   Bv:= 0;
  737.   for I := 1 to StringGrid4.RowCount-1 do
  738.     begin
  739.       for j := 1 to StringGrid4.RowCount-1 do
  740.         Av:= Av + xw[i] * xw[j] * Ab[i, j];
  741.       Bv:= Bv + xw[i] * Bp[i];
  742.     end;
  743.   //Кубическое уравнение
  744.   lA := 1;
  745.   lB := -1;
  746.   lC := Av - Bv - sqr(Bv);
  747.   lD := -(Av * Bv);
  748.   ppl := (3 * lA * lC - lB * lB) / (3 * lA * lA);
  749.   qql := (2 * lB * lB * lB - 9 * lA * lB * lC + 27 * lA * lA * lD) / (27 * lA * lA * lA);
  750.   SSl := (4 * (3 * lA * lC - lB * lB) * (3 * lA * lC - lB * lB) * (3 * lA * lC - lB * lB) + (2 * lB * lB * lB - 9 * lA * lB * lC + 27 * lA * lA * lD) * (2 * lB * lB * lB - 9 * lA * lB * lC + 27 * lA * lA * lD)) / (2916 * lA * lA * lA * lA * lA * lA);
  751.   if SSl < 0 then
  752.     begin
  753.       if qql < 0 then
  754.         FFl := Arctan(-2 * Sqrt(-SSl) / qql);
  755.       if qql > 0 then
  756.         FFl := Arctan(-2 * Sqrt(-SSl) / qql) + Pi;
  757.       if qql = 0 then
  758.         FFl := Pi / 2;
  759.       x1l := 2 * Sqrt(-ppl / 3) * Cos(FFl / 3) - lB / lA / 3;
  760.       x2l := 2 * Sqrt(-ppl / 3) * Cos((FFl + 2 * Pi) / 3) - lB / lA / 3;
  761.       x3l := 2 * Sqrt(-ppl / 3) * Cos((FFl + 4 * Pi) / 3) - lB / lA / 3;
  762.       if qql = 0 then
  763.         x3l := -lB / lA / 3;
  764.     end;
  765.   if SSl > 0 then
  766.     begin
  767.       if -qql / 2 + Sqrt(SSl) > 0 then
  768.         y1l := exp(ln(abs(-qql / 2 + Sqrt(SSl))) / 3);
  769.       if -qql / 2 + Sqrt(SSl) < 0 then
  770.         y1l := -exp(ln(abs(-qql / 2 + Sqrt(SSl))) / 3);
  771.       if -qql / 2 + Sqrt(SSl) = 0 then
  772.         y1l := 0;
  773.       if -qql / 2 - Sqrt(SSl) > 0 then
  774.         y2l := exp(ln(abs(-qql / 2 - Sqrt(SSl))) / 3);
  775.       if -qql / 2 - Sqrt(SSl) < 0 then
  776.         y2l := -exp(ln(abs(-qql / 2 - Sqrt(SSl))) / 3);
  777.       if -qql / 2 - Sqrt(SSl) = 0 then
  778.         y2l := 0;
  779.       x1l := y1l + y2l - lB / lA / 3;
  780.       x2l := x1l;
  781.       x3l := x1l;
  782.     end;
  783.   if SSl = 0 then
  784.     begin
  785.       if qql < 0 then
  786.         y1l := exp(ln(abs(-qql / 2)) / 3);
  787.       if qql > 0 then
  788.         y1l := -exp(ln(abs(-qql / 2)) / 3);
  789.       if qql = 0 then
  790.         y1l := 0;
  791.       x1l := 2 * y1l - lB / lA / 3;
  792.       x2l := -y1l - lB / lA / 3;
  793.       x3l := -y1l - lB / lA / 3;
  794.     end;
  795.    //Выбор коэф сжим жидкости - самый МЕНЬШИЙ из трех
  796.   zw := x1l;
  797.   if x2l < x1l then
  798.     zw := x2l
  799.   else
  800.     if x3l < x1l then
  801.       zw := x3l
  802.     else
  803.       zw := x1l;
  804.   for i := 1 to StringGrid4.RowCount-1 do
  805.     Fw[i]:= exp((zw - 1) * Bp[i] / Bv - ln(zw - Bv) - Av / Bv * (2 * sqrt(Ap[i]) / sqrt(Av) - Bp[i] / Bv) * ln((zw + Bv) / zw));
  806. end;
  807.  
  808. procedure TMDIChild.podborKi(Fp, Fw: a; var Ki, xw, xp:a);
  809. const
  810.   eps = 1e-5;
  811. var
  812.   i, n: integer;
  813.   Kr: a; // промежуточные значения коэффициентов распределения
  814.   xr, yr: a;
  815.   Sy, Sx: extended;
  816.   delta: a; //для проверки условия выхода из цикла по Ki
  817.   Sdelta: extended;
  818. begin
  819.   Sx:= 0;
  820.   Sy:= 0;
  821.   n:= 0;
  822.   Wilson(xf, Ki);
  823.   repeat
  824.     n:= n + 1;
  825.     Sx:= 0;
  826.     Sy:= 0;
  827.     Sdelta:= 0;
  828.     Rashford_Rice (xf, Ki, e, xw, xp);
  829.     getF(xw, xp, Fw, Fp);
  830.     for I := 1 to StringGrid4.RowCount-1 do
  831.       begin
  832.         Kr[i]:= Fw[i] / Fp[i];
  833.         xr[i]:= xf[i] / (1 + e * (Kr[i] - 1));
  834.         yr[i]:= Kr[i] * xr[i];
  835.         Sx:= Sx + xr[i];
  836.         Sy:= Sy + yr[i];
  837.         if Ki[i] <> 0 then
  838.           delta[i]:= abs(Kr[i] - Ki[i]) / abs(Ki[i]);
  839.         Sdelta:= Sdelta + delta[i];
  840.         Ki[i]:= Kr[i];
  841.       end;
  842.     if n > 200 then
  843.       begin
  844.         //ShowMessage('200 000 итераций !!!');
  845.         break;
  846.       end;
  847.   (*until (abs(Sx - 1) <= eps) and (abs(Sy - 1) <= eps);   *)
  848.   until Sdelta/StringGrid4.RowCount-1 <= eps;
  849.  
  850.   //ShowMessage('e = ' + FloatToStr(e) + '    ' + IntToStr(n));
  851.  
  852.   for i := 1 to StringGrid4.RowCount-1 do
  853.     begin
  854.       xw[i]:= xr[i] / Sx;
  855.       xp[i]:= yr[i] / Sy;
  856.     end;
  857. end;
  858.  
  859. procedure TMDIChild.getMol(Fmas: extended; xmas: a; var xmol: a; var Fmol: extended);
  860. var
  861.   i: integer;
  862.   s: extended;
  863. begin
  864.   s:= 0;
  865.   for I := 1 to StringGrid4.RowCount-1 do
  866.     Fmol:= Fmol + Fmas * xmas[i] * 10 / Mr[i];
  867.   for I := 1 to StringGrid4.RowCount-1 do
  868.     xmol[i]:= Fmas * xmas[i] * 10 / Mr[i] / Fmol;
  869. end;
  870.  
  871.  
  872. function TMDIChild.d(density, c: a):extended;
  873. var
  874.   s: extended;
  875.   i: integer;
  876.   den: a;
  877. begin
  878.   s:= 0;
  879.   for i:= 1 to 1000 do
  880.     begin
  881.       if density[i] <> 0 then
  882.         den[i]:= c[i]/density[i]/100
  883.       else
  884.         den[i]:= 0;
  885.       s:= s + den[i]
  886.     end;
  887.   if s <> 0 then
  888.     result:= 1/s
  889.   else
  890.     result:= 0;
  891. end;
  892.  
  893. procedure TMDIChild.mol(masdoli, density, Mr: a; var mol_l:a);
  894. var
  895.   i: integer;
  896.   s: extended;
  897. begin
  898.   s:= 0;
  899.   for I := 1 to 1000 do
  900.     if Mr[i] <> 0 then
  901.       mol_l[i]:= 10*masdoli[i]*density[i]/Mr[i]    //мас.% ----> моль/л
  902.     else
  903.       mol_l[i]:= 0
  904. end;
  905.  
  906.  
  907.  
  908. procedure TMDIChild.mas(mol_l, Mr: a; var mas_percent: a);
  909. var
  910.   i: integer;
  911.   s: extended;
  912. begin
  913.   s:= 0;
  914.   for I := 1 to 1000 do
  915.     begin
  916.       if density[i] <> 0 then
  917.         mas_percent[i]:= mol_l[i]*Mr[i]/density[i]*1000
  918.       else
  919.         mas_percent[i]:= 0;
  920.       s:= s + mas_percent[i]
  921.     end;
  922.   for I := 1 to 1000 do
  923.     mas_percent[i]:= mas_percent[i]/s*100
  924. end;
  925.  
  926. procedure TMDIChild.Kinetic(t:extended; var C, f: a);
  927. var
  928.   i: integer;
  929. begin
  930.   With StringGrid5 do
  931.     for I := 1 to RowCount-1 do
  932.       k[i]:= StrToFloat(Cells[4, i]) * exp(-StrToFloat(Cells[5, i]) * 1000 / 8.314 / (StrToFloat(StringGrid3.Cells[1, 7]) + 273));
  933.  
  934.   R[ 1]:=   k[ 1] * C[ 1];
  935.   R[ 2]:=   k[ 2] * C[ 2];
  936.   R[ 3]:=   k[ 3] * C[ 1];
  937.   R[ 4]:=   k[ 4] * C[ 3];
  938.   R[ 5]:=   k[ 5] * C[ 2];
  939.   R[ 6]:=   k[ 6] * C[ 3];
  940.   R[ 7]:=   k[ 7] * C[ 1]   *   C[ 4]   *   C[ 5];
  941.   R[ 8]:=   k[ 8] * C[ 6]   *   C[ 7];
  942.   R[ 9]:=   k[ 9] * C[ 3]   *   C[ 4];
  943.   R[10]:=   k[10] * C[ 6];
  944.   R[11]:=   k[11] * C[ 2]   *   C[ 4]   *   C[ 5];
  945.   R[12]:=   k[12] * C[ 6]   *   C[ 7];
  946.   R[13]:=   k[13] * C[ 6]   *   C[ 2];
  947.   R[14]:=   k[14] * C[ 6]   *   C[ 3];
  948.   R[15]:=   k[15] * C[ 8]   *   C[ 5];
  949.   R[16]:=   k[16] * C[ 8]   *   C[ 5];
  950.   R[17]:=   k[17] * C[ 8]   *   C[ 5];
  951.   R[18]:=   k[18] * C[ 6]   *   C[ 1];
  952.   R[19]:=   k[19] * C[12]   *   C[ 5];
  953.   R[20]:=   k[20] * C[12]   *   C[ 5];
  954.   R[21]:=   k[21] * C[12]   *   C[ 5];
  955.   R[22]:=   k[22] * C[ 5]   *   C[16];
  956.   R[23]:=   k[23] * C[ 5]   *   C[16];
  957.   R[24]:=   k[24] * C[ 5]   *   C[16];
  958.   R[25]:=   k[25] * C[ 5]   *   C[16];
  959.   R[26]:=   k[26] * C[ 5]   *   C[16];
  960.   R[27]:=   k[27] * C[ 5]   *   C[16];
  961.   R[28]:=   k[28] * C[ 5]   *   C[ 3];
  962.   R[29]:=   k[29] * C[ 5]   *   C[ 1];
  963.   R[30]:=   k[30] * C[ 5]   *   C[ 2];
  964.   R[31]:=   k[31] * C[ 5]   *   C[24];
  965.   R[32]:=   k[32] * C[ 5]   *   C[ 5]   *   C[16];
  966.   R[33]:=   k[33] * C[ 5]   *   C[ 5]   *   C[16];
  967.   R[34]:=   k[34] * C[ 5]   *   C[ 5]   *   C[16];
  968.   R[35]:=   k[35] * C[ 5]   *   C[ 5]   *   C[16];
  969.   R[36]:=   k[36] * C[ 5]   *   C[ 5]   *   C[16];
  970.   R[37]:=   k[37] * C[ 5]   *   C[ 5]   *   C[16];
  971.   R[38]:=   k[38] * C[ 5]   *   C[ 1];
  972.   R[39]:=   k[39] * C[ 5]   *   C[ 2];
  973.   R[40]:=   k[40] * C[ 5]   *   C[ 3];
  974.   R[41]:=   k[41] * C[ 3]   *   C[ 3]   *   C[16];
  975.   R[42]:=   k[42] * C[ 3]   *   C[ 3]   *   C[16];
  976.   R[43]:=   k[43] * C[ 3]   *   C[ 3]   *   C[16];
  977.   R[44]:=   k[44] * C[ 3]   *   C[ 3]   *   C[16];
  978.   R[45]:=   k[45] * C[ 3]   *   C[ 3]   *   C[ 1];
  979.   R[46]:=   k[46] * C[ 3]   *   C[ 3]   *   C[ 1];
  980.   R[47]:=   k[47] * C[ 3]   *   C[ 3]   *   C[ 1];
  981.   R[48]:=   k[48] * C[ 3]   *   C[ 3]   *   C[ 1];
  982.   R[49]:=   k[49] * C[ 3]   *   C[ 3]   *   C[ 1];
  983.   R[50]:=   k[50] * C[ 8]   *   C[ 2];
  984.   R[51]:=   k[51] * C[12]   *   C[ 2];
  985.   R[52]:=   k[52] * C[32]   *   C[ 5];
  986.   R[53]:=   k[53] * C[28]   *   C[ 2];
  987.   R[54]:=   k[54] * C[29]   *   C[ 2];
  988.   R[55]:=   k[55] * C[30]   *   C[ 2];
  989.   R[56]:=   k[56] * C[31]   *   C[ 2];
  990.   R[57]:=   k[57] * C[17] * C[ 2];
  991.   R[58]:=   k[58] * C[18] * C[ 2];
  992.   R[59]:=   k[59] * C[19] * C[ 2];
  993.   R[60]:=   k[60] * C[20] * C[ 2];
  994.   R[61]:=   k[61] * C[21] * C[ 2];
  995.   R[62]:=   k[62] * C[ 9];
  996.   R[63]:=   k[63] * C[11];
  997.   R[64]:=   k[64] * C[10];
  998.   R[65]:=   k[65] * C[13];
  999.   R[66]:=   k[66] * C[14];
  1000.   R[67]:=   k[67] * C[15];
  1001.   R[68]:=   k[68] * C[33];
  1002.   R[69]:=   k[69] * C[33];
  1003.   R[70]:=   k[70] * C[33];
  1004.   R[71]:=   k[71] * C[33];
  1005.   R[72]:=   k[72] * C[33];
  1006.   R[73]:=   k[73] * C[33];
  1007.   R[74]:=   k[74] * C[33];
  1008.   R[75]:=   k[75] * C[33];
  1009.   R[76]:=   k[76] * C[ 6] * C[37];
  1010.   R[77]:=   k[77] * C[38];
  1011.   R[78]:= k[78] * C[37] * C[ 4];
  1012.   R[79]:= k[79] * C[ 1];
  1013.   R[80]:= k[80] * C[ 2];
  1014.   R[81]:= k[81] * C[ 3];
  1015. (*===================================================================================*)
  1016.   f[ 1]:= 1/tk*(C0[ 1]-C[ 1]) - R[ 1] + R[ 2] - R[ 3] + R[ 4] - R[ 7] + R[ 8] - R[18] - R[29] - R[38] - R[45] - R[46] - R[47] - R[48] - R[49] + R[69] - R[79];
  1017.   f[ 2]:= 1/tk*(C0[ 2]-C[ 2]) + R[ 1] - R[ 2] - R[ 5] + R[ 6] - R[11] + R[12] - R[13] - R[30] - R[39] - R[50] - R[51] - R[53] - R[54] - R[55] - R[56] - R[57] - R[58] - R[59] - R[60] - R[61] + R[70] - R[80];
  1018.   f[ 3]:= 1/tk*(C0[ 3]-C[ 3]) + R[ 3] - R[ 4] + R[ 5] - R[ 6] - R[ 9] + R[10] - R[14] - R[28] - R[40] -2* R[41] -2* R[42] -2* R[43] -2* R[44] -2* R[45] -2* R[46] -2* R[47] -2* R[48] -2* R[49] + R[62] + R[62] + R[76] - R[81];
  1019.   f[ 4]:= 1/tk*(C0[ 4]-C[ 4]) - R[ 7] + R[ 8] - R[ 9] + R[10] - R[11] + R[12] + R[77] - R[78];
  1020.   f[ 5]:= 1/tk*(C0[ 5]-C[ 5]) - R[ 7] + R[ 8] - R[11] + R[12] - R[15] - R[16] - R[17] - R[19] - R[20] - R[21] - R[22] - R[23] - R[24] - R[25] - R[26] - R[27] - R[28] - R[29] - R[30] - R[31] -2*R[32] -2*R[33] -2*R[34] -2*R[35] -2*R[36] -2*R[37] - R[38] - R[39] - R[40] - R[52] + R[62] ;
  1021.   f[ 6]:= 1/tk*(C0[ 6]-C[ 6]) + R[ 7] - R[ 8] + R[ 9] - R[10] + R[11] - R[12] - R[13] - R[14] + R[15] + R[16] + R[17] - R[18] + R[19] + R[20] + R[21] + R[52] - R[76];
  1022.   f[ 7]:= 1/tk*(C0[ 7]-C[ 7]) + R[ 7] - R[ 8] + R[11] - R[12];
  1023.   f[ 8]:= 1/tk*(C0[ 8]-C[ 8]) + R[13] + R[14] - R[15] - R[16] - R[17] - R[50];
  1024.   f[ 9]:= 1/tk*(C0[ 9]-C[ 9]) + R[15] + R[32] - R[62];
  1025.   f[10]:= 1/tk*(C0[10]-C[10]) + R[16] + R[33] - R[64];
  1026.   f[11]:= 1/tk*(C0[11]-C[11]) + R[17] + R[34] - R[63];
  1027.   f[12]:= 1/tk*(C0[12]-C[12]) + R[18] - R[19] - R[20] - R[21] - R[51];
  1028.   f[13]:= 1/tk*(C0[13]-C[13]) + R[19] + R[35] - R[65];
  1029.   f[14]:= 1/tk*(C0[14]-C[14]) + R[20] + R[36] - R[66];
  1030.   f[15]:= 1/tk*(C0[15]-C[15]) + R[21] + R[37] - R[67];
  1031.   f[16]:= 1/tk*(C0[16]-C[16]) - R[22] - R[23] - R[24] - R[25] - R[26] - R[27] - R[32] - R[33] - R[34] - R[35] - R[36] - R[37] + R[38] + R[39] + R[40] - R[41] - R[42] - R[43] - R[44] + R[65] + R[66] + R[67] + R[68] ;
  1032.   f[17]:= 1/tk*(C0[17]-C[17]) + R[22] + R[45] - R[57] + R[71];
  1033.   f[18]:= 1/tk*(C0[18]-C[18]) + R[23] + R[46] - R[58] + R[72];
  1034.   f[19]:= 1/tk*(C0[19]-C[19]) + R[24] + R[47] - R[59] + R[73];
  1035.   f[20]:= 1/tk*(C0[20]-C[20]) + R[25] + R[48] - R[60] + R[74];
  1036.   f[21]:= 1/tk*(C0[21]-C[21]) + R[26] + R[49] - R[61] + R[75];
  1037.   f[22]:= 1/tk*(C0[22]-C[22]) + R[27];
  1038.   f[23]:= 1/tk*(C0[23]-C[23]) + R[28] + R[29] + R[30] + R[69] + R[70];
  1039.   f[24]:= 1/tk*(C0[24]-C[24]) - R[31] + R[71] + R[72] + R[73] + R[74] + R[75];
  1040.   f[25]:= 1/tk*(C0[25]-C[25]) + R[31] + R[68];
  1041.   f[26]:= 1/tk*(C0[26]-C[26]) + R[32] + R[33] + R[34] + R[35] + R[36] + R[37] + R[63];
  1042.   f[27]:= 1/tk*(C0[27]-C[27]) + R[38] + R[39] + R[40] + R[41] + R[42] + R[43] + R[44] + R[45] + R[46] + R[47] + R[48] + R[49] + R[63] + R[65] + R[66] + R[67];
  1043.   f[28]:= 1/tk*(C0[28]-C[28]) + R[41] - R[53] + R[64];
  1044.   f[29]:= 1/tk*(C0[29]-C[29]) + R[42] - R[54];
  1045.   f[30]:= 1/tk*(C0[30]-C[30]) + R[43] - R[55];
  1046.   f[31]:= 1/tk*(C0[31]-C[31]) + R[44] - R[56];
  1047.   f[32]:= 1/tk*(C0[32]-C[32]) + R[50] + R[51] - R[52];
  1048.   f[33]:= 1/tk*(C0[33]-C[33]) + R[52] - R[68] - R[69] - R[70] - R[71] - R[72] - R[73] - R[74] - R[75];
  1049.   f[34]:= 1/tk*(C0[34]-C[34]) + R[53] + R[54] + R[55] + R[56];
  1050.   f[35]:= 1/tk*(C0[35]-C[35]) + R[57] + R[58] + R[59] + R[60] + R[61];
  1051.   f[36]:= 1/tk*(C0[36]-C[36]) + R[64];
  1052.   f[37]:= 1/tk*(C0[37]-C[37]) - R[76] + R[77] - R[78];
  1053.   f[38]:= 1/tk*(C0[38]-C[38]) + R[76] - R[77] + R[78];
  1054.   f[39]:= 1/tk*(C0[39]-C[39]) + R[79] + R[80] + R[81];
  1055. end;
  1056.  
  1057. procedure TMDIChild.RK(var C: a);
  1058. var
  1059.   k1, k2, k3, k4, z: a;
  1060.   t: extended;
  1061.   i: integer;
  1062. begin
  1063.   t:= 0;
  1064.   With StringGrid4 do
  1065.     begin
  1066.       repeat
  1067.         Kinetic(t, C, f);
  1068.         for I := 1 to RowCount-1 do
  1069.           begin
  1070.             k1[i]:= h*f[i];
  1071.             z[i]:= c[i] + k1[i]/2
  1072.           end;
  1073.         Kinetic(t+h/2, z, f);
  1074.         for I := 1 to RowCount-1 do
  1075.           begin
  1076.             k2[i]:= h*f[i];
  1077.             z[i]:= c[i] + k2[i]/2
  1078.           end;
  1079.         Kinetic(t+h/2, z, f);
  1080.         for I := 1 to RowCount-1 do
  1081.           begin
  1082.             k3[i]:= h*f[i];
  1083.             z[i]:= c[i] + k3[i];
  1084.           end;
  1085.         Kinetic(t+h, z, f);
  1086.         for I := 1 to RowCount-1 do
  1087.           begin
  1088.             k4[i]:= h*f[i];
  1089.             c[i]:= c[i] + (k1[i] + 2*k2[i] + 2*k3[i] + k4[i])/6;
  1090.             if c[i] < 0 then c[i]:= 0;
  1091.           end;
  1092.         t:= t + h;
  1093.       until RoundTo(t, -4) > RoundTo(tk, -4);
  1094.     end;
  1095.     //ShowMessage(FloatToStrf(tk, fffixed, 7, 1));
  1096. end;
  1097.  
  1098.  
  1099.  
  1100. procedure TMDIChild.FormCreate(Sender: TObject);
  1101. var
  1102.    R, C, i, j:integer;
  1103.    s: extended;
  1104. begin
  1105.  
  1106.   //начало-------Долганов-------19,02,2019
  1107.   s:= 0;
  1108.   //PageControl1.ActivePageIndex:= 0;
  1109. {==============Считывание Праметров модели и Исходных данных======================}
  1110.  
  1111.   //'Свойства компонентов'
  1112.  
  1113.   R:= Length(FProperConst);
  1114.   C:= Length(FProperConst[1]);
  1115.  
  1116.   with StringGrid4 do
  1117.     begin
  1118.       RowCount:= R;
  1119.       ColCount:= C;
  1120.       for i := 0 to R-1 do
  1121.         for j := 0 to C-1 do
  1122.           Cells[j, i]:= FProperConst [i+1, j+1];
  1123.     end;
  1124.   //'Кинетические параметры'
  1125.   R:= Length(FKonstantConst);
  1126.   C:= Length(FKonstantConst[1]);
  1127.  
  1128.   with StringGrid5 do
  1129.     begin
  1130.       RowCount:= R;
  1131.       ColCount:= C;
  1132.       for i := 0 to R-1 do
  1133.         for j := 0 to C-1 do
  1134.           Cells[j, i]:= FKonstantConst [i+1, j+1];
  1135.     end;
  1136.  
  1137.  
  1138.   //исходные данные
  1139.   //'Бутан-бутиленовая фракция'
  1140.  
  1141.   //все с In я беру на входе в dll
  1142.   R:= Length(FBBFIn);
  1143.   C:= Length(FBBFIn[1]);
  1144.  
  1145.   with StringGrid1 do
  1146.     begin
  1147.       RowCount:= R;
  1148.       ColCount:= C;
  1149.       for i := 0 to R-1 do
  1150.         for j := 0 to C-1 do
  1151.           Cells[j, i]:= FBBFIn [i+1, j+1];
  1152.     end;
  1153.   //'Циркулирующий изобутан'
  1154.   R:= Length(FIzobutCircIn);
  1155.   C:= Length(FIzobutCircIn[1]);
  1156.  
  1157.   with StringGrid2 do
  1158.     begin
  1159.       RowCount:= R;
  1160.       ColCount:= C;
  1161.       for i := 0 to R-1 do
  1162.         for j := 0 to C-1 do
  1163.           Cells[j, i]:= FIzobutCircIn [i+1, j+1];
  1164.     end;
  1165.   //'Изобутан-хладоагент'
  1166.   R:= Length(FIzobutHladIn);
  1167.   C:= Length(FIzobutHladIn[1]);
  1168.  
  1169.   with StringGrid8 do
  1170.     begin
  1171.       RowCount:= R;
  1172.       ColCount:= C;
  1173.       for i := 0 to R-1 do
  1174.         for j := 0 to C-1 do
  1175.           Cells[j, i]:= FIzobutHladIn [i+1, j+1];
  1176.     end;
  1177.   //'Технологические параметры'];
  1178.   R:= Length(FTehParIn);
  1179.   C:= Length(FTehParIn[1]);
  1180.  
  1181.   with StringGrid3 do
  1182.     begin
  1183.       RowCount:= R;
  1184.       ColCount:= C;
  1185.       for i := 0 to R-1 do
  1186.         for j := 0 to C-1 do
  1187.           Cells[j, i]:= FTehParIn [i+1, j+1];
  1188.     end;
  1189.   //'Серная кислота'
  1190.   R:= Length(FSerKisIn);
  1191.   C:= Length(FSerKisIn[1]);
  1192.  
  1193.   with StringGrid11 do
  1194.     begin
  1195.       RowCount:= R;
  1196.       ColCount:= C;
  1197.       for i := 0 to R-1 do
  1198.         for j := 0 to C-1 do
  1199.           Cells[j, i]:= FSerKisIn [i+1, j+1];
  1200.     end;
  1201.  
  1202. {+++++++++++++Инициализация массивов BBF, RecIsobutane, IHA, TechPar++++++++++++++++++}
  1203.   with StringGrid6 do
  1204.     begin
  1205.       RowCount:= StringGrid4.RowCount;
  1206.       Cols[0]:=StringGrid4.Cols[0] ;
  1207.       Cells[1, 0]:= 'Значение';
  1208.       for I := 1 to RowCount-1 do
  1209.         Cells[1, i]:= '0,00'
  1210.     end;
  1211.   with StringGrid1 do
  1212.     begin
  1213.       for I := 1 to StringGrid4.RowCount-1 do
  1214.         BBF[i]:= 0.00;
  1215.       BBF[ 1]:= StrToFloat(Cells[1,11]);
  1216.       BBF[ 2]:= StrToFloat(Cells[1,13]) + StrToFloat(Cells[1,14]);
  1217.       BBF[ 3]:= StrToFloat(Cells[1,12]);
  1218.       BBF[ 5]:= StrToFloat(Cells[1, 9]);
  1219.       BBF[ 7]:= StrToFloat(Cells[1,10]);
  1220.       BBF[16]:= StrToFloat(Cells[1, 7]);
  1221.       BBF[26]:= StrToFloat(Cells[1, 6]);
  1222.       BBF[27]:= StrToFloat(Cells[1,17]) + StrToFloat(Cells[1,19]);
  1223.     end;
  1224.  
  1225.   with StringGrid2 do
  1226.     begin
  1227.       for I := 1 to StringGrid4.RowCount-1 do
  1228.         RecIsobutane[i]:= 0.00;
  1229.       RecIsobutane[ 1]:= StrToFloat(Cells[1,11]);
  1230.       RecIsobutane[ 2]:= StrToFloat(Cells[1,12]) + StrToFloat(Cells[1,13]);
  1231.       RecIsobutane[ 3]:= StrToFloat(Cells[1,10]);
  1232.       RecIsobutane[ 5]:= StrToFloat(Cells[1, 8]);
  1233.       RecIsobutane[ 7]:= StrToFloat(Cells[1, 9]);
  1234.       RecIsobutane[16]:= StrToFloat(Cells[1, 6]);
  1235.       RecIsobutane[26]:= StrToFloat(Cells[1, 5]);
  1236.       RecIsobutane[27]:= StrToFloat(Cells[1,15]);
  1237.     end;
  1238.   with StringGrid8 do
  1239.     begin
  1240.       for I := 1 to StringGrid4.RowCount-1 do
  1241.         IHA[i]:= 0.00;
  1242.       IHA[ 1]:= StrToFloat(Cells[1,10]);
  1243.       IHA[ 2]:= StrToFloat(Cells[1,12]) + StrToFloat(Cells[1,13]);
  1244.       IHA[ 3]:= StrToFloat(Cells[1,11]);
  1245.       IHA[ 5]:= StrToFloat(Cells[1, 8]);
  1246.       IHA[ 7]:= StrToFloat(Cells[1, 9]);
  1247.       IHA[16]:= StrToFloat(Cells[1, 6]);
  1248.       IHA[26]:= StrToFloat(Cells[1, 5]);
  1249.       IHA[27]:= StrToFloat(Cells[1,15]);
  1250.     end;
  1251.   with StringGrid3 do
  1252.     for I := 1 to RowCount-1 do
  1253.       TechPar[i]:= StrToFloat(Cells[1, i]);
  1254. {++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
  1255.  
  1256.  
  1257. {\\\\\\\\\\\\\\\\\\\\\\\\\Инициализация массива параметров кислоты///////////////////////////}
  1258.   with StringGrid11 do
  1259.     begin
  1260.       for I := 2 to RowCount-1 do
  1261.         AcidPar[i]:= StrToFloat(Cells[1, i]);
  1262.       Acid[38]:= StrToFloat(Cells[1, 1]);
  1263.       Acid[39]:= 100 - StrToFloat(Cells[1, 1]);
  1264.     end;
  1265. {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////////////////}
  1266.  
  1267. // Массивы Mr, Density
  1268. {.............................................................................................}
  1269.   with StringGrid4 do
  1270.     for I := 1 to RowCount-1 do
  1271.       begin
  1272.         Mr[i]:= StrToFloat(Cells[1, i]);
  1273.         Density[i]:= StrToFloat(Cells[2, i]);
  1274.       end;
  1275. {.............................................................................................}
  1276.  //Комбинированное сырье
  1277.   with StringGrid6 do
  1278.     begin
  1279.       Cells[1, 1]:= FloatToStr(mix(d(density, BBF), TechPar[1], BBF[ 1], d(density, RecIsobutane), TechPar[2], RecIsobutane[ 1]));
  1280.       Cells[1, 2]:= FloatToStr(mix(d(density, BBF), TechPar[1], BBF[ 2], d(density, RecIsobutane), TechPar[2], RecIsobutane[ 2]));
  1281.       Cells[1, 3]:= FloatToStr(mix(d(density, BBF), TechPar[1], BBF[ 3], d(density, RecIsobutane), TechPar[2], RecIsobutane[ 3]));
  1282.       Cells[1, 5]:= FloatToStr(mix(d(density, BBF), TechPar[1], BBF[ 5], d(density, RecIsobutane), TechPar[2], RecIsobutane[ 5]));
  1283.       Cells[1, 7]:= FloatToStr(mix(d(density, BBF), TechPar[1], BBF[ 7], d(density, RecIsobutane), TechPar[2], RecIsobutane[ 7]));
  1284.       Cells[1,16]:= FloatToStr(mix(d(density, BBF), TechPar[1], BBF[16], d(density, RecIsobutane), TechPar[2], RecIsobutane[16]));
  1285.       Cells[1,26]:= FloatToStr(mix(d(density, BBF), TechPar[1], BBF[26], d(density, RecIsobutane), TechPar[2], RecIsobutane[26]));
  1286.       Cells[1,27]:= FloatToStr(mix(d(density, BBF), TechPar[1], BBF[27], d(density, RecIsobutane), TechPar[2], RecIsobutane[27]));
  1287.       for I := 1 to RowCount-1 do
  1288.         s:= s + StrToFloat(Cells[1, i]);
  1289.       for I := 1 to RowCount-1 do
  1290.         Cells[1, i]:= FloatToStrf(StrToFloat(Cells[1, i])/s*100, fffixed, 7, 2)
  1291.     end;
  1292. {--------------------------Инициализация массива CombFeed-----------------------------------}
  1293.   with StringGrid6 do
  1294.     for I := 1 to RowCount-1 do
  1295.       CombFeed[i]:= StrToFloat(Cells[1, i]);
  1296. {-------------------------------------------------------------------------------------------}
  1297. {===============================================================================}
  1298.   with stringGrid9 do
  1299.     begin
  1300.       Cells[0, 0]:= 'Наименование потока';
  1301.       Cells[0, 1]:= 'Комбинированное сырье';
  1302.       Cells[0, 2]:= 'Изобутан-хладоагент';
  1303.       Cells[1, 0]:= 'Коэффициент распределения R-311A';
  1304.       Cells[2, 0]:= 'Коэффициент распределения R-311B';
  1305.       Cells[3, 0]:= 'Коэффициент распределения R-311C';
  1306.       Cells[4, 0]:= 'Коэффициент распределения R-311D';
  1307.       for I := 1 to ColCount-1 do
  1308.         for j := 1 to RowCount-1 do
  1309.           Cells[i, j]:= '0,25';
  1310.     end;
  1311.   with StringGrid7 do
  1312.     begin
  1313.       RowCount:= StringGrid4.RowCount;
  1314.       Cols[0]:= StringGrid4.Cols[0];
  1315.       Cells[1, 0]:= 'Контактор R-311A';
  1316.       Cells[2, 0]:= 'Контактор R-311B';
  1317.       Cells[3, 0]:= 'Контактор R-311C';
  1318.       Cells[4, 0]:= 'Контактор R-311D';
  1319.       for I := 1 to ColCount-1 do
  1320.         for j := 1 to RowCount-1 do
  1321.           Cells[i, j]:= '0,00';
  1322.     end;
  1323.   with StringGrid10 do
  1324.     begin
  1325.       RowCount:= StringGrid4.RowCount;
  1326.       Cols[0]:= StringGrid4.Cols[0];
  1327.       Cells[1, 0]:= 'Контактор R-311A';
  1328.       Cells[2, 0]:= 'Контактор R-311B';
  1329.       Cells[3, 0]:= 'Контактор R-311C';
  1330.       Cells[4, 0]:= 'Контактор R-311D';
  1331.       for I := 1 to ColCount-1 do
  1332.         for j := 1 to RowCount-1 do
  1333.           Cells[i, j]:= '0,00';
  1334.     end;
  1335.   //'Состав алкилата'
  1336.   //R:= WorkSheet.UsedRange.Rows.Count;
  1337.   //C:= WorkSheet.UsedRange.Columns.Count;
  1338.  
  1339.   with StringGrid12 do
  1340.     begin
  1341.       RowCount:= StringGrid4.RowCount;
  1342.       ColCount:= ColCount + 1;
  1343.       Cols[0]:= StringGrid4.Cols[0];
  1344.       Cells[1, 0]:= 'Контактор R-311A';
  1345.       Cells[3, 0]:= 'Контактор R-311B';
  1346.       Cells[4, 0]:= 'Контактор R-311C';
  1347.       Cells[5, 0]:= 'Контактор R-311D';
  1348.       Cells[2, 0]:= 'Состав алкилата (анализ)';
  1349.       for I := 1 to ColCount-1 do
  1350.         for j := 1 to RowCount-1 do
  1351.           begin
  1352.             Cells[i, j]:= '0,00';
  1353.             Cells[2, j]:= FSosAlkIn[j+1, 2];
  1354.           end;
  1355.     end;
  1356.  
  1357.    // 23.02.2019 // Считывание параметров потока "Сырье С4 насыщенное"
  1358.  (*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*)
  1359.   //Сырье С4 насыщенное
  1360.   R:= Length(FSyrC4Const);
  1361.   C:= Length(FSyrC4Const[1]);
  1362.  
  1363.   with StringGrid13 do
  1364.     begin
  1365.       RowCount:= R;
  1366.       ColCount:= C;
  1367.       for i := 0 to R-1 do
  1368.         for j := 0 to C-1 do
  1369.           Cells[j, i]:= FSyrC4In[i+1, j+1];
  1370.     end;
  1371.  (*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*)
  1372.  
  1373.  // 23.02.2019 // Инициализация массива SyrC4
  1374.   for I := 1 to StringGrid4.RowCount-1 do
  1375.     SyrC4[i]:= 0;
  1376.   SyrC4[5]:= StrToFloat(StringGrid13.Cells[1, 8]);
  1377.   SyrC4[7]:= StrToFloat(StringGrid13.Cells[1, 9]);
  1378.  
  1379.  
  1380.   //------конец  Долганов 19,02,2019
  1381. end;
  1382. procedure TMDIChild.Button1Click(Sender: TObject);
  1383. var
  1384.   s: extended;
  1385.   i: integer;
  1386. begin
  1387.   s:= 0;
  1388.   tk:= v/(StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2])+TechPar[3]+AcidPar[1]+AcidPar[5])*3600;
  1389.  {*****************************Смешение с хладоагентом и кислотой***************************************}
  1390.   with StringGrid7 do
  1391.     begin
  1392.       //R-311A
  1393.       Cells[1, 1]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 1], d(density, IHA), TechPar[3], IHA[ 1]));
  1394.       Cells[1, 2]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 2], d(density, IHA), TechPar[3], IHA[ 2]));
  1395.       Cells[1, 3]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 3], d(density, IHA), TechPar[3], IHA[ 3]));
  1396.       //23.02.2019 // Добавление Сырья С4
  1397.       ////////
  1398.       Cells[1, 5]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 5], d(density, IHA), TechPar[3], IHA[ 5]) + TechPar[12] * 0.25 * SyrC4[5] * 1000 / 100);
  1399.       Cells[1, 7]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 7], d(density, IHA), TechPar[3], IHA[ 7]) + TechPar[12] * 0.25 * SyrC4[7] * 1000 / 100);
  1400.       ////////
  1401.       Cells[1,16]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[16], d(density, IHA), TechPar[3], IHA[16]));
  1402.       Cells[1,26]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[26], d(density, IHA), TechPar[3], IHA[26]));
  1403.       Cells[1,27]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[27], d(density, IHA), TechPar[3], IHA[27]));
  1404.       Cells[1,38]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[38], d(density, Acid), (AcidPar[1] + AcidPar[5]), Acid[38]));
  1405.       Cells[1,39]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[1, 1])*(TechPar[1]+TechPar[2]), CombFeed[39], d(density, Acid), (AcidPar[1] + AcidPar[5]), Acid[39]));
  1406.       for I := 1 to RowCount-1 do
  1407.         s:= s + StrToFloat(Cells[1, i]);
  1408.       for I := 1 to RowCount-1 do
  1409.         Cells[1, i]:= FloatToStrf(StrToFloat(Cells[1, i])/s*100, fffixed, 10, 4);
  1410.       s:=  0;
  1411.       //R-311B
  1412.       Cells[2, 1]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 1], d(density, IHA), TechPar[4], IHA[ 1]));
  1413.       Cells[2, 2]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 2], d(density, IHA), TechPar[4], IHA[ 2]));
  1414.       Cells[2, 3]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 3], d(density, IHA), TechPar[4], IHA[ 3]));
  1415.       Cells[2, 5]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 5], d(density, IHA), TechPar[4], IHA[ 5]));
  1416.       Cells[2, 7]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 7], d(density, IHA), TechPar[4], IHA[ 7]));
  1417.       Cells[2,16]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[16], d(density, IHA), TechPar[4], IHA[16]));
  1418.       Cells[2,26]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[26], d(density, IHA), TechPar[4], IHA[26]));
  1419.       Cells[2,27]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[27], d(density, IHA), TechPar[4], IHA[27]));
  1420.       Cells[2,38]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[38], d(density, Acid), (AcidPar[2] + AcidPar[5]), Acid[38]));
  1421.       Cells[2,39]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[2, 1])*(TechPar[1]+TechPar[2]), CombFeed[39], d(density, Acid), (AcidPar[2] + AcidPar[5]), Acid[39]));
  1422.       for I := 1 to RowCount-1 do
  1423.         s:= s + StrToFloat(Cells[2, i]);
  1424.       for I := 1 to RowCount-1 do
  1425.         Cells[2, i]:= FloatToStrf(StrToFloat(Cells[2, i])/s*100, fffixed, 10, 4);
  1426.       s:= 0;
  1427.       //R-311C
  1428.       Cells[3, 1]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 1], d(density, IHA), TechPar[5], IHA[ 1]));
  1429.       Cells[3, 2]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 2], d(density, IHA), TechPar[5], IHA[ 2]));
  1430.       Cells[3, 3]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 3], d(density, IHA), TechPar[5], IHA[ 3]));
  1431.       Cells[3, 5]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 5], d(density, IHA), TechPar[5], IHA[ 5]));
  1432.       Cells[3, 7]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 7], d(density, IHA), TechPar[5], IHA[ 7]));
  1433.       Cells[3,16]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[16], d(density, IHA), TechPar[5], IHA[16]));
  1434.       Cells[3,26]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[26], d(density, IHA), TechPar[5], IHA[26]));
  1435.       Cells[3,27]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[27], d(density, IHA), TechPar[5], IHA[27]));
  1436.       Cells[3,38]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[38], d(density, Acid), (AcidPar[3] + AcidPar[6]), Acid[38]));
  1437.       Cells[3,39]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[3, 1])*(TechPar[1]+TechPar[2]), CombFeed[39], d(density, Acid), (AcidPar[3] + AcidPar[6]), Acid[39]));
  1438.       for I := 1 to RowCount-1 do
  1439.         s:= s + StrToFloat(Cells[3, i]);
  1440.       for I := 1 to RowCount-1 do
  1441.         Cells[3, i]:= FloatToStrf(StrToFloat(Cells[3, i])/s*100, fffixed, 10, 4);
  1442.       s:= 0;
  1443.       //R-311D
  1444.       Cells[4, 1]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 1], d(density, IHA), TechPar[6], IHA[ 1]));
  1445.       Cells[4, 2]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 2], d(density, IHA), TechPar[6], IHA[ 2]));
  1446.       Cells[4, 3]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 3], d(density, IHA), TechPar[6], IHA[ 3]));
  1447.       Cells[4, 5]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 5], d(density, IHA), TechPar[6], IHA[ 5]));
  1448.       Cells[4, 7]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[ 7], d(density, IHA), TechPar[6], IHA[ 7]));
  1449.       Cells[4,16]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[16], d(density, IHA), TechPar[6], IHA[16]));
  1450.       Cells[4,26]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[26], d(density, IHA), TechPar[6], IHA[26]));
  1451.       Cells[4,27]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[27], d(density, IHA), TechPar[6], IHA[27]));
  1452.       Cells[4,38]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[38], d(density, Acid), (AcidPar[2] + AcidPar[6]), Acid[38]));
  1453.       Cells[4,39]:= FloatToStr(mix(d(density, CombFeed), StrToFloat(StringGrid9.Cells[4, 1])*(TechPar[1]+TechPar[2]), CombFeed[39], d(density, Acid), (AcidPar[2] + AcidPar[6]), Acid[39]));
  1454.       for I := 1 to RowCount-1 do
  1455.         s:= s + StrToFloat(Cells[4, i]);
  1456.       for I := 1 to RowCount-1 do
  1457.         Cells[4, i]:= FloatToStrf(StrToFloat(Cells[4, i])/s*100, fffixed, 10, 4);
  1458. {**************************************************************************************************************************************}
  1459.       for I := 1 to RowCount-1 do
  1460.         C0[i]:= StrToFloat(Cells[1, i]);
  1461.       mol(C0, density, Mr, Cm);
  1462.       edit3.Text:= FloatToStrF(iC4_Ratio(Cm), ffFixed, 8, 0);
  1463.       //iC4/C=
  1464.       iC4_Rating:= iC4_Ratio(Cm);
  1465.       for I := 1 to RowCount-1 do
  1466.         C0[i]:= Cm[i];
  1467.       RK(Cm);
  1468.       // Удаляем кислоту
  1469.       Cm[ 4]:= 0;
  1470.       Cm[37]:= 0;
  1471.       Cm[38]:= 0;
  1472.       Cm[39]:= 0;
  1473.       // Удаляем катионы
  1474.       Cm[ 6]:= 0;
  1475.       Cm[ 8]:= 0;
  1476.       Cm[12]:= 0;
  1477.       Cm[32]:= 0;
  1478.  
  1479.       mas (Cm, Mr, C);
  1480.       for I := 1 to RowCount-1 do
  1481.         StringGrid10.Cells[1, i]:= FloatToStrF(C[i], fffixed, 7, 2);
  1482.       end;
  1483.       // Расчет фазового равновесия 05.03.2019
  1484.       getmol(TechPar[2] * d(density, C), C, xf, Fmol);
  1485.       podborKi(Fp, Fw, Ki, xw, xp);
  1486.       for I := 1 to StringGrid12.RowCount-1 do
  1487.         begin
  1488.           StringGrid12.Cells[3, i]:= FloatToStrF(xw[i], fffixed, 10, 5);
  1489.           StringGrid12.Cells[4, i]:= FloatToStrF(xp[i], fffixed, 10, 5);
  1490.         end;
  1491.       // Определение выхода алкилата
  1492.       Alkylate_Yeild:= (100 - C[1] - C[2] - C[3] - C[5] -  0.09*C[27] - 0.006*C[7] - C[16] - C[26] - C[36])/100
  1493.        * (StrToFloat(StringGrid9.Cells[4, 1]) * TechPar[1] * d(density, BBF) +       //23.02.2019 Добавлена (
  1494.        StrToFloat(StringGrid9.Cells[4, 1]) * TechPar[2] * d(density, RecIsobutane)); //23.02.2019 Добавлена )
  1495.  
  1496.       // определение выхода iC4
  1497.       iC4_Yeild:= C[5]/100 * ((StrToFloat(StringGrid9.Cells[4, 1]) * TechPar[1] * d(density, BBF) + StrToFloat(StringGrid9.Cells[4, 1]) * TechPar[2] * d(density, RecIsobutane))); ////23.02.2019 Добавлены ()
  1498.  
  1499.       // Удаляем газы
  1500.       Cm[ 1]:= 0;
  1501.       Cm[ 2]:= 0;
  1502.       Cm[ 3]:= 0;
  1503.       Cm[ 5]:= 0;
  1504.       Cm[27]:= 0.09*Cm[27];
  1505.       Cm[ 7]:= 0.006*Cm[ 7];
  1506.       Cm[16]:= 0;
  1507.       Cm[26]:= 0;
  1508.       Cm[36]:= 0;
  1509.       mas (Cm, Mr, C);
  1510.       with StringGrid12 do
  1511.       for I := 1 to RowCount-1 do
  1512.         Cells[1, i]:= FloatToStrF(C[i], fffixed, 7, 2);
  1513.   (* инициализация массива ОЧ и состава алкилата*)
  1514.   with StringGrid4 do
  1515.     for I := 1 to RowCount-1 do
  1516.       begin
  1517.         RON[i]:= StrToFloat(Cells[7, i]);
  1518.         MON[i]:= StrToFloat(Cells[8, i]);
  1519.         Alkylat[i]:= StrToFloat(StringGrid12.Cells[1, i]);
  1520.         AlkylatL[i]:= StrToFloat(StringGrid12.Cells[3, i]);
  1521.         AlkylatG[i]:= StrToFloat(StringGrid12.Cells[4, i]);
  1522.  
  1523.       end;
  1524.   Edit1.Text:= FloatToStrF(getON(Alkylat, RON), fffixed, 8, 2);
  1525.   Edit2.Text:= FloatToStrF(getON(Alkylat, MON), fffixed, 8, 2);
  1526.  
  1527.  
  1528.  
  1529. end;
  1530.  
  1531.  
  1532. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement