Giter Site home page Giter Site logo

Comments (4)

charlesbaynham avatar charlesbaynham commented on June 24, 2024

Hi @han94ros !

Not at all, I'm pleased you're making use of it. To be honest, I got a bit carried away with the OOP structures on this project: having learnt how, I forgot to ask why. Maybe if I were to redo it I'd use fewer fancy features and shrink the code a lot, but there you go.

I should explain the existence of the pins_4chan.h and pins_2chan.h files: once, there was a version of this board which only had two OPA output stages, using the OPA549 for higher currents. The version of the board that you have however uses 4x OPA548 devices instead. In this way it is the "4 channel version", although those four channels are actually used to implement two bipolar output channels. Unless you've redesigned the PCB itself or rolled back to a much older version, you should therefore use the four-channel set of pin connections in pins_4chan.h.

And yes, I'd be happy to chat both about ARTIQ and this! I'll send you an email.

from digitaltemperaturecontroller.

han94ros avatar han94ros commented on June 24, 2024

I will clarify the PCB design and get back to you.

from digitaltemperaturecontroller.

QiushuoSun avatar QiushuoSun commented on June 24, 2024

Dear Charles,

Thank you again for this design and replies, they have been very useful!

I am using BPA and BPB as two output channels. The onboard thermistors are used as set resistors, so 1t, 2t are used as inputs.

As you suggested, pin_4chan.h is used.

By doing these, I was able to conduct most of the commands, including 'LOCK'. However, the temperature could not get stable at the setpoint. I have tried it on two completely different systems to make sure that the oscillation was not caused by the system, but I observed at least 0.01 volt fluctuation in both cases, by reading the output from 'ERRO' function. I tried to modify the PID parameters to improve this, however, changing PID parameters didn't seem to affect the temperature oscillation. For example, I changed P gain from 10 to 1 to 0.1, the amplitude of the oscillation didn't change much.

My colleague Roshan, who has also read your code, suggested that the class TemporaryLooper might be helpful with achieving autotuning function. I tried to include this class in the controller.h by uncommenting the line, however, it failed to find 'IOInterface.h' file that was called in 'TemporaryLooper.h'.

I wonder please could you help with the current oscillation issue? Any ideas could be useful.

Thank you for your help. I really appreciate your patience :)

Best regards,
Sarah

from digitaltemperaturecontroller.

charlesbaynham avatar charlesbaynham commented on June 24, 2024

Hi Sarah,

Great to hear you've got the board working! If you've got ERRO? 1t producing a value which relates to your temperature and you can drive current via the outputs using e.g. VOLT BPA 1 then you've got everything set up correctly.

It sounds like you're able to lock to the setpoint but are still setting oscillations. Just to confirm that everything is working, I'd suggest locking to a different setpoint and making sure that the temperature responds and that you then see oscillations at this new temperature. If that's the case, from here it's just a matter of tuning the PID parameters. TemporaryLooper was indeed made so that things like autotuning could be implemented. I didn't do this in the end, so you'd have to add this yourself. If you make it, please do contribute it back to this repository!

However, you'll probably find it much easier to tune manually. I'd suggest the Ziegler-Nichols rules as a decent starting point: https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method.

from digitaltemperaturecontroller.

Related Issues (3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.