Professional Documents
Culture Documents
Quanser Inc.
119 Spy Court
Markham, Ontario
L3R 5H6
Canada
info@quanser.com
Phone: 1-905-940-3575
Fax: 1-905-940-3576
For more information on the solutions Quanser Inc. offers, please visit the web site at:
http://www.quanser.com
This document and the software described in it are provided subject to a license agreement. Neither the software nor this document may be
used or copied except as specified under the terms of that license agreement. All rights are reserved and no part may be reproduced, stored in
a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior
written permission of Quanser Inc.
Acknowledgements
Quanser, Inc. would like to thank the following contributors:
Dr. Hakan Gurocak, Washington State University Vancouver, USA, for his help to include embedded outcomes assessment, and
Dr. K. J. Åström, Lund University, Lund, Sweden for his immense contributions to the curriculum content.
2 Modeling 5
2.1 Background 5
2.2 Modeling Virtual Instrument 6
2.3 Lab 1: Bump Test [60 min] 7
2.4 Lab 2: Model Validation [45 min] 8
2.5 Results 8
3 Speed Control 9
3.1 Background 9
3.2 Speed Control Virtual Instrument 10
3.3 Lab 1: Qualitative PI Control [30 min] 10
3.4 Lab 2: PI Control According to Specifications [60 min] 11
3.5 Lab 3: Set-Point Weight [15 min] 12
3.6 Lab 4: Tracking Triangular Signals [20 min] 12
3.7 Results 13
4 Position Control 14
4.1 Background 14
4.2 Position Control Virtual Instrument 16
4.3 Lab 1: Qualitative PD Control [30 min] 16
4.4 Lab 2: PD Control according to Specifications [60 min] 17
4.5 Lab 3: Response to Load Disturbance [60 min] 18
4.6 Results 19
5 System Requirements 20
5.1 Overview of Files 20
5.2 Modeling Laboratory VI 20
5.3 Speed Control Laboratory VI 20
5.4 Position Control Laboratory VI 21
6 Lab Report 25
6.1 Template for Content (Modeling) 25
6.2 Template for Content (Speed Control) 26
6.3 Template for Content (Position Control) 27
6.4 Tips for Report Format 28
There are three experiments: modeling, speed control, and position control. The experiments can be performed
independently.
Topics Covered
• PID Control
• Position control
• Speed control
• Disturbance rejection
Prerequisites
In order to successfully carry out this laboratory, the user should be familiar with the following:
• Transfer function fundamentals, e.g. obtaining a transfer function from a differential equation.
• Using LabVIEWr to run VIs.
The bump test is a simple test based on the step response of a stable system. A step input is given to the system
and its response is recorded. As an example, consider a system given by the following transfer function:
Y (s) K
= (2.1)
U (s) τs + 1
The step response shown in Figure 2.1 is generated using this transfer function with K = 5 rad/V.s and τ = 0.05 s.
Figure 2.1: Input and output signal used in the bump test method
The step input begins at time t0 . The input signal has a minimum value of umin and a maximum value of umax . The
resulting output signal is initially at y0 . Once the step is applied, the output tries to follow it and eventually settles at
its steady-state value yss . From the output and input signals, the steady-state gain is
∆y
K= (2.2)
∆u
where ∆y = yss − y0 and ∆u = umax − umin . In order to find the model time constant, τ , we can first calculate where
the output is supposed to be at the time constant from:
Then, we can read the time t1 that corresponds to y(t1 ) from the response data in Figure 2.1. From the figure we
can see that the time t1 is equal to:
t1 = t0 + τ (2.4)
τ = t1 − t0 (2.5)
When the modeling is complete it can be validated by running the model and the actual process in open-loop. That
is, the open-loop voltage is fed to both the model and the actual device such that both the simulated and measured
response can be viewed on the same scope. The model can then be adjusted to fit the measured motor speed by
fine-tuning the modeling parameters.
See Wikipedia for more information on electric motor, mathematical model, transfer function, and LTI system theory.
• Amplitude = 2.0 V
• Frequency = 0.40 Hz
• Offset = 3.0 V
4. In the Model Parameters section of the VI, enter the bumptest model parameters, K and τ , that were found in
Section 2.3. The blue simulation should match the red measured motor speed more closely.
5. Attach the Speed (rad/s) and Voltage (V) chart responses from the Scopes tab.
6. How well does your model represent the actual system? If they do not match, name one possible source for
this discrepancy.
7. Tune the steady-state gain, K, and time constant, tau, in the Model Parameters section so the simulation
matches the actual system better. Enter both the bumptest and tuned model parameters in Table 1.
2.5 Results
The transfer function representing the DC motor speed-voltage relation in Equation 3.1 is used to design the PI
controller. The input-output relation in the time-domain for a PI controller with set-point weighting is
ki (r − y)
u = kp (bsp r − y) + (3.1)
s
where kp is the proportional gain, ki is the integral gain, and bsp is the set-point weight. The closed loop transfer
function from the speed reference, r, to the angular motor speed output, ωm , is
K(kp bsp s + ki
Gω,r (s) = (3.2)
τ s2 + (Kkp + 1)s + Kki
where ω0 is the undamped closed loop frequency and ζ is the damping ratio. The characteristic equation in 3.2,
i.e. the denominator of the transfer function, can match the desired characteristic equation in 3.3 with the following
gains:
−1 + 2 ζ ω0 τ
kp = (3.4)
K
and
ω2 τ
ki = 0 (3.5)
K
Large values of ω0 give large values of controller gain. The damping ratio, ζ, and the set-point weight parameter,
bsp , can be used to adjust the speed and overshoot of the response to reference values.
There is no tachometer sensor present on the QNET DC motor system that measures the speed. Instead the
amplifier board has circuitry that computes the derivative of the encoder signal, i.e. a digital tachometer. However to
minimize the noise of the measured signal and increase the overall robustness of the system, the first-order low-pass
filter
ωmeas
ωm =
Tf s + 1
is used. Parameter Tf is the filter time constant that determines the cutoff frequency and ωmeas is the measured
speed signal.
7. Look at the changes in the measured signal with respect to the reference signal. Explain the performance
difference of changing kp .
1. Using the equations outlined in the Peak Time and Overshoot section of the QNET Practical Control Guide,
calculate the expected peak time, tp , and percent overshoot, PO, given the following Speed Lab Design (SLD)
specifications:
• ζ = 0.75
• ω0 = 16.0 rad/s
Optional: You can also design a VI that simulates the DC motor first-order model with a PI control and have
it calculate the peak time and overshoot.
2. Calculate the proportional, kp , and integral, ki , control gains according to the model parameters found in
Section 2 and the SLD specifications.
1. Ensure the QNET_DCMCT_Speed_Control.vi is open and configured as described in Section 5.3. Make sure
the correct Device is chosen.
2. Run the QNET_DCMCT_Speed_Control.vi. The motor should begin spinning and the scopes should look
similar as shown in Figure 3.2.
3. In Signal Generator set:
5. Stop the VI when you collected two sample cycles by clicking on the Stop button.
6. Capture the measured SLD speed response. Make sure you include both the Speed (rad/s) and the control
signal Voltage (V) scopes.
7. Measure the peak time and percentage overshoot of the measured SLD response. Are the specifications
satisfied?
7. What effect does increasing ki have on the tracking ability of the measured signal? Explain using the observed
behaviour in the scope.
3.7 Results
The two-degree of freedom PID transfer function inside the PID block in Figure 4.1 is
∫ t
u = kp (bsp r(t) − y(t)) + ki (r(τ ) − y(τ )) dτ + kd (bsd ṙ(t) − ẏ(t)) (4.1)
0
where kp is the position proportional control gain, kd is the derivative control gain, ki is the integral control gain, bsp
is the set-point weight on the reference position r(t), and bsd is the set-point weight on the velocity reference of r(t).
The dotted box labeled Motor in Figure 4.1 is the motor model in terms of the back-emf motor constant km , the
electrical motor armature resistance Rm , and the equivalent moment of inertia of the motor pivot Jeq . The direct
disturbance applied to the inertial wheel is represented by the disturbance torque variable Td and the simulated
disturbance voltage is denoted by the variable Vsd .
The behaviour of the controlling the motor position is first analyzed using a PD control. By setting ki = 0 in the PID
control equation Equation 4.1 and taking its Laplace transform, the PD transfer transfer function is
u = kp (r − y) + kd s(bsd r − y) (4.2)
Similarly to the speed control laboratory, the standard characteristic function shown in Equation 3.3 can be achieved
by setting the proportional gain to
ω2 τ
kp = 0 (4.3)
K
Next, the behaviour of the PID closed-loop system when it is subjected to a disturbance is examined. The block
diagram shown in Figure 4.2 represents the load disturbance to position response when bsp and bsd in the PID in
Equation 4.1 are both set to 1.
θss_P ID = 0.
Thus when the system is subjected to a disturbance, a constant steady-state error is observed when using the
PD control system. However, the disturbance is rejected when integral control is used and the steady-state angle
eventually goes to zero.
PID control design involves using the standard characteristic equation for a third-order system
(s2 + 2ζω0 + ω02 )(s + p0 ) = s3 + (2ζω0 + p0 )s2 + (ω02 + 2ζω0 p0 )s + ω02 p0 (4.6)
where ω0 is the natural frequency, ζ is the damping ratio, and p0 is a zero. The characteristic equation of the closed-
loop PID transfer function, i.e. the denominator of the transfer function 4.5, is
Kkd + 1 2 Kkp Kki
s3 + s + s+ (4.7)
τ τ τ
By varying the zero location, p0 , the time required by the closed-loop response to recover from a disturbance is
changed.
See Wikipedia for more information on motion control, control theory and PID.
1. Using the equations in the Peak Time and Overshoot section of the QNET Practical Control Guide, calculate
the expected peak time, tp , and percentage overshoot, P O, given
• ζ = 0.60
• ω0 = 25.0 rad/s
• p0 = 0.0
Optional: You can also design a VI that simulates the DC motor first-order model with a PD control and have
it calculate the peak time and overshoot.
2. Calculate the proportional, kp , and derivative, kd , control gains according to the model parameters found in
Section 2.4 and the specifications above.
1. Make sure the QNET_DCMCT_Position_Control.vi. is open and configured as described in Section 5.4. Make
sure the correct Device is chosen.
2. Run the QNET_DCMCT_Position_Control.vi. You should see the DC motor rotating back and forth.
3. In the Signal Generator section set:
• Amplitude = 2.00 rad
• Frequency = 0.40 Hz
1. In the Response to Load Disturbance section of the QNET Practical Control Guide, the load disturbance to
motor position closed-loop PID block diagram is found. Consider the same regulation system, r = 0, when
bsp = 1 and bsd = 1 and show the block diagram representing the simulated disturbance to motor position
closed-loop interaction (in this case Td = 0).
2. Find the closed-loop PID transfer function describing the position of the motor with respect to the simulated
disturbance voltage: Gθ,Vsd (s) = Θ(s)/Vsd (s).
3. Find the steady-state motor angle due to a simulated disturbance step of Vsd = Vsd0 /s.
4. A step of Vsd = Vsd0 /s with Vsd0 = 3 V is added to the motor voltage to simulate a disturbance torque. Evaluate
the steady-state angle of the motor when a PD controller is used with the gains kp = 2 V/rad and kd = 0.02
V.s/rad. Then, calculate the steady-state angle when using a PID controller with the gains kp = 2 V/rad, kd =
0.02 V.s/rad, and ki = 1 V/rad/s.
Optional: You can also design a VI that simulates the DC motor first-order model with a PID control and a
step disturbance and examine the steady-state angle obtained from the response.
1. Make sure the QNET_DCMCT_Position_Control.vi. is open and configured as described in Section 5.4. Make
sure the correct Device is chosen.
2. Run the QNET_DCMCT_Position_Control.vi. You should see the DC motor rotating back and forth.
3. In the Signal Generator section set:
• Amplitude = 0 rad
• Frequency = 0.40 Hz
• Offset = 0 rad
4. In the Control Parameters section set:
• kp = 2.0 V/rad
• ki = 0.0 V/(rad.s)
• kd = 0.02 V.s/rad
6. Examine the effect of the disturbance on the measured position. Attach a response of the motor position when
the disturbance is applied, record the obtained steady-state angle, and compare it to the value estimated in
Step 4.
7. Turn OFF the Disturbance switch
10. Examine the effect of the disturbance on the measured position. Explain the difference of the disturbance
response with the integral action added and compare to the result you obtained in Step 4.
4.6 Results
• NI ELVIS II
• Quanser QNET DC Motor Control Trainer (DCMCT). See QNET DCMCT User Manual ([2]).
Required Software
Caution: If these are not all installed then the VI will not be able to run! Please make sure all the software and
hardware components are installed. If an issue arises, then see the troubleshooting section in the QNET DCMCT
User Manual ([2]).
DCMCT Speed Control virtual instrument user interface. Every element is uniquely identified through an ID number
and located in Figure 5.3.
1. Modeling,
2. Speed Control, and
3. Position Control.
For each experiment, follow the outline corresponding to that experiment to build the content of your report. Also,
in Section 6.4 you can find some basic tips for the format of your report.
1. Bumptest
• Briefly describe the main goal of the experiment.
• Briefly describe the experiment procedure in Step 5 in Section 2.3.
2. Model Validation
• Briefly describe the main goal of the experiment.
• Briefly describe tuning the model parameters in step 7 in Section 2.4.
II. RESULTS
Do not interpret or analyze the data in this section. Just provide the results.
III. ANALYSIS
Provide details of your calculations (methods used) for analysis for each of the following:
IV. CONCLUSIONS
Interpret your results to arrive at logical conclusions for the following:
1. How well does the model respresent the actual system in step 6 of Section 2.4.
1. Qualitative PI Control
• Briefly describe the main goal of the experiment.
• Briefly describe the experimental procedure in Step 5 in Section 3.3.
3. Set-Point Weight
• Briefly describe the main goal of this experiment.
• Briefly describe the experimental procedure in Step 6 in Section 3.5.
II. RESULTS
Do not interpret or analyze the data in this section. Just provide the results.
III. ANALYSIS
Provide details of your calculations (methods used) for analysis for each of the following:
4. Peak time and percent overshoot of SLD speed control response in Step 7 in Section 3.4.
5. Effect of changing set-point weight in Step 6 in Section 3.5.
IV. CONCLUSIONS
Interpret your results to arrive at logical conclusions for the following:
1. Whether the SLD speed controller meets the specifications in Step 7 in Section 3.4.
2. Explain why there is steady-state error in the system in Step 5 of Section 3.6.
1. Qualitative PD Control
• Briefly describe the main goal of the experiment.
• Briefly describe the experimental procedure in Step 6 in Section 4.3.
II. RESULTS
Do not interpret or analyze the data in this section. Just provide the results.
III. ANALYSIS
Provide details of your calculations (methods used) for analysis for each of the following:
4. Peak time and percent overshoot of SLD speed control response in Step 6 in Section 4.4.
IV. CONCLUSIONS
Interpret your results to arrive at logical conclusions for the following:
1. Whether the SLD speed controller meets the specifications in Step 6 in Section 4.4.
2. Does the measured steady-state error using a PD control match what is expected in Step 6 of Section 4.5.
3. Does the measured steady-state error using a PID control match what is expected in Step 10 of Section 4.5.
• Has cover page with all necessary details (title, course, student name(s), etc.)
• Each of the required sections is completed (Procedure, Results, Analysis and Conclusions).
• Typed.
• Tables are numbered, they include labels, each table has a descriptive caption.
• Data are presented in a useful format (graphs, numerical, table, charts, diagrams).
• No hand drawn sketches/diagrams.
Curriculum
complies with*
*ABET Inc. is the recognized accreditor for college and university programs in applied science, computing, engineering, and technology.
On-Off Control
This Workbook and the VIs provided are designed for the second generation black Quanser QNET
2.0 HVAC Board for NI ELVIS II(+) . Second generation VIs can be identified by the small black
symbol in the upper right corner of the VI. These VIs will not work for blue first generation boards.
Topics Covered
• Relay temperature control.
Prerequisits
• The QNET HVAC has been setup and tested. See the QNET HVAC Quick Start Guide for details.
• You have access to the QNET HVAC User Manual.
Figure 1.1: Block diagram of the heater system with relay feedback
The error, variable e in Figure 1.1 is the difference between the reference temperature Tr and the actual chamber
temperature Tc . The on-off controller is implemented using a relay switch with hysteresis, as shown in Figure 1.2.
The heater actuator is represented by a saturation block and the chamber plant is represented by the transfer function
P (s).
Figure 1.2: Input and output relation for an on-off controller with hysteresis
The hysteresis width ∆Th in Figure 1.2 has to be chosen such that a large measurement noise does not generate
any unintentional switches. As depicted in Figure 1.2, the output control signal voltage of the on-off controller can
be adjusted using a mean or offset Vh,off and an amplitude Vh,amp .
In the experiment, the behavior of the heater system will be investigated for different values of controller parameters.
More specifically, the control signal and the measured temperature will be observed.
See Wikipedia for more information on relay, hysteresis, mathematical model, transfer function, and LTI system
theory.
• Vh_amp (V) = 4
• Vh_off (V) = 4
• ∆ Th (◦ C) = 0.25
4. Run the VI and activate the heater by pressing the Heater On/Off control button.
5. Examine the actual temperature (red) and reference temperature (blue) responses in the Temperature scope.
Wait until the the Chamber Temperature is oscillating around the setpoint.
6. Vary the relay amplitude Vh_amp in the Control Parameters section between 1 V and 8 V. Explain how the
heater voltage affects the temperature variation and, in particular, observe the frequency and amplitude of the
chamber temperature. Attach a representative temperature response.
7. Reset the Control Parameters to:
• Vh_amp (V) = 4
• Vh_off (V) = 4
• ∆ Th (◦ C) = 0.25
8. Vary the relay offset Vh_off in the Control Parameters section between 1 V and 6 V. Explain the effect of the
relay offset for the operation of the relay. In particular, describe what happens when the relay offset is larger
than the relay amplitude.
10. Examine the effects of changing the relay width (or hysteresis) ∆Th between 0.01 ◦ C and 1.00 ◦ C. Give a short
explanation and attach a temperature response with a narrow and wide hysteresis.
11. Click on the Stop button to stop the VI.
Quanser Inc.
119 Spy Court
Markham, Ontario
L3R 5H6
Canada
info@quanser.com
Phone: 1-905-940-3575
Fax: 1-905-940-3576
For more information on the solutions Quanser Inc. offers, please visit the web site at:
http://www.quanser.com
This document and the software described in it are provided subject to a license agreement. Neither the software nor this document may be
used or copied except as specified under the terms of that license agreement. Quanser Inc. grants the following rights: a) The right to reproduce
the work, to incorporate the work into one or more collections, and to reproduce the work as incorporated in the collections, b) to create and
reproduce adaptations provided reasonable steps are taken to clearly identify the changes that were made to the original work, c) to distribute
and publically perform the work including as incorporated in collections, and d) to distribute and publicly perform adaptations. The above rights
may be exercised in all media and formats whether now known or hereafter devised. These rights are granted subject to and limited by the
following restrictions: a) You may not exercise any of the rights granted to You in above in any manner that is primarily intended for or directed
toward commercial advantage or private monetary compensation, and b) You must keep intact all copyright notices for the Work and provide the
name Quanser Inc. for attribution. These restrictions may not be waved without express prior written permission of Quanser Inc.
This Workbook and the VIs provided are designed for the second generation black Quanser QNET
2.0 HVAC Board for NI ELVIS II(+) . Second generation VIs can be identified by the small black
symbol in the upper right corner of the VI. These VIs will not work for blue first generation boards.
Topics Covered
• QNET HVAC temperature control.
• Proportional-integral (PI) compensator design.
Prerequisits
• The QNET HVAC has been setup and tested. See the QNET HVAC Quick Start Guide for details.
The process transfer function is the transfer function in Equation 1.1 and the input-output relation for a PI controller
with set-point weighting is
ki (R(s) − Y (s))
U (s) = kp (bsp R(s) − Y (s)) + (1.2)
s
The closed loop transfer function from the relative temperature reference, ∆Tr = Tr − Ta , to the output temperature
measured relative to the ambient temperature, ∆Tc = Tc − Ta , is
kp bsp s + ki
G∆Tc ,∆Tr (s) = Kv . (1.3)
s2 + Kv kp s + Kv ki
s2 + Kv kp s + Kv ki , (1.4)
where ω0 is the undamped closed loop frequency and ζ is the damping ratio. The characteristic equation in
Equation 1.4 matches equation Equation 1.5 with the proportional control parameter
2ζω0
kp = , (1.6)
Kv
and the integral control gain
ω02
ki = . (1.7)
Kv
Large values of ω0 give large values of controller gain. This implies noise will create large variations in the control
signal. The set-point weight parameter bsp can be used to adjust the overshoot of the response.
Temperature control typically admits high controller gains. A consequence of this is that the controller output may
saturate and result in integrator windup. The heater is therefore useful to illustrate the usefulness of integrator
windup.
The windup effect is illustrated in Figure 1.2 by the dashed red line. The initial reference signal is so large that the
actuator saturates at the high limit. The integral term increases initially because the error is positive. The output
reaches the reference at around time t = 4 s. However, the integrator has built-up so much energy that the actuator
remains saturated. This causes the process output to keep increasing past the reference. The large integrator
output that is causing the saturation will only decrease when the error has been negative for a sufficiently long time.
When the time reaches t = 6 s, the control signal finally begins to decrease while the process output reaches its
largest value. The controller saturates the actuator at the lower level and the phenomena is repeated. Eventually
the output comes close to the reference and the actuator does not saturate. The system then behaves linearly and
settles quickly. The windup effect on the process output is therefore a large overshoot and a damped oscillation
where the control signal flips from one extreme to the other as in relay oscillations.
There are many ways to avoid windup, one method is illustrated in Figure 1.3 The system has an extra feedback
path that that sets the integrator to a value so that the controller output is always close to the saturation limit. This
is accomplished by measuring the difference es between the actual actuator output and feeding this signal to the
integrator through gain 1/Tr .
The signal es is zero when there is no saturation and the extra feedback loop has no effect on the system. When
the actuator saturates, the signal es is different from zero. The normal feedback path around the process is broken
because the process input remains constant. The feedback around the integrator will act to drive es to zero. This
implies that controller output is kept close to the saturation limit and integral windup is avoided.
The rate at which the controller output is reset is governed by the feedback gain, 1/Tr , where the tracking time
constant, Tr , determines how quickly the integral is reset. A long time constant gives a slow reset and a short time
constant a short reset time. The tracking time constant cannot be too short because measurement noise can cause
an undesirable reset. A reasonable compromise is to choose Tr as a fraction of the integrator reset time Ti for
The solid curves in Figure 1.2 illustrates the effect of anti-windup. The output of the integrator is quickly reset to
a value such that the controller output is at the saturation limit, and the integral has a negative value during the
initial phase when the actuator is saturated. Observe the dramatic improvement of using windup protection over the
ordinary PI controller that is represented by the dashed lines in Figure 1.2.
See Wikipedia for more information on process control, control theory, and PID.
7. What effect does decreasing Tr have on the control signal and on the temperature response? Capture the
temperature response as well as the heater voltage for Tr = 1 s.
• kp (V/◦ C) = 10
• ki (V/1000.s.◦ C)= 1000
• bsp = 0
4. In the Anti-Windup section set:
• Tr = 10
5. Examine the response of the measured temperature in the Temperature scope as well as the input heater
voltage in the Input Voltage scope. Attach the temperature and heater voltage responses.
6. Click on the Stop button to stop running the VI.
7. Try the same controller with a set-point weight of 1. Set bsp = 1 and restart the VI.
8. Study what effects raising bsp has on the measured temperature signal in the Temperature scope and the
control signal shown in the Input Voltage scope. Capture the temperature response and its corresponding
heater voltage.
9. Click on the Stop button to stop running the VI.
Quanser Inc.
119 Spy Court
Markham, Ontario
L3R 5H6
Canada
info@quanser.com
Phone: 1-905-940-3575
Fax: 1-905-940-3576
For more information on the solutions Quanser Inc. offers, please visit the web site at:
http://www.quanser.com
This document and the software described in it are provided subject to a license agreement. Neither the software nor this document may be
used or copied except as specified under the terms of that license agreement. Quanser Inc. grants the following rights: a) The right to reproduce
the work, to incorporate the work into one or more collections, and to reproduce the work as incorporated in the collections, b) to create and
reproduce adaptations provided reasonable steps are taken to clearly identify the changes that were made to the original work, c) to distribute
and publically perform the work including as incorporated in collections, and d) to distribute and publicly perform adaptations. The above rights
may be exercised in all media and formats whether now known or hereafter devised. These rights are granted subject to and limited by the
following restrictions: a) You may not exercise any of the rights granted to You in above in any manner that is primarily intended for or directed
toward commercial advantage or private monetary compensation, and b) You must keep intact all copyright notices for the Work and provide the
name Quanser Inc. for attribution. These restrictions may not be waved without express prior written permission of Quanser Inc.