MATLAB: PID controller
-
Moku:Go
Moku:Go Arbitrary Waveform Generator Moku:Go Data Logger Moku:Go Frequency Response Analyzer Moku:Go Logic Analyzer & Pattern Generator Moku:Go Oscilloscope & Voltmeter Moku:Go PID Controller Moku:Go Spectrum Analyzer Moku:Go Waveform Generator Moku:Go Power Supplies Moku:Go Digital Filter Box Moku:Go FIR Filter Builder Moku:Go Lock-in Amplifier Moku:Go General Moku:Go Logic Analyzer/Pattern Generator Moku:Go Time & Frequency Analyzer Moku:Go Laser Lock Box Moku:Go Phasemeter
-
Moku:Lab
Moku:Lab General Moku:Lab Arbitrary Waveform Generator Moku:Lab Data Logger Moku:Lab Digital Filter Box Moku:Lab FIR Filter Builder Moku:Lab Frequency Response Analyzer Moku:Lab Laser Lock Box Moku:Lab Lock-in Amplifier Moku:Lab Oscilloscope Moku:Lab Phasemeter Moku:Lab PID Controller Moku:Lab Spectrum Analyzer Moku:Lab Waveform Generator Moku:Lab Time & Frequency Analyzer Moku:Lab Logic Analyzer/Pattern Generator
-
Moku:Pro
Moku:Pro Arbitrary Waveform Generator Moku:Pro Data Logger Moku:Pro Frequency Response Analyzer Moku:Pro Oscilloscope Moku:Pro PID Controller Moku:Pro Spectrum Analyzer Moku:Pro Waveform Generator Moku:Pro Lock-in Amplifier Moku:Pro Digital Filter Box Moku:Pro FIR Filter Builder Moku:Pro Phasemeter Moku:Pro Multi-instrument Mode Moku:Pro General Moku:Pro Logic Analyzer/Pattern Generator Moku:Pro Time & Frequency Analyzer
- Python API
- MATLAB API
- Arbitrary Waveform Generator
- Data Logger
- Digital Filter Box
- FIR Filter Builder
- Frequency Response Analyzer
- Laser Lock Box
- Lock-in Amplifier
- Oscilloscope
- Phasemeter
- PID Controller
- Spectrum Analyzer
- Time & Frequency Analyzer
- Waveform Generator
- Logic Analyzer & Pattern Generator
- Multi Instrument Mode
- Moku Cloud Compile
- Moku general
- LabVIEW
Example MATLAB script to implement the PID Controller (plotting)
%% Plotting PID Controller Example
% % This example demonstrates how you can configure the PID Controller instrument, % and view triggered time-voltage data frames in real-time. % % (c) 2021 Liquid Instruments Pty. Ltd. % % Connect to your Moku and deploy the PID controller instrument i = MokuPIDController('192.168.###.###'); try %% Configure the PID controller % Configure the control matrix i.set_control_matrix(1,1,0); i.set_control_matrix(2,0,1); % Enable all input and output channels i.enable_input(1,true); i.enable_input(2,true); i.enable_output(1,true,true); i.enable_output(2,true,true); % Configure controller 1 by gain i.set_by_gain(1,'prop_gain',10, 'diff_gain',-5,'diff_corner',5e3 ); % Configure controller 2 by frequency i.set_by_frequency(2, 'prop_gain', -5, 'int_crossover',100, 'int_saturation',10); % Place 2 monitor points, one at input 1, one at output 1 i.set_monitor(1,'Input1'); i.set_monitor(2,'Output1'); % Configure the timebase to -2 ms and 2 ms i.set_timebase(-0.002,0.002); % Configure the trigger i.set_trigger('type',"Edge", 'source',"ProbeA", 'level',0); %% Set up plots % Get initial data to set up plots data = i.get_data(); % Set up the plots figure lh = plot(data.time, data.ch1, data.time, data.ch2); xlabel(gca,'Time (sec)') ylabel(gca,'Amplitude (V)') grid on grid(gca,'minor') %% Receive and plot new data frames while 1 data = i.get_data(); set(lh(1),'XData',data.time,'YData',data.ch1); set(lh(2),'XData',data.time,'YData',data.ch2); axis tight pause(0.1) end catch ME % End the current connection session with your Moku i.relinquish_ownership(); rethrow(ME) end i.relinquish_ownership();