ajuste pid
This commit is contained in:
parent
41ce45ede7
commit
9f90eebf7c
Binary file not shown.
Binary file not shown.
|
|
@ -3,12 +3,16 @@
|
|||
"WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\services\\dispositivosservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\dispositivosservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\operacoes\\operacaomapagpsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\operacoes\\operacaomapagpsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\models\\operacoes\\operacaomapagpsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\operacoes\\operacaomapagpsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\models\\pidmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\pidmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\services\\dispositivosservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\dispositivosservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
|
|
@ -18,30 +22,43 @@
|
|||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 0,
|
||||
"SelectedChildIndex": 2,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"DocumentIndex": 1,
|
||||
"Title": "PIDModel.cs",
|
||||
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\PIDModel.cs",
|
||||
"RelativeDocumentMoniker": "AgroBase\\Models\\PIDModel.cs",
|
||||
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\PIDModel.cs",
|
||||
"RelativeToolTip": "AgroBase\\Models\\PIDModel.cs",
|
||||
"ViewState": "AQIAAAsAAAAAAAAAAAA9wCkAAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-12-17T16:39:11.967Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "DispositivosService.cs",
|
||||
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\DispositivosService.cs",
|
||||
"RelativeDocumentMoniker": "AgroBase\\Services\\DispositivosService.cs",
|
||||
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\DispositivosService.cs",
|
||||
"RelativeToolTip": "AgroBase\\Services\\DispositivosService.cs",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAJsAAAAAAAAA",
|
||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABkAAAA4AAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-12-17T16:08:08.254Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"DocumentIndex": 0,
|
||||
"Title": "OperacaoMapaGPSModel.cs",
|
||||
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
|
||||
"RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
|
||||
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
|
||||
"RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
|
||||
"ViewState": "AQIAABcAAAAAAAAAAAAwwCoAAAAMAAAA",
|
||||
"ViewState": "AQIAACwAAAAAAAAAAAAYwDoAAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-12-17T16:03:54.404Z",
|
||||
"EditorCaption": ""
|
||||
|
|
|
|||
|
|
@ -474,8 +474,14 @@ namespace AgroBase.Models.Operacoes
|
|||
{
|
||||
get
|
||||
{
|
||||
bool proximoEntradaRua = Variaveis.OperacaoEmAndamento.Mapa.DistanciaAteProximoPonto <= Variaveis.OperacaoEmAndamento.Mapa.DistanciaProjecaoRua;
|
||||
bool Manobrando = proximoEntradaRua && EmManobra;
|
||||
bool emCurva = Variaveis.OperacaoEmAndamento.Mapa.IdxRuaAtual > 0;
|
||||
bool proximoEntradaRua = Variaveis.OperacaoEmAndamento.Mapa.DistanciaAteProximoPonto <= (Variaveis.OperacaoEmAndamento.Mapa.DistanciaProjecaoRua * 5.0);
|
||||
bool Manobrando = emCurva && proximoEntradaRua && EmManobra;
|
||||
|
||||
if (Manobrando)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return Manobrando;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,18 +22,21 @@ namespace AgroBase.Models
|
|||
ValorAtual = valorAtual;
|
||||
double erro = SetPoint - ValorAtual;
|
||||
|
||||
// Atualiza a soma do erro considerando o intervalo de tempo
|
||||
somaErro += erro * deltaTime;
|
||||
somaErro = Math.Max(Math.Min(somaErro, LimiteSomaErro), -LimiteSomaErro); // Anti-wind-up
|
||||
if (erro != erroAnterior)
|
||||
{
|
||||
// Atualiza a soma do erro considerando o intervalo de tempo
|
||||
somaErro += erro * deltaTime;
|
||||
somaErro = Math.Max(Math.Min(somaErro, LimiteSomaErro), -LimiteSomaErro); // Anti-wind-up
|
||||
|
||||
// Calcula a taxa de variação do erro (termo derivativo)
|
||||
double deltaErro = (erro - erroAnterior) / deltaTime;
|
||||
// Calcula a taxa de variação do erro (termo derivativo)
|
||||
double deltaErro = (erro - erroAnterior) / deltaTime;
|
||||
|
||||
// Calcula a saída do PID
|
||||
double saidaTemp = (Kp * erro) + (Ki * somaErro) + (Kd * deltaErro);
|
||||
// Calcula a saída do PID
|
||||
double saidaTemp = (Kp * erro) + (Ki * somaErro) + (Kd * deltaErro);
|
||||
|
||||
// Limita a saída do PID
|
||||
Saida = Math.Max(Math.Min(saidaTemp, LimiteSaida), -LimiteSaida);
|
||||
// Limita a saída do PID
|
||||
Saida = Math.Max(Math.Min(saidaTemp, LimiteSaida), -LimiteSaida);
|
||||
}
|
||||
|
||||
// Atualiza o erro anterior
|
||||
erroAnterior = erro;
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +1,47 @@
|
|||
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"Id":"1","Name":"Projeto","Length":21.332976190943135,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":"0","type":"LineString","coordinates":[[-47.381495333333334,-22.213068166666666],[-47.381469166666669,-22.213091333333335],[-47.38141825,-22.213137833333334],[-47.3813925,-22.213161666666668],[-47.381369666666664,-22.2131845]]}},{"type":"Feature","properties":{"Id":"2","Name":"Projeto","Length":24.045328359726675,"Dist1":0.0,"Dist2":0.0},"geometry":{"id":"1","type":"LineString","coordinates":[[-47.381340166666668,-22.213175666666668],[-47.381375333333331,-22.213137166666666],[-47.38140933333333,-22.213102666666668],[-47.381453666666665,-22.213058166666666],[-47.381496666666663,-22.213015666666667]]}}]}
|
||||
{
|
||||
"type": "FeatureCollection",
|
||||
"features": [
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
"Id": "1",
|
||||
"Name": "Projeto",
|
||||
"Length": 21.332976190943135,
|
||||
"Dist1": 0.0,
|
||||
"Dist2": 0.0
|
||||
},
|
||||
"geometry": {
|
||||
"id": null,
|
||||
"type": "LineString",
|
||||
"coordinates": [
|
||||
[-47.381495333333334, -22.213068166666666],
|
||||
[-47.38146916666667, -22.213091333333335],
|
||||
[-47.38141825, -22.213137833333333],
|
||||
[-47.3813925, -22.213161666666668],
|
||||
[-47.381369666666664, -22.2131845]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
"Id": "2",
|
||||
"Name": "Projeto",
|
||||
"Length": 24.045328359726675,
|
||||
"Dist1": 0.0,
|
||||
"Dist2": 0.0
|
||||
},
|
||||
"geometry": {
|
||||
"id": null,
|
||||
"type": "LineString",
|
||||
"coordinates": [
|
||||
[-47.381340166666668, -22.213175666666668],
|
||||
[-47.381375333333331, -22.213137166666666],
|
||||
[-47.38140933333333, -22.213102666666668],
|
||||
[-47.381453666666665, -22.213058166666666],
|
||||
[-47.381496666666663, -22.213015666666667]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<meta name="viewport" content="width=device-width,
|
||||
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<style>
|
||||
#map_f0b88e3c9fbbb871f17a4dbd225c6fff {
|
||||
#map_e1b90746af4473ab782ac8531a7976bd {
|
||||
position: relative;
|
||||
width: 100.0%;
|
||||
height: 100.0%;
|
||||
|
|
@ -39,14 +39,14 @@
|
|||
<body>
|
||||
|
||||
|
||||
<div class="folium-map" id="map_f0b88e3c9fbbb871f17a4dbd225c6fff" ></div>
|
||||
<div class="folium-map" id="map_e1b90746af4473ab782ac8531a7976bd" ></div>
|
||||
|
||||
</body>
|
||||
<script>
|
||||
|
||||
|
||||
var map_f0b88e3c9fbbb871f17a4dbd225c6fff = L.map(
|
||||
"map_f0b88e3c9fbbb871f17a4dbd225c6fff",
|
||||
var map_e1b90746af4473ab782ac8531a7976bd = L.map(
|
||||
"map_e1b90746af4473ab782ac8531a7976bd",
|
||||
{
|
||||
center: [-22.213100083333334, -47.38141841666666],
|
||||
crs: L.CRS.EPSG3857,
|
||||
|
|
@ -60,13 +60,13 @@
|
|||
|
||||
|
||||
|
||||
var tile_layer_fb166f510d9dc07cae4560a0da44b242 = L.tileLayer(
|
||||
var tile_layer_70aa00954f465cffc01861ff6ef2f457 = L.tileLayer(
|
||||
"https://tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||
{"attribution": "\u0026copy; \u003ca href=\"https://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
|
||||
);
|
||||
|
||||
|
||||
tile_layer_fb166f510d9dc07cae4560a0da44b242.addTo(map_f0b88e3c9fbbb871f17a4dbd225c6fff);
|
||||
tile_layer_70aa00954f465cffc01861ff6ef2f457.addTo(map_e1b90746af4473ab782ac8531a7976bd);
|
||||
|
||||
|
||||
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
}*/
|
||||
});
|
||||
}
|
||||
function geo_json_afbdf9289c407bb446a01d22a6f4e29b_onEachFeature(feature, layer) {
|
||||
function geo_json_976427b904ab56ed363ea4f9e9323627_onEachFeature(feature, layer) {
|
||||
layer.on({
|
||||
|
||||
click: function(e) {
|
||||
|
|
@ -118,20 +118,20 @@
|
|||
}*/
|
||||
});
|
||||
};
|
||||
var geo_json_afbdf9289c407bb446a01d22a6f4e29b = L.geoJson(null, {
|
||||
onEachFeature: geo_json_afbdf9289c407bb446a01d22a6f4e29b_onEachFeature,
|
||||
var geo_json_976427b904ab56ed363ea4f9e9323627 = L.geoJson(null, {
|
||||
onEachFeature: geo_json_976427b904ab56ed363ea4f9e9323627_onEachFeature,
|
||||
|
||||
});
|
||||
|
||||
function geo_json_afbdf9289c407bb446a01d22a6f4e29b_add (data) {
|
||||
geo_json_afbdf9289c407bb446a01d22a6f4e29b
|
||||
function geo_json_976427b904ab56ed363ea4f9e9323627_add (data) {
|
||||
geo_json_976427b904ab56ed363ea4f9e9323627
|
||||
.addData(data);
|
||||
}
|
||||
geo_json_afbdf9289c407bb446a01d22a6f4e29b_add({"features": [{"geometry": {"coordinates": [[-47.38149533333333, -22.213068166666666], [-47.38146916666667, -22.213091333333335], [-47.38141825, -22.213137833333334], [-47.3813925, -22.213161666666668], [-47.381369666666664, -22.2131845]], "id": "0", "type": "LineString"}, "id": 0, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "1", "Length": 21.332976190943135, "Name": "Projeto"}, "type": "Feature"}, {"geometry": {"coordinates": [[-47.38134016666667, -22.213175666666668], [-47.38137533333333, -22.213137166666666], [-47.38140933333333, -22.213102666666668], [-47.381453666666665, -22.213058166666666], [-47.38149666666666, -22.213015666666667]], "id": "1", "type": "LineString"}, "id": 1, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "2", "Length": 24.045328359726675, "Name": "Projeto"}, "type": "Feature"}], "type": "FeatureCollection"});
|
||||
geo_json_976427b904ab56ed363ea4f9e9323627_add({"features": [{"geometry": {"coordinates": [[-47.38149533333333, -22.213068166666666], [-47.38146916666667, -22.213091333333335], [-47.38141825, -22.213137833333334], [-47.3813925, -22.213161666666668], [-47.381369666666664, -22.2131845]], "id": null, "type": "LineString"}, "id": 0, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "1", "Length": 21.332976190943135, "Name": "Projeto"}, "type": "Feature"}, {"geometry": {"coordinates": [[-47.38134016666667, -22.213175666666668], [-47.38137533333333, -22.213137166666666], [-47.38140933333333, -22.213102666666668], [-47.381453666666665, -22.213058166666666], [-47.38149666666666, -22.213015666666667]], "id": null, "type": "LineString"}, "id": 1, "properties": {"Dist1": 0.0, "Dist2": 0.0, "Id": "2", "Length": 24.045328359726675, "Name": "Projeto"}, "type": "Feature"}], "type": "FeatureCollection"});
|
||||
|
||||
|
||||
|
||||
geo_json_afbdf9289c407bb446a01d22a6f4e29b.addTo(map_f0b88e3c9fbbb871f17a4dbd225c6fff);
|
||||
geo_json_976427b904ab56ed363ea4f9e9323627.addTo(map_e1b90746af4473ab782ac8531a7976bd);
|
||||
|
||||
</script>
|
||||
|
||||
|
|
@ -152,7 +152,7 @@
|
|||
}
|
||||
trajeto_json_add({"features": []});
|
||||
|
||||
trajeto_json.addTo(map_f0b88e3c9fbbb871f17a4dbd225c6fff);
|
||||
trajeto_json.addTo(map_e1b90746af4473ab782ac8531a7976bd);
|
||||
|
||||
function adicionarGeometria(novaGeometria) {
|
||||
trajeto_json.addData(novaGeometria);
|
||||
|
|
@ -210,7 +210,7 @@
|
|||
}
|
||||
trajeto_dinamico_json_add({"features": []});
|
||||
|
||||
trajeto_dinamico_json.addTo(map_f0b88e3c9fbbb871f17a4dbd225c6fff);
|
||||
trajeto_dinamico_json.addTo(map_e1b90746af4473ab782ac8531a7976bd);
|
||||
|
||||
function adicionarGeometriaDinamica(novaGeometria) {
|
||||
trajeto_dinamico_json.addData(novaGeometria);
|
||||
|
|
@ -263,9 +263,9 @@
|
|||
|
||||
var marcadorEquipamento = L.marker([0, 0], {
|
||||
icon: customIcon
|
||||
}).addTo(map_f0b88e3c9fbbb871f17a4dbd225c6fff);
|
||||
}).addTo(map_e1b90746af4473ab782ac8531a7976bd);
|
||||
|
||||
var marcadorBase = L.marker([0, 0], {}).addTo(map_f0b88e3c9fbbb871f17a4dbd225c6fff);
|
||||
var marcadorBase = L.marker([0, 0], {}).addTo(map_e1b90746af4473ab782ac8531a7976bd);
|
||||
var icon = L.AwesomeMarkers.icon(
|
||||
{"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}
|
||||
);
|
||||
|
|
@ -347,7 +347,7 @@
|
|||
}
|
||||
|
||||
if (foco) {
|
||||
map_f0b88e3c9fbbb871f17a4dbd225c6fff.setView(novaPosicao, map_f0b88e3c9fbbb871f17a4dbd225c6fff.getZoom());
|
||||
map_e1b90746af4473ab782ac8531a7976bd.setView(novaPosicao, map_e1b90746af4473ab782ac8531a7976bd.getZoom());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -364,7 +364,7 @@
|
|||
function atualizarSelecaoRuas(selecionadas) {
|
||||
selecionadas = JSON.parse(selecionadas);
|
||||
RuasSelecionadas = Array.isArray(selecionadas) ? [...selecionadas] : [];
|
||||
geo_json_afbdf9289c407bb446a01d22a6f4e29b.eachLayer(function (layer) {
|
||||
geo_json_976427b904ab56ed363ea4f9e9323627.eachLayer(function (layer) {
|
||||
if (RuasSelecionadas.includes(parseInt(layer.feature.id))) {
|
||||
layer.setStyle({ color: 'blue' });
|
||||
} else {
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in New Issue