/
Moustafa
/
Microgrid
Обзор
Документация
Войти
/
Moustafa
/
Microgrid
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
microgrid_data.m
625 строк
59 KB
Moustafa
create: Load_and_train_lstm.m, microgrid.m, microgrid_data.m, Microgrid_lstm_predict.m, Microgrid_lstm_train.m, P real data.docx, P real matrix.docx
25 апр 2026, 17:25
Верифицирован
25 апр 2026, 17:25
1d85e06
Код
Авторство
О чём код?
function db = microgrid_data() % ========================================================================= % microgrid_data — База данных для Microgrid AI % Содержит: регионы, города, профили нагрузки, экономические параметры, % климатические данные, CAPEX/OPEX, константы оборудования. % % ИСПРАВЛЕНИЯ v22.2 (Апрель 2026): % [FIX-A] Добавлены физические ограничения микросети (IEC 62898-1:2017) % [FIX-B] Ограничения единичной мощности ДГУ/ВЭС (ISO 8528-1:2018, % IEC 61400-1:2019) % [FIX-C] Многоуровневый CAPEX (масштаб-зависимый): % IRENA "Renewable Power Generation Costs 2023", % BloombergNEF "New Energy Outlook 2024" % [FIX-D] Ставка дисконтирования обновлена: ЦБ РФ апрель 2026 = 21%, % для проектного финансирования +4% = 25% % Источник: Банк России, пресс-релиз 25.10.2024 и 14.02.2025 % [FIX-E] Добавлена стоимость недопоставки VOLL (ФАС РФ 2023) % [FIX-F] Все константы OPEX вынесены в db.Const (принцип DRY) % [FIX-7] bess_repl_year: 10 → 8 (IEC 62619:2022) % [FIX-9] Параметр Вейбулла по регионам (Росгидромет 2022) % [FIX-12] Полный список праздников РФ (ТК РФ ст.112) % % Версия: 22.2 | Дата: 24.04.2026 % % Источники: % [1] IEC 62898-1:2017 — Microgrids, Part 1: Guidelines % [2] IEC 62619:2022 — Safety requirements for secondary lithium cells % [3] ISO 8528-1:2018 — Generating sets, ratings and performance % [4] IEC 61400-1:2019 — Wind energy, design requirements % [5] IRENA "Renewable Power Generation Costs in 2023", 2024 % [6] BloombergNEF "New Energy Outlook 2024" % [7] Росгидромет. Атлас ресурсов ветровой энергии России, 2022 % [8] Трудовой кодекс РФ, статья 112 % [9] Банк России, ключевая ставка, 2024–2026 % ========================================================================= % ========================================================================= % РАЗДЕЛ 1: ФИЗИЧЕСКИЕ ОГРАНИЧЕНИЯ СИСТЕМЫ % ========================================================================= % [FIX-A] Границы микросети % Источник: IEC 62898-1:2017 — типичный диапазон микросети 1 кВт — 10 МВт db.Const.microgrid_min_kw = 1; % минимальная базовая нагрузка, кВт db.Const.microgrid_max_kw = 10000; % максимум микросети (10 МВт), кВт db.Const.microgrid_warn_kw = 5000; % порог предупреждения (5 МВт), кВт % [FIX-B] Ограничения единичного оборудования % ДГУ: ISO 8528-1:2018 + каталоги Cummins/MTU/Caterpillar 2024 % Серийные агрегаты: до ~2500 кВт; крупнее — специальные заказы db.Const.dg_max_single_kw = 2500; % макс. единичная мощность ДГУ, кВт db.Const.dg_min_single_kw = 10; % мин. единичная мощность ДГУ, кВт db.Const.dg_max_units = 4; % макс. кол-во параллельных агрегатов одного типа % ВЭУ для микросетей: IEC 61400-1:2019 + ГОСТ Р 51237-98 % Малая ветроэнергетика (SWTs): до 300 кВт / диаметр ротора до 50 м % Выше 300 кВт — промышленный класс, другие CAPEX и требования db.Const.wind_max_single_kw = 300; % макс. малая ВЭУ для микросети, кВт db.Const.wind_max_total_kw = 1200; % макс. суммарная ВЭС микросети (4 агрегата), кВт % СЭС: практический предел для микросети % Методические рекомендации Минэнерго РФ 2022, п. 4.3 db.Const.pv_max_kw = 5000; % макс. СЭС микросети, кВт % BESS: IEC 62619:2022 db.Const.bess_max_kw = 5000; % макс. мощность BESS, кВт db.Const.bess_max_kwh = 20000; % макс. ёмкость BESS, кВт·ч % ========================================================================= % РАЗДЕЛ 2: КОНСТАНТЫ ОБОРУДОВАНИЯ (единая точка изменений, принцип DRY) % Изменяйте только здесь — все расчёты в microgrid.m берут значения отсюда. % ========================================================================= % [FIX-C] CAPEX зависит от масштаба — используйте tiered_capex() в microgrid.m % Таблицы: [до_кВт (или кВт·ч), руб/кВт (или кВт·ч)] % % СЭС (фотовольтаика, turnkey, РФ рынок 2024): % Источник: IRENA "Renewable Power Generation Costs 2023" + РосАтом Solar 2024 db.Const.capex_pv_tiers = [ 100, 120000; % малые системы <100 кВт (частные) 500, 95000; % средние 100–500 кВт (коммерческие) 2000, 72000; % крупные 500–2000 кВт (промышленные) Inf, 62000]; % >2 МВт (utility-scale) % Резервное скалярное значение (для backward-compat) db.Const.capex_pv_per_kw = 72000; % руб/кВт — средний класс % ВЭС малая (<300 кВт, РФ 2024): % Источник: BloombergNEF 2024, WindEurope 2023, данные Росветер db.Const.capex_wind_tiers = [ 50, 280000; % микро-ВЭУ <50 кВт 100, 180000; % малые 50–100 кВт 300, 130000; % средние 100–300 кВт (IEC 61400-1 класс S) Inf, 90000]; % крупные >300 кВт (промышленный класс, другие проекты) db.Const.capex_wind_per_kw = 130000; % руб/кВт — малые ВЭУ (базовое) % BESS LFP (BloombergNEF 2023–24): db.Const.capex_bess_tiers = [ 100, 70000; % шкафные системы <100 кВт·ч 500, 55000; % контейнерные 100–500 кВт·ч 5000, 42000; % крупные 500–5000 кВт·ч (Megapack-класс) Inf, 36000]; % utility-scale >5 МВт·ч db.Const.capex_bess_per_kwh = 42000; % руб/кВт·ч — средний класс % ДГУ (Cummins, Perkins, MTU, Volvo, РФ 2024): % Источник: прайс-листы дистрибьюторов РФ 2024 db.Const.capex_dg_tiers = [ 50, 35000; % малые ДГУ <50 кВт (однофазные) 200, 27000; % средние 50–200 кВт 800, 23000; % большие 200–800 кВт 2000, 20000; % промышленные 800–2000 кВт Inf, 18000]; % спецзаказ >2000 кВт db.Const.capex_dg_per_kw = 22000; % руб/кВт — базовое значение % OPEX (все в db.Const — устранение дублирования в recalc_economics) % [FIX-F] Единая точка для всех OPEX-констант db.Const.opex_pv_per_kwh = 0.25; % руб/кВт·ч — OPEX СЭС db.Const.opex_wind_per_kwh = 0.80; % руб/кВт·ч — OPEX ВЭС db.Const.opex_bess_per_kwh_yr = 1100; % руб/кВт·ч/год — OPEX BESS db.Const.opex_dg_per_l = 0; % включено в стоимость топлива db.Const.mgmt_hybrid_pct = 0.12; % управленческие расходы гибрид, доля db.Const.mgmt_diesel_pct = 0.15; % управленческие расходы только ДГУ, доля % Технические параметры BESS db.Const.eta_charge = 0.97; % КПД зарядки (LFP, IEC 62619:2022) db.Const.eta_discharge = 0.97; % КПД разрядки db.Const.bess_self_disch = 0.00005; % /ч — саморазряд LFP (~3.6%/мес) db.Const.bess_deg_rate = 0.025; % /год — деградация ёмкости LFP db.Const.bess_repl_year = 8; % год замены (3000 цикл/365≈8.2 г.) db.Const.bess_repl_cost_k = 0.65; % доля от CAPEX при замене (-35%) % Технические параметры СЭС db.Const.pv_system_losses = 0.85; % системные потери СЭС db.Const.cable_loss_factor = 0.97; % потери в кабелях 0.4 кВ % [FIX-6] IEC 61215:2021 — монокристаллический Si: -0.40%/°C db.Const.pv_temp_coeff = 0.0040; % /°C — температурная деградация % Технические параметры ДГУ % [FIX-9 нов.] Пересмотренные пороги по ISO 8528-5:2013 db.Const.dg_min_load_pct = 0.30; % минимальная загрузка ДГУ db.Const.dg_stage_on_pct = 0.85; % порог подключения второго ДГУ % Экология db.Const.co2_kg_per_l_diesel = 2.65; % кг CO₂/л ДТ (МГЭИК Tier 1, 2006) % [FIX-D] Финансовые параметры — обновлены для 2026 года % Источник: Банк России — ключевая ставка 21% (с 28.10.2024) % Ставка дисконтирования = ключевая + риск проекта (4–5%) db.Const.discount_rate = 0.25; % 25% = 21% (ЦБ) + 4% (риск-премия) db.Const.fuel_inflation = 0.10; % инфляция цены ДТ (%/год, Росстат 2020-25) db.Const.om_inflation = 0.07; % инфляция O&M расходов (Росстат 2024-25) db.Const.project_life = 20; % срок проекта, лет % [FIX-E] Стоимость недопоставки электроэнергии (VOLL) % Источник: ФАС РФ, Методические рекомендации 2023; ENTSO-E VOLL Study 2022 db.Const.voll_rub_per_kwh = 350; % руб/кВт·ч (диапазон ФАС: 300–500) % [FIX-9] Параметр формы Вейбулла % Источник: Росгидромет, Атлас ресурсов ветровой энергии России, 2022 db.Const.weibull_k_default = 2.0; % умолчание (Rayleigh) % [FIX-12] Праздничные дни РФ (ТК РФ, ст. 112) db.Const.holidays = [ 1, 1, 0.20; % Новый год 1, 2, 0.18; % Новогодние каникулы 1, 3, 0.18; 1, 4, 0.18; 1, 5, 0.18; 1, 6, 0.18; 1, 7, 0.20; % Рождество Христово 1, 8, 0.18; 2, 23, 0.15; % День защитника Отечества 3, 8, 0.15; % Международный женский день 5, 1, 0.15; % Праздник Весны и Труда 5, 9, 0.15; % День Победы 6, 12, 0.10; % День России 11, 4, 0.10]; % День народного единства % ========================================================================= % РЕГИОНЫ И ГОРОДА % ========================================================================= db.RegionNames = { ... 'Республика Адыгея','Республика Алтай','Республика Башкортостан', ... 'Республика Бурятия','Республика Дагестан','Республика Ингушетия', ... 'Кабардино-Балкарская Респ.','Республика Калмыкия', ... 'Карачаево-Черкесская Респ.','Республика Карелия','Республика Коми', ... 'Республика Крым','Республика Марий Эл','Республика Мордовия', ... 'Республика Саха (Якутия)','Республика Северная Осетия', ... 'Республика Татарстан','Республика Тыва','Республика Хакасия', ... 'Чеченская Республика','Чувашская Республика','Удмуртская Республика', ... 'Алтайский край','Забайкальский край','Камчатский край', ... 'Краснодарский край','Красноярский край','Пермский край', ... 'Приморский край','Ставропольский край','Хабаровский край', ... 'Амурская область','Архангельская область','Астраханская область', ... 'Белгородская область','Брянская область','Владимирская область', ... 'Волгоградская область','Вологодская область','Воронежская область', ... 'Ивановская область','Иркутская область','Калининградская область', ... 'Калужская область','Кемеровская область','Кировская область', ... 'Костромская область','Курганская область','Курская область', ... 'Ленинградская область','Липецкая область','Магаданская область', ... 'Московская обл.','Мурманская область','Нижегородская область', ... 'Новгородская область','Новосибирская область','Омская область', ... 'Оренбургская область','Орловская область','Пензенская область', ... 'Псковская область','Ростовская область','Рязанская область', ... 'Самарская область','Санкт-Петербург','Саратовская область', ... 'Сахалинская область','Свердловская область','Смоленская область', ... 'Тамбовская область','Тверская область','Томская область', ... 'Тульская область','Тюменская область','Ульяновская область', ... 'Челябинская область','Ярославская область','Еврейская АО', ... 'Ненецкий АО','Ханты-Мансийский АО','Чукотский АО','Ямало-Ненецкий АО'}; db.RegionKeys = { ... 'Adygea','Altay','Bashkortostan','Buryatia','Dagestan','Ingushetia', ... 'KabardinoBalkaria','Kalmykia','KarachayCherkessia','Karelia','Komi', ... 'Crimea','MariEl','Mordovia','Yakutia','NorthOssetia','Tatarstan', ... 'Tyva','Khakassia','Chechnya','Chuvashia','Udmurtia','AltayKray', ... 'Zabaikalye','Kamchatka','KrasnodarKray','KrasnoyarskKray','PermKray', ... 'PrimorskyKray','StavropolKray','KhabarovskKray','AmurOblast', ... 'ArkhOblast','AstrakhanOblast','BelgorodOblast','BryanskOblast', ... 'VladimirOblast','VolgogradOblast','VologdaOblast','VoronezhOblast', ... 'IvanovoOblast','IrkutskOblast','KaliningradOblast','KalugaOblast', ... 'KemerovoOblast','KirovOblast','KostromaOblast','KurganOblast', ... 'KurskOblast','LeningradOblast','LipetskOblast','MagadanOblast', ... 'Moscow','MurmanskOblast','NizhnyOblast','NovgorodOblast', ... 'NovosibirskOblast','OmskOblast','OrenburgOblast','OryolOblast', ... 'PenzaOblast','PskovOblast','RostovOblast','RyazanOblast', ... 'SamaraOblast','SaintPetersburg','SaratovOblast','SakhOblast', ... 'SverdlovskOblast','SmolenskOblast','TambovOblast','TverOblast', ... 'TomskOblast','TulaOblast','TyumenOblast','UlyanovskOblast', ... 'ChelyabinskOblast','YaroslavlOblast','JewishAO','NenetskAO', ... 'KhMAO','ChukotkaAO','YNAO'}; % [FIX-9] Параметр Вейбулла k по регионам % A=2.0 (степь/равнина), B=1.8 (переходный), C=1.6 (горный/арктический) db.WeibullK.Adygea='A'; db.WeibullK.Altay='C'; db.WeibullK.Bashkortostan='B'; db.WeibullK.Buryatia='C'; db.WeibullK.Dagestan='C'; db.WeibullK.Ingushetia='C'; db.WeibullK.KabardinoBalkaria='C'; db.WeibullK.Kalmykia='A'; db.WeibullK.KarachayCherkessia='C'; db.WeibullK.Karelia='B'; db.WeibullK.Komi='B'; db.WeibullK.Crimea='A'; db.WeibullK.MariEl='B'; db.WeibullK.Mordovia='B'; db.WeibullK.Yakutia='C'; db.WeibullK.NorthOssetia='C'; db.WeibullK.Tatarstan='B'; db.WeibullK.Tyva='C'; db.WeibullK.Khakassia='B'; db.WeibullK.Chechnya='C'; db.WeibullK.Chuvashia='B'; db.WeibullK.Udmurtia='B'; db.WeibullK.AltayKray='B'; db.WeibullK.Zabaikalye='C'; db.WeibullK.Kamchatka='C'; db.WeibullK.KrasnodarKray='A'; db.WeibullK.KrasnoyarskKray='B'; db.WeibullK.PermKray='B'; db.WeibullK.PrimorskyKray='B'; db.WeibullK.StavropolKray='A'; db.WeibullK.KhabarovskKray='B'; db.WeibullK.AmurOblast='B'; db.WeibullK.ArkhOblast='B'; db.WeibullK.AstrakhanOblast='A'; db.WeibullK.BelgorodOblast='A'; db.WeibullK.BryanskOblast='B'; db.WeibullK.VladimirOblast='B'; db.WeibullK.VolgogradOblast='A'; db.WeibullK.VologdaOblast='B'; db.WeibullK.VoronezhOblast='A'; db.WeibullK.IvanovoOblast='B'; db.WeibullK.IrkutskOblast='C'; db.WeibullK.KaliningradOblast='A'; db.WeibullK.KalugaOblast='B'; db.WeibullK.KemerovoOblast='B'; db.WeibullK.KirovOblast='B'; db.WeibullK.KostromaOblast='B'; db.WeibullK.KurganOblast='B'; db.WeibullK.KurskOblast='A'; db.WeibullK.LeningradOblast='B'; db.WeibullK.LipetskOblast='A'; db.WeibullK.MagadanOblast='C'; db.WeibullK.Moscow='B'; db.WeibullK.MurmanskOblast='B'; db.WeibullK.NizhnyOblast='B'; db.WeibullK.NovgorodOblast='B'; db.WeibullK.NovosibirskOblast='A'; db.WeibullK.OmskOblast='A'; db.WeibullK.OrenburgOblast='A'; db.WeibullK.OryolOblast='B'; db.WeibullK.PenzaOblast='B'; db.WeibullK.PskovOblast='B'; db.WeibullK.RostovOblast='A'; db.WeibullK.RyazanOblast='B'; db.WeibullK.SamaraOblast='A'; db.WeibullK.SaintPetersburg='B'; db.WeibullK.SaratovOblast='A'; db.WeibullK.SakhOblast='B'; db.WeibullK.SverdlovskOblast='B'; db.WeibullK.SmolenskOblast='B'; db.WeibullK.TambovOblast='A'; db.WeibullK.TverOblast='B'; db.WeibullK.TomskOblast='B'; db.WeibullK.TulaOblast='B'; db.WeibullK.TyumenOblast='B'; db.WeibullK.UlyanovskOblast='B'; db.WeibullK.ChelyabinskOblast='B'; db.WeibullK.YaroslavlOblast='B'; db.WeibullK.JewishAO='B'; db.WeibullK.NenetskAO='C'; db.WeibullK.KhMAO='B'; db.WeibullK.ChukotkaAO='C'; db.WeibullK.YNAO='C'; db.WeibullKValue.A = 2.0; db.WeibullKValue.B = 1.8; db.WeibullKValue.C = 1.6; % ========================================================================= % ГОРОДА ПО РЕГИОНАМ % ========================================================================= db.Cities.Adygea = {'Майкоп','Адыгейск','Яблоновский'}; db.Cities.Altay = {'Горно-Алтайск','Майма','Кош-Агач'}; db.Cities.Bashkortostan = {'Уфа','Стерлитамак','Салават'}; db.Cities.Buryatia = {'Улан-Удэ','Северобайкальск','Гусиноозёрск'}; db.Cities.Dagestan = {'Махачкала','Дербент','Хасавюрт'}; db.Cities.Ingushetia = {'Магас','Назрань','Малгобек'}; db.Cities.KabardinoBalkaria = {'Нальчик','Прохладный','Баксан'}; db.Cities.Kalmykia = {'Элиста','Лагань','Городовиковск'}; db.Cities.KarachayCherkessia= {'Черкесск','Карачаевск','Усть-Джегута'}; db.Cities.Karelia = {'Петрозаводск','Сортавала','Кондопога'}; db.Cities.Komi = {'Сыктывкар','Ухта','Воркута'}; db.Cities.Crimea = {'Симферополь','Севастополь','Ялта'}; db.Cities.MariEl = {'Йошкар-Ола','Волжск','Козьмодемьянск'}; db.Cities.Mordovia = {'Саранск','Рузаевка','Ковылкино'}; db.Cities.Yakutia = {'Якутск','Мирный','Нерюнгри'}; db.Cities.NorthOssetia = {'Владикавказ','Моздок','Беслан'}; db.Cities.Tatarstan = {'Казань','Набережные Челны','Альметьевск'}; db.Cities.Tyva = {'Кызыл','Ак-Довурак','Туран'}; db.Cities.Khakassia = {'Абакан','Черногорск','Саяногорск'}; db.Cities.Chechnya = {'Грозный','Гудермес','Шали'}; db.Cities.Chuvashia = {'Чебоксары','Новочебоксарск','Канаш'}; db.Cities.Udmurtia = {'Ижевск','Сарапул','Воткинск'}; db.Cities.AltayKray = {'Барнаул','Бийск','Рубцовск'}; db.Cities.Zabaikalye = {'Чита','Краснокаменск','Борзя'}; db.Cities.Kamchatka = {'Петропавловск-Камчатский','Елизово','Вилючинск'}; db.Cities.KrasnodarKray = {'Краснодар','Сочи','Новороссийск'}; db.Cities.KrasnoyarskKray = {'Красноярск','Норильск','Ачинск'}; db.Cities.PermKray = {'Пермь','Березники','Соликамск'}; db.Cities.PrimorskyKray = {'Владивосток','Находка','Уссурийск'}; db.Cities.StavropolKray = {'Ставрополь','Пятигорск','Невинномысск'}; db.Cities.KhabarovskKray = {'Хабаровск','Комсомольск-на-Амуре','Амурск'}; db.Cities.AmurOblast = {'Благовещенск','Белогорск','Свободный'}; db.Cities.ArkhOblast = {'Архангельск','Северодвинск','Котлас'}; db.Cities.AstrakhanOblast = {'Астрахань','Ахтубинск','Знаменск'}; db.Cities.BelgorodOblast = {'Белгород','Старый Оскол','Губкин'}; db.Cities.BryanskOblast = {'Брянск','Клинцы','Новозыбков'}; db.Cities.VladimirOblast = {'Владимир','Ковров','Муром'}; db.Cities.VolgogradOblast = {'Волгоград','Волжский','Камышин'}; db.Cities.VologdaOblast = {'Вологда','Череповец','Великий Устюг'}; db.Cities.VoronezhOblast = {'Воронеж','Борисоглебск','Россошь'}; db.Cities.IvanovoOblast = {'Иваново','Кинешма','Шуя'}; db.Cities.IrkutskOblast = {'Иркутск','Братск','Ангарск'}; db.Cities.KaliningradOblast = {'Калининград','Советск','Черняховск'}; db.Cities.KalugaOblast = {'Калуга','Обнинск','Людиново'}; db.Cities.KemerovoOblast = {'Кемерово','Новокузнецк','Прокопьевск'}; db.Cities.KirovOblast = {'Киров','Кирово-Чепецк','Вятские Поляны'}; db.Cities.KostromaOblast = {'Кострома','Шарья','Буй'}; db.Cities.KurganOblast = {'Курган','Шадринск','Катайск'}; db.Cities.KurskOblast = {'Курск','Железногорск','Льгов'}; db.Cities.LeningradOblast = {'Гатчина','Выборг','Тихвин'}; db.Cities.LipetskOblast = {'Липецк','Елец','Грязи'}; db.Cities.MagadanOblast = {'Магадан','Сусуман','Палатка'}; db.Cities.Moscow = {'Москва','Подольск','Коломна'}; db.Cities.MurmanskOblast = {'Мурманск','Апатиты','Североморск'}; db.Cities.NizhnyOblast = {'Нижний Новгород','Дзержинск','Арзамас'}; db.Cities.NovgorodOblast = {'Великий Новгород','Боровичи','Старая Русса'}; db.Cities.NovosibirskOblast = {'Новосибирск','Бердск','Искитим'}; db.Cities.OmskOblast = {'Омск','Тара','Калачинск'}; db.Cities.OrenburgOblast = {'Оренбург','Орск','Новотроицк'}; db.Cities.OryolOblast = {'Орёл','Ливны','Мценск'}; db.Cities.PenzaOblast = {'Пенза','Кузнецк','Заречный'}; db.Cities.PskovOblast = {'Псков','Великие Луки','Остров'}; db.Cities.RostovOblast = {'Ростов-на-Дону','Таганрог','Новочеркасск'}; db.Cities.RyazanOblast = {'Рязань','Касимов','Скопин'}; db.Cities.SamaraOblast = {'Самара','Тольятти','Сызрань'}; db.Cities.SaintPetersburg = {'Санкт-Петербург','Петергоф','Пушкин'}; db.Cities.SaratovOblast = {'Саратов','Балаково','Энгельс'}; db.Cities.SakhOblast = {'Южно-Сахалинск','Корсаков','Холмск'}; db.Cities.SverdlovskOblast = {'Екатеринбург','Нижний Тагил','Каменск-Уральский'}; db.Cities.SmolenskOblast = {'Смоленск','Рославль','Вязьма'}; db.Cities.TambovOblast = {'Тамбов','Мичуринск','Рассказово'}; db.Cities.TverOblast = {'Тверь','Ржев','Вышний Волочёк'}; db.Cities.TomskOblast = {'Томск','Северск','Стрежевой'}; db.Cities.TulaOblast = {'Тула','Новомосковск','Щёкино'}; db.Cities.TyumenOblast = {'Тюмень','Тобольск','Ишим'}; db.Cities.UlyanovskOblast = {'Ульяновск','Димитровград','Инза'}; db.Cities.ChelyabinskOblast = {'Челябинск','Магнитогорск','Миасс'}; db.Cities.YaroslavlOblast = {'Ярославль','Рыбинск','Переславль-Залесский'}; db.Cities.JewishAO = {'Биробиджан','Облучье','Смидович'}; db.Cities.NenetskAO = {'Нарьян-Мар','Искателей','Красное'}; db.Cities.KhMAO = {'Ханты-Мансийск','Сургут','Нижневартовск'}; db.Cities.ChukotkaAO = {'Анадырь','Певек','Билибино'}; db.Cities.YNAO = {'Салехард','Новый Уренгой','Ноябрьск'}; % ========================================================================= % ПРОФИЛИ НАГРУЗКИ (нормированные к единице пика) % ========================================================================= db.Profiles.Winter.Weekday = [0.65,0.60,0.58,0.60,0.70,0.85,1.05,1.20,1.15,1.00,0.90,0.85,0.80,0.82,0.88,1.05,1.20,1.35,1.45,1.30,1.10,0.95,0.82,0.70]; db.Profiles.Winter.Weekend = [0.55,0.50,0.48,0.50,0.55,0.62,0.72,0.85,1.00,1.05,1.00,0.95,0.90,0.88,0.90,0.95,1.05,1.20,1.30,1.20,1.05,0.90,0.75,0.62]; db.Profiles.Spring.Weekday = [0.52,0.48,0.46,0.50,0.60,0.75,0.92,1.05,1.08,0.95,0.85,0.78,0.72,0.76,0.82,0.96,1.08,1.22,1.35,1.18,1.00,0.86,0.72,0.58]; db.Profiles.Spring.Weekend = [0.45,0.42,0.40,0.43,0.50,0.58,0.68,0.80,0.95,1.02,0.98,0.92,0.88,0.86,0.88,0.92,1.00,1.12,1.22,1.12,0.98,0.84,0.70,0.56]; db.Profiles.Summer.Weekday = [0.50,0.45,0.43,0.47,0.57,0.72,0.88,1.00,1.05,1.02,1.05,1.10,1.12,1.10,1.08,1.05,1.08,1.18,1.28,1.15,0.98,0.84,0.70,0.56]; db.Profiles.Summer.Weekend = [0.42,0.38,0.36,0.40,0.48,0.56,0.65,0.76,0.90,1.00,1.05,1.08,1.10,1.08,1.06,1.04,1.06,1.14,1.20,1.10,0.96,0.82,0.68,0.54]; db.Profiles.Autumn.Weekday = [0.54,0.50,0.48,0.52,0.62,0.78,0.94,1.06,1.10,0.96,0.87,0.80,0.74,0.78,0.84,0.98,1.10,1.24,1.38,1.20,1.02,0.88,0.74,0.60]; db.Profiles.Autumn.Weekend = [0.47,0.44,0.42,0.45,0.52,0.60,0.70,0.82,0.97,1.04,1.00,0.94,0.90,0.88,0.90,0.94,1.02,1.14,1.24,1.14,1.00,0.86,0.72,0.58]; db.LoadType.industrial = [0.60,0.58,0.57,0.58,0.65,0.75,0.88,1.10,1.20,1.18,1.15,1.12,1.08,1.10,1.15,1.12,1.05,0.85,0.70,0.62,0.58,0.56,0.56,0.57]; db.LoadType.residential = [0.48,0.44,0.42,0.44,0.52,0.68,0.95,1.18,1.22,0.95,0.80,0.75,0.72,0.74,0.76,0.85,0.95,1.15,1.40,1.35,1.20,1.05,0.82,0.62]; db.LoadType.mixed = [0.54,0.51,0.49,0.51,0.58,0.72,0.92,1.14,1.21,1.07,0.98,0.94,0.90,0.92,0.96,0.99,1.00,1.00,1.05,0.99,0.89,0.81,0.69,0.60]; % ========================================================================= % РЕГИОНАЛЬНЫЕ ЭКОНОМИЧЕСКИЕ И КЛИМАТИЧЕСКИЕ ДАННЫЕ % ========================================================================= db.Econ.Adygea = struct('fuel',68,'tariff',7.3,'co2',0.38,'T_Win',2,'T_Spr',12,'T_Sum',24,'T_Aut',14,'solar_frac_Win',0.45,'solar_frac_Spr',0.62,'solar_frac_Sum',0.8,'solar_frac_Aut',0.59,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.Altay = struct('fuel',82,'tariff',5.8,'co2',0.12,'T_Win',-14,'T_Spr',4,'T_Sum',18,'T_Aut',5,'solar_frac_Win',0.4,'solar_frac_Spr',0.57,'solar_frac_Sum',0.75,'solar_frac_Aut',0.54,'v_Win',4.0,'v_Spr',3.9,'v_Sum',3.8,'v_Aut',3.9); db.Econ.Bashkortostan = struct('fuel',74,'tariff',7.8,'co2',0.42,'T_Win',-14,'T_Spr',4,'T_Sum',19,'T_Aut',6,'solar_frac_Win',0.38,'solar_frac_Spr',0.53,'solar_frac_Sum',0.68,'solar_frac_Aut',0.5,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.Buryatia = struct('fuel',88,'tariff',6.2,'co2',0.1,'T_Win',-24,'T_Spr',2,'T_Sum',20,'T_Aut',3,'solar_frac_Win',0.5,'solar_frac_Spr',0.66,'solar_frac_Sum',0.82,'solar_frac_Aut',0.63,'v_Win',3.5,'v_Spr',3.2,'v_Sum',3.0,'v_Aut',3.2); db.Econ.Dagestan = struct('fuel',70,'tariff',6.8,'co2',0.35,'T_Win',3,'T_Spr',13,'T_Sum',26,'T_Aut',15,'solar_frac_Win',0.5,'solar_frac_Spr',0.68,'solar_frac_Sum',0.85,'solar_frac_Aut',0.65,'v_Win',5.0,'v_Spr',4.5,'v_Sum',4.0,'v_Aut',4.5); db.Econ.Ingushetia = struct('fuel',72,'tariff',6.8,'co2',0.38,'T_Win',1,'T_Spr',11,'T_Sum',24,'T_Aut',13,'solar_frac_Win',0.44,'solar_frac_Spr',0.61,'solar_frac_Sum',0.78,'solar_frac_Aut',0.58,'v_Win',4.0,'v_Spr',3.6,'v_Sum',3.2,'v_Aut',3.6); db.Econ.KabardinoBalkaria = struct('fuel',72,'tariff',6.8,'co2',0.38,'T_Win',0,'T_Spr',10,'T_Sum',23,'T_Aut',12,'solar_frac_Win',0.44,'solar_frac_Spr',0.62,'solar_frac_Sum',0.8,'solar_frac_Aut',0.59,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.Kalmykia = struct('fuel',70,'tariff',7.0,'co2',0.38,'T_Win',-3,'T_Spr',9,'T_Sum',26,'T_Aut',12,'solar_frac_Win',0.48,'solar_frac_Spr',0.65,'solar_frac_Sum',0.82,'solar_frac_Aut',0.62,'v_Win',7.5,'v_Spr',6.8,'v_Sum',6.0,'v_Aut',6.8); db.Econ.KarachayCherkessia = struct('fuel',72,'tariff',6.8,'co2',0.38,'T_Win',-1,'T_Spr',10,'T_Sum',23,'T_Aut',11,'solar_frac_Win',0.44,'solar_frac_Spr',0.62,'solar_frac_Sum',0.8,'solar_frac_Aut',0.59,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.Karelia = struct('fuel',84,'tariff',6.5,'co2',0.28,'T_Win',-12,'T_Spr',2,'T_Sum',17,'T_Aut',4,'solar_frac_Win',0.28,'solar_frac_Spr',0.42,'solar_frac_Sum',0.55,'solar_frac_Aut',0.39,'v_Win',6.5,'v_Spr',5.5,'v_Sum',4.5,'v_Aut',5.5); db.Econ.Komi = struct('fuel',90,'tariff',7.0,'co2',0.35,'T_Win',-18,'T_Spr',-1,'T_Sum',16,'T_Aut',2,'solar_frac_Win',0.25,'solar_frac_Spr',0.41,'solar_frac_Sum',0.58,'solar_frac_Aut',0.39,'v_Win',6.0,'v_Spr',5.2,'v_Sum',4.5,'v_Aut',5.2); db.Econ.Crimea = struct('fuel',72,'tariff',5.0,'co2',0.36,'T_Win',2,'T_Spr',12,'T_Sum',24,'T_Aut',14,'solar_frac_Win',0.48,'solar_frac_Spr',0.65,'solar_frac_Sum',0.82,'solar_frac_Aut',0.62,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.0,'v_Aut',4.8); db.Econ.MariEl = struct('fuel',77,'tariff',5.2,'co2',0.42,'T_Win',-13,'T_Spr',3,'T_Sum',19,'T_Aut',5,'solar_frac_Win',0.34,'solar_frac_Spr',0.48,'solar_frac_Sum',0.62,'solar_frac_Aut',0.45,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.Mordovia = struct('fuel',76,'tariff',5.0,'co2',0.42,'T_Win',-12,'T_Spr',4,'T_Sum',20,'T_Aut',6,'solar_frac_Win',0.35,'solar_frac_Spr',0.49,'solar_frac_Sum',0.64,'solar_frac_Aut',0.46,'v_Win',4.8,'v_Spr',4.2,'v_Sum',3.6,'v_Aut',4.2); db.Econ.Yakutia = struct('fuel',110,'tariff',8.5,'co2',0.08,'T_Win',-38,'T_Spr',-5,'T_Sum',19,'T_Aut',-1,'solar_frac_Win',0.52,'solar_frac_Spr',0.66,'solar_frac_Sum',0.8,'solar_frac_Aut',0.63,'v_Win',3.5,'v_Spr',3.2,'v_Sum',3.0,'v_Aut',3.2); db.Econ.NorthOssetia = struct('fuel',71,'tariff',6.8,'co2',0.38,'T_Win',1,'T_Spr',11,'T_Sum',24,'T_Aut',13,'solar_frac_Win',0.44,'solar_frac_Spr',0.61,'solar_frac_Sum',0.78,'solar_frac_Aut',0.58,'v_Win',4.0,'v_Spr',3.6,'v_Sum',3.2,'v_Aut',3.6); db.Econ.Tatarstan = struct('fuel',73,'tariff',8.2,'co2',0.42,'T_Win',-13,'T_Spr',4,'T_Sum',20,'T_Aut',6,'solar_frac_Win',0.35,'solar_frac_Spr',0.49,'solar_frac_Sum',0.64,'solar_frac_Aut',0.46,'v_Win',5.2,'v_Spr',4.6,'v_Sum',4.0,'v_Aut',4.6); db.Econ.Tyva = struct('fuel',95,'tariff',7.2,'co2',0.08,'T_Win',-28,'T_Spr',-2,'T_Sum',20,'T_Aut',2,'solar_frac_Win',0.52,'solar_frac_Spr',0.67,'solar_frac_Sum',0.82,'solar_frac_Aut',0.64,'v_Win',3.8,'v_Spr',3.5,'v_Sum',3.2,'v_Aut',3.5); db.Econ.Khakassia = struct('fuel',85,'tariff',5.5,'co2',0.08,'T_Win',-18,'T_Spr',3,'T_Sum',20,'T_Aut',4,'solar_frac_Win',0.48,'solar_frac_Spr',0.63,'solar_frac_Sum',0.78,'solar_frac_Aut',0.6,'v_Win',5.0,'v_Spr',4.5,'v_Sum',4.0,'v_Aut',4.5); db.Econ.Chechnya = struct('fuel',70,'tariff',6.8,'co2',0.38,'T_Win',2,'T_Spr',12,'T_Sum',25,'T_Aut',14,'solar_frac_Win',0.44,'solar_frac_Spr',0.62,'solar_frac_Sum',0.8,'solar_frac_Aut',0.59,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.Chuvashia = struct('fuel',76,'tariff',5.2,'co2',0.42,'T_Win',-13,'T_Spr',4,'T_Sum',20,'T_Aut',5,'solar_frac_Win',0.34,'solar_frac_Spr',0.48,'solar_frac_Sum',0.62,'solar_frac_Aut',0.45,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.Udmurtia = struct('fuel',77,'tariff',5.0,'co2',0.42,'T_Win',-14,'T_Spr',3,'T_Sum',19,'T_Aut',5,'solar_frac_Win',0.33,'solar_frac_Spr',0.46,'solar_frac_Sum',0.6,'solar_frac_Aut',0.43,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.0,'v_Aut',4.8); db.Econ.AltayKray = struct('fuel',80,'tariff',5.5,'co2',0.12,'T_Win',-16,'T_Spr',4,'T_Sum',21,'T_Aut',5,'solar_frac_Win',0.42,'solar_frac_Spr',0.59,'solar_frac_Sum',0.76,'solar_frac_Aut',0.56,'v_Win',4.8,'v_Spr',4.4,'v_Sum',4.0,'v_Aut',4.4); db.Econ.Zabaikalye = struct('fuel',92,'tariff',7.0,'co2',0.08,'T_Win',-26,'T_Spr',0,'T_Sum',19,'T_Aut',2,'solar_frac_Win',0.52,'solar_frac_Spr',0.67,'solar_frac_Sum',0.82,'solar_frac_Aut',0.64,'v_Win',4.2,'v_Spr',3.9,'v_Sum',3.5,'v_Aut',3.9); db.Econ.Kamchatka = struct('fuel',100,'tariff',9.5,'co2',0.05,'T_Win',-10,'T_Spr',2,'T_Sum',14,'T_Aut',3,'solar_frac_Win',0.28,'solar_frac_Spr',0.4,'solar_frac_Sum',0.52,'solar_frac_Aut',0.37,'v_Win',7.5,'v_Spr',6.5,'v_Sum',5.5,'v_Aut',6.5); db.Econ.KrasnodarKray = struct('fuel',67,'tariff',7.3,'co2',0.38,'T_Win',3,'T_Spr',13,'T_Sum',26,'T_Aut',15,'solar_frac_Win',0.48,'solar_frac_Spr',0.65,'solar_frac_Sum',0.82,'solar_frac_Aut',0.62,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.0,'v_Aut',4.8); db.Econ.KrasnoyarskKray = struct('fuel',85,'tariff',4.2,'co2',0.08,'T_Win',-18,'T_Spr',2,'T_Sum',19,'T_Aut',3,'solar_frac_Win',0.42,'solar_frac_Spr',0.57,'solar_frac_Sum',0.72,'solar_frac_Aut',0.54,'v_Win',4.5,'v_Spr',4.2,'v_Sum',3.8,'v_Aut',4.2); db.Econ.PermKray = struct('fuel',80,'tariff',5.5,'co2',0.45,'T_Win',-15,'T_Spr',3,'T_Sum',19,'T_Aut',4,'solar_frac_Win',0.32,'solar_frac_Spr',0.46,'solar_frac_Sum',0.6,'solar_frac_Aut',0.43,'v_Win',5.8,'v_Spr',5.0,'v_Sum',4.2,'v_Aut',5.0); db.Econ.PrimorskyKray = struct('fuel',90,'tariff',7.8,'co2',0.55,'T_Win',-12,'T_Spr',5,'T_Sum',20,'T_Aut',9,'solar_frac_Win',0.4,'solar_frac_Spr',0.55,'solar_frac_Sum',0.7,'solar_frac_Aut',0.52,'v_Win',6.5,'v_Spr',5.8,'v_Sum',5.0,'v_Aut',5.8); db.Econ.StavropolKray = struct('fuel',70,'tariff',7.0,'co2',0.38,'T_Win',-1,'T_Spr',10,'T_Sum',24,'T_Aut',12,'solar_frac_Win',0.5,'solar_frac_Spr',0.66,'solar_frac_Sum',0.82,'solar_frac_Aut',0.63,'v_Win',6.5,'v_Spr',5.8,'v_Sum',5.0,'v_Aut',5.8); db.Econ.KhabarovskKray = struct('fuel',92,'tariff',8.0,'co2',0.55,'T_Win',-20,'T_Spr',4,'T_Sum',22,'T_Aut',7,'solar_frac_Win',0.4,'solar_frac_Spr',0.56,'solar_frac_Sum',0.72,'solar_frac_Aut',0.53,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.0,'v_Aut',4.8); db.Econ.AmurOblast = struct('fuel',90,'tariff',7.5,'co2',0.12,'T_Win',-24,'T_Spr',2,'T_Sum',22,'T_Aut',5,'solar_frac_Win',0.48,'solar_frac_Spr',0.63,'solar_frac_Sum',0.78,'solar_frac_Aut',0.6,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.ArkhOblast = struct('fuel',88,'tariff',7.2,'co2',0.28,'T_Win',-14,'T_Spr',-1,'T_Sum',16,'T_Aut',3,'solar_frac_Win',0.26,'solar_frac_Spr',0.41,'solar_frac_Sum',0.55,'solar_frac_Aut',0.38,'v_Win',7.0,'v_Spr',6.0,'v_Sum',5.0,'v_Aut',6.0); db.Econ.AstrakhanOblast = struct('fuel',70,'tariff',7.5,'co2',0.38,'T_Win',-5,'T_Spr',9,'T_Sum',28,'T_Aut',13,'solar_frac_Win',0.48,'solar_frac_Spr',0.66,'solar_frac_Sum',0.84,'solar_frac_Aut',0.63,'v_Win',7.0,'v_Spr',6.2,'v_Sum',5.5,'v_Aut',6.2); db.Econ.BelgorodOblast = struct('fuel',75,'tariff',4.8,'co2',0.42,'T_Win',-7,'T_Spr',7,'T_Sum',22,'T_Aut',8,'solar_frac_Win',0.38,'solar_frac_Spr',0.53,'solar_frac_Sum',0.68,'solar_frac_Aut',0.5,'v_Win',4.8,'v_Spr',4.2,'v_Sum',3.5,'v_Aut',4.2); db.Econ.BryanskOblast = struct('fuel',75,'tariff',5.0,'co2',0.42,'T_Win',-8,'T_Spr',6,'T_Sum',21,'T_Aut',7,'solar_frac_Win',0.36,'solar_frac_Spr',0.51,'solar_frac_Sum',0.66,'solar_frac_Aut',0.48,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.VladimirOblast = struct('fuel',77,'tariff',5.2,'co2',0.45,'T_Win',-10,'T_Spr',5,'T_Sum',20,'T_Aut',7,'solar_frac_Win',0.34,'solar_frac_Spr',0.49,'solar_frac_Sum',0.64,'solar_frac_Aut',0.46,'v_Win',4.8,'v_Spr',4.3,'v_Sum',3.8,'v_Aut',4.3); db.Econ.VolgogradOblast = struct('fuel',74,'tariff',7.5,'co2',0.38,'T_Win',-7,'T_Spr',8,'T_Sum',26,'T_Aut',10,'solar_frac_Win',0.45,'solar_frac_Spr',0.61,'solar_frac_Sum',0.78,'solar_frac_Aut',0.58,'v_Win',6.5,'v_Spr',5.8,'v_Sum',5.0,'v_Aut',5.8); db.Econ.VologdaOblast = struct('fuel',85,'tariff',6.8,'co2',0.28,'T_Win',-12,'T_Spr',2,'T_Sum',18,'T_Aut',4,'solar_frac_Win',0.28,'solar_frac_Spr',0.43,'solar_frac_Sum',0.58,'solar_frac_Aut',0.4,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.VoronezhOblast = struct('fuel',75,'tariff',4.8,'co2',0.42,'T_Win',-8,'T_Spr',7,'T_Sum',22,'T_Aut',8,'solar_frac_Win',0.38,'solar_frac_Spr',0.53,'solar_frac_Sum',0.68,'solar_frac_Aut',0.5,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.IvanovoOblast = struct('fuel',77,'tariff',5.5,'co2',0.45,'T_Win',-11,'T_Spr',5,'T_Sum',20,'T_Aut',6,'solar_frac_Win',0.33,'solar_frac_Spr',0.47,'solar_frac_Sum',0.62,'solar_frac_Aut',0.44,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.IrkutskOblast = struct('fuel',85,'tariff',4.0,'co2',0.08,'T_Win',-22,'T_Spr',1,'T_Sum',19,'T_Aut',3,'solar_frac_Win',0.48,'solar_frac_Spr',0.63,'solar_frac_Sum',0.78,'solar_frac_Aut',0.6,'v_Win',3.8,'v_Spr',3.5,'v_Sum',3.2,'v_Aut',3.5); db.Econ.KaliningradOblast = struct('fuel',80,'tariff',6.5,'co2',0.52,'T_Win',-2,'T_Spr',7,'T_Sum',19,'T_Aut',9,'solar_frac_Win',0.3,'solar_frac_Spr',0.45,'solar_frac_Sum',0.6,'solar_frac_Aut',0.42,'v_Win',6.5,'v_Spr',5.7,'v_Sum',4.8,'v_Aut',5.7); db.Econ.KalugaOblast = struct('fuel',76,'tariff',5.2,'co2',0.45,'T_Win',-9,'T_Spr',6,'T_Sum',20,'T_Aut',7,'solar_frac_Win',0.34,'solar_frac_Spr',0.49,'solar_frac_Sum',0.64,'solar_frac_Aut',0.46,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.KemerovoOblast = struct('fuel',82,'tariff',4.5,'co2',0.08,'T_Win',-17,'T_Spr',3,'T_Sum',19,'T_Aut',4,'solar_frac_Win',0.4,'solar_frac_Spr',0.55,'solar_frac_Sum',0.7,'solar_frac_Aut',0.52,'v_Win',4.5,'v_Spr',4.2,'v_Sum',3.8,'v_Aut',4.2); db.Econ.KirovOblast = struct('fuel',80,'tariff',6.0,'co2',0.42,'T_Win',-14,'T_Spr',2,'T_Sum',18,'T_Aut',4,'solar_frac_Win',0.31,'solar_frac_Spr',0.45,'solar_frac_Sum',0.6,'solar_frac_Aut',0.42,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.KostromaOblast = struct('fuel',78,'tariff',5.8,'co2',0.45,'T_Win',-12,'T_Spr',4,'T_Sum',18,'T_Aut',5,'solar_frac_Win',0.32,'solar_frac_Spr',0.46,'solar_frac_Sum',0.6,'solar_frac_Aut',0.43,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.KurganOblast = struct('fuel',78,'tariff',5.5,'co2',0.42,'T_Win',-16,'T_Spr',3,'T_Sum',19,'T_Aut',5,'solar_frac_Win',0.38,'solar_frac_Spr',0.53,'solar_frac_Sum',0.68,'solar_frac_Aut',0.5,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.KurskOblast = struct('fuel',75,'tariff',4.8,'co2',0.42,'T_Win',-8,'T_Spr',7,'T_Sum',22,'T_Aut',8,'solar_frac_Win',0.37,'solar_frac_Spr',0.52,'solar_frac_Sum',0.67,'solar_frac_Aut',0.49,'v_Win',4.8,'v_Spr',4.3,'v_Sum',3.8,'v_Aut',4.3); db.Econ.LeningradOblast = struct('fuel',82,'tariff',6.5,'co2',0.28,'T_Win',-10,'T_Spr',4,'T_Sum',18,'T_Aut',6,'solar_frac_Win',0.28,'solar_frac_Spr',0.43,'solar_frac_Sum',0.58,'solar_frac_Aut',0.4,'v_Win',6.0,'v_Spr',5.2,'v_Sum',4.5,'v_Aut',5.2); db.Econ.LipetskOblast = struct('fuel',75,'tariff',4.8,'co2',0.42,'T_Win',-8,'T_Spr',7,'T_Sum',22,'T_Aut',8,'solar_frac_Win',0.38,'solar_frac_Spr',0.53,'solar_frac_Sum',0.68,'solar_frac_Aut',0.5,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.MagadanOblast = struct('fuel',105,'tariff',11.0,'co2',0.08,'T_Win',-20,'T_Spr',-3,'T_Sum',12,'T_Aut',0,'solar_frac_Win',0.35,'solar_frac_Spr',0.5,'solar_frac_Sum',0.65,'solar_frac_Aut',0.47,'v_Win',6.5,'v_Spr',5.8,'v_Sum',5.0,'v_Aut',5.8); db.Econ.Moscow = struct('fuel',78,'tariff',6.8,'co2',0.45,'T_Win',-10,'T_Spr',6,'T_Sum',20,'T_Aut',7,'solar_frac_Win',0.3,'solar_frac_Spr',0.45,'solar_frac_Sum',0.6,'solar_frac_Aut',0.42,'v_Win',4.5,'v_Spr',4.0,'v_Sum',3.5,'v_Aut',4.0); db.Econ.MurmanskOblast = struct('fuel',92,'tariff',9.0,'co2',0.15,'T_Win',-13,'T_Spr',-4,'T_Sum',13,'T_Aut',1,'solar_frac_Win',0.2,'solar_frac_Spr',0.4,'solar_frac_Sum',0.6,'solar_frac_Aut',0.37,'v_Win',8.0,'v_Spr',6.8,'v_Sum',5.5,'v_Aut',6.8); db.Econ.NizhnyOblast = struct('fuel',77,'tariff',5.0,'co2',0.42,'T_Win',-12,'T_Spr',5,'T_Sum',20,'T_Aut',6,'solar_frac_Win',0.34,'solar_frac_Spr',0.48,'solar_frac_Sum',0.63,'solar_frac_Aut',0.45,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.NovgorodOblast = struct('fuel',80,'tariff',6.2,'co2',0.28,'T_Win',-10,'T_Spr',4,'T_Sum',18,'T_Aut',6,'solar_frac_Win',0.3,'solar_frac_Spr',0.45,'solar_frac_Sum',0.6,'solar_frac_Aut',0.42,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.NovosibirskOblast = struct('fuel',80,'tariff',4.8,'co2',0.12,'T_Win',-18,'T_Spr',3,'T_Sum',20,'T_Aut',4,'solar_frac_Win',0.4,'solar_frac_Spr',0.56,'solar_frac_Sum',0.72,'solar_frac_Aut',0.53,'v_Win',5.0,'v_Spr',4.5,'v_Sum',4.0,'v_Aut',4.5); db.Econ.OmskOblast = struct('fuel',78,'tariff',5.2,'co2',0.12,'T_Win',-18,'T_Spr',4,'T_Sum',21,'T_Aut',4,'solar_frac_Win',0.4,'solar_frac_Spr',0.56,'solar_frac_Sum',0.72,'solar_frac_Aut',0.53,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.OrenburgOblast = struct('fuel',76,'tariff',5.0,'co2',0.42,'T_Win',-15,'T_Spr',5,'T_Sum',24,'T_Aut',7,'solar_frac_Win',0.42,'solar_frac_Spr',0.58,'solar_frac_Sum',0.74,'solar_frac_Aut',0.55,'v_Win',6.0,'v_Spr',5.4,'v_Sum',4.8,'v_Aut',5.4); db.Econ.OryolOblast = struct('fuel',75,'tariff',7.5,'co2',0.42,'T_Win',-8,'T_Spr',7,'T_Sum',21,'T_Aut',8,'solar_frac_Win',0.36,'solar_frac_Spr',0.51,'solar_frac_Sum',0.66,'solar_frac_Aut',0.48,'v_Win',4.8,'v_Spr',4.3,'v_Sum',3.8,'v_Aut',4.3); db.Econ.PenzaOblast = struct('fuel',76,'tariff',5.0,'co2',0.42,'T_Win',-11,'T_Spr',6,'T_Sum',21,'T_Aut',7,'solar_frac_Win',0.36,'solar_frac_Spr',0.51,'solar_frac_Sum',0.66,'solar_frac_Aut',0.48,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.PskovOblast = struct('fuel',80,'tariff',6.2,'co2',0.28,'T_Win',-10,'T_Spr',5,'T_Sum',18,'T_Aut',6,'solar_frac_Win',0.3,'solar_frac_Spr',0.45,'solar_frac_Sum',0.6,'solar_frac_Aut',0.42,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.RostovOblast = struct('fuel',69,'tariff',7.5,'co2',0.38,'T_Win',-2,'T_Spr',11,'T_Sum',25,'T_Aut',13,'solar_frac_Win',0.46,'solar_frac_Spr',0.63,'solar_frac_Sum',0.8,'solar_frac_Aut',0.6,'v_Win',6.0,'v_Spr',5.4,'v_Sum',4.8,'v_Aut',5.4); db.Econ.RyazanOblast = struct('fuel',76,'tariff',5.0,'co2',0.42,'T_Win',-9,'T_Spr',6,'T_Sum',21,'T_Aut',7,'solar_frac_Win',0.36,'solar_frac_Spr',0.51,'solar_frac_Sum',0.66,'solar_frac_Aut',0.48,'v_Win',4.8,'v_Spr',4.3,'v_Sum',3.8,'v_Aut',4.3); db.Econ.SamaraOblast = struct('fuel',76,'tariff',4.8,'co2',0.42,'T_Win',-13,'T_Spr',5,'T_Sum',22,'T_Aut',7,'solar_frac_Win',0.38,'solar_frac_Spr',0.54,'solar_frac_Sum',0.7,'solar_frac_Aut',0.51,'v_Win',5.8,'v_Spr',5.2,'v_Sum',4.5,'v_Aut',5.2); db.Econ.SaintPetersburg = struct('fuel',82,'tariff',7.2,'co2',0.28,'T_Win',-10,'T_Spr',5,'T_Sum',19,'T_Aut',7,'solar_frac_Win',0.28,'solar_frac_Spr',0.43,'solar_frac_Sum',0.58,'solar_frac_Aut',0.4,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.SaratovOblast = struct('fuel',74,'tariff',4.8,'co2',0.42,'T_Win',-11,'T_Spr',6,'T_Sum',24,'T_Aut',9,'solar_frac_Win',0.42,'solar_frac_Spr',0.58,'solar_frac_Sum',0.74,'solar_frac_Aut',0.55,'v_Win',6.0,'v_Spr',5.4,'v_Sum',4.8,'v_Aut',5.4); db.Econ.SakhOblast = struct('fuel',100,'tariff',10.5,'co2',0.05,'T_Win',-15,'T_Spr',3,'T_Sum',17,'T_Aut',6,'solar_frac_Win',0.35,'solar_frac_Spr',0.5,'solar_frac_Sum',0.65,'solar_frac_Aut',0.47,'v_Win',7.0,'v_Spr',6.2,'v_Sum',5.5,'v_Aut',6.2); db.Econ.SverdlovskOblast = struct('fuel',80,'tariff',5.2,'co2',0.45,'T_Win',-16,'T_Spr',3,'T_Sum',19,'T_Aut',4,'solar_frac_Win',0.32,'solar_frac_Spr',0.47,'solar_frac_Sum',0.62,'solar_frac_Aut',0.44,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.SmolenskOblast = struct('fuel',76,'tariff',5.2,'co2',0.42,'T_Win',-10,'T_Spr',6,'T_Sum',20,'T_Aut',7,'solar_frac_Win',0.33,'solar_frac_Spr',0.48,'solar_frac_Sum',0.63,'solar_frac_Aut',0.45,'v_Win',4.8,'v_Spr',4.3,'v_Sum',3.8,'v_Aut',4.3); db.Econ.TambovOblast = struct('fuel',75,'tariff',4.8,'co2',0.42,'T_Win',-9,'T_Spr',7,'T_Sum',22,'T_Aut',8,'solar_frac_Win',0.38,'solar_frac_Spr',0.53,'solar_frac_Sum',0.68,'solar_frac_Aut',0.5,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.TverOblast = struct('fuel',78,'tariff',5.8,'co2',0.45,'T_Win',-10,'T_Spr',5,'T_Sum',19,'T_Aut',6,'solar_frac_Win',0.32,'solar_frac_Spr',0.47,'solar_frac_Sum',0.62,'solar_frac_Aut',0.44,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.TomskOblast = struct('fuel',85,'tariff',5.5,'co2',0.12,'T_Win',-19,'T_Spr',2,'T_Sum',18,'T_Aut',3,'solar_frac_Win',0.38,'solar_frac_Spr',0.53,'solar_frac_Sum',0.68,'solar_frac_Aut',0.5,'v_Win',4.5,'v_Spr',4.2,'v_Sum',3.8,'v_Aut',4.2); db.Econ.TulaOblast = struct('fuel',76,'tariff',5.0,'co2',0.42,'T_Win',-9,'T_Spr',6,'T_Sum',21,'T_Aut',7,'solar_frac_Win',0.36,'solar_frac_Spr',0.51,'solar_frac_Sum',0.66,'solar_frac_Aut',0.48,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.TyumenOblast = struct('fuel',80,'tariff',5.0,'co2',0.12,'T_Win',-18,'T_Spr',2,'T_Sum',19,'T_Aut',3,'solar_frac_Win',0.35,'solar_frac_Spr',0.5,'solar_frac_Sum',0.65,'solar_frac_Aut',0.47,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.UlyanovskOblast = struct('fuel',76,'tariff',7.5,'co2',0.42,'T_Win',-12,'T_Spr',5,'T_Sum',21,'T_Aut',6,'solar_frac_Win',0.36,'solar_frac_Spr',0.51,'solar_frac_Sum',0.66,'solar_frac_Aut',0.48,'v_Win',5.2,'v_Spr',4.6,'v_Sum',4.0,'v_Aut',4.6); db.Econ.ChelyabinskOblast = struct('fuel',78,'tariff',5.2,'co2',0.45,'T_Win',-15,'T_Spr',4,'T_Sum',20,'T_Aut',5,'solar_frac_Win',0.38,'solar_frac_Spr',0.53,'solar_frac_Sum',0.68,'solar_frac_Aut',0.5,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.YaroslavlOblast = struct('fuel',78,'tariff',5.8,'co2',0.45,'T_Win',-12,'T_Spr',4,'T_Sum',19,'T_Aut',5,'solar_frac_Win',0.32,'solar_frac_Spr',0.47,'solar_frac_Sum',0.62,'solar_frac_Aut',0.44,'v_Win',5.0,'v_Spr',4.4,'v_Sum',3.8,'v_Aut',4.4); db.Econ.JewishAO = struct('fuel',92,'tariff',8.0,'co2',0.12,'T_Win',-22,'T_Spr',4,'T_Sum',22,'T_Aut',6,'solar_frac_Win',0.44,'solar_frac_Spr',0.59,'solar_frac_Sum',0.74,'solar_frac_Aut',0.56,'v_Win',4.5,'v_Spr',4.2,'v_Sum',3.8,'v_Aut',4.2); db.Econ.NenetskAO = struct('fuel',108,'tariff',14.0,'co2',0.28,'T_Win',-20,'T_Spr',-7,'T_Sum',12,'T_Aut',-2,'solar_frac_Win',0.22,'solar_frac_Spr',0.4,'solar_frac_Sum',0.58,'solar_frac_Aut',0.37,'v_Win',9.0,'v_Spr',7.8,'v_Sum',6.5,'v_Aut',7.8); db.Econ.KhMAO = struct('fuel',88,'tariff',6.5,'co2',0.12,'T_Win',-22,'T_Spr',-1,'T_Sum',18,'T_Aut',1,'solar_frac_Win',0.3,'solar_frac_Spr',0.46,'solar_frac_Sum',0.62,'solar_frac_Aut',0.43,'v_Win',5.5,'v_Spr',4.8,'v_Sum',4.2,'v_Aut',4.8); db.Econ.ChukotkaAO = struct('fuel',115,'tariff',18.0,'co2',0.05,'T_Win',-30,'T_Spr',-8,'T_Sum',10,'T_Aut',-5,'solar_frac_Win',0.28,'solar_frac_Spr',0.47,'solar_frac_Sum',0.65,'solar_frac_Aut',0.44,'v_Win',8.5,'v_Spr',7.5,'v_Sum',6.5,'v_Aut',7.5); db.Econ.YNAO = struct('fuel',100,'tariff',12.0,'co2',0.12,'T_Win',-26,'T_Spr',-4,'T_Sum',15,'T_Aut',-1,'solar_frac_Win',0.28,'solar_frac_Spr',0.45,'solar_frac_Sum',0.62,'solar_frac_Aut',0.42,'v_Win',7.0,'v_Spr',6.2,'v_Sum',5.5,'v_Aut',6.2); % ========================================================================= % ШИРОТЫ ГОРОДОВ % ========================================================================= db.Latitude.Maykop=44.60; db.Latitude.Adygeisk=44.88; db.Latitude.Yablonovskiy=44.77; db.Latitude.Kazan=55.80; db.Latitude.Moscow=55.75; db.Latitude.SaintPetersburg=59.95; db.Latitude.Krasnodar=45.03;db.Latitude.Sochi=43.60; db.Latitude.Norilsk=69.35; db.Latitude.Yakutsk=62.03; db.Latitude.GornoAltaysk=51.96; db.Latitude.Ufa=54.74; db.Latitude.UlanUde=51.83; db.Latitude.Makhachkala=42.98; db.Latitude.Magas=43.17; db.Latitude.Nalchik=43.48; db.Latitude.Elista=46.31; db.Latitude.Cherkessk=44.22; db.Latitude.Petrozavodsk=61.79; db.Latitude.Syktyvkar=61.67; db.Latitude.Simferopol=44.95; db.Latitude.Sevastopol=44.62; db.Latitude.Yalta=44.50; db.Latitude.YoshkarOla=56.63; db.Latitude.Saransk=54.19; db.Latitude.Vladikavkaz=43.04; db.Latitude.Kyzyl=51.72; db.Latitude.Abakan=53.72; db.Latitude.Grozny=43.32; db.Latitude.Cheboksary=56.15; db.Latitude.Izhevsk=56.85; db.Latitude.Barnaul=53.35; db.Latitude.Chita=52.05; db.Latitude.PetropavlovskKam=53.01; db.Latitude.Novorossiysk=44.72; db.Latitude.Krasnoyarsk=56.02; db.Latitude.Perm=58.01; db.Latitude.Vladivostok=43.12; db.Latitude.Stavropol=45.04; db.Latitude.Pyatigorsk=44.05; db.Latitude.Khabarovsk=48.48; db.Latitude.Blagoveshchensk=50.27; db.Latitude.Arkhangelsk=64.54; db.Latitude.Astrakhan=46.35; db.Latitude.Belgorod=50.60; db.Latitude.Bryansk=53.24; db.Latitude.Vladimir=56.13; db.Latitude.Volgograd=48.71;db.Latitude.Vologda=59.22; db.Latitude.Voronezh=51.67; db.Latitude.Ivanovo=57.00; db.Latitude.Irkutsk=52.29; db.Latitude.Bratsk=56.13; db.Latitude.Kaliningrad=54.71; db.Latitude.Kaluga=54.51; db.Latitude.Kemerovo=55.34; db.Latitude.Novokuznetsk=53.76; db.Latitude.Kirov=58.60; db.Latitude.Kostroma=57.77; db.Latitude.Kurgan=55.44; db.Latitude.Kursk=51.73; db.Latitude.Gatchina=59.56; db.Latitude.Lipetsk=52.61; db.Latitude.Magadan=59.56; db.Latitude.Podolsk=55.43; db.Latitude.Murmansk=68.97; db.Latitude.NizhnyNovgorod=56.33; db.Latitude.VelikyNovgorod=58.52; db.Latitude.Novosibirsk=55.03; db.Latitude.Omsk=54.99; db.Latitude.Orenburg=51.77; db.Latitude.Oryol=52.97; db.Latitude.Penza=53.20; db.Latitude.Pskov=57.82; db.Latitude.Rostov=47.23; db.Latitude.Taganrog=47.21; db.Latitude.Ryazan=54.63; db.Latitude.Samara=53.20; db.Latitude.Tolyatti=53.51; db.Latitude.Saratov=51.53; db.Latitude.YuzhnoSakhalinsk=46.96; db.Latitude.Yekaterinburg=56.84; db.Latitude.NizhnyTagil=57.92; db.Latitude.Smolensk=54.78; db.Latitude.Tambov=52.72; db.Latitude.Tver=56.86; db.Latitude.Tomsk=56.50; db.Latitude.Tula=54.19; db.Latitude.Tyumen=57.15; db.Latitude.Ulyanovsk=54.33;db.Latitude.Chelyabinsk=55.16; db.Latitude.Magnitogorsk=53.42; db.Latitude.Yaroslavl=57.63;db.Latitude.Birobidzhan=48.79; db.Latitude.NaryanMar=67.64; db.Latitude.KhantyMansiysk=61.00; db.Latitude.Surgut=61.25; db.Latitude.Nizhnevartovsk=60.94; db.Latitude.Anadyr=64.73; db.Latitude.Salekhard=66.53; db.Latitude.NovyUrengoy=66.09; db.Latitude.Noyabrsk=63.20; % ========================================================================= % ТИПЫ ГОРОДОВ % ========================================================================= db.CityType.Moscow='residential'; db.CityType.SaintPetersburg='residential'; db.CityType.Norilsk='industrial'; db.CityType.Surgut='industrial'; db.CityType.NovyUrengoy='industrial'; db.CityType.Vorkuta='industrial'; db.CityType.Sochi='residential'; db.CityType.Yakutsk='residential'; db.CityType.Kazan='mixed'; db.CityType.Krasnodar='mixed'; db.CityType.Yekaterinburg='mixed'; db.CityType.Novosibirsk='mixed'; db.CityType.Omsk='mixed'; db.CityType.Samara='mixed'; db.CityType.Chelyabinsk='mixed'; db.CityType.Rostov='mixed'; db.CityType.Ufa='mixed'; db.CityType.Voronezh='mixed'; db.CityType.Perm='industrial'; db.CityType.Krasnoyarsk='industrial'; db.CityType.Bratsk='industrial'; db.CityType.Magnitogorsk='industrial'; db.CityType.Novokuznetsk='industrial'; db.CityType.Irkutsk='mixed'; db.CityType.Vladivostok='mixed'; db.CityType.Khabarovsk='mixed'; db.CityType.Tolyatti='industrial'; db.CityType.Nizhnevartovsk='industrial'; db.CityType.KhantyMansiysk='mixed'; db.CityType.Anadyr='residential'; db.CityType.Salekhard='residential'; db.CityType.NaryanMar='industrial'; db.CityType.Murmansk='industrial'; db.CityType.Magadan='mixed'; % ========================================================================= % МАППИНГ КИРИЛЛИКА → КЛЮЧ % ========================================================================= cityNameList = { ... 'Майкоп','Адыгейск','Яблоновский', ... 'Казань','Москва','Санкт-Петербург','Краснодар','Сочи','Норильск','Якутск', ... 'Горно-Алтайск','Уфа','Улан-Удэ','Махачкала','Магас','Нальчик', ... 'Элиста','Черкесск','Петрозаводск','Сыктывкар','Симферополь','Севастополь','Ялта', ... 'Йошкар-Ола','Саранск','Владикавказ','Кызыл','Абакан','Грозный','Чебоксары', ... 'Ижевск','Барнаул','Чита','Петропавловск-Камчатский','Новороссийск', ... 'Красноярск','Пермь','Владивосток','Ставрополь','Пятигорск','Хабаровск', ... 'Благовещенск','Архангельск','Астрахань','Белгород','Брянск','Владимир', ... 'Волгоград','Вологда','Воронеж','Иваново','Иркутск','Братск','Калининград', ... 'Калуга','Кемерово','Новокузнецк','Киров','Кострома','Курган','Курск', ... 'Гатчина','Липецк','Магадан','Подольск','Мурманск','Нижний Новгород','Великий Новгород', ... 'Новосибирск','Омск','Оренбург','Орёл','Пенза','Псков','Ростов-на-Дону', ... 'Таганрог','Рязань','Самара','Тольятти','Саратов','Южно-Сахалинск', ... 'Екатеринбург','Нижний Тагил','Смоленск','Тамбов','Тверь','Томск', ... 'Тула','Тюмень','Ульяновск','Челябинск','Магнитогорск','Ярославль', ... 'Биробиджан','Нарьян-Мар','Ханты-Мансийск','Сургут','Нижневартовск', ... 'Анадырь','Салехард','Новый Уренгой','Ноябрьск'}; cityKeyList = { ... 'Maykop','Adygeisk','Yablonovskiy', ... 'Kazan','Moscow','SaintPetersburg','Krasnodar','Sochi','Norilsk','Yakutsk', ... 'GornoAltaysk','Ufa','UlanUde','Makhachkala','Magas','Nalchik', ... 'Elista','Cherkessk','Petrozavodsk','Syktyvkar','Simferopol','Sevastopol','Yalta', ... 'YoshkarOla','Saransk','Vladikavkaz','Kyzyl','Abakan','Grozny','Cheboksary', ... 'Izhevsk','Barnaul','Chita','PetropavlovskKam','Novorossiysk', ... 'Krasnoyarsk','Perm','Vladivostok','Stavropol','Pyatigorsk','Khabarovsk', ... 'Blagoveshchensk','Arkhangelsk','Astrakhan','Belgorod','Bryansk','Vladimir', ... 'Volgograd','Vologda','Voronezh','Ivanovo','Irkutsk','Bratsk','Kaliningrad', ... 'Kaluga','Kemerovo','Novokuznetsk','Kirov','Kostroma','Kurgan','Kursk', ... 'Gatchina','Lipetsk','Magadan','Podolsk','Murmansk','NizhnyNovgorod','VelikyNovgorod', ... 'Novosibirsk','Omsk','Orenburg','Oryol','Penza','Pskov','Rostov', ... 'Taganrog','Ryazan','Samara','Tolyatti','Saratov','YuzhnoSakhalinsk', ... 'Yekaterinburg','NizhnyTagil','Smolensk','Tambov','Tver','Tomsk', ... 'Tula','Tyumen','Ulyanovsk','Chelyabinsk','Magnitogorsk','Yaroslavl', ... 'Birobidzhan','NaryanMar','KhantyMansiysk','Surgut','Nizhnevartovsk', ... 'Anadyr','Salekhard','NovyUrengoy','Noyabrsk'}; db.CityKey = containers.Map(cityNameList, cityKeyList); % Цены топлива по городам (руб/л) cityFuelPriceList = [ ... 75,76,76, ... 76,78,82,72,72,122,110, ... 82,74,88,70,72,72, ... 70,72,84,90,72,72,72, ... 77,76,71,95,85,70,76, ... 77,80,92,100,67, ... 85,80,90,70,70,92, ... 90,88,70,75,75,77, ... 74,85,75,77,85,85,80, ... 76,82,82,80,78,78,75, ... 82,75,105,78,92,77,80, ... 80,78,76,75,76,80,69, ... 69,76,76,76,74,100, ... 80,80,76,75,78,85, ... 76,80,76,78,78,78, ... 92,108,88,88,88, ... 115,100,100,100]; db.FuelCity = containers.Map(cityKeyList, num2cell(cityFuelPriceList)); % ========================================================================= % FALLBACK: ШИРОТЫ И ТИПЫ ДЛЯ ОТСУТСТВУЮЩИХ ГОРОДОВ % ========================================================================= regionCenterLat = containers.Map(db.RegionKeys, { ... 44.60, 51.96, 54.74, 51.83, 42.98, 43.17, 43.48, 46.31, 44.22, 61.79, 61.67, ... 44.95, 56.63, 54.19, 62.03, 43.04, 55.80, 51.72, 53.72, 43.32, 56.15, 56.85, ... 53.35, 52.05, 53.01, 45.03, 56.02, 58.01, 43.12, 45.04, 48.48, 50.27, 64.54, ... 46.35, 50.60, 53.24, 56.13, 48.71, 59.22, 51.67, 57.00, 52.29, 54.71, 54.51, ... 55.34, 58.60, 57.77, 55.44, 51.73, 59.56, 52.61, 59.56, 55.75, 68.97, 56.33, ... 58.52, 55.03, 54.99, 51.77, 52.97, 53.20, 57.82, 47.23, 54.63, 53.20, 59.95, ... 51.53, 46.96, 56.84, 54.78, 52.72, 56.86, 56.50, 54.19, 57.15, 54.33, 55.16, ... 57.63, 48.79, 67.64, 61.00, 64.73, 66.53 }); russian_city_names = keys(db.CityKey); for i = 1:length(russian_city_names) russian_name = russian_city_names{i}; latin_key = db.CityKey(russian_name); if ~isfield(db.Latitude, latin_key) found_lat = 55.0; for reg_idx = 1:length(db.RegionKeys) rk = db.RegionKeys{reg_idx}; if isfield(db.Cities, rk) city_list = db.Cities.(rk); for cj = 1:length(city_list) if strcmp(city_list{cj}, russian_name) if isKey(regionCenterLat, rk) found_lat = regionCenterLat(rk); end break; end end end end db.Latitude.(latin_key) = found_lat; end end for i = 1:length(russian_city_names) russian_name = russian_city_names{i}; latin_key = db.CityKey(russian_name); if ~isfield(db.CityType, latin_key) db.CityType.(latin_key) = 'mixed'; end end end