betaflight-configurator/tabs/pid_tuning.html

621 lines
34 KiB
HTML
Executable File

<div class="tab-pid_tuning toolbar_fixed_bottom">
<div class="content_wrapper">
<div class="tab_title" i18n="tabPidTuning"></div>
<div class="cf_doc_version_bt">
<a id="button-documentation" href="https://github.com/betaflight/betaflight/releases" target="_blank"></a>
</div>
<div class="cf_column">
<div class="profile single-field">
<div class="helpicon cf_tip" i18n_title="pidTuningProfileTip" style="margin-top: 5px;"></div>
<div class="head" i18n="pidTuningProfile"></div>
<div class="bottomarea">
<select name="profile">
<option value="0" class="profile1">Profile 1</option>
<option value="1" class="profile2">Profile 2</option>
<option value="2" class="profile3">Profile 3</option>
</select>
</div>
</div>
<div class="rate_profile single-field">
<div class="helpicon cf_tip" i18n_title="pidTuningRateProfileTip" style="margin-top: 5px;"></div>
<div class="head" i18n="pidTuningRateProfile"></div>
<div class="bottomarea">
<select name="rate_profile">
<option value="0">Rateprofile 1</option>
<option value="1">Rateprofile 2</option>
<option value="2">Rateprofile 3</option>
</select>
</div>
</div>
<div class="controller single-field">
<div class="helpicon cf_tip" i18n_title="pidTuningPidControllerTip" style="margin-top: 5px;"></div>
<div class="head" i18n="pidTuningControllerHead"></div>
<div class="bottomarea">
<select name="controller">
<!-- list generated here -->
</select>
</div>
</div>
<div class="cf_column right">
<div class="default_btn show">
<a href="#" id="showAllPids" i18n="pidTuningShowAllPids"></a>
</div>
<div class="default_btn resetbt">
<a href="#" id="resetProfile" i18n="pidTuningResetProfile"></a>
</div>
</div>
</div>
<div class="tab_container" style="background-color: #fff;">
<table>
<tr>
<td class="pid active">
<a href="#" i18n="pidTuningSubTabPid" />
</td>
<td class="filter">
<a href="#" i18n="pidTuningSubTabFilter" />
</td>
</tr>
</table>
</div>
<div class="tabboarder"></div>
<div class="tabarea">
<form name="pid-tuning" id="pid-tuning">
<div class="subtab-pid">
<div class="clear-both"></div>
<div class="cf_column twothird">
<div class="gui_box grey topspacer" style="margin-top: 0px;">
<table class="pid_titlebar">
<tr>
<th class="name" i18n="pidTuningName"></th>
<th class="proportional" i18n="pidTuningProportional"></th>
<th class="integral" i18n="pidTuningIntegral"></th>
<th class="derivative" i18n="pidTuningDerivative"></th>
<th class="rc_rate" i18n="pidTuningRcRate"></th>
<th class="rate" i18n="pidTuningRate"></th>
<th class="new_rates maxVel" i18n="pidTuningMaxVel"></th>
<th class="rc_expo" i18n="pidTuningRcExpo"></th>
</tr>
</table>
<table id="pid_main" class="pid_tuning">
<tr>
<th colspan="8">
<div class="pid_mode">
<div i18n="pidTuningBasic" style="float:left;"></div>
<div class="helpicon cf_tip" i18n_title="pidTuningPidTuningTip"></div>
</div>
</th>
</tr>
<tr class="ROLL">
<!-- 0 -->
<td bgcolor="#FF8080"></td>
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
<td rowspan="2" style="background-color:white;">
<input type="number" name="rc_rate" step="0.01" min="0" max="2.55" />
<div class="bracket"></div>
</td>
<td class="roll_rate"><input type="number" name="roll_rate" step="0.01" min="0" max="1.00" /></td>
<td class="roll_pitch_rate" rowspan="2"><input type="number" name="roll_pitch_rate" step="0.01" min="0" max="1.00" /></td>
<td class="new_rates maxAngularVelRoll"></td>
<td rowspan="2" style="background-color:white;">
<input type="number" name="rc_expo" step="0.01" min="0" max="1" />
<div class="bracket"></div>
</td>
</tr>
<tr class="PITCH">
<!-- 1 -->
<td bgcolor="#80FF80"></td>
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
<td class="pitch_rate"><input type="number" name="pitch_rate" step="0.01" min="0" max="1.00" /></td>
<td class="new_rates maxAngularVelPitch"></td>
</tr>
<tr class="YAW">
<!-- 2 -->
<td bgcolor="#8080FF"></td>
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
<td></td>
<td rowspan="1"><input type="number" name="rc_rate_yaw" step="0.01" min="0" max="2.55" /></td>
<td><input type="number" name="yaw_rate" step="0.01" min="0" max="2.55" /></td>
<td class="new_rates maxAngularVelYaw"></td>
<td><input type="number" name="rc_yaw_expo" step="0.01" min="0" max="1" /></td>
</tr>
<tr class="YAW_JUMP_PREVENTION">
<td colspan="3">
<div>
<div i18n="pidTuningYawJumpPrevention" style="float:left;"></div>
<div class="helpicon cf_tip" i18n_title="pidTuningYawJumpPreventionHelp"></div>
</div>
</td>
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
<td colspan="4"></td>
</tr>
</table>
</div>
<div id="pid_optional" class="gui_box grey topspacer pid_tuning">
<table class="pid_titlebar">
<tr>
<th class="name" i18n="pidTuningName"></th>
<th class="proportional" i18n="pidTuningProportional"></th>
<th class="integral" i18n="pidTuningIntegral"></th>
<th class="derivative" i18n="pidTuningDerivative"></th>
</tr>
</table>
<table id="pid_baro" class="pid_tuning">
<tr>
<th colspan="4">
<div class="pid_mode" i18n="pidTuningAltitude"></div>
</th>
</tr>
<tr class="ALT">
<!-- 3 -->
<td></td>
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
</tr>
<tr class="Vario">
<!-- 9 -->
<td>VEL</td>
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
</tr>
</table>
<table id="pid_mag" class="pid_tuning">
<tr>
<th colspan="4">
<div class="pid_mode" i18n="pidTuningMag"></div>
</th>
</tr>
<tr class="MAG">
<!-- 8 -->
<td></td>
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
<td></td>
<td></td>
</tr>
</table>
<table id="pid_gps" class="pid_tuning">
<tr>
<th colspan="4">
<div class="pid_mode" i18n="pidTuningGps"></div>
</th>
</tr>
<tr class="Pos">
<!-- 4 -->
<td></td>
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
<!-- <td><input type="number" name="i" step="1" min="0" max="255" /></td> -->
<td></td>
<td></td>
</tr>
<tr class="PosR">
<!-- 5 -->
<td></td>
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
</tr>
<tr class="NavR">
<!-- 6 -->
<td></td>
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
</tr>
</table>
</div>
<div id="pid_accel" class="gui_box grey topspacer pid_tuning">
<table id="pid_level" class="pid_tuning">
<tr>
<th colspan="3">
<div class="pid_mode">
<div i18n="pidTuningLevel" style="float:left;"></div>
<div class="helpicon cf_tip" i18n_title="pidTuningLevelHelp"></div>
</div>
</th>
</tr>
</table>
<table class="pid_titlebar">
<tr>
<th class="third" i18n="pidTuningName"></th>
<th class="third" i18n="pidTuningStrength" style="width: 33%;"></th>
<th class="third" i18n="pidTuningTransition" style="width: 33%;"></th>
</tr>
</table>
<table>
<tr class="ANGLE">
<!-- 7 -->
<td class="third" i18n="pidTuningAngle"></td>
<td class="third"><input type="number" name="p" step="1" min="0" max="255" /></td>
<td class="third"></td>
</tr>
<tr class="HORIZON">
<!-- 7 -->
<td class="third" i18n="pidTuningHorizon"></td>
<td class="third"><input type="number" name="i" step="1" min="0" max="255" /></td>
<td class="third"><input type="number" name="d" step="1" min="0" max="255" /></td>
</tr>
</table>
<table class="pid_titlebar pid_sensitivity">
<tr>
<th class="third"></th>
<th class="third" i18n="pidTuningLevelAngleLimit" style="width: 33%;"></th>
<th class="third" i18n="pidTuningLevelSensitivity" style="width: 33%;"></th>
</tr>
</table>
<table id="pid_sensitivity" class="pid_tuning pid_sensitivity">
<tr>
<td class="third"></td>
<td class="third"><input type="number" name="angleLimit" step="1" min="10" max="200" /></td>
<td class="third"><input type="number" name="sensitivity" step="1" min="10" max="120" /></td>
</tr>
</table>
</div>
<div class="gui_box grey topspacer pidTuningFeatures">
<table class="pid_titlebar new_rates">
<tr>
<th i18n="pidTuningNonProfilePidSettings"></th>
</tr>
</table>
<table class="pidTuningFeatures new_rates">
<tbody class="features pidTuning">
<!-- table generated here -->
</tbody>
</table>
</div>
<div class="gui_box grey topspacer">
<table class="pid_titlebar new_rates">
<tr>
<th i18n="pidTuningPidSettings"></th>
</tr>
</table>
<table class="compensation">
<tr class="delta">
<td>
<select id="delta-select">
<option value="0" i18n="pidTuningDeltaError"/>
<option value="1" i18n="pidTuningDeltaMeasurement"/>
</select>
</td>
<td>
<div>
<label for="delta-select">
<span i18n="pidTuningDelta"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningDeltaTip"></div>
</div>
</td>
</tr>
<tr class="dtermSetpoint" style="height:30px;">
<td><input type="number" name="dtermSetpoint-number" step="0.01" min="0.00" max="2.55"/></td>
<td class="slider"><input type="range" name="dtermSetpoint-range" step="0.01" min="0.00" max="2.55"/></td>
<td>
<div>
<label>
<span i18n="pidTuningDtermSetpoint"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningDtermSetpointHelp"></div>
</div>
</td>
</tr>
<tr class="ptermSetpoint">
<td><input type="number" name="ptermSetpoint-number" step="0.01" min="0.00" max="1.00"/></td>
<td class="slider"><input type="range" name="ptermSetpoint-range" step="0.01" min="0.0" max="1.00"/></td>
<td colspan="2">
<div>
<label>
<span i18n="pidTuningPtermSetpoint"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningPtermSetpointHelp"></div>
</div>
</td>
</tr>
<td style="height:30px;"><input type="checkbox" id="vbatpidcompensation" class="toggle" /></td>
<td colspan="2">
<div>
<label for="vbatpidcompensation">
<span i18n="pidTuningVbatPidCompensation"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningVbatPidCompensationHelp"></div>
</div>
</td>
</table>
</div>
<div class="antigravity topspacer tpa">
<table class="cf">
<thead>
<tr>
<th i18n="pidTuningAntiGravityGain"></th>
<th i18n="pidTuningAntiGravityThres"></th>
</tr>
</thead>
<tbody>
<tr style="height: 35px;">
<td><input type="number" name="itermAcceleratorGain" step="0.1" min="1" max="30" /></td>
<td><input type="number" name="itermThrottleThreshold" step="10" min="20" max="1000" /></td>
</tr>
</tbody>
</table>
</div>
<div class="gui_box grey topspacer">
<table class="pid_titlebar">
<thead>
<tr>
<th i18n="pidTuningRatesPreview"></th>
</tr>
</thead>
<tbody>
<tr>
<td class="rates_preview_cell">
<div class="rates_preview">
<canvas id="canvas"></canvas>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="cf_column third_right">
<div class="spacer_left rc_curve">
<div class="rc_curve_bg">
<table class="cf">
<thead>
<tr>
<th colspan="2">
<div>
<div i18n="pidTuningRatesCurve" style="float:left;"></div>
<div class="helpicon cf_tip" i18n_title="pidTuningRatesTip"></div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="spacer" style="margin-top: 10px; margin-bottom: 8px;">
<div class="rate_curve" style="position:relative;" >
<canvas id="rate_curve_layer0" height="120px" style="position:absolute; top: 0; left: 0; z-index: 0; height:100%; width:100%;"></canvas>
<canvas id="rate_curve_layer1" height="120px" style="position:absolute; top: 0; left: 0; z-index: 1; height:100%; width:100%;"></canvas>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="spacer_left topspacer throttle">
<table class="cf">
<thead>
<tr>
<th i18n="receiverThrottleMid"></th>
<th i18n="receiverThrottleExpo"></th>
</tr>
</thead>
<tbody>
<tr style="height: 35px;">
<td><input type="number" name="mid" step="0.01" min="0" max="1" /></td>
<td><input type="number" name="expo" step="0.01" min="0" max="1" /></td>
</tr>
</tbody>
</table>
</div>
<div class="spacer_left topspacer throttle">
<table class="cf">
<thead>
<tr>
<th colspan="2" i18n="throttle"></th>
</tr>
</thead>
<tr>
<td colspan="2">
<div class="spacer" style="margin-top: 10px; margin-bottom: 10px;">
<div class="throttle_curve">
<canvas height="120px" style="width: 100%; height: 100%"></canvas>
</div>
</div>
</td>
</tr>
</table>
</div>
<div class="spacer_left topspacer tpa">
<table class="cf">
<thead>
<tr>
<th i18n="pidTuningTPA"></th>
<th class="tpa-breakpoint" i18n="pidTuningTPABreakPoint"></th>
</tr>
</thead>
<tbody>
<tr style="height: 35px;">
<td class="leftzero"><input type="number" name="tpa" step="0.01" min="0"
max="1.00" /></td>
<td class="tpa-breakpoint"><input type="number" name="tpa-breakpoint" step="10" min="1000" max="2000" /></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="subtab-filter" style="display: none;">
<div class="clear-both"></div>
<div class="note topspacer" style="margin-top: 0px;">
<div class="note_spacer">
<p i18n="tuningHelp"></p>
</div>
</div>
<div class="dtermfiltertype cf_column twothird">
<div class="profile single-field" style="width:200px; margin-bottom: 0px;">
<div class="helpicon cf_tip" i18n_title="pidTuningDTermLowpassTypeTip" style="margin-top: 5px;"></div>
<div class="head" i18n="pidTuningDTermLowpassType"></div>
<div class="bottomarea">
<select name="dtermFilterType">
<option value="0" class="PT1">PT1</option>
<option value="1" class="BIQUAD">BIQUAD</option>
<option value="2" class="FIR">FIR</option>
</select>
</div>
</div>
</div>
<div class="cf_column twothird">
<div class="gui_box grey topspacer pid_filter">
<table class="pid_titlebar new_rates">
<tr>
<th i18n="pidTuningNonProfileFilterSettings"></th>
</tr>
</table>
<table>
<tr>
<td>
<input type="number" class="nonProfile" name="gyroLowpassFrequency" step="1" min="0" max="255"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningGyroLowpassFrequency"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningGyroLowpassFrequencyHelp"></div>
</div>
</td>
</tr>
<tr class="newFilter">
<td>
<input type="number" class="nonProfile" name="gyroNotch1Frequency" step="1" min="0" max="16000"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningGyroNotch1Frequency"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningGyroNotchFrequencyHelp"></div>
</div>
</td>
</tr>
<tr class="newFilter">
<td>
<input type="number" class="nonProfile" name="gyroNotch1Cutoff" step="1" min="0" max="16000"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningGyroNotch1Cutoff"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningGyroNotchCutoffHelp"></div>
</div>
</td>
</tr>
<tr class="newFilter gyroNotch2">
<td>
<input type="number" class="nonProfile" name="gyroNotch2Frequency" step="1" min="0" max="16000"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningGyroNotch2Frequency"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningGyroNotchFrequencyHelp"></div>
</div>
</td>
</tr>
<tr class="newFilter gyroNotch2">
<td>
<input type="number" class="nonProfile" name="gyroNotch2Cutoff" step="1" min="0" max="16000"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningGyroNotch2Cutoff"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningGyroNotchCutoffHelp"></div>
</div>
</td>
</tr>
</table>
</div>
<div class="gui_box grey topspacer pid_filter">
<table class="pid_titlebar new_rates">
<tr>
<th i18n="pidTuningFilterSettings"></th>
</tr>
</table>
<table>
<tr>
<td>
<input type="number" name="dtermLowpassFrequency" step="1" min="0" max="16000"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningDtermLowpassFrequency"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningDtermLowpassFrequencyHelp"></div>
</div>
</td>
</tr>
<tr class="newFilter">
<td>
<input type="number" name="dTermNotchFrequency" step="1" min="0" max="16000"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningDTermNotchFrequency"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningDTermNotchFrequencyHelp"></div>
</div>
</td>
</tr>
<tr class="newFilter">
<td>
<input type="number" name="dTermNotchCutoff" step="1" min="0" max="16000"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningDTermNotchCutoff"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningDTermNotchCutoffHelp"></div>
</div>
</td>
</tr>
<tr>
<td>
<input type="number" name="yawLowpassFrequency" step="1" min="0" max="500"/>
</td>
<td>
<div>
<label>
<span i18n="pidTuningYawLowpassFrequency"></span>
</label>
<div class="helpicon cf_tip" i18n_title="pidTuningYawLowpassFrequencyHelp"></div>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</form>
</div>
<div class="clear-both"></div>
</div>
<div class="content_toolbar">
<div class="btn save_btn">
<a class="update" href="#" i18n="pidTuningButtonSave"></a>
</div>
<div class="btn refresh_btn">
<a class="refresh" href="#" i18n="pidTuningButtonRefresh"></a>
</div>
</div>
</div>