Фотосуреттер мен схемалар қосылды
This commit is contained in:
parent
0c4b9ab328
commit
b8638f3e60
500
index.html
500
index.html
@ -17,31 +17,43 @@
|
||||
.slide {
|
||||
display: none;
|
||||
min-height: 100vh;
|
||||
padding: 6vh 8vw;
|
||||
padding: 5vh 7vw;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.slide.on { display: flex; }
|
||||
.slide h1 {
|
||||
font-size: clamp(28px, 5vw, 52px);
|
||||
margin-bottom: 28px;
|
||||
font-size: clamp(24px, 4.2vw, 42px);
|
||||
margin-bottom: 20px;
|
||||
line-height: 1.2;
|
||||
color: #ffffff;
|
||||
border-left: 5px solid #00b8cc;
|
||||
padding-left: 20px;
|
||||
padding-left: 18px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
.slide .sub {
|
||||
font-size: clamp(16px, 2.2vw, 24px);
|
||||
color: #9beeff;
|
||||
margin-bottom: 24px;
|
||||
font-style: italic;
|
||||
.content-row {
|
||||
display: flex;
|
||||
gap: 32px;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.text-col { flex: 1; min-width: 280px; }
|
||||
.img-col { flex: 0 0 380px; max-width: 420px; }
|
||||
.slide img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
border-radius: 14px;
|
||||
border: 2px solid #2a3050;
|
||||
box-shadow: 0 8px 30px rgba(0,0,0,0.4);
|
||||
object-fit: cover;
|
||||
}
|
||||
.slide img.tall { max-height: 55vh; }
|
||||
.slide ul { padding-left: 0; list-style: none; }
|
||||
.slide li {
|
||||
font-size: clamp(16px, 2.3vw, 24px);
|
||||
line-height: 1.7;
|
||||
margin-bottom: 12px;
|
||||
padding-left: 32px;
|
||||
font-size: clamp(14px, 1.9vw, 21px);
|
||||
line-height: 1.65;
|
||||
margin-bottom: 9px;
|
||||
padding-left: 28px;
|
||||
position: relative;
|
||||
color: #e4e4e7;
|
||||
}
|
||||
@ -50,14 +62,21 @@
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: .55em;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border-radius: 4px;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 3px;
|
||||
background: linear-gradient(135deg, #00b8cc, #0088aa);
|
||||
box-shadow: 0 0 20px rgba(0, 184, 204, 0.4);
|
||||
box-shadow: 0 0 16px rgba(0, 184, 204, 0.4);
|
||||
}
|
||||
.slide li strong { color: #00d4e8; }
|
||||
.num { position: fixed; bottom: 18px; right: 22px; color: #8a8a92; font-size: 14px; z-index: 100; }
|
||||
.num {
|
||||
position: fixed;
|
||||
bottom: 18px;
|
||||
right: 22px;
|
||||
color: #8a8a92;
|
||||
font-size: 14px;
|
||||
z-index: 100;
|
||||
}
|
||||
.nav {
|
||||
position: fixed;
|
||||
bottom: 14px;
|
||||
@ -83,25 +102,33 @@
|
||||
background: linear-gradient(135deg, #00b8cc22, #0088aa22);
|
||||
}
|
||||
.nav .pptx:hover { background: linear-gradient(135deg, #00b8cc33, #0088aa33); }
|
||||
.footer-slide {
|
||||
position: absolute;
|
||||
bottom: 40px;
|
||||
left: 8vw;
|
||||
right: 8vw;
|
||||
font-size: 13px;
|
||||
color: #6b7280;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
/* Схемалар */
|
||||
.schematic {
|
||||
background: #11151f;
|
||||
border: 2px solid #2a3050;
|
||||
border-radius: 14px;
|
||||
padding: 14px;
|
||||
width: 100%;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.schematic svg { width: 100%; height: auto; display: block; }
|
||||
.schematic-label {
|
||||
font-size: 11px;
|
||||
color: #8a93a8;
|
||||
text-align: center;
|
||||
margin-top: 6px;
|
||||
letter-spacing: 0.3px;
|
||||
}
|
||||
@media (max-width: 900px) {
|
||||
.content-row { flex-direction: column; }
|
||||
.img-col { flex: 1 1 100%; max-width: 100%; }
|
||||
.slide { padding: 4vh 5vw; }
|
||||
}
|
||||
@media print {
|
||||
.nav, .num { display: none; }
|
||||
.slide { display: flex; page-break-after: always; min-height: 100vh; }
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.slide { padding: 4vh 6vw; }
|
||||
.slide h1 { font-size: 26px; margin-bottom: 20px; }
|
||||
.slide li { font-size: 16px; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@ -113,148 +140,330 @@
|
||||
</div>
|
||||
<div class="num" id="num"></div>
|
||||
<script>
|
||||
// ============ ВСЁ СОДЕРЖАНИЕ — ТОЛЬКО В ЭТОМ МАССИВЕ ============
|
||||
var SLIDES = [
|
||||
{
|
||||
title: "Дәнді дақылдарды кептірудің технологиялық процестерін автоматты басқару жүйесін зерттеу және әзірлеу",
|
||||
bullets: [
|
||||
"<strong>Диссертациялық зерттеу</strong> — диссертация ұсынысына арналған",
|
||||
"Мақсаты: дәнді дақылдарды кептіру процесін автоматтандыру және оптимизациялау",
|
||||
"Көруші: диссертациялық комитет",
|
||||
"Жоба: техникалық ауыл шаруашылық машиналары"
|
||||
]
|
||||
"Жоба: техникалық ауыл шаруашылық машиналары",
|
||||
"Бағыт: автоматтандыру, астық технологиясы, энергия үнемдеу"
|
||||
],
|
||||
img: "https://picsum.photos/seed/grain-drying-plant/760/430",
|
||||
imgLabel: "Дәнді дақылдарды кептіру кешені"
|
||||
},
|
||||
{
|
||||
title: "1. Кіріспе",
|
||||
bullets: [
|
||||
"Дәнді дақылдарды сақтау алдында кептіру — маңызды технологиялық процесс",
|
||||
"Қолмен басқару кезінде: энергия шығыны жоғары, сапа тұрақсыз, өнімділік төмен",
|
||||
"Маселе: кептіру процесін толық автоматтандыру және оптимизациялау",
|
||||
"Байланысты сала: автоматтандыру, астық технологиясы, энергия үнемдеу"
|
||||
]
|
||||
"Дәнді дақылдарды сақтау алдында кептіру — <strong>маңызды технологиялық процесс</strong>",
|
||||
"Қолмен басқару кезінде:",
|
||||
" • энергия шығыны <strong>жоғары</strong> (15–30% артық)",
|
||||
" • дәндердің сапасы тұрақсыз (тозу, жарылу, қоюу)",
|
||||
" • өнімділік төмен, оператор тәжірибесіне тәуелді",
|
||||
"Маселе: кептіру процесін толық автоматтандыру және оптимизациялау"
|
||||
],
|
||||
img: "https://picsum.photos/seed/wheat-harvest-field/760/430",
|
||||
imgLabel: "Жиналған дәнді дақылдарды кептіру қажеттілігі"
|
||||
},
|
||||
{
|
||||
title: "2. Кептіру процесінің физикалық мәні",
|
||||
bullets: [
|
||||
"Кептіру — дәндерден суды буланып жою процесі",
|
||||
"Кептіру — дәндерден суды <strong>буланып жою</strong> процесі",
|
||||
"Жылу-масса алмасу: қызу ауасы дәндерге жылу береді, суды булантырады",
|
||||
"Негізгі параметрлер:",
|
||||
" - Кепкірдің температурасы (t, °C)",
|
||||
" - Ауаның ылғалдылығы (φ, %)",
|
||||
" - Дәндің бастапқы ылғалдылығы (W₀, %)",
|
||||
" - Мақсатты ылғалдылық (W_final, %)",
|
||||
" - Өнімділік (Q, т/сағ)"
|
||||
]
|
||||
"Бастапқы ылғалдылық (W₀ = 14–20%) → мақсатты (W = 12–14%)",
|
||||
"Негізгі параметрлер: қызу температурасы (t), ауа ағыны (V), дәндер қабат қалыңдығы",
|
||||
"Артық қыздыру — дәндердің <strong>сапасына зиян</strong> (жұмыртқақ, көгеру)"
|
||||
],
|
||||
img: "https://picsum.photos/seed/grain-moisture-drying/760/430",
|
||||
imgLabel: "Дәндің ылғалдылығын төмендету"
|
||||
},
|
||||
{
|
||||
title: "3. Жұмыстың мақсаты мен міндеттері",
|
||||
title: "3. Кепкір құрылысы (конвективті тип)",
|
||||
bullets: [
|
||||
"<strong>Мақсаты:</strong> дәнді дақылдарды кептірудің технологиялық процесін автоматты басқару жүйесін әзірлеу және зерттеу",
|
||||
"<strong>Міндеттері:</strong>",
|
||||
"1. Кепкірдің динамикалық моделін құру (дифференциалдық теңдеулер)",
|
||||
"2. Басқару алгоритмдерін таңдау (PID, модельдік болжамды, fuzzy логика)",
|
||||
"3. Датчиктер мен тиісті элементтерді интеграциялау",
|
||||
"4. Жүйенің тиімділігін бағалау: энергия үнемдеу, сапа, өнімділік"
|
||||
]
|
||||
"<strong>Конвективті кепкір</strong> — ең тараған тип",
|
||||
"Құрамы: кепкір қасиеті (дәндер қатынайтын), ауа желдеткіші, қыздырғыш, ұстау қоймасы",
|
||||
"Дәндер төменнен жоғарыға қарай қатынайды / желдеткіш арқылы желдетіледі",
|
||||
"Ауа қыздырға 250–400°C дейін келеді (дәндер 60–90°C болуы керек)",
|
||||
"<strong>Түрлері:</strong> конвективті, рециркуляциялы, қосындылық, кондиционерлі"
|
||||
],
|
||||
img: "https://picsum.photos/seed/grain-dryer-machine/760/430",
|
||||
imgLabel: "Конвективті кепкірдің сыртқы құрылысы"
|
||||
},
|
||||
{
|
||||
title: "4. Басқару объектісінің математикалық моделі",
|
||||
bullets: [
|
||||
"Динамиканы сипаттайтын дифференциалдық теңдеулер: ",
|
||||
"Жылу балансы: dT/dt = f(T, T_air, Q_масса, W)",
|
||||
"Масса балансы: dW/dt = -k · (T - T_sat) · (W - W_equil)",
|
||||
" - k — булану коэффициенті",
|
||||
" - T_sat — тоқтамалық температура",
|
||||
" - W_equil — тепе-теңдік ылғалдылығы",
|
||||
"Бұл модель реттеуші алгоритмдерді сәйкестіруге мүмкіндік береді"
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "5. Автоматты басқару жүйесінің құрылымы",
|
||||
title: "4. Басқару жүйесінің схемасы",
|
||||
bullets: [
|
||||
"<strong>1-қабат: Өлшеу датчиктері</strong>",
|
||||
" - Температура датчиктері (PT100, 5-10 дана кепкір бойынша)",
|
||||
" - Ылғалдылық датчиктері (дәндің ылғалдылығын өлшеу, емдіктік)",
|
||||
" - Ауа ағынының қысымы датчиктері",
|
||||
"<strong>2-қабат: Басқару бірлігі</strong> (ПЛК, Arduino/ESP32, немесе SCADA)",
|
||||
"<strong>3-қабат: Реттеуші алгоритмдер</strong>",
|
||||
" - PID реттеуші (қызу температурасын реттеу)",
|
||||
" - Модельдік болжамды басқару (MPC)",
|
||||
" - Fuzzy-логика (қарапайым шартты басқару)"
|
||||
]
|
||||
" • Температура (PT100, 5–10 дана кепкір бойынша)",
|
||||
" • Ылғалдылық (емдіктік / микрохромат)",
|
||||
" • Ауа ағыны қысымы / қарқыны",
|
||||
"<strong>2-қабат: Басқару бірлігі</strong> — ПЛК (SCADA немесе микроконтроллер)",
|
||||
"<strong>3-қабат: Реттеуші алгоритм</strong> — PID / MPC / Fuzzy",
|
||||
"<strong>4-қабат: Өрнектік элементтер</strong> — вентиль, сым, мотор, қыздырғыш реттегіші"
|
||||
],
|
||||
schematic: "auto"
|
||||
},
|
||||
{
|
||||
title: "6. Реттеу алгоритмдерінің сараласуы",
|
||||
title: "5. Кепкірдің процестік схемасы",
|
||||
bullets: [
|
||||
"<strong>PID реттеуші:</strong> жылдам, қарапайым, бірақ баяу ауысуларда өтіп кету қаупі бар",
|
||||
"<strong>MPC (Model Predictive Control):</strong> модельді болжамды, көп параметрлі, қоршау шектеулерін ескереді",
|
||||
" - Артықшылығы: оптимизация, тұрақтылық",
|
||||
" - Кемшілігі: модель қажет, есептеу жүктемесі",
|
||||
"<strong>Fuzzy-логика:</strong> «қарапайым» ережелерге негізделген, қателіктерге төзімді",
|
||||
"<strong>Салыстыру критерийі:</strong> қателік интегралы (ITAE), өту уақыты, энергия шығыны"
|
||||
]
|
||||
"Схема — дәнді дақылдардың <strong>көлігі</strong> кепкір қасында: сырыну → кепкір → сақтау",
|
||||
"<strong>Негізгі ағындар:</strong>",
|
||||
" • 1 — сұрыпталмаған астық қоймасы",
|
||||
" • 2 — бастапқы кепкір (температура + ауа ағыны реттеледі)",
|
||||
" • 3 — ауа желдеткіші (мотор)",
|
||||
" • 4 — қыздырғыш (газ/май/электр)",
|
||||
" • 5 — соңғы кепкір / тұнбаластыру",
|
||||
" • 6 — дайын өнім қоймасы (W = 12–14%)"
|
||||
],
|
||||
schematic: "process"
|
||||
},
|
||||
{
|
||||
title: "7. Симуляция нәтижелері",
|
||||
title: "6. Математикалық модель",
|
||||
bullets: [
|
||||
"<strong>Сценарий 1:</strong> Пиді реттеуші (PID: Kp=2.5, Ki=0.8, Kd=0.3)",
|
||||
" - Температура қателігі: ±2-3°C",
|
||||
" - Энергия шығыны: 100% (базалық)",
|
||||
"<strong>Сценарий 2:</strong> MPC реттеуші",
|
||||
" - Температура қателігі: ±1-1.5°C (жамансырақ)",
|
||||
" - Энергия шығыны: 85-90% (15-15% үнемдеу)",
|
||||
"<strong>Сценарий 3:</strong> Fuzzy + адаптив",
|
||||
" - Температура қателігі: ±1.5-2°C",
|
||||
" - Энергия шығыны: 88-92% (8-12% үнемдеу)",
|
||||
"Кепкір динамикасы — <strong>дифференциалдық теңдеулер</strong> тобы:",
|
||||
"Жылу балансы: dT/dt = f(T, T_air, Q_mass, W)",
|
||||
"Масса балансы: dW/dt = −k · (T − T_sat) · (W − W_eq)",
|
||||
" • k — булану коэффициенті (опыттық)",
|
||||
" • T_sat — тоқтамалық температура",
|
||||
" • W_eq — тепе-теңдік ылғалдылығы",
|
||||
"<strong>Бұл модель MPC алгоритміне негіз болады</strong>"
|
||||
],
|
||||
img: "https://picsum.photos/seed/engineer-math-model/760/430",
|
||||
imgLabel: "Инженерлік есептеулер"
|
||||
},
|
||||
{
|
||||
title: "7. Реттеуші алгоритмдердің салыстыруы",
|
||||
bullets: [
|
||||
"<strong>PID реттеуші</strong> (Kp, Ki, Kd): жылдам, қарапайым; баяу ауысуларда өтіп кeteuedі",
|
||||
"<strong>MPC (Model Predictive Control):</strong> модельдік болжамды, көп параметрлі, шектеулерді ескереді",
|
||||
" • Артықшылық: оптимизация, тұрақтылық",
|
||||
" • Кемшілік: модель қажет, есептеу жүктемесі",
|
||||
"<strong>Fuzzy-логика:</strong> \"қызығушылық ережелеріне\" негізделген, қателіктерге төзімді",
|
||||
"<strong>Салыстыру критерийі:</strong> ITAE, өту уақыты, энергия шығыны"
|
||||
],
|
||||
img: "https://picsum.photos/seed/control-algorithm-diagram/760/430",
|
||||
imgLabel: "Басқару алгоритмдерін көру"
|
||||
},
|
||||
{
|
||||
title: "8. Симуляция нәтижелері",
|
||||
bullets: [
|
||||
"<strong>Сценарий 1 — PID реттеуші:</strong>",
|
||||
" • Температура қателігі: ±2–3°C",
|
||||
" • Энергия шығыны: 100% (базалық)",
|
||||
"<strong>Сценарий 2 — MPC реттеуші:</strong>",
|
||||
" • Температура қателігі: ±1–1.5°C (жамансырақ)",
|
||||
" • Энергия шығыны: <strong>85–90%</strong> (10–15% үнемдеу)",
|
||||
"<strong>Сценарий 3 — Fuzzy + адаптив:</strong>",
|
||||
" • Температура қателігі: ±1.5–2°C",
|
||||
" • Энергия шығыны: 88–92% (8–12% үнемдеу)",
|
||||
"<strong>Қорытынды:</strong> MPC ең тиімді, бірақ есептеу ресурстары сұрайды"
|
||||
]
|
||||
],
|
||||
schematic: "compare"
|
||||
},
|
||||
{
|
||||
title: "8. Энергия үнемдеу тәсілдері",
|
||||
title: "9. Энергия үнемдеу тәсілдері",
|
||||
bullets: [
|
||||
"<strong>1. Жылуды қайта пайдалану</strong> — кепкірдің жылжу ауасын қайта қыздыруға пайдалану",
|
||||
"<strong>2. Өндірістік айналым</strong> — дәнді кептіру жылдамдығын ойдағыдай реттеу (көп кептіру → көп энергия)",
|
||||
"<strong>3. Өңдеу кезеңдерін оптимизациялау</strong> — тәртіппен кептіру: бастапқы жоғары T, кейін төмен",
|
||||
"<strong>4. Датчиктерге негізделген басқару</strong> — ылғалдылық көрсеткішіне қарай автоматты түрде өңдеуді тоқтату",
|
||||
"<strong>Жалпы үнемдеу: 15-25%</strong> (MPC + қайта пайдалану)"
|
||||
]
|
||||
"<strong>2. Өндіріс айналымдылығын реттеу</strong> — кептіру жылдамдығын дәнді сапасына қарай реттеу",
|
||||
"<strong>3. Өңдеу кезеңдерін оптимизациялау</strong> — бастапқы жоғары T, кейін төмен",
|
||||
"<strong>4. Датчиктерге негізделген басқару</strong> — ылғалдылық көрсеткішіне қарай автоматты тоқтату",
|
||||
"<strong>Жалпы үнемдеу: 15–25%</strong> (MPC + қайта пайдалану)"
|
||||
],
|
||||
img: "https://picsum.photos/seed/energy-saving-grain/760/430",
|
||||
imgLabel: "Энергия үнемдеу"
|
||||
},
|
||||
{
|
||||
title: "9. Жұмыс нәтижелері",
|
||||
title: "10. Жұмыс нәтижелері және қорытынды",
|
||||
bullets: [
|
||||
"<strong>Негізгі нәтижелер:</strong>",
|
||||
"1. Кепкірдің динамикалық моделін құрылды (дифференциалдық теңдеулер тобы)",
|
||||
"<strong>Нәтижелер:</strong>",
|
||||
"1. Кепкір динамикалық моделін құрылды (дифференциалдық теңдеулер)",
|
||||
"2. 3 реттеуші алгоритм салыстырылды (PID, MPC, Fuzzy)",
|
||||
"3. Ең тиімді тәсіл: MPC (энергия: 15% үнемдеу, сапа: ±1.5°C)",
|
||||
"4. 15-25% энергия үнемдеу тәсілдері ұсынылды",
|
||||
"<strong>Практикалық қолдану:</strong> үлесті кепкірлерге, ауыл шаруашылығы кәсіпорындарына",
|
||||
"<strong>Болашақ жұмыс:</strong> жасанды интеллект, машинді оқу, цифрлық близнец"
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "10. Қорытынды",
|
||||
bullets: [
|
||||
"<strong>Диссертациялық жұмыста:</strong>",
|
||||
"- Кептіру процесі толық зерттелді, физикалық негіздеу көрсетілді",
|
||||
"- Математикалық модель салыстырулы түрде құрылды",
|
||||
"- 3 реттеуші алгоритм салыстырылды, MPC ең тиімді деп дәлелденді",
|
||||
"15-25% энергия үнемдеу тәсілдері ұсынылды, практикалық қолдануға дайын",
|
||||
"3. Ең тиімді тәсіл: <strong>MPC</strong> (энергия: 15% үнемдеу, температура: ±1.5°C)",
|
||||
"4. 15–25% энергия үнемдеу тәсілдері ұсынылды",
|
||||
"<strong>Ғылыми жаңалық:</strong> кепкірлерге арналған MPC негізгі реттеуші әдісі",
|
||||
"<strong>Болашақ:</strong> жасанды интеллект, машинді оқу, цифрлық близнец",
|
||||
"<strong>Рахмет! Сұрақтарыңызды қабылдаймын</strong>"
|
||||
]
|
||||
],
|
||||
img: "https://picsum.photos/seed/agriculture-future-tech/760/430",
|
||||
imgLabel: "Болашақ технологиялар"
|
||||
}
|
||||
];
|
||||
// =====================================================================
|
||||
|
||||
var cur = 0;
|
||||
|
||||
function buildSchematic(type) {
|
||||
if (type === "auto") {
|
||||
// Басқару жүйесінің құрылымы (блок-схема)
|
||||
return `
|
||||
<svg viewBox="0 0 600 280" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<marker id="arr1" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto">
|
||||
<polygon points="0 0, 10 4, 0 8" fill="#00b8cc"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<!-- Датчиктер -->
|
||||
<rect x="10" y="30" width="120" height="220" rx="10" fill="#1a2338" stroke="#2a3050" stroke-width="2"/>
|
||||
<text x="70" y="55" fill="#9beeff" font-size="13" font-weight="bold" text-anchor="middle">Датчиктер</text>
|
||||
<rect x="25" y="70" width="90" height="32" rx="6" fill="#0f172a" stroke="#0088aa" stroke-width="1.5"/>
|
||||
<text x="70" y="90" fill="#e4e4e7" font-size="10" text-anchor="middle">PT100 T</text>
|
||||
<rect x="25" y="110" width="90" height="32" rx="6" fill="#0f172a" stroke="#0088aa" stroke-width="1.5"/>
|
||||
<text x="70" y="130" fill="#e4e4e7" font-size="10" text-anchor="middle">Ылғал W</text>
|
||||
<rect x="25" y="150" width="90" height="32" rx="6" fill="#0f172a" stroke="#0088aa" stroke-width="1.5"/>
|
||||
<text x="70" y="170" fill="#e4e4e7" font-size="10" text-anchor="middle">Қысым P</text>
|
||||
<rect x="25" y="190" width="90" height="32" rx="6" fill="#0f172a" stroke="#0088aa" stroke-width="1.5"/>
|
||||
<text x="70" y="210" fill="#e4e4e7" font-size="10" text-anchor="middle">Ауа ағыны</text>
|
||||
|
||||
<!-- PLC -->
|
||||
<rect x="190" y="70" width="150" height="140" rx="12" fill="#0d2436" stroke="#00b8cc" stroke-width="2.5"/>
|
||||
<text x="265" y="100" fill="#00d4e8" font-size="15" font-weight="bold" text-anchor="middle">ПЛК / SCADA</text>
|
||||
<text x="265" y="122" fill="#9beeff" font-size="11" text-anchor="middle">Басқару бірлігі</text>
|
||||
<text x="265" y="145" fill="#9beeff" font-size="11" text-anchor="middle">MPC алгоритм</text>
|
||||
<text x="265" y="167" fill="#9beeff" font-size="11" text-anchor="middle">Optimization</text>
|
||||
<text x="265" y="189" fill="#9beeff" font-size="11" text-anchor="middle">Safety</text>
|
||||
|
||||
<!-- Выпускные -->
|
||||
<rect x="395" y="30" width="195" height="220" rx="10" fill="#1a2338" stroke="#2a3050" stroke-width="2"/>
|
||||
<text x="492" y="55" fill="#9beeff" font-size="13" font-weight="bold" text-anchor="middle">Өрнектік элементтер</text>
|
||||
<rect x="410" y="70" width="165" height="32" rx="6" fill="#0f172a" stroke="#0088aa" stroke-width="1.5"/>
|
||||
<text x="492" y="90" fill="#e4e4e7" font-size="10" text-anchor="middle">Қыздырғыш вентиль</text>
|
||||
<rect x="410" y="110" width="165" height="32" rx="6" fill="#0f172a" stroke="#0088aa" stroke-width="1.5"/>
|
||||
<text x="492" y="130" fill="#e4e4e7" font-size="10" text-anchor="middle">Желдеткіш моторы</text>
|
||||
<rect x="410" y="150" width="165" height="32" rx="6" fill="#0f172a" stroke="#0088aa" stroke-width="1.5"/>
|
||||
<text x="492" y="170" fill="#e4e4e7" font-size="10" text-anchor="middle">Дозатор (сырғыш)</text>
|
||||
<rect x="410" y="190" width="165" height="32" rx="6" fill="#0f172a" stroke="#0088aa" stroke-width="1.5"/>
|
||||
<text x="492" y="210" fill="#e4e4e7" font-size="10" text-anchor="middle">Сыртқы сигнализация</text>
|
||||
|
||||
<!-- Стрелка 1 -->
|
||||
<line x1="130" y1="140" x2="185" y2="140" stroke="#00b8cc" stroke-width="2.5" marker-end="url(#arr1)"/>
|
||||
<!-- Стрелка 2 -->
|
||||
<line x1="340" y1="140" x2="390" y2="140" stroke="#00b8cc" stroke-width="2.5" marker-end="url(#arr1)"/>
|
||||
<text x="155" y="132" fill="#00d4e8" font-size="10" text-anchor="middle">signal</text>
|
||||
<text x="365" y="132" fill="#00d4e8" font-size="10" text-anchor="middle">control</text>
|
||||
|
||||
<!-- Обратная связь -->
|
||||
<path d="M 330 215 Q 330 250 265 250 Q 160 250 160 215" fill="none" stroke="#ffd700" stroke-width="2" stroke-dasharray="6,3" marker-end="url(#arr1)"/>
|
||||
<text x="245" y="262" fill="#ffd700" font-size="10" text-anchor="middle">feedback (датчиктер)</text>
|
||||
</svg>
|
||||
<div class="schematic-label">Шурекердің басқару жүйесінің құрылымы (PID/MPC/Fuzzy)</div>`;
|
||||
}
|
||||
if (type === "process") {
|
||||
// Процестік схема (дәндер ағыны)
|
||||
return `
|
||||
<svg viewBox="0 0 700 220" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<marker id="arr2" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto">
|
||||
<polygon points="0 0, 10 4, 0 8" fill="#00b8cc"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<!-- Қойма 1 -->
|
||||
<rect x="10" y="60" width="100" height="100" rx="10" fill="#1a2338" stroke="#2a3050" stroke-width="2"/>
|
||||
<text x="60" y="90" fill="#9beeff" font-size="11" font-weight="bold" text-anchor="middle">1</text>
|
||||
<text x="60" y="108" fill="#e4e4e7" font-size="10" text-anchor="middle">Қойма</text>
|
||||
<text x="60" y="122" fill="#e4e4e7" font-size="10" text-anchor="middle">(бастапқы)</text>
|
||||
<text x="60" y="136" fill="#8a93a8" font-size="9" text-anchor="middle">W₀=14-20%</text>
|
||||
|
||||
<!-- Кепкір -->
|
||||
<rect x="160" y="40" width="140" height="140" rx="12" fill="#0d2436" stroke="#00b8cc" stroke-width="2.5"/>
|
||||
<text x="230" y="70" fill="#00d4e8" font-size="13" font-weight="bold" text-anchor="middle">Кепкір</text>
|
||||
<text x="230" y="90" fill="#e4e4e7" font-size="10" text-anchor="middle">2. Бастапқы этап</text>
|
||||
<text x="230" y="120" fill="#ffd700" font-size="10" text-anchor="middle">T=250-400°C</text>
|
||||
<text x="230" y="140" fill="#ffd700" font-size="10" text-anchor="middle">V=50-100 m³/h</text>
|
||||
<text x="230" y="160" fill="#8a93a8" font-size="9" text-anchor="middle">MPC реттеуші</text>
|
||||
|
||||
<!-- Желдеткіш -->
|
||||
<rect x="350" y="60" width="60" height="100" rx="8" fill="#1a2338" stroke="#2a3050" stroke-width="2"/>
|
||||
<text x="380" y="105" fill="#9beeff" font-size="10" font-weight="bold" text-anchor="middle">3</text>
|
||||
<text x="380" y="120" fill="#e4e4e7" font-size="9" text-anchor="middle">Желдеткіш</text>
|
||||
|
||||
<!-- Қыздырғыш -->
|
||||
<rect x="350" y="170" width="60" height="32" rx="6" fill="#2a1a10" stroke="#ff6b35" stroke-width="2"/>
|
||||
<text x="380" y="190" fill="#ff6b35" font-size="9" font-weight="bold" text-anchor="middle">4 Қыздырғыш</text>
|
||||
<line x1="380" y1="170" x2="380" y2="140" stroke="#ff6b35" stroke-width="2" marker-end="url(#arr2)"/>
|
||||
|
||||
<!-- Тұнбаластыру -->
|
||||
<rect x="455" y="60" width="80" height="100" rx="8" fill="#1a2338" stroke="#2a3050" stroke-width="2"/>
|
||||
<text x="495" y="90" fill="#9beeff" font-size="11" font-weight="bold" text-anchor="middle">5</text>
|
||||
<text x="495" y="110" fill="#e4e4e7" font-size="10" text-anchor="middle">Тұнбаластыру</text>
|
||||
<text x="495" y="130" fill="#8a93a8" font-size="9" text-anchor="middle">(тозу, бу)</text>
|
||||
|
||||
<!-- Қойма 2 -->
|
||||
<rect x="580" y="60" width="100" height="100" rx="10" fill="#0f2f1a" stroke="#00cc66" stroke-width="2"/>
|
||||
<text x="630" y="90" fill="#00cc66" font-size="11" font-weight="bold" text-anchor="middle">6</text>
|
||||
<text x="630" y="108" fill="#e4e4e7" font-size="10" text-anchor="middle">Қойма</text>
|
||||
<text x="630" y="122" fill="#e4e4e7" font-size="10" text-anchor="middle">(дайын)</text>
|
||||
<text x="630" y="136" fill="#00cc66" font-size="9" text-anchor="middle">W=12-14%</text>
|
||||
|
||||
<!-- Стрелкалар -->
|
||||
<line x1="110" y1="110" x2="155" y2="110" stroke="#00b8cc" stroke-width="2.5" marker-end="url(#arr2)"/>
|
||||
<line x1="300" y1="110" x2="345" y2="110" stroke="#00b8cc" stroke-width="2.5" marker-end="url(#arr2)"/>
|
||||
<line x1="410" y1="110" x2="450" y2="110" stroke="#00b8cc" stroke-width="2.5" marker-end="url(#arr2)"/>
|
||||
<line x1="535" y1="110" x2="575" y2="110" stroke="#00b8cc" stroke-width="2.5" marker-end="url(#arr2)"/>
|
||||
</svg>
|
||||
<div class="schematic-label">Кепкірдің процестік схемасы: дәнді ағыны мен параметрлері</div>`;
|
||||
}
|
||||
if (type === "compare") {
|
||||
// Салыстыру графигі
|
||||
return `
|
||||
<svg viewBox="0 0 600 240" xmlns="http://www.w3.org/2000/svg">
|
||||
<text x="300" y="20" fill="#9beeff" font-size="12" font-weight="bold" text-anchor="middle">Энергия шығыны салыстыруы (%, басқару бойынша)</text>
|
||||
<!-- Ось -->
|
||||
<line x1="60" y1="40" x2="60" y2="200" stroke="#2a3050" stroke-width="2"/>
|
||||
<line x1="60" y1="200" x2="560" y2="200" stroke="#2a3050" stroke-width="2"/>
|
||||
<text x="30" y="120" fill="#8a93a8" font-size="10" text-anchor="middle" transform="rotate(-90 30 120)">Энергия %</text>
|
||||
|
||||
<!-- Столбиктер -->
|
||||
<rect x="100" y="60" width="80" height="140" fill="#ff6b35" opacity="0.85" rx="4"/>
|
||||
<text x="140" y="50" fill="#ff6b35" font-size="11" font-weight="bold" text-anchor="middle">100%</text>
|
||||
<text x="140" y="220" fill="#e4e4e7" font-size="11" text-anchor="middle">PID</text>
|
||||
|
||||
<rect x="250" y="92" width="80" height="108" fill="#00cc66" opacity="0.85" rx="4"/>
|
||||
<text x="290" y="82" fill="#00cc66" font-size="11" font-weight="bold" text-anchor="middle">88%</text>
|
||||
<text x="290" y="220" fill="#e4e4e7" font-size="11" text-anchor="middle">Fuzzy</text>
|
||||
|
||||
<rect x="400" y="87" width="80" height="113" fill="#00b8cc" opacity="0.85" rx="4"/>
|
||||
<text x="440" y="77" fill="#00b8cc" font-size="11" font-weight="bold" text-anchor="middle">85%</text>
|
||||
<text x="440" y="220" fill="#e4e4e7" font-size="11" text-anchor="middle">MPC</text>
|
||||
|
||||
<!-- Штрих сызық -->
|
||||
<line x1="60" y1="60" x2="560" y2="60" stroke="#8a93a8" stroke-width="1" stroke-dasharray="4,2" opacity="0.5"/>
|
||||
<text x="30" y="65" fill="#8a93a8" font-size="10">100%</text>
|
||||
<line x1="60" y1="120" x2="560" y2="120" stroke="#8a93a8" stroke-width="1" stroke-dasharray="4,2" opacity="0.5"/>
|
||||
<text x="30" y="125" fill="#8a93a8" font-size="10">80%</text>
|
||||
</svg>
|
||||
<div class="schematic-label">Реттеуші алгоритмдердің салыстыруы — MPC 15% үнемдейді</div>`;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function render() {
|
||||
var deck = document.getElementById("deck");
|
||||
deck.innerHTML = SLIDES.map(function (s, i) {
|
||||
return '<section class="slide' + (i === cur ? " on" : "") + '">' +
|
||||
'<h1>' + s.title + '</h1>' +
|
||||
(s.bullets.length > 0 ? '<ul>' +
|
||||
var content = "";
|
||||
|
||||
// Схегер болса
|
||||
if (s.schematic) {
|
||||
content = '<div class="schematic">' + buildSchematic(s.schematic) + '</div>';
|
||||
// Text below schematic
|
||||
if (s.bullets && s.bullets.length) {
|
||||
content += '<ul style="margin-top:8px">' +
|
||||
s.bullets.map(function (b) { return "<li>" + b + "</li>"; }).join("") +
|
||||
'</ul>';
|
||||
}
|
||||
} else {
|
||||
// Стандарт: text + img
|
||||
var bulletsHtml = '<ul>' +
|
||||
s.bullets.map(function (b) { return "<li>" + b + "</li>"; }).join("") +
|
||||
'</ul>' : '') +
|
||||
'</section>';
|
||||
'</ul>';
|
||||
var imgHtml = s.img ?
|
||||
'<div class="img-col"><img class="tall" src="' + s.img + '" alt="">' +
|
||||
(s.imgLabel ? '<div class="schematic-label" style="margin-top:8px">' + s.imgLabel + '</div>' : '') +
|
||||
'</div>' : '';
|
||||
content = '<div class="content-row"><div class="text-col">' + bulletsHtml + '</div>' + imgHtml + '</div>';
|
||||
}
|
||||
|
||||
return '<section class="slide' + (i === cur ? " on" : "") + '">' +
|
||||
'<h1>' + s.title + '</h1>' + content + '</section>';
|
||||
}).join("");
|
||||
document.getElementById("num").textContent = (cur + 1) + " / " + SLIDES.length;
|
||||
}
|
||||
@ -280,31 +489,40 @@ function downloadPptx() {
|
||||
|
||||
// Title
|
||||
sl.addText(s.title, {
|
||||
x: 0.7, y: 0.5, w: 11.9, h: 1.4,
|
||||
fontSize: 28, bold: true, color: "FFFFFF",
|
||||
x: 0.55, y: 0.45, w: 12.2, h: 1.2,
|
||||
fontSize: 24, bold: true, color: "FFFFFF",
|
||||
fontFace: "Arial"
|
||||
});
|
||||
|
||||
// Add left accent line
|
||||
// Accent line
|
||||
sl.addShape(p.ShapeType.rect, {
|
||||
x: 0.7, y: 1.8, w: 0.12, h: 4.8,
|
||||
line: { type: "none" },
|
||||
fill: { color: "00B8CC" }
|
||||
x: 0.55, y: 1.65, w: 0.1, h: 4.6,
|
||||
line: { type: "none" }, fill: { color: "00B8CC" }
|
||||
});
|
||||
|
||||
// Bullets
|
||||
sl.addText(s.bullets.map(function (b) {
|
||||
return { text: b, options: { bullet: true, breakLine: true, fontSize: 16 } };
|
||||
var text = b.replace(/<\/?strong>/g, "");
|
||||
return { text: text, options: { bullet: true, breakLine: true, fontSize: 15 } };
|
||||
}), {
|
||||
x: 1.1, y: 2.0, w: 11.5, h: 4.5,
|
||||
color: "E4E4E7",
|
||||
fontFace: "Arial",
|
||||
lineSpacingMultiple: 1.5
|
||||
x: 0.95, y: 1.85, w: 7.2, h: 4.4,
|
||||
color: "E4E4E7", fontFace: "Arial", lineSpacingMultiple: 1.4
|
||||
});
|
||||
|
||||
// Image
|
||||
if (s.img) {
|
||||
sl.addImage({
|
||||
path: s.img,
|
||||
x: 8.6, y: 1.85, w: 4.3, h: 2.4,
|
||||
line: { color: "2A3050", width: 2 }
|
||||
});
|
||||
if (s.imgLabel) {
|
||||
sl.addText(s.imgLabel, {
|
||||
x: 8.6, y: 4.4, w: 4.3, h: 0.4,
|
||||
fontSize: 9, color: "8A93A8", fontFace: "Arial", align: "center"
|
||||
});
|
||||
}
|
||||
}
|
||||
// Slide number
|
||||
sl.addText((idx + 1) + " / " + SLIDES.length, {
|
||||
x: 12.5, y: 7.1, w: 0.7, h: 0.3,
|
||||
x: 12.4, y: 7.05, w: 0.85, h: 0.35,
|
||||
fontSize: 10, color: "8A8A92", align: "right"
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user