<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:helveticaneue;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi Cliff,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I don’t think it is the accuracy you need to worry about but the sensitivity and repeatability of the instrument.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Doesn’t matter if it is 153 ft or 147 ft instead of 150 ft as long as the instrument registers another 1 ft up or down.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>All of which I know that you are aware of.  Chs, Hugh  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-NZ style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Personal_Submersibles [mailto:personal_submersibles-bounces@psubs.org] <b>On Behalf Of </b>Cliff Redus via Personal_Submersibles<br><b>Sent:</b> Sunday, 24 April 2016 6:20 a.m.<br><b>To:</b> Personal Submersibles General Discussion<br><b>Subject:</b> Re: [PSUBS-MAILIST] Speed controllers<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Sean, I have also been toying with the idea of using a PID loop not for all my maneuvering but just for depth station keeping.  I may give this a try as an experiment.  My PLC has PID loops built in so it would be easy to try this with minimal ladder logic programming.  Initially I was thinking about establishing the depth set point via a user input through my HMI but I kind of like your idea of using joystick to drive to desired depth then taking this depth as the setpoint when the pilot lets the joystick reach its neutral position via spring return. With my two MK101s vertical thrusters, PID controller would pretty easily be able to automatically zero out difference between setpoint depth and measured depth.  One other point, if would be very in the PLC code to switch between depth stations keeping and altitude station keeping if bottom was not flat.  Two issues come to mind, first is it would not be easy to tune the PID controller and the second is if my ambient pressure gage is accurate enough.  I have a 0.25% gage now.   I might need a more accurate gage.  For altitude PID control, the transmitter I have should work nicely.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Cliff<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Sat, Apr 23, 2016 at 8:00 AM, Sean T. Stevenson via Personal_Submersibles <<a href="mailto:personal_submersibles@psubs.org" target="_blank">personal_submersibles@psubs.org</a>> wrote:<o:p></o:p></p><div><p>Part safety, part allowing for future upgrades. In my mind, if you let go of the controls, the vessel should stop, period. If you have an alarm, leak, fire or something else that demands your immediate attention, you don't want to waste precious time having to null the thruster output before dealing with the other problem. Having the stick(s) spring return to zero output when you let go is just prudent, so you (hopefully) don't crash into anything when you have to let go in an emergency, or when you drop your pencil on the floor and throw your back out when you bend over to retrieve it.  I would employ self nulling controls regardless of whether I was using direct or indirect control.<o:p></o:p></p><p>With the indirect scheme I proposed, there is an additional advantage to be gained in the presence of sensing mechanisms for vessel motion (surge, sway, heave, yaw, roll and pitch) such as the ubiquitous pressure transducer for depth, gyro/fluxgate compass for heading, or e.g. Doppler velocity log for over bottom motion. In these cases, a control loop provides the ability to null vessel motion, as opposed to simply nulling thruster output, so that if you let go of the controls, the system can automatically apply reverse thrust to cancel headway or compensate for slight currents etc. to keep the vessel where it was when you let go.<o:p></o:p></p><p>This is particularly useful in the case of vertical motion. I intend to implement such a depth controller so that I drive up / down with the stick, with full range on the stick corresponding to 100% thruster output, but when I let go, the current depth becomes the setpoint and the controller takes over, commanding the vertical thrusters as appropriate to maintain that depth. Furthermore, in the event that maintaining that depth then requires a sustained thruster output in either direction, the variable ballast system will automatically adjust in order to bring that necessary thruster output down to zero and thus conserve power.<o:p></o:p></p><p>Sean<o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><p class=MsoNormal>On April 22, 2016 11:13:19 PM MDT, Alan James via Personal_Submersibles <<a href="mailto:personal_submersibles@psubs.org" target="_blank">personal_submersibles@psubs.org</a>> wrote:<o:p></o:p></p><div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>Not quite following that Sean,<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>why not have a joystick without return to center function &<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>leave it on that setting? I can see the sense in running the joystick through<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>the PLC with an over-ride on the vertical thrusters when on the depth limit,<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>I have seen commercial psubs with this feature.<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>Alan<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt;background:white'><span style='font-family:"helveticaneue","serif";color:black'><o:p> </o:p></span></p></div><div><div><div><div><div class=MsoNormal align=center style='text-align:center;background:white'><span style='font-family:"helveticaneue","serif";color:black'><hr size=1 width="100%" align=center></span></div><p class=MsoNormal style='background:white'><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'>From:</span></b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'> Sean T. St! evenson via Personal_Submersibles <<a href="mailto:personal_submersibles@psubs.org" target="_blank">personal_submersibles@psubs.org</a>><br><b>To:</b> Personal Submersibles General Discussion <<a href="mailto:personal_submersibles@psubs.org" target="_blank">personal_submersibles@psubs.org</a>> <br><b>Sent:</b> Saturday, April 23, 2016 4:31 PM<br><b>Subject:</b> Re: [PSUBS-MAILIST] Speed controllers</span><span style='font-family:"helveticaneue","serif";color:black'><o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'><o:p> </o:p></span></p><div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>Late to this thread, but I'll throw in my $0.02:<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>I had envisioned a control scheme whereby the joystick inputs are decoupled from direct thruster / ballast control output. Instead, the PAC runs the thruster outputs on the basis of PID control loops, where the setpoints are adjusted by the pilot controls. Thus, the ramp rate of the target setpoint is dependent on how far e.g. the joystick is pushed or rotated, but on letting go, the stick springs back to center, and at that point the setpoint is overwritten with the current depth, heading or what have you, and the system automatically maintains that setting until you touch the controls again.  Manually commanded fully automatic.<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"helveticaneue","serif";color:black'>Sean<o:p></o:p></span></p></div></div><p class=MsoNormal style='margin-bottom:12.0pt;background:white'><span style='font-family:"helveticaneue","serif";color:black'><br>_______________________________________________<br>Personal_Submersibles mailing list<br><a href="mailto:Personal_Submersibles@psubs.org" target="_blank">Personal_Submersibles@psubs.org</a><br><a href="http://www.psubs.org/mailman/listinfo.cgi/personal_submersibles" target="_blank">http://www.psubs.org/mailman/listinfo.cgi/personal_submersibles</a><br><br><o:p></o:p></span></p></div></div></div></div></div><pre style='text-align:center'><hr size=2 width="100%" align=center></pre><pre><br>Personal_Submersibles mailing list<br><a href="mailto:Personal_Submersibles@psubs.org" target="_blank">Personal_Submersibles@psubs.org</a><br><a href="http://www.psubs.org/mailman/listinfo.cgi/personal_submersibles" target="_blank">http://www.psubs.org/mailman/listinfo.cgi/personal_submersibles</a><o:p></o:p></pre></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><br>_______________________________________________<br>Personal_Submersibles mailing list<br><a href="mailto:Personal_Submersibles@psubs.org">Personal_Submersibles@psubs.org</a><br><a href="http://www.psubs.org/mailman/listinfo.cgi/personal_submersibles" target="_blank">http://www.psubs.org/mailman/listinfo.cgi/personal_submersibles</a><o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>