@jjlmoya/utils-drones 1.35.0 → 1.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +4 -0
- package/src/entries.ts +8 -0
- package/src/index.ts +1 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/drone-mission-battery-reserve-planner/bibliography.astro +6 -0
- package/src/tool/drone-mission-battery-reserve-planner/bibliography.ts +7 -0
- package/src/tool/drone-mission-battery-reserve-planner/component.astro +229 -0
- package/src/tool/drone-mission-battery-reserve-planner/controller.ts +124 -0
- package/src/tool/drone-mission-battery-reserve-planner/dom-views.ts +114 -0
- package/src/tool/drone-mission-battery-reserve-planner/drone-mission-battery-reserve-planner.css +392 -0
- package/src/tool/drone-mission-battery-reserve-planner/entry.ts +27 -0
- package/src/tool/drone-mission-battery-reserve-planner/evaluator.ts +23 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/de.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/en.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/es.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/fr.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/id.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/it.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/ja.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/ko.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/nl.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/pl.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/pt.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/ru.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/sv.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/tr.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/i18n/zh.ts +223 -0
- package/src/tool/drone-mission-battery-reserve-planner/index.ts +11 -0
- package/src/tool/drone-mission-battery-reserve-planner/logic.test.ts +94 -0
- package/src/tool/drone-mission-battery-reserve-planner/logic.ts +203 -0
- package/src/tool/drone-mission-battery-reserve-planner/seo.astro +15 -0
- package/src/tool/drone-mission-battery-reserve-planner/storage.ts +59 -0
- package/src/tool/drone-mission-battery-reserve-planner/ui.ts +78 -0
- package/src/tool/fpv-drone-speed-calculator/bibliography.astro +6 -0
- package/src/tool/fpv-drone-speed-calculator/bibliography.ts +14 -0
- package/src/tool/fpv-drone-speed-calculator/component.astro +115 -0
- package/src/tool/fpv-drone-speed-calculator/controller.ts +105 -0
- package/src/tool/fpv-drone-speed-calculator/dom-views.ts +80 -0
- package/src/tool/fpv-drone-speed-calculator/entry.ts +27 -0
- package/src/tool/fpv-drone-speed-calculator/fpv-drone-speed-calculator.css +558 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/de.ts +20 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/en.ts +47 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/es.ts +40 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/fr.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/id.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/it.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/ja.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/ko.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/nl.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/pl.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/pt.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/ru.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/sv.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/tr.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/i18n/zh.ts +13 -0
- package/src/tool/fpv-drone-speed-calculator/index.ts +11 -0
- package/src/tool/fpv-drone-speed-calculator/logic.test.ts +53 -0
- package/src/tool/fpv-drone-speed-calculator/logic.ts +126 -0
- package/src/tool/fpv-drone-speed-calculator/seo.astro +16 -0
- package/src/tool/fpv-drone-speed-calculator/ui.ts +47 -0
- package/src/tools.ts +7 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import type { DroneMissionBatteryReservePlannerLocaleContent } from '../entry';
|
|
2
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
const slug = 'planejador-reserva-bateria-missao-drone';
|
|
6
|
+
const title = 'Planejador de Reserva de Bateria para Missão de Drone';
|
|
7
|
+
const description = 'Calcule margens de segurança de bateria para retorno à base, penalidades de vento contra e raio máximo de voo para UAVs.';
|
|
8
|
+
|
|
9
|
+
const faqItems = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Por que voar contra o vento consome mais energia?',
|
|
12
|
+
answer: 'Voar contra o vento exige maior inclinação para vencer o atrito aerodinâmico e manter a velocidade em solo, aumentando a corrente dos motores exponencialmente.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Como o tempo de pairado no alvo afeta o ponto de não retorno?',
|
|
16
|
+
answer: 'O tempo operando no local consome uma fração fixa da bateria útil, reduzindo a distância máxima disponível para ida e volta.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'O que causa a queda de tensão nas baterias LiPo sob carga?',
|
|
20
|
+
answer: 'Altas correntes aumentam as perdas por resistência interna nas células de lítio, reduzindo os Watt-hora efetivamente utilizáveis.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToSteps = [
|
|
25
|
+
{
|
|
26
|
+
name: 'Insira as especificações da bateria e propulsão',
|
|
27
|
+
text: 'Informe a capacidade em mAh, voltagem nominal e consumo médio em ampères.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Defina a distância e o tempo no alvo',
|
|
31
|
+
text: 'Especifique a distância de ida e o tempo planejado de pairado sobre a área da missão.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Configure a velocidade e direção do vento',
|
|
35
|
+
text: 'Selecione a velocidade do vento e o rumo relativo à ida.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Analise o raio seguro e a telemetria',
|
|
39
|
+
text: 'Examine o ponto de não retorno calculado, a potência por trecho e a energia restante no pouso.',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const schemas: DroneMissionBatteryReservePlannerLocaleContent['schemas'] = [
|
|
44
|
+
{
|
|
45
|
+
'@context': 'https://schema.org',
|
|
46
|
+
'@type': 'FAQPage',
|
|
47
|
+
mainEntity: faqItems.map((item) => ({
|
|
48
|
+
'@type': 'Question',
|
|
49
|
+
name: item.question,
|
|
50
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
51
|
+
})),
|
|
52
|
+
} as WithContext<FAQPage>,
|
|
53
|
+
{
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: title,
|
|
57
|
+
description: description,
|
|
58
|
+
step: howToSteps.map((step, i) => ({
|
|
59
|
+
'@type': 'HowToStep',
|
|
60
|
+
position: i + 1,
|
|
61
|
+
name: step.name,
|
|
62
|
+
text: step.text,
|
|
63
|
+
})),
|
|
64
|
+
} as WithContext<HowTo>,
|
|
65
|
+
{
|
|
66
|
+
'@context': 'https://schema.org',
|
|
67
|
+
'@type': 'SoftwareApplication',
|
|
68
|
+
name: title,
|
|
69
|
+
description: description,
|
|
70
|
+
applicationCategory: 'UtilityApplication',
|
|
71
|
+
operatingSystem: 'Web',
|
|
72
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
73
|
+
} as WithContext<SoftwareApplication>,
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
export const content: DroneMissionBatteryReservePlannerLocaleContent = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
ui: {
|
|
81
|
+
title: 'Planejador de Reserva de Bateria para Missão de Drone',
|
|
82
|
+
subtitle: 'Calcule margens de segurança para retorno e raios de voo',
|
|
83
|
+
description: 'Planeje missões UAV com cálculo preciso de reservas e correções aerodinâmicas de vento.',
|
|
84
|
+
sections: {
|
|
85
|
+
batteryPropulsion: '1. Bateria e Propulsão',
|
|
86
|
+
flightAtmosphere: '2. Perfil de Voo e Atmosfera',
|
|
87
|
+
},
|
|
88
|
+
inputs: {
|
|
89
|
+
unitSystemLabel: 'Sistema de Unidades',
|
|
90
|
+
metricLabel: 'Métrico',
|
|
91
|
+
imperialLabel: 'Imperial',
|
|
92
|
+
presetLabel: 'Presets Rápidos de Missão',
|
|
93
|
+
batteryCapacityLabel: 'Capacidade da Bateria',
|
|
94
|
+
batteryVoltageLabel: 'Voltagem Nominal',
|
|
95
|
+
averageCurrentLabel: 'Consumo Médio em Cruzeiro',
|
|
96
|
+
cruiseSpeedLabel: 'Velocidade do Ar em Cruzeiro',
|
|
97
|
+
oneWayDistanceLabel: 'Distância de Ida',
|
|
98
|
+
targetHoverTimeLabel: 'Tempo Operacional no Alvo',
|
|
99
|
+
windSpeedLabel: 'Velocidade do Vento',
|
|
100
|
+
windDirectionLabel: 'Rumo do Vento Relativo à Ida',
|
|
101
|
+
windHeadwindLabel: 'Vento de Frente na Ida',
|
|
102
|
+
windTailwindLabel: 'Vento a Favor na Ida',
|
|
103
|
+
windCrosswindLabel: 'Vento Cruzado',
|
|
104
|
+
reservePolicyLabel: 'Buffer de Reserva de Segurança',
|
|
105
|
+
},
|
|
106
|
+
presets: {
|
|
107
|
+
mappingSurvey: 'Mapeamento e Fotogrametria',
|
|
108
|
+
fpvRecon: 'Reconhecimento FPV Long Range',
|
|
109
|
+
cinematicInspection: 'Inspeção Estrutural Cinematográfica',
|
|
110
|
+
microRecon: 'Missão Micro Drone',
|
|
111
|
+
surveyMeta: 'mapeamento',
|
|
112
|
+
scoutMeta: 'reconhecimento',
|
|
113
|
+
hoverMeta: 'pairado',
|
|
114
|
+
},
|
|
115
|
+
results: {
|
|
116
|
+
totalCapacityEnergy: 'Energia Total Bruta',
|
|
117
|
+
usableEnergy: 'Energia Útil de Missão',
|
|
118
|
+
reserveEnergyBuffer: 'Buffer de Energia de Reserva',
|
|
119
|
+
totalAutonomyTime: 'Autonomia Total de Voo',
|
|
120
|
+
maxSafeMissionRadius: 'Raio do Ponto de Não Retorno',
|
|
121
|
+
outboundLegTime: 'Duração do Trecho de Ida',
|
|
122
|
+
targetHoverTime: 'Duração Pairado no Alvo',
|
|
123
|
+
returnLegTime: 'Duração do Trecho de Volta',
|
|
124
|
+
totalMissionTime: 'Duração Total de Trânsito',
|
|
125
|
+
remainingEnergyLanding: 'Nível Estimado no Pouso',
|
|
126
|
+
feasibilityStatus: 'Avaliação de Viabilidade da Missão',
|
|
127
|
+
voltageSagSubLabel: 'Queda de voltagem',
|
|
128
|
+
maxRadiusSubLabel: 'Raio máx com pairado no alvo',
|
|
129
|
+
powerSubLabel: 'Potência',
|
|
130
|
+
},
|
|
131
|
+
statusBadges: {
|
|
132
|
+
optimalTitle: 'MARGEM ÓTIMA DE RESERVA DE ENERGIA',
|
|
133
|
+
optimalSubtitle: 'Perfil seguro de voo com reserva suficiente no pouso',
|
|
134
|
+
tightTitle: 'MARGEM DE RESERVA APERTADA',
|
|
135
|
+
tightSubtitle: 'Reserva baixa no pouso, monitore a voltagem da bateria',
|
|
136
|
+
criticalTitle: 'ALERTA CRÍTICO DE ENERGIA',
|
|
137
|
+
criticalSubtitle: 'Reserva ultrapassada, inicie o retorno à base imediatamente',
|
|
138
|
+
exceededTitle: 'MISSÃO EXCEDE A CAPACIDADE SEGURA',
|
|
139
|
+
exceededSubtitle: 'Energia insuficiente para concluir a missão e pousar seguro',
|
|
140
|
+
},
|
|
141
|
+
chart: {
|
|
142
|
+
batteryProfileTitle: 'PERFIL NÃO LINEAR DE ALOCAÇÃO ENERGÉTICA',
|
|
143
|
+
modelTitle: 'MODELO DE POTÊNCIA AERODINÂMICA E VENTO',
|
|
144
|
+
windLabel: 'Vento',
|
|
145
|
+
homeNode: 'BASE',
|
|
146
|
+
targetNode: 'ALVO',
|
|
147
|
+
landNode: 'POUSO',
|
|
148
|
+
launchPadLabel: 'Ponto de decolagem',
|
|
149
|
+
surveyHoverLabel: 'Pairado no alvo',
|
|
150
|
+
safeRadiusLabel: 'Raio seguro',
|
|
151
|
+
outboundSegment: 'Ida',
|
|
152
|
+
targetSegment: 'Pairado',
|
|
153
|
+
returnSegment: 'Volta',
|
|
154
|
+
reserveSegment: 'Reserva',
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
seo: [
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Penalidades de Potência Aerodinâmica com Vento Contra',
|
|
161
|
+
level: 2,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'paragraph',
|
|
165
|
+
html: 'A segurança de voo em operações UAV depende de física aerodinâmica não linear. Voar contra o vento exige maior inclinação para vencer o atrito do ar e manter a velocidade em solo. Isso aumenta a exigência de empuxo nos motores e a corrente elétrica.',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: 'paragraph',
|
|
169
|
+
html: 'Nosso planejador calcula as variações de potência trecho a trecho com base no vetor do vento.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'title',
|
|
173
|
+
text: 'Cálculo do Tempo de Pairado na Área do Alvo',
|
|
174
|
+
level: 2,
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
type: 'paragraph',
|
|
178
|
+
html: 'Missões de fotogrametria e inspeção exigem pairar sobre a zona de trabalho. Esse consumo é subtraído antes de determinar o raio máximo de voo.',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'list',
|
|
182
|
+
items: [
|
|
183
|
+
'Informe o tempo no alvo antes de calcular os limites da missão.',
|
|
184
|
+
'Anticipe picos de potência nos trechos voando contra o vento.',
|
|
185
|
+
'Monitore a queda de voltagem sob carga nas células LiPo.',
|
|
186
|
+
'Inicie o retorno assim que atingir o buffer de reserva.',
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
type: 'tip',
|
|
191
|
+
title: 'Aviso sobre Queda de Voltagem em Baterias LiPo',
|
|
192
|
+
html: 'Altas correntes geram perdas por resistência interna nas células de lítio, reduzindo a energia útil disponível.',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'title',
|
|
196
|
+
text: 'Fórmulas para Cálculo de Reserva de Bateria UAV',
|
|
197
|
+
level: 2,
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'table',
|
|
201
|
+
headers: ['Parâmetro', 'Fórmula / Modelo', 'Unidade'],
|
|
202
|
+
rows: [
|
|
203
|
+
['Energia Bruta', 'Capacidade (mAh) x Voltagem (V) / 1000', 'Watt-hora (Wh)'],
|
|
204
|
+
['Perda por Sag', 'Energia Bruta x Fator de Sag', 'Watt-hora (Wh)'],
|
|
205
|
+
['Potência com Vento', 'Potência Base x (1 + 0.65 x RatioVento)^1.3', 'Watts (W)'],
|
|
206
|
+
['Raio Seguro Máx', '(Energia Útil - Energia Pairado) / Consumo por Km', 'Quilômetros (km)'],
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: 'title',
|
|
211
|
+
text: 'Boas Práticas na Planejamento de Voos UAV',
|
|
212
|
+
level: 2,
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
type: 'paragraph',
|
|
216
|
+
html: 'Sempre valide os cálculos pré-voo com a telemetria gravada para manter altos padrões de segurança operacionais.',
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
faq: faqItems,
|
|
220
|
+
bibliography,
|
|
221
|
+
howTo: howToSteps,
|
|
222
|
+
schemas,
|
|
223
|
+
};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import type { DroneMissionBatteryReservePlannerLocaleContent } from '../entry';
|
|
2
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
const slug = 'planirovshchik-rezerva-batarei-misiya-drona';
|
|
6
|
+
const title = 'Планировщик Резерва Батареи для Миссий Дронов';
|
|
7
|
+
const description = 'Рассчитайте безопасный резерв батареи для возврата домой, влияние встречного ветра и максимальный радиус полета БПЛА.';
|
|
8
|
+
|
|
9
|
+
const faqItems = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Почему полет против ветра расходует больше энергии?',
|
|
12
|
+
answer: 'Полет против ветра требует большего угла тангажа для преодоления аэродинамического сопротивления, что существенно увеличивает ток двигателей.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Как время работы в точке цели влияет на точку невозврата?',
|
|
16
|
+
answer: 'Время зависания над объектом расходует полезную энергию батареи, уменьшая максимальный доступный радиус транзита.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Что вызывает просадку напряжения LiPo под нагрузкой?',
|
|
20
|
+
answer: 'Высокий ток разряда увеличивает внутренние потери в литиевых ячейках, снижая фактически доступную емкость в Ватт-часах.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToSteps = [
|
|
25
|
+
{
|
|
26
|
+
name: 'Введите параметры батареи и моторов',
|
|
27
|
+
text: 'Укажите емкость батареи в мАч, номинальное напряжение и средний ток потребления.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Задайте дистанцию и время работы над целью',
|
|
31
|
+
text: 'Укажите расстояние до цели и планируемое время зависания для съемки или осмотра.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Настройте скорость и направление ветра',
|
|
35
|
+
text: 'Выберите скорость ветра и направление относительно маршрута полета.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Проанализируйте радиус и телеметрию',
|
|
39
|
+
text: 'Изучите рассчитанную точку невозврата, мощность по участкам и остаток заряда при посадке.',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const schemas: DroneMissionBatteryReservePlannerLocaleContent['schemas'] = [
|
|
44
|
+
{
|
|
45
|
+
'@context': 'https://schema.org',
|
|
46
|
+
'@type': 'FAQPage',
|
|
47
|
+
mainEntity: faqItems.map((item) => ({
|
|
48
|
+
'@type': 'Question',
|
|
49
|
+
name: item.question,
|
|
50
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
51
|
+
})),
|
|
52
|
+
} as WithContext<FAQPage>,
|
|
53
|
+
{
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: title,
|
|
57
|
+
description: description,
|
|
58
|
+
step: howToSteps.map((step, i) => ({
|
|
59
|
+
'@type': 'HowToStep',
|
|
60
|
+
position: i + 1,
|
|
61
|
+
name: step.name,
|
|
62
|
+
text: step.text,
|
|
63
|
+
})),
|
|
64
|
+
} as WithContext<HowTo>,
|
|
65
|
+
{
|
|
66
|
+
'@context': 'https://schema.org',
|
|
67
|
+
'@type': 'SoftwareApplication',
|
|
68
|
+
name: title,
|
|
69
|
+
description: description,
|
|
70
|
+
applicationCategory: 'UtilityApplication',
|
|
71
|
+
operatingSystem: 'Web',
|
|
72
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
73
|
+
} as WithContext<SoftwareApplication>,
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
export const content: DroneMissionBatteryReservePlannerLocaleContent = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
ui: {
|
|
81
|
+
title: 'Планировщик Резерва Батареи для Миссий Дронов',
|
|
82
|
+
subtitle: 'Расчет запаса энергии для возврата, влияния ветра и радиуса полета',
|
|
83
|
+
description: 'Точное планирование полета БПЛА с учетом просадки напряжения и точки невозврата.',
|
|
84
|
+
sections: {
|
|
85
|
+
batteryPropulsion: '1. Батарея и Силовая Установка',
|
|
86
|
+
flightAtmosphere: '2. Профиль Полета и Атмосфера',
|
|
87
|
+
},
|
|
88
|
+
inputs: {
|
|
89
|
+
unitSystemLabel: 'Система Единиц',
|
|
90
|
+
metricLabel: 'Метрическая',
|
|
91
|
+
imperialLabel: 'Имперская',
|
|
92
|
+
presetLabel: 'Быстрые Пресеты Миссии',
|
|
93
|
+
batteryCapacityLabel: 'Емкость Батареи',
|
|
94
|
+
batteryVoltageLabel: 'Номинальное Напряжение',
|
|
95
|
+
averageCurrentLabel: 'Средний Ток Крейсерского Полета',
|
|
96
|
+
cruiseSpeedLabel: 'Воздушная Скорость',
|
|
97
|
+
oneWayDistanceLabel: 'Дистанция до Цели',
|
|
98
|
+
targetHoverTimeLabel: 'Время Работы над Целью',
|
|
99
|
+
windSpeedLabel: 'Скорость Ветра',
|
|
100
|
+
windDirectionLabel: 'Направление Ветра к Маршруту',
|
|
101
|
+
windHeadwindLabel: 'Встречный Ветер',
|
|
102
|
+
windTailwindLabel: 'Попутный Ветер',
|
|
103
|
+
windCrosswindLabel: 'Боковой Ветер',
|
|
104
|
+
reservePolicyLabel: 'Буфер Резерва Безопасности',
|
|
105
|
+
},
|
|
106
|
+
presets: {
|
|
107
|
+
mappingSurvey: 'Аэрофотосъемка и Картография',
|
|
108
|
+
fpvRecon: 'Дальняя FPV Разведка',
|
|
109
|
+
cinematicInspection: 'Инспекция Сооружений',
|
|
110
|
+
microRecon: 'Разведка Микро Дроном',
|
|
111
|
+
surveyMeta: 'съемка',
|
|
112
|
+
scoutMeta: 'разведка',
|
|
113
|
+
hoverMeta: 'зависание',
|
|
114
|
+
},
|
|
115
|
+
results: {
|
|
116
|
+
totalCapacityEnergy: 'Полная Энергоемкость',
|
|
117
|
+
usableEnergy: 'Полезная Энергия Миссии',
|
|
118
|
+
reserveEnergyBuffer: 'Буфер Резервной Энергии',
|
|
119
|
+
totalAutonomyTime: 'Полное Время Автономности',
|
|
120
|
+
maxSafeMissionRadius: 'Радиус Точки Невозврата',
|
|
121
|
+
outboundLegTime: 'Время Полета к Цели',
|
|
122
|
+
targetHoverTime: 'Время Зависания над Целью',
|
|
123
|
+
returnLegTime: 'Время Полета Обратно',
|
|
124
|
+
totalMissionTime: 'Общее Время Транзита',
|
|
125
|
+
remainingEnergyLanding: 'Остаток Заряда при Посадке',
|
|
126
|
+
feasibilityStatus: 'Оценка Выполнимости Миссии',
|
|
127
|
+
voltageSagSubLabel: 'Просадка напряжения',
|
|
128
|
+
maxRadiusSubLabel: 'Радиус с учетом работы над целью',
|
|
129
|
+
powerSubLabel: 'Мощность',
|
|
130
|
+
},
|
|
131
|
+
statusBadges: {
|
|
132
|
+
optimalTitle: 'ОПТИМАЛЬНЫЙ ЗАПАС ЭНЕРГИИ',
|
|
133
|
+
optimalSubtitle: 'Безопасный профиль полета с достаточным резервом на посадку',
|
|
134
|
+
tightTitle: 'ОГРАНИЧЕННЫЙ ЗАПАС ЭНЕРГИИ',
|
|
135
|
+
tightSubtitle: 'Низкий резерв посадки, внимательно следите за напряжением батареи',
|
|
136
|
+
criticalTitle: 'КРИТИЧЕСКАЯ ТРЕВОГА ЗАРЯДА',
|
|
137
|
+
criticalSubtitle: 'Резерв исчерпан, немедленно начинайте возврат на базу',
|
|
138
|
+
exceededTitle: 'МИССИЯ ПРЕВЫШАЕТ ЕМКОСТЬ БАТАРЕИ',
|
|
139
|
+
exceededSubtitle: 'Недостаточно энергии для завершения миссии и безопасной посадки',
|
|
140
|
+
},
|
|
141
|
+
chart: {
|
|
142
|
+
batteryProfileTitle: 'НЕЛИНЕЙНЫЙ ПРОФИЛЬ РАСПРЕДЕЛЕНИЯ ЭНЕРГИИ',
|
|
143
|
+
modelTitle: 'АЭРОДИНАМИЧЕСКАЯ МОДЕЛЬ И ВЕТЕР',
|
|
144
|
+
windLabel: 'Ветер',
|
|
145
|
+
homeNode: 'БАЗА',
|
|
146
|
+
targetNode: 'ЦЕЛЬ',
|
|
147
|
+
landNode: 'ПОСАДКА',
|
|
148
|
+
launchPadLabel: 'Точка взлета',
|
|
149
|
+
surveyHoverLabel: 'Работа над целью',
|
|
150
|
+
safeRadiusLabel: 'Безопасный радиус',
|
|
151
|
+
outboundSegment: 'Полет к цели',
|
|
152
|
+
targetSegment: 'Зависание',
|
|
153
|
+
returnSegment: 'Возврат',
|
|
154
|
+
reserveSegment: 'Резерв',
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
seo: [
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Аэродинамические Потери Мощности при Встречном Ветре',
|
|
161
|
+
level: 2,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'paragraph',
|
|
165
|
+
html: 'Безопасность полетов беспилотных летательных аппаратов основана на нелинейных законах физики. Полет против ветра требует большего угла тангажа для преодоления сопротивления воздуха и сохранения наземной скорости. Это приводит к экспоненциальному росту потребления тока моторами.',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: 'paragraph',
|
|
169
|
+
html: 'Наш планировщик динамически рассчитывает энергопотребление для каждого участка полета с учетом ветровой нагрузки.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'title',
|
|
173
|
+
text: 'Учет Времени Работы в Зоне Цели',
|
|
174
|
+
level: 2,
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
type: 'paragraph',
|
|
178
|
+
html: 'Зависание над объектом для аэрофотосъемки или осмотра расходует постоянную часть энергии батареи, уменьшая доступный радиус полета.',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'list',
|
|
182
|
+
items: [
|
|
183
|
+
'Задавайте время работы над целью до расчета границ миссии.',
|
|
184
|
+
'Учитывайте скачки мощности при полете против ветра.',
|
|
185
|
+
'Следите за просадкой напряжения LiPo под нагрузкой.',
|
|
186
|
+
'Начинайте возврат сразу при достижении установленного резерва.',
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
type: 'tip',
|
|
191
|
+
title: 'Предупреждение о Просадке Напряжения LiPo',
|
|
192
|
+
html: 'Высокие токи разряда вызывают просадку напряжения из-за внутреннего сопротивления литиевых ячеек, снижая полезную емкость на 5-12%.',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'title',
|
|
196
|
+
text: 'Формулы Расчета Резерва Батареи БПЛА',
|
|
197
|
+
level: 2,
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'table',
|
|
201
|
+
headers: ['Параметр', 'Формула / Модель', 'Единица'],
|
|
202
|
+
rows: [
|
|
203
|
+
['Полная Энергоемкость', 'Емкость (мАч) x Напряжение (В) / 1000', 'Ватт-часы (Втч)'],
|
|
204
|
+
['Потеря от Просадки', 'Полная Энергия x Коэффициент Просадки', 'Ватт-часы (Втч)'],
|
|
205
|
+
['Мощность при Ветре', 'Базовая Мощность x (1 + 0.65 x ВетерRatio)^1.3', 'Ватты (Вт)'],
|
|
206
|
+
['Безопасный Радиус', '(Полезная Энергия - Энергия Зависания) / Расход на Км', 'Километры (км)'],
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: 'title',
|
|
211
|
+
text: 'Рекомендации по Планированию Полетов БПЛА',
|
|
212
|
+
level: 2,
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
type: 'paragraph',
|
|
216
|
+
html: 'Всегда сопоставляйте данные телеметрии с предварительными расчетами для обеспечения высокой безопасности полетов.',
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
faq: faqItems,
|
|
220
|
+
bibliography,
|
|
221
|
+
howTo: howToSteps,
|
|
222
|
+
schemas,
|
|
223
|
+
};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import type { DroneMissionBatteryReservePlannerLocaleContent } from '../entry';
|
|
2
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
|
|
3
|
+
import { bibliography } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
const slug = 'dron-uppdrag-batterireserv-planerare';
|
|
6
|
+
const title = 'Drönare Uppdrag Batterireserv Planerare';
|
|
7
|
+
const description = 'Beräkna säkra batterireserver för hemflight, motvindspåverkan och maximal aktionsradie för drönare.';
|
|
8
|
+
|
|
9
|
+
const faqItems = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Varför drar flygning i motvind mer ström?',
|
|
12
|
+
answer: 'Att flyga i motvind kräver en brantare lutningsvinkel för att övervinna luftmotståndet och bibehålla markhastigheten, vilket ökar motorströmmen icke-linjärt.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Hur påverkar hovringstiden vid målet point of no return?',
|
|
16
|
+
answer: 'Hovringstiden över målområdet drar direkt användbar energi från batteriet innan den återstående säkra flygradien beräknas.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Vad orsakar spänningsfall under tung belastning på LiPo-batterier?',
|
|
20
|
+
answer: 'Högt strömuttag ökar inre motståndsförluster i litiumcellerna, vilket minskar de effektivt användbara wattimmarna.',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const howToSteps = [
|
|
25
|
+
{
|
|
26
|
+
name: 'Ange batteri- och drivlinespecifikationer',
|
|
27
|
+
text: 'Fyll i batterikapacitet i mAh, nominell spänning och genomsnittlig strömförbrukning.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Ställ in avstånd och hovringstid',
|
|
31
|
+
text: 'Ange enkel vägsträcka och planerad hovringstid över målområdet.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Konfigurera vindhastighet och vindriktning',
|
|
35
|
+
text: 'Välj vindhastighet och vindvinkel i förhållande till utresan.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Granska säkerhetsradie och telemetri',
|
|
39
|
+
text: 'Analysera den beräknade point of no return, strömförbrukning per sträcka och återstående laddning vid landning.',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
const schemas: DroneMissionBatteryReservePlannerLocaleContent['schemas'] = [
|
|
44
|
+
{
|
|
45
|
+
'@context': 'https://schema.org',
|
|
46
|
+
'@type': 'FAQPage',
|
|
47
|
+
mainEntity: faqItems.map((item) => ({
|
|
48
|
+
'@type': 'Question',
|
|
49
|
+
name: item.question,
|
|
50
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
51
|
+
})),
|
|
52
|
+
} as WithContext<FAQPage>,
|
|
53
|
+
{
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'HowTo',
|
|
56
|
+
name: title,
|
|
57
|
+
description: description,
|
|
58
|
+
step: howToSteps.map((step, i) => ({
|
|
59
|
+
'@type': 'HowToStep',
|
|
60
|
+
position: i + 1,
|
|
61
|
+
name: step.name,
|
|
62
|
+
text: step.text,
|
|
63
|
+
})),
|
|
64
|
+
} as WithContext<HowTo>,
|
|
65
|
+
{
|
|
66
|
+
'@context': 'https://schema.org',
|
|
67
|
+
'@type': 'SoftwareApplication',
|
|
68
|
+
name: title,
|
|
69
|
+
description: description,
|
|
70
|
+
applicationCategory: 'UtilityApplication',
|
|
71
|
+
operatingSystem: 'Web',
|
|
72
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
73
|
+
} as WithContext<SoftwareApplication>,
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
export const content: DroneMissionBatteryReservePlannerLocaleContent = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
ui: {
|
|
81
|
+
title: 'Drönare Uppdrag Batterireserv Planerare',
|
|
82
|
+
subtitle: 'Beräkna säkra reserver för hemflygning och uppdragsradier',
|
|
83
|
+
description: 'Noggrann drönarplanering med motvindskorrigering och point of no return gränsvärden.',
|
|
84
|
+
sections: {
|
|
85
|
+
batteryPropulsion: '1. Batteri & Drivlina',
|
|
86
|
+
flightAtmosphere: '2. Flygprofil & Atmosfär',
|
|
87
|
+
},
|
|
88
|
+
inputs: {
|
|
89
|
+
unitSystemLabel: 'Enhetssystem',
|
|
90
|
+
metricLabel: 'Metrisk',
|
|
91
|
+
imperialLabel: 'Imperial',
|
|
92
|
+
presetLabel: 'Snabbkonfigurationer',
|
|
93
|
+
batteryCapacityLabel: 'Batterikapacitet',
|
|
94
|
+
batteryVoltageLabel: 'Nominell Spänning',
|
|
95
|
+
averageCurrentLabel: 'Genomsnittlig Ström',
|
|
96
|
+
cruiseSpeedLabel: 'Flyghastighet i Luften',
|
|
97
|
+
oneWayDistanceLabel: 'Enkel Vägavstånd',
|
|
98
|
+
targetHoverTimeLabel: 'Hovringstid vid Målet',
|
|
99
|
+
windSpeedLabel: 'Vindhastighet',
|
|
100
|
+
windDirectionLabel: 'Vindriktning Relativt Utresan',
|
|
101
|
+
windHeadwindLabel: 'Motvind Utresa',
|
|
102
|
+
windTailwindLabel: 'Medvind Utresa',
|
|
103
|
+
windCrosswindLabel: 'Sidovind',
|
|
104
|
+
reservePolicyLabel: 'Säkerhets-Reservbuffer',
|
|
105
|
+
},
|
|
106
|
+
presets: {
|
|
107
|
+
mappingSurvey: 'Fotogrammetri & Kartering',
|
|
108
|
+
fpvRecon: 'FPV Långdistansspaning',
|
|
109
|
+
cinematicInspection: 'Konstruktionsinspektion',
|
|
110
|
+
microRecon: 'Mikrodrönaruppdrag',
|
|
111
|
+
surveyMeta: 'kartering',
|
|
112
|
+
scoutMeta: 'spaning',
|
|
113
|
+
hoverMeta: 'hovring',
|
|
114
|
+
},
|
|
115
|
+
results: {
|
|
116
|
+
totalCapacityEnergy: 'Total Energikapacitet',
|
|
117
|
+
usableEnergy: 'Användbar Uppdragsenergi',
|
|
118
|
+
reserveEnergyBuffer: 'Reserv-energibuffer',
|
|
119
|
+
totalAutonomyTime: 'Total Flygautonomi',
|
|
120
|
+
maxSafeMissionRadius: 'Point of No Return Radie',
|
|
121
|
+
outboundLegTime: 'Varaktighet Utresa',
|
|
122
|
+
targetHoverTime: 'Varaktighet Hovring Mål',
|
|
123
|
+
returnLegTime: 'Varaktighet Hemresa',
|
|
124
|
+
totalMissionTime: 'Total Transitvaraktighet',
|
|
125
|
+
remainingEnergyLanding: 'Beräknad Batterinivå vid Landning',
|
|
126
|
+
feasibilityStatus: 'Bedömning av Uppdragsgenomförbarhet',
|
|
127
|
+
voltageSagSubLabel: 'Spänningsfall',
|
|
128
|
+
maxRadiusSubLabel: 'Max säker radie med hovring',
|
|
129
|
+
powerSubLabel: 'Effekt',
|
|
130
|
+
},
|
|
131
|
+
statusBadges: {
|
|
132
|
+
optimalTitle: 'OPTIMAL ENERGIRESERV MARGINAL',
|
|
133
|
+
optimalSubtitle: 'Säker flygprofil med tillräcklig landningsreserv',
|
|
134
|
+
tightTitle: 'SNÄV ENERGIRESERV MARGINAL',
|
|
135
|
+
tightSubtitle: 'Låg landningsreserv, övervaka batterispänningen noga',
|
|
136
|
+
criticalTitle: 'KRITISK ENERGIVARNING',
|
|
137
|
+
criticalSubtitle: 'Reserv överskriden, påbörja hemflygning omedelbart',
|
|
138
|
+
exceededTitle: 'UPPDRAGET ÖVERSKRIDER SÄKER KAPACITET',
|
|
139
|
+
exceededSubtitle: 'Otillräcklig energi för att slutföra uppdraget säkert',
|
|
140
|
+
},
|
|
141
|
+
chart: {
|
|
142
|
+
batteryProfileTitle: 'ICKE-LINJÄR ENERGIFÖRDELNINGSPROFIL',
|
|
143
|
+
modelTitle: 'AERODYNAMISK EFFEKT- OCH VINDMODELL',
|
|
144
|
+
windLabel: 'Vind',
|
|
145
|
+
homeNode: 'HEM',
|
|
146
|
+
targetNode: 'MÅL',
|
|
147
|
+
landNode: 'LANDA',
|
|
148
|
+
launchPadLabel: 'Startplats',
|
|
149
|
+
surveyHoverLabel: 'Hovring vid mål',
|
|
150
|
+
safeRadiusLabel: 'Säker radie',
|
|
151
|
+
outboundSegment: 'Utresa',
|
|
152
|
+
targetSegment: 'Hovring',
|
|
153
|
+
returnSegment: 'Hemresa',
|
|
154
|
+
reserveSegment: 'Reserv',
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
seo: [
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Aerodynamiska Effektförluster i Motvind',
|
|
161
|
+
level: 2,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'paragraph',
|
|
165
|
+
html: 'Flygsäkerhet för drönare bygger på icke-linjära fysikaliska principer. Att flyga mot vinden kräver en brantare lutning för att övervinna motståndet och hålla hastigheten.',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: 'paragraph',
|
|
169
|
+
html: 'Vår planerare beräknar dynamiskt effektförbrukningen för varje delsträcka under rådande vindförhållanden.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'title',
|
|
173
|
+
text: 'Beräkning av Hovringstid vid Målområdet',
|
|
174
|
+
level: 2,
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
type: 'paragraph',
|
|
178
|
+
html: 'Inspektions- och karteringsuppdrag kräver hovring över målet. Denna energiförbrukning dras av innan den maximala returradien beräknas.',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'list',
|
|
182
|
+
items: [
|
|
183
|
+
'Ange hovringstiden innan du beräknar gränserna.',
|
|
184
|
+
'Ta hänsyn till effekttoppar i motvind.',
|
|
185
|
+
'Övervaka spänningsfall i LiPo-celler under belastning.',
|
|
186
|
+
'Inled returen så snart reservbufferten nås.',
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
type: 'tip',
|
|
191
|
+
title: 'Varning för Spänningsfall i LiPo Batterier',
|
|
192
|
+
html: 'Höga strömmar orsakar tillfälliga spänningsfall på grund av inre motstånd, vilket minskar den användbara energin.',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'title',
|
|
196
|
+
text: 'Formler för Beräkning av Drönarens Batterireserv',
|
|
197
|
+
level: 2,
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'table',
|
|
201
|
+
headers: ['Parameter', 'Formel / Modell', 'Enhet'],
|
|
202
|
+
rows: [
|
|
203
|
+
['Bruttoenergi', 'Kapacitet (mAh) x Spänning (V) / 1000', 'Wattimmar (Wh)'],
|
|
204
|
+
['Förlust från Sag', 'Bruttoenergi x Sag-faktor', 'Wattimmar (Wh)'],
|
|
205
|
+
['Effekt i Vind', 'Grundeffekt x (1 + 0.65 x WindRatio)^1.3', 'Watt (W)'],
|
|
206
|
+
['Max Säker Radie', '(Användbar Energi - Hovringsenergi) / Förbrukning per Km', 'Kilometer (km)'],
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: 'title',
|
|
211
|
+
text: 'Bästa Praxis för Flygplanering med Drönare',
|
|
212
|
+
level: 2,
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
type: 'paragraph',
|
|
216
|
+
html: 'Jämför alltid uppmätt telemetri med förhandsberäkningar för högsta säkerhet under kommersiella uppdrag.',
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
faq: faqItems,
|
|
220
|
+
bibliography,
|
|
221
|
+
howTo: howToSteps,
|
|
222
|
+
schemas,
|
|
223
|
+
};
|