Adapt regression to signals
This commit is contained in:
@ -79,7 +79,7 @@ details, a {
|
||||
<script>
|
||||
function loadRegression(data) {
|
||||
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 [accMaxV, _] = acc;
|
||||
if (maxV >= accMaxV) {
|
||||
@ -93,7 +93,11 @@ function loadRegression(data) {
|
||||
const div = document.createElement('div');
|
||||
newLinearRegressionChart(div,
|
||||
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});
|
||||
deadWheelCharts.appendChild(div);
|
||||
});
|
||||
@ -101,15 +105,19 @@ function loadRegression(data) {
|
||||
const div = document.createElement('div');
|
||||
newLinearRegressionChart(div,
|
||||
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});
|
||||
deadWheelCharts.appendChild(div);
|
||||
});
|
||||
|
||||
const setParams = (() => {
|
||||
const allPowers = [...data.leftPowers, ...data.rightPowers];
|
||||
const appliedVoltages = data.voltages.slice(0, -1).map((v, i) =>
|
||||
allPowers.reduce((acc, ps) => Math.max(acc, ps[i]), 0) * v);
|
||||
const appliedVoltages = data.voltages.values.slice(0, -1).map((v, i) =>
|
||||
allPowers.reduce((acc, ps) => Math.max(acc, ps.values[i]), 0) * v);
|
||||
|
||||
const setTrackWidthData = newLinearRegressionChart(
|
||||
document.getElementById('trackWidthChart'),
|
||||
|
@ -62,23 +62,23 @@ details, a {
|
||||
<script>
|
||||
function loadRegression(data) {
|
||||
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) =>
|
||||
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(
|
||||
document.getElementById('rampChart'),
|
||||
[
|
||||
...leftEncVels.flatMap(vs => vs.slice(0, -1).map(v => -v)),
|
||||
...rightEncVels.flatMap(vs => vs.slice(0, -1)),
|
||||
...leftEncVels.flatMap(vs => vs.values.slice(0, -1).map(v => -v)),
|
||||
...rightEncVels.flatMap(vs => vs.values.slice(0, -1)),
|
||||
],
|
||||
[
|
||||
...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);
|
||||
}),
|
||||
...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);
|
||||
}),
|
||||
],
|
||||
@ -86,7 +86,7 @@ function loadRegression(data) {
|
||||
);
|
||||
|
||||
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 [accMaxV, _] = acc;
|
||||
if (maxV >= accMaxV) {
|
||||
|
@ -61,10 +61,10 @@ details, a {
|
||||
<script>
|
||||
function loadRegression(data) {
|
||||
const forwardEncVels = data.forwardEncVels.flatMap((vs, i) =>
|
||||
fixVels(data.encTimes.slice(0, -1), data.forwardEncPositions[i].slice(0, -1), vs.slice(0, -1)));
|
||||
const appliedVoltages = data.forwardEncVels.flatMap(vs => {
|
||||
const voltages = data.voltages.slice(0, -1).map((v, i) =>
|
||||
data.powers.reduce((acc, ps) => Math.max(acc, ps[i]), 0) * v);
|
||||
fixVels(vs.times.slice(0, -1), data.forwardEncPositions[i].values.slice(0, -1), vs.values.slice(0, -1)));
|
||||
const appliedVoltages = data.forwardEncVels.flatMap(() => {
|
||||
const voltages = data.voltages.values.slice(0, -1).map((v, i) =>
|
||||
data.powers.reduce((acc, ps) => Math.max(acc, ps.values[i]), 0) * v);
|
||||
|
||||
return voltages.slice(1, voltages.length - 1);
|
||||
});
|
||||
|
Reference in New Issue
Block a user