Adapt regression to signals
This commit is contained in:
@ -79,7 +79,7 @@ details, a {
|
|||||||
<script>
|
<script>
|
||||||
function loadRegression(data) {
|
function loadRegression(data) {
|
||||||
const [_, angVels] = data.angVels.reduce((acc, vsArg) => {
|
const [_, angVels] = data.angVels.reduce((acc, vsArg) => {
|
||||||
const vs = fixAngVels(vsArg.slice(0, -1)).map(v => Math.abs(v));
|
const vs = fixAngVels(vsArg.values.slice(0, -1)).map(v => Math.abs(v));
|
||||||
const maxV = vs.reduce((acc, v) => Math.max(acc, v), 0);
|
const maxV = vs.reduce((acc, v) => Math.max(acc, v), 0);
|
||||||
const [accMaxV, _] = acc;
|
const [accMaxV, _] = acc;
|
||||||
if (maxV >= accMaxV) {
|
if (maxV >= accMaxV) {
|
||||||
@ -93,7 +93,11 @@ function loadRegression(data) {
|
|||||||
const div = document.createElement('div');
|
const div = document.createElement('div');
|
||||||
newLinearRegressionChart(div,
|
newLinearRegressionChart(div,
|
||||||
angVels.slice(1, -1),
|
angVels.slice(1, -1),
|
||||||
fixVels(data.encTimes.slice(0, -1), data.parEncPositions[i].slice(0, -1), vs.slice(0, -1)),
|
fixVels(
|
||||||
|
vs.times.slice(0, -1),
|
||||||
|
data.parEncPositions[i].values.slice(0, -1),
|
||||||
|
vs.values.slice(0, -1)
|
||||||
|
),
|
||||||
{title: `Parallel Wheel ${i} Regression`, slope: 'y-position', noIntercept: true});
|
{title: `Parallel Wheel ${i} Regression`, slope: 'y-position', noIntercept: true});
|
||||||
deadWheelCharts.appendChild(div);
|
deadWheelCharts.appendChild(div);
|
||||||
});
|
});
|
||||||
@ -101,15 +105,19 @@ function loadRegression(data) {
|
|||||||
const div = document.createElement('div');
|
const div = document.createElement('div');
|
||||||
newLinearRegressionChart(div,
|
newLinearRegressionChart(div,
|
||||||
angVels.slice(1, -1),
|
angVels.slice(1, -1),
|
||||||
fixVels(data.encTimes.slice(0, -1), data.perpEncPositions[i].slice(0, -1), vs.slice(0, -1)),
|
fixVels(
|
||||||
|
vs.times.slice(0, -1),
|
||||||
|
data.perpEncPositions[i].values.slice(0, -1),
|
||||||
|
vs.values.slice(0, -1)
|
||||||
|
),
|
||||||
{title: `Perpendicular Wheel ${i} Regression`, slope: 'x-position', noIntercept: true});
|
{title: `Perpendicular Wheel ${i} Regression`, slope: 'x-position', noIntercept: true});
|
||||||
deadWheelCharts.appendChild(div);
|
deadWheelCharts.appendChild(div);
|
||||||
});
|
});
|
||||||
|
|
||||||
const setParams = (() => {
|
const setParams = (() => {
|
||||||
const allPowers = [...data.leftPowers, ...data.rightPowers];
|
const allPowers = [...data.leftPowers, ...data.rightPowers];
|
||||||
const appliedVoltages = data.voltages.slice(0, -1).map((v, i) =>
|
const appliedVoltages = data.voltages.values.slice(0, -1).map((v, i) =>
|
||||||
allPowers.reduce((acc, ps) => Math.max(acc, ps[i]), 0) * v);
|
allPowers.reduce((acc, ps) => Math.max(acc, ps.values[i]), 0) * v);
|
||||||
|
|
||||||
const setTrackWidthData = newLinearRegressionChart(
|
const setTrackWidthData = newLinearRegressionChart(
|
||||||
document.getElementById('trackWidthChart'),
|
document.getElementById('trackWidthChart'),
|
||||||
|
@ -62,23 +62,23 @@ details, a {
|
|||||||
<script>
|
<script>
|
||||||
function loadRegression(data) {
|
function loadRegression(data) {
|
||||||
const leftEncVels = data.leftEncVels.map((vs, i) =>
|
const leftEncVels = data.leftEncVels.map((vs, i) =>
|
||||||
fixVels(data.encTimes.slice(0, -1), data.leftEncPositions[i].slice(0, -1), vs.slice(0, -1)));
|
fixVels(vs.times.slice(0, -1), data.leftEncPositions[i].values.slice(0, -1), vs.values.slice(0, -1)));
|
||||||
const rightEncVels = data.rightEncVels.map((vs, i) =>
|
const rightEncVels = data.rightEncVels.map((vs, i) =>
|
||||||
fixVels(data.encTimes.slice(0, -1), data.rightEncPositions[i].slice(0, -1), vs.slice(0, -1)));
|
fixVels(vs.times.slice(0, -1), data.rightEncPositions[i].values.slice(0, -1), vs.values.slice(0, -1)));
|
||||||
|
|
||||||
newLinearRegressionChart(
|
newLinearRegressionChart(
|
||||||
document.getElementById('rampChart'),
|
document.getElementById('rampChart'),
|
||||||
[
|
[
|
||||||
...leftEncVels.flatMap(vs => vs.slice(0, -1).map(v => -v)),
|
...leftEncVels.flatMap(vs => vs.values.slice(0, -1).map(v => -v)),
|
||||||
...rightEncVels.flatMap(vs => vs.slice(0, -1)),
|
...rightEncVels.flatMap(vs => vs.values.slice(0, -1)),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
...data.leftPowers.flatMap(ps => {
|
...data.leftPowers.flatMap(ps => {
|
||||||
const psNew = ps.slice(0, -1).map((p, i) => -p * data.voltages[i]);
|
const psNew = ps.values.slice(0, -1).map((p, i) => -p * data.voltages.values[i]);
|
||||||
return psNew.slice(1, -1);
|
return psNew.slice(1, -1);
|
||||||
}),
|
}),
|
||||||
...data.rightPowers.flatMap(ps => {
|
...data.rightPowers.flatMap(ps => {
|
||||||
const psNew = ps.slice(0, -1).map((p, i) => p * data.voltages[i]);
|
const psNew = ps.values.slice(0, -1).map((p, i) => p * data.voltages.values[i]);
|
||||||
return psNew.slice(1, -1);
|
return psNew.slice(1, -1);
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
@ -86,7 +86,7 @@ function loadRegression(data) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const p = data.angVels.reduce((acc, vsArg) => {
|
const p = data.angVels.reduce((acc, vsArg) => {
|
||||||
const vs = fixAngVels(vsArg).map(v => Math.abs(v));
|
const vs = fixAngVels(vsArg.values).map(v => Math.abs(v));
|
||||||
const maxV = vs.reduce((acc, v) => Math.max(acc, v), 0);
|
const maxV = vs.reduce((acc, v) => Math.max(acc, v), 0);
|
||||||
const [accMaxV, _] = acc;
|
const [accMaxV, _] = acc;
|
||||||
if (maxV >= accMaxV) {
|
if (maxV >= accMaxV) {
|
||||||
|
@ -61,10 +61,10 @@ details, a {
|
|||||||
<script>
|
<script>
|
||||||
function loadRegression(data) {
|
function loadRegression(data) {
|
||||||
const forwardEncVels = data.forwardEncVels.flatMap((vs, i) =>
|
const forwardEncVels = data.forwardEncVels.flatMap((vs, i) =>
|
||||||
fixVels(data.encTimes.slice(0, -1), data.forwardEncPositions[i].slice(0, -1), vs.slice(0, -1)));
|
fixVels(vs.times.slice(0, -1), data.forwardEncPositions[i].values.slice(0, -1), vs.values.slice(0, -1)));
|
||||||
const appliedVoltages = data.forwardEncVels.flatMap(vs => {
|
const appliedVoltages = data.forwardEncVels.flatMap(() => {
|
||||||
const voltages = data.voltages.slice(0, -1).map((v, i) =>
|
const voltages = data.voltages.values.slice(0, -1).map((v, i) =>
|
||||||
data.powers.reduce((acc, ps) => Math.max(acc, ps[i]), 0) * v);
|
data.powers.reduce((acc, ps) => Math.max(acc, ps.values[i]), 0) * v);
|
||||||
|
|
||||||
return voltages.slice(1, voltages.length - 1);
|
return voltages.slice(1, voltages.length - 1);
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user