Two Rotor Aerodynamical System
(TRAS)
User’s Manual
version 1.6 for MATLAB 6.5
Kraków, March 2005
Table of contents
1. INTRODUCTION ......................................................................................................4
1.2 HARDWARE AND SOFTWARE REQUIREMENTS.........................................................6
1.3 FEATURES OF TRAS..........................................................................................6
1.4 SOFTWARE INSTALLATION .....................................................................................6
2. STARTING AND TESTING PROCEDURES ........................................................7
2.2 TESTING AND TROUBLESHOOTING..........................................................................7
3. TRAS CONTROL WINDOW.................................................................................11
3.2 BASIC TEST ..........................................................................................................11
3.3 TRAS MANUAL SETUP .......................................................................................11
3.4 RTWT DEVICE DRIVER.......................................................................................14
3.5 SIMULATION MODELS..........................................................................................15
4. MODEL AND PARAMETERS ..............................................................................18
4.2 NONLINEAR MODEL ............................................................................................20
4.3 STATE EQUATIONS ...............................................................................................26
4.4 PHYSICAL PARAMETERS.......................................................................................26
4.5 STATIC CHARACTERISTICS ...................................................................................30
4.5.1 Main rotor thrust characteristics ...............................................................32
4.5.2 Tail rotor thrust characteristics .................................................................33
5. RTWT MODEL........................................................................................................35
5.2 CREATING A MODEL.............................................................................................35
5.3 CODE GENERATION AND THE BUILD PROCESS.......................................................37
6. CONTROLLERS AND REALTIME EXPERIMENTS .....................................40
6.2 1DOF CONTROLLERS .........................................................................................40
6.2.1 Vertical 1DOF control .............................................................................40
6.2.2 Realtime 1DOF pitch control experiment................................................41
6.2.3 Horizontal 1DOF control..........................................................................44
6.2.4 Realtime 1DOF azimuth control experiment ...........................................45
6.3 2DOF PID CONTROLLER....................................................................................48
6.3.1 Simple PID controller.................................................................................49
6.3.2 Realtime 2DOF control with the simple PID controller.........................50
6.3.3 Crosscoupled PID controller ....................................................................52
6.3.4 Realtime 2DOF control with the crosscoupled PID controller.............53
6.3.5 Comparison the simple and crosscoupled PID controller........................55
7. PID CONTROLLER PARAMETERS TUNING..................................................56
8. DESCRIPTION OF THE CTRAS CLASS PROPERTIES .................................57
8.2 BASEADDRESS.....................................................................................................58
8.3 BITSTREAMVERSION............................................................................................58
8.4 ENCODER.............................................................................................................59
8.5 ANGLE .................................................................................................................59
8.6 ANGLESCALECOEFF ............................................................................................59
8.7 PWM...................................................................................................................60
8.8 PWMPRESCALER ................................................................................................60
8.9 STOP ....................................................................................................................60
8.10 RESETENCODER...................................................................................................61
8.11 VOLTAGE.............................................................................................................61
8.12 RPM....................................................................................................................61
8.13 RPMSCALECOEFF ...............................................................................................62
8.14 THERM.................................................................................................................62
8.15 THERMFLAG ........................................................................................................62
8.16 TIME ....................................................................................................................63
8.17 QUICK REFERENCE TABLE ....................................................................................63
8.18 CTRAS EXAMPLE ...............................................................................................64
1. Introduction
The Two Rotor Aerodynamical System (TRAS) is a laboratory setup designed for control experiments. In certain aspects its behaviour resembles that of a helicopter. From the control point of view it exemplifies a high order nonlinear system with significant crosscouplings. The system is controlled from a PC. Therefore it is delivered with hardware and software which can be easily mounted and installed in a laboratory. You obtain the mechanical unit with power supply and interface to a PC and the dedicated RTDAC4/PCI I/O board configured in the Xilinx^{® }technology. The software operates in real time under MS Windows^{® }98/NT/ 2000/XP using MATLAB^{® }6.5 , RTW and RTWT toolboxes.
Control experiments are programmed and executed in realtime in the MATLAB/Simulink environment. Thus it is strongly recommended to a user to be familiar with the RTW and RTWT toolboxes. One has to know how to use the attached models and how to create his own models.
The approach to control problems corresponding to the TRAS proposed in this manual involves some theoretical knowledge of laws of physics and some heuristic dependencies difficult to be expressed in analytical form.
DCmotor
Fig. 1.1 The laboratory setup: helicopterlike system
A schematic diagram of the laboratory setup is shown in Fig. 1.1. The TRAS consists of a beam pivoted on its base in such a way that it can rotate freely both in the horizontal and vertical planes. At both ends of the beam there are rotors (the main and tail rotors) driven by DC motors. A counterbalance arm with a weight at its end is fixed to the beam at the pivot. The state of the beam is described by four process variables: horizontal and vertical angles measured by position sensors fitted at the pivot, and two corresponding angular velocities. Two additional state variables are the angular velocities of the rotors, measured by tachogenerators coupled with the driving DC motors.
In a casual helicopter the aerodynamic force is controlled by changing the angle of attack. The laboratory setup from Fig. 1.1 is so constructed that the angle of attack is fixed. The aerodynamic force is controlled by varying the speed of rotors. Therefore, the control inputs are the supply voltages of the DC motors. A change in the voltage value results in a change of the rotation speed of the propeller which results in a change of the corresponding position of the beam. Significant crosscouplings are observed between the actions of the rotors: each rotor influences both position angles. Designing of stabilising controllers for such a system is based on decoupling. For a decoupled system an independent control input can be applied for each coordinate of the system. An IBMPC compatible computer can be used for realtime control of TRAS. The computer must be supplied with an interface board (RTDAC4/PCI). Fig. 1.2 shows details of the hardware configuration of the control system for TRAS.
The control software for the TRAS is included in the TRAS toolbox. This toolbox uses the RTWT and RTW toolboxes from MATLAB. TRAS Toolbox is a collection of Mfunctions, MDLmodels and Ccode DLLfiles that extends the MATLAB environment in order to solve TRAS modelling, design and control problems. The integrated software supports all phases of a control system development: • online process identification,

control system modelling, design and simulation,

realtime implementation of control algorithms.
TRAS Toolbox is intended to provide a user with a variety of software tools enabling: • online information flow between the process and the MATLAB environment,

realtime control experiments using demo algorithms,

development, simulation and application of userdefined control algorithms.
1.2 Hardware and software requirements.
TRAS Toolbox is distributed on a CDROM. It contains the software and TRAS User’s Manual. The Installation Manual is distributed in a printed form.
Hardware
Hardware installation is described in the Installation manual. It consists of:

TRAS Mechanical Unit;

Power interface and wiring allowing electrical connections to the TRAS set;

RTDAC4/PCI I/O board. The board contains FPGA equipped with dedicated logic design;

Pentium or AMD based personal computer.
Software
For development of the project and automatic building of the realtime program the following software has to be properly installed on the PC:

MS Windows 2000 or Windows XP. MATLAB version 6.5 with Simulink 5. Signal Processing Toolbox and Control Toolbox from MathWorks Inc. to develop the project.

Real Time Workshop to generate the code.

Real Time Windows Target toolbox.

The TRAS toolbox which includes specialised drivers for the TRAS System, These drivers are responsible for communication between MATLAB and the RTDAC4/PCI measuring and control board.

MS Visual C++ to compile the generated code.
1.3 FEATURES of TRAS

A highly nonlinear MIMO system ideal for illustrating complex control algorithms.

The system can be easily installed.

The setup is fully integrated with MATLAB^{®}/Simulink^{® }and operates in realtime in MS Windows^{® }98/2000/XP.

Realtime control algorithms can be rapidly prototyped. No C code programming is required.

The software includes complete dynamic models.

The User’s Manual, library of basic controllers and a number of preprogrammed experiments familiarise the user with the system in a fast way.
Application note
The documentation assumes that the user has a basic experience with MATLAB, Simulink, and RTW and RTWT toolboxes from MathWorks Inc.

Software installation

Starting and testing procedures
Insert the installation CD and proceed step by step following displayed commands.
The TRAS system is an “open” type. It means that a user can design and solve any TRAS control problem on the basis of the attached hardware and software. The software includes device drivers compatible with RTWT toolbox. It is assumed that a user is familiarised with MATLAB tools especially with RTWT toolbox. Therefore we do not include the detailed description of this tool. The user has a rapid access to all basic functions of the TRAS System from the TRAS Control Window. It includes: identification, drivers, simulation model and application examples. In the Matlab Command Window type
tras
and then the TRAS Control Window opens (see Fig. 2.1)
2.2 Testing and troubleshooting
This section explains how to perform the tests. One can check if mechanical assembling and wiring has been done correctly. The tests have to be performed obligatorily after assembling the system. They are also necessary if an incorrect operation of the system happens. Due to the tests sources of the system fails can be tracked. The tests have been designed to validate the existence and sequence of measurements and controls. They do not relate to accuracy of the signals.
At the beginning one has to be sure that all signals are transmitted and transferred in a proper way. The following steps are applied:
• Double click the Basic Tests button. The Basic Test window appears (Fig . 2.2)
Fig . 2.2 The Basic Tests window
The experiment may be stopped in any time. Double click on the Stop block in the TRAS Control Window or somewhere else. If you wish to stop the visualisation process click once on the Stop bar in the Simulationmenu.
The first step in the Modular Servo System testing is to check if the RTDAC4/PCI measuring and control board is installed properly.
• Double click the Detect RTDAC/PCI board button. One of the messages shown in Fig. 2.3 opens. If the board has been correctly installed, the base address, and the number of logic version of the board are displayed.
If the board is not detected then check whether the board has been mounted correctly into a slot of the computer. The boards are checked very precisely before sending to a customer. In principle, a wrong assembling is the only reason of no detecting the board.
The next step consists in resetting the encoders. It means that the initial position of the beam is stored in the memory.
• Double click the Reset Angles button. When Fig. 2.4 opens, move the TRAS system to the origin position and then click the Yes option. The encoders reset and zero positions of the beam are going to be remembered so long as an measurement error occurs.
Double click the Check Angles button. When the window opens click Yes, then, move by hand the beam of the TRAS in all directions and observe measurements on the screen (see Fig. 2.5).
• Double click the Open loop control button. When Fig. 2.6 opens one can to set the control inputs to the main and tail motor. The vertical axis corresponds to the main motor and the horizontal axis corresponds to the tail motor. When you locate the mouse pointer at [0 0.5] and click, then the control equal to 0.5 is set for the main motor. And if you click at [0.5 0] the control 0.5 is set for the tail motor. Using the mouse, click and slowly drug a rectangle. The motors rotate with respect to the mouse pointer location (the intersection of the green and red lines in Fig. 2.6). The red ends of the blue lines show the rotational velocities of the propellers. If the rectangle movement of the mouse is finished a picture similar to that given in Fig.
2.6 should be visible.
Troubleshooting
Message or faulty action

Solution

Board not detected

Check mounting of the board. Check if driver is installed

Angles measurements failed

Check the Enc socket and wiring

Propellers do not rotate

Check M socket, Mains and ON switch

Velocities are not measured

Check T socket and wiring

3. TRAS Control Window
The user has a rapid access to all basic functions of the TRAS control system from TRAS Control Window. It includes tests, drivers, models and application examples.
TRAS Control Window shown in Fig. 2.1 contains four groups of the menu items:

Tools Basic Test, Manual Setup, Reset Encoders and Stop Experiment,

Drivers RTWT Device Driver,

Simulation Models: Pitch , Azimuth and 2DOF model,

Identification Steady State Characteristics,

Demo Controllers – PID azimuth, PID pitch and crosscoupled PID controller
3.2 Basic test
The Basic Test tool was described in the previous section.
3.3 TRAS Manual Setup
The TRAS Manual Setup program gives access to the basic parameters of the laboratory Two Rotor Aerodynamical System setup. The most important data transferred from the RTDAC4/PCI board and the measurements of the TRAS may be shown. Moreover, the control signals may be set.
The application contains four frames (see Fig. 3.1):

RTDAC4/PCI board,

Encoders,

Control and

Tacho.
All the data accessible from the TRAS Manual Setup program are updated 10 times per second.
RTDAC4/PCI board frame
The RTDAC4/PCI board frame presents the main parameters of the PCI board.
No of detected boards
Reads the number of detected RTDAC4/PCI boards. If the number is equal to zero it means that the software has detected none of the RTDAC4/PCI board. When more then one board is detected the Board list must be used to select the board that communicates with the program.
3.3.1.1 Board
Contains the list applied to the selected board currently used by the program. The list contains a single entry for each RTDAC4/PCI board installed in the computer. A new selection executed at the list automatically changes values of the remaining parameters.
Bus number
Displays the number of the PCI bus where the current RTDAC4/PCI board is pluggedin. If more then one board is used this parameter may be useful to distinguish the boards.
Slot number
The number of the PCI slot in which the current RTDAC4/PCI board is pluggedin. If more then one board is used this parameter may be useful to distinguish the boards.
Base address
The base address of the current RTDAC4/PCI board. The RTDAC4/PCI board occupies 256 bytes of the I/O address space of the microprocessor. The base address is equal to the beginning of the occupied I/O range. The I/O space is assigned to the board by the computer operating system and may be different for various computers. The base address is given in the decimal and hexadecimal forms.
Logic version
The number of the configuration logic of the onboard FPGA chip. A logic version corresponds to the configuration of the RTDAC4/PCI boards defined by this logic.
Application
The name of the application the board is dedicated for. The name contains four characters.
I/O driver status
The status of the driver that allows the access to the I/O address space of the microprocessor. The status has to be OK string. In the other case the driver HAS TO BE INSTALLED.
Encoders frame
The state of the encoder channels is given in the Encoder frame. The encoders are applied to measure the azimuth and pitch angles.
Azimuth, Pitch
The values of the encoder counters, the angles expressed in radians and the encoder reset flags are listed in the Azimuth and Pitch rows.
Value
The values of the encoder counters are given in the respective columns. The values are 16bit integer numbers. When an encoder remains in the reset state the corresponding value is equal to zero.
Angle [rad]
The angular positions of the encoders expressed in radians are given in the respective columns. If the encoder remains in the reset state the corresponding angle is equal to zero.
Reset
When the checkbox is selected the corresponding encoder remains in the reset state. The checkbox has to be unchecked to allow the encoder to count the position.
Control frame
The Control frame allows to change the control signals. DC drives are controlled by PWM signals.
Azimuth and Pitch edit fields and sliders
The control edit boxes and the sliders are applied to set a new control values of the corresponding DC drives. The control value may vary from –1.0 to 1.0.
STOP
The pushbutton is applied to switch off the control signals. If it is pressed then both the azimuth and pitch control values are set to zero.
Azimuth and Pitch PWM prescaler
The divider of the PWM reference signal is given. The frequency of the corresponding PWM control is equal to:
FPWM = 40000/1023/(1+PWMPrescaler) [kHz]
Azimuth and Pitch Thermal flag / status
The thermal flags and the thermal statuses of the power amplifiers. If the thermal status box is checked the corresponding power interface is overheated. If the power interface is overheated and the corresponding thermal flag is set the RTDAC4/PCI board switches off the PWM control signal corresponded to the overheated power amplifier.
Tacho frame
The Tacho frame displays two measured analog signals generated by the tachogenerators. The voltages and the corresponding velocities of the propellers are displayed.
Azimuth and Pitch Voltage [V]
Displays the voltage at the outputs of the tacho generators.
Azimuth and Pitch Velocity [RPM]
Displays the velocity of the propellers. The velocities are calculated based on the corresponding voltages and are given in RPM.
3.4 RTWT Device Driver
The driver is a software gobetween for the realtime MATLAB environment and the RTDAC4/PCI I/O board. The control and measurements are transerred. Click the TRAS Device Driver button and the driver window opens (Fig. 3.2).
When one wants to build his own application one can copy this driver to a new model. The Reset Encoder input can be used in the realtime mode only.
Do not do any changes inside the original driver. They can be introduced only inside its copy!!! Make a copy of the installation CD
The device driver has two inputs: control u(t) ⊂ [−1+1] and signal Reset. If signal Reset changes to one the encoders are reset and do not work. If signal Reset is equal to zero encoders normally work. It is important that Reset switch works only if the realtime code is executed. It means that changing the state of the switch, when real time mode is not running, is not effective. However when switching occurs while the real time is running, the encoder resets and starts measure when the switch returns to the zero (normal) position.
The mask of this block (shown Fig. 3.3) contains the base address of the RTDAC4/PCI board (detected automatically) and sample time with the default value set to 0.002 s. If one needs to change the default sampling time he has to use the same mask of the device driver.
The details of the device driver are depicted in Fig. 3.4. The driver uses functions which communicates directly with a logic stored at the RTDAC4/PCI board.
Parameters Measurements
3.5 Simulation Models
There are three simulation models available for the TRAS system. The first one is a 1DOF (degree of freedom) azimuth model. This model simulate behaviour of the system in the horizontal plane only. Click the 1DOF Azimuth Simulation Model button to open the model shown in Fig. 3.5. Next, click the subsystem block to see details of the model.
TRAS azimuth model
Scope
Abs
A 1DOF pitch is the second model. It describes behaviour of the system in the vertical plane. Click the 1DOF Pitch Simulation Model button and click the subsystem block to see the 1DOF pitch model and its interior (see Fig. 3.6)
TRAS pitch
Scope
The third one is the complete simulation model. It describes movements in both planes with an interaction between the pitch and azimuth axes. Click the 2DOF Simulation Model button and the subsystem block to see the model and its interior (see Fig. 3.7)
TRAS 2_dof model
DCPazimuth
4. Model and parameters
Modern methods of design and adaptation of real time controllers require high quality mathematical models of the system. For high order, nonlinear crosscoupled systems classical modelling methods (based on Lagrange equations ) are often very complicated. That is why a simpler approach is often used, which is based on block diagram representation of the system which is very suitable for the SIMULINK environment. The relations between the block diagram and mathematical model of the TRAS are explained in sections 4.2 – 4.5.
Fig. 4.1. shows an aerodynamical system considered in this manual. At both ends of a beam, joined to its base with an articulation, there are two propellers driven by DCmotors. The articulated joint allows the beam to rotate in such a way that its ends move on spherical surfaces. There is a counterweight fixed to the beam and it determines a stable equilibrium position. The system is balanced in such a way, that when the motors are switched off, the main rotor end of beam is lowered. The controls of the system are the motor supply voltages.
The measured signals are: position of the beam in the space that is two position angles and angular velocities of the rotors. Angular velocities of the beam are software reconstructed by differentiating and filtering measured position angles of the beam.
The block diagram of the TRAS model is shown in Fig. 4.2. The control voltages U_{h }and U_{v }are inputs to the DCmotors which drive the rotors (PWM mode). A rotation of the propeller generates an angular momentum which, according to the law of
conservation of angular momentum, must be compensated by the remaining body of the TRAS beam. This results in the interaction between two transfer functions, represented by the moment of inertia of the motors with propellers khv and kvh (see Fig. 4.2). This interaction directly influences the velocities of the beam in both planes. The forces F_{h}and
F multiplied by the arm lengths l (α ) and l are equal to the torques acting on the arm.
vhvv
Uh
Uv
The following notation is used in Fig. 4.2: α_{h }horizontal position (azimuth position) of TRAS beam [ rad]; Ω_{h }angular velocity (azimuth velocity) of TRAS beam [rad/s]; horizontal DCmotor PWM control input ;
^{U}h
ω_{h }rotational speed of tail rotor [rad/s] nonlinear function
�
=H (U ,t) [rad/s] ;
h hh
F_{h}aerodynamic force from tail rotor nonlinear function Fh=Fh(wh) [N]; l_{h }effective arm of aerodynamic force from tail rotor lh=lh(av)[m]; J_{h }nonlinear function of moment of inertia with respect to vertical axis,
Jh = Jh(av) [kg m^{2}]; M_{h }horizontal turning torque [ Nm]; K_{h }horizontal angular momentum [N m s]; f_{h }moment of friction force in vertical ax[N m]; α_{v }vertical position (pitch position) of TRAS beam [ rad]; Ω_{v }angular velocity (pitch velocity) of TRAS beam [rad/s]; U_{v }vertical DCmotor PWM voltage control input;
�
ω rotational speed of main rotor nonlinear function =H (U ,t) [rad/s];
v vvv
�
F_{v}aerodynamic force from main rotor nonlinear function Fv = Fv(_{v}) [N]; l_{v }arm of aerodynamic force from main rotor [m]; J_{v }moment of inertia with respect to horizontal ax[kg m^{2}];
M_{v }vertical turning moment [ Nm]; vertical angular momentum [Nms];
^{K}v f_{v }moment of friction force in horizontal ax[Nm];
�
R vertical returning moment R = f + f = R(�,) [Nm];
v hcf g hvh
J_{hv }vertical angular momentum from tail rotor [Nms]; J_{vh }horizontal angular momentum from main rotor [Nms]; H differential equation ω= H (U ,t);
v vvv
H_{h }differential equation ω_{h }= H_{h }(U_{h },t) ;
G aerodynamical dumping torque from main rotor G (ω ,Ω) ;
vvvv G_{h}aerodynamical dumping torque from tail rotor G_{h}(ω_{h },Ω_{h }).
Controlling the system consists in stabilising the TRAS beam in an arbitrary (within practical limits) desired position (pith and azimuth) or making it track a desired trajectory. Both goals may be achieved by means of appropriately chosen controllers. The user can select between two types of PID controllers and a state feedback controller (see section 6).
4.2 Nonlinear model
The mathematical model is developed with some simplifying assumptions. First, it is assumed that the dynamics of the propeller subsystem can be described by first order differential equations. Further, it is assumed that friction in the system is of the viscous type. It is assumed also that the propellerair subsystem could be described in accord with postulates of the flow theory.
The above assumptions allow us to define the problem clearly. First, consider the rotation of the beam in the vertical plane i.e. around the horizontal axis. Having in mind that the driving torque’s are produced by the propellers the rotation can be described in principle as the motion of a pendulum. From the second dynamics law of Newton we obtain:
2�
d_{v}
M = J (1)
vv 2
dt where: M_{v }total moment of forces in the vertical plane, J_{v }the sum of moments of inertia relative to the horizontal axis, α _{v }the pitch angle of the beam.
Then:
6 8
M_{v }= _{ƒ }M _{vi }, J_{v }= _{ƒ }Ji i=1 i=1
To determine the moments of forces applied to the beam and making it rotate around the horizontal axis consider the situation shown in Fig. 4.3 .
return torque which determines the equilibrium position of the system.
M
v1
=
g
ÀÃÕ
ÿŸ⁄
’
’
»
m m
b
»
^{l}t
−
−
cb
sin
�
v
l
ml
^{l}b cd
+ _{tr }+
++
�
+
÷◊
÷◊
cos
m m
ts
m m
mr m v
…
…
2
2
2
M_{v1 }= g[(AB ) cos _{�v }− C sin _{�v }] where:
’
A
l
+
tr ^{+}
=
÷◊
m m
ts
t
2
m
’
B
l
+ m +
=
÷◊
m
mr m
2
m
b
2
»
…
C
l_{b }+ m_{cd }l
=
cb
where: M_{v1 }is the return torque corresponding to the forces of gravity, m_{mr}is the mass of the main DCmotor with main rotor, m_{m }is the mass of the main part of the beam, m_{tr}is the mass of the tail motor with tail rotor,m_{t}is the mass of the tail part of the beam,
is the mass of the counterweight,
^{m}cb m_{b }is the mass of the counterweight beam, m_{ms }is the mass of the main shield, m_{ts}is the mass of the tail shield, l_{m }is the length of the main part of the beam, l_{t}is the length of the tail part of the beam,
¤
‹›
ÿ
≈Δ «
m
tm _{Ÿ}_{⁄}
^{ms }ÿ
≈Δ «≈^{m }Δ«≈Δ«
t
m ms
^{Ÿ}_{⁄}
TRAS User’s Manual 21
l_{b}is the length of the counterweight beam, l_{cb}is the distance between the counterweight and the joint. g is the gravitational acceleration,
M = lF (^{�})
v2 mv m
M_{v2 }is the moment of the propulsive force produced by the main rotor, ω_{v }is angular velocity of the main rotor, F_{v }(^{� }_{v }) denotes the dependence of the propulsive force on the angular velocity of
the rotor; it should be measured experimentally (see section 4.5).
�
ÿŸ⁄
≈Δ «
or in the compact form:
2
M =−^{�}(A+B+C ) sin �cos �
v3 h vv
M_{v3}is the moment of centrifugal forces corresponding to the motion of the beam around the vertical axis,
�d�
and: = ^{h }(2)
^{h }dt
� _{h }is the angular velocity of the beam around the vertical axis, α_{h }is the azimuth angle of the beam.
�
M =− f
v4 vv
≈Δ «
’
’
»
m m
t
2
m
2
b
=−
sin
M
l l ml
cb cb
l
^{m }+ m +
+
++
+
+
cos
��
÷◊
÷◊
m m m
3
h btr ts t
v
mr ms m v
…
2
2
M_{v4 }is the moment of friction depending on the angular velocity of the beam around the horizontal axis.
�d�
where: _{v }= ^{v }(3)
dt
�
_{v }is the angular velocity around the horizontal axis,
f_{v }is a constant
M is the cross moment from U ; M = Uk
v5 hv5 h hv
k is constant
hv _{�}�
M is the dumping torque from rotating propeller M =−a abs()
v6 v61 vv
a_{1}is constatnt
According to Fig. 4.4 we can determine components of the moment of inertia relative to the horizontal axis. Notice that this moment is independent of the position of the beam.
_{l }2 2 m 2
J = ml , J = m , J = ml
v1 mr m v2 mv3 cb cb
3
_{l }2 _{l }2 b 2 t
J = m , J = ml , J = m
v4 bv5 tr t v6 t
33
m
22 22
J = ^{ms }r + ml , J = mr + ml
v7 ms ms m v8 ts ts ts t
2
r_{ms}is the radius of the main shield,
r_{ts}is the radius of the tail shield Similarly we can describe the motion of the beam around the vertical axis. Having in mind that the driving torque’s are produced by the rotors and that the moment of inertia depends on the pitch angle of the beam the horizontal motion of the beam (around the vertical axis) can be described in principle as rotative motion of a solid:
_{d }2
�h
M = J (4)
hh 2
dt
where: M_{h }is the sum of moments of forces acting in the horizontal plane,
J_{h }is the sum of moments of inertia relative to the vertical axis.
Then: M_{h }= _{ƒ}^{4 }M _{hi }, J_{h }= _{ƒ}^{8 }J_{hi }i=1 i=1
To determine the moments of forces applied to the beam and making it rotate around the vertical axis consider the situation shown in Fig. 4.5.
M
ω _{t}
propulsive experimentally, see section 4.5)
�
M =− f
h2 hh
M_{h2 }is the moment of friction depending on the angular velocity of the beam
around the

vertical axis,

hf is constant.

h3M

is the cross moment from vU ,

vh vh U kM = 3

vh k is constant h4M is the dumping torque from rotating propeller,

24h � aM = −

habs(�

)h

a2

is constant




According to Fig. 4.5. we can determine components of the moment of inertia relative to vertical axis (it depends on pitch position of the beam).
J
h1

=
m
2 m 2
≈Δ «’≈Δ «’
t
� �
l
J
l
m
=
cos cos
÷◊÷◊
,
,
h1 h2 tm v v
3
3
m
b
22
≈Δ «’≈Δ «’
�
�
sin
J
l
J
l
=
=
cos
m
÷◊÷◊
,
,
4
h3 b h tr tv v
3
2 2
≈Δ «’≈Δ «’
�
sin�
J
l
J
l
=
=
cos
m m
÷◊÷◊
,
5 6
h h cb cb
mr ts m v v
m
222 2
≈Δ «
l
’≈Δ «
l
’
� �
J
J
+
m
ts
+
m
=
=
cos cos
r
ts
mr
ms
÷◊÷◊
,
7 8
h ht v ms ms m v
2
or in the compact form: J = D cos ^{2 }�+ E sin ^{2 }�+ F
h vv
TRAS User’s Manual 24
where: D,E,F are constants: m
b 22
D = l + ml ,
b cb cb
3
m
2 ts 2
= _{ms }r +
^{F m }ms ^{r}ts
2 M_{v1 }= g {(AB ) cos _{�v }− C sin _{�v }}
Using (1)(4) we can write the equations describing the motion of the system as follows:
��
d_{v }l_{m }F_{v}(^{� }_{m}) − _{v }k_{v }+ g((A − B) cos _{�v }− C sin _{�v })
= ....
dt J_{v}
1 �2 �� (5)
≈Δ «
− _{h }(A + B + C)sin 2_{�v}U_{h}k_{hv }+U_{h}k_{hv }− a_{1 v}abs(_{v })
2
...
^{J}v
d�
v �
= _{v }, (6)
dt
��
�
dK M lF(�) cos − k +Uk − a abs(�)
h h tht vhh vvh 2 hh
== (7)
2 �2 �
dt J D sin + E cos + F
h vv
d�
h ��^{K}h
= _{h }, _{h }= (8)
dt J_{h }()
�
v
and two equations describing the motion of rotors:
dd
�h1 �v1
I_{h }= U_{h }− H_{h }(_{�h }) and I_{v }= U_{v }− H_{v }(_{�v })
dt dt
I_{h }moment of inertia of the tail rotor I_{v }moment of inertia of the main rotor.
The above model of the motorpropeller dynamics is obtained by substituting the nonlinear system by a serial connection of a linear dynamic system and static nonlinearity.
≈Δ «
’
’
m m
t
3
2 2
E
l l
^{m }+ m +
+
++
=
÷◊
÷◊
m m m
ts
,
tr tmr ms m
3
4.3 State equations
Finally, the mathematical model of the TRAS (compare Fig. 4.2) becomes as the set of four nonlinear differential equations with two linear differential equations and four nonlinear functions.
Ω
^{K}h
ÿ
ÿŸŸŸŸŸŸŸ
»
»
h
α
α
…
…
h h
…
…
ω
K
ω
ÿŸ⁄
u
h
»
……
…
h
is the input,
X=
is the state, and
Y=
is the output vector.
U=
t
…
…
Ω
u
v
v v
…
…
α
α
…
…
v v
ω
ω
…
…
ŸŸŸŸŸŸŸ⁄
⁄
v v
In order to apply the model for control of TRAS the parameters and nonlinear functions should be determined first. They can be divided in to three groups:

physical parameters,

nonlinear static characteristics,

time constants of the linear part of the model.
It is described in details in the next section.
4.4 Physical parameters
To obtain the values of model coefficients it is necessary to perform some measurements. First, geometrical dimensions and moving masses of TRAS should be measured. Following are the results of measurements for a given laboratory TRAS setup.
m_{tr }= 0.154 [kg] l_{t }= 0.216 [m] m_{mr }= 0.199 [kg]
[m]
l = 0.202 m = 0.024 [kg]
^{m }[m] ^{cb}
l = 0.15 m = 0.031 [kg]
^{b }[m] ^{t}
l = 0.15 m = 0.029 [kg]
cb [m] m r_{ms }= 0.145 _{[m] }m_{b }= 0.011 [kg] r_{ts }= 0.10 [m] m_{ts }= 0.061 [kg] m_{ms }= 0.083 [kg]
Using the above measurements the moment of inertia about the horizontal axis can be calculated as:
2
J = _{ƒ}^{8 }J = 0.02421 [kg m].
v iv i
The terms of the sum are calculated from elementary physics laws: J = ml ^{2 }= 0.00718 [kg m^{2}]
v1 tr t
J = ml ^{2 }= 0.00054[kg m^{2}]
v2 cb cb
J = m_{mr }l^{2 }= 0.00811 [kg m^{2}]
v3 m
J = ml ^{2 }/ 3 = 0.00049 [kg m^{2}]
v4 tt
J = ml ^{2 }/ 3 = 0.00040 [kg m^{2}]
v5 mm
J = ml ^{2 }/ 3 = 0.00008 [kg m^{2}]
v6 bb
22 2
J = m(r / 2 + l) = 0.00426 [kg m ]
v7 ms ms m
22 2
J = m(r / 2 + l) = 0.00315 [kg m ]
v8 ts ts t
The calculated moment of inertia about the vertical axis is:
9
J_{h }= _{ƒ }J _{hi }, i
where the terms of the sum are:
22 2
J_{h1 }= m_{t }(l_{t }cos _{�v }) / 3 = 0.000482 cos _{�v }[kg m ]
22 2
J_{h2 }= m_{m }(l_{m }cos _{�v }) / 3 = 0.000394 cos _{�v }[kg m ]
22 2
J_{h3 }= m_{b }(l_{b }sin a_{v }) / 3 = 0.000082 sin _{�v }[kg m ]
22 2
J_{h4 }= m_{mr }(l_{m }cos _{�v })= 0.008119 cos _{�v }[kg m ]
22 2
J_{h5 }= m_{tr }(l_{t }cos _{�v })= 0.007185 cos _{�v }[kg m ]
22 2
J_{h6 }= m_{cb }(l_{cb }sin _{�v })= 0.00054 sin _{�v }[kg m ]
J = 0.00063 [kg m^{2}]
222 22
J ^{h}_{h8}^{7 }= m_{ts }(r_{ts }/ 2 + l_{t }cos _{�v })= 0.00031 + 0.00284 cos _{�v }[kg m ]
222 22
J_{h9 }= m_{ms }(r_{ms }/ 2 + l_{m }cos _{�v })= 0.00087 + 0.00387 cos _{�v }[kg m ]
giving finally (Fig. 4.6):
22 22
J = _{ƒ}^{9 }J =D cos �+ E sin �+F = 0.022893 cos �+ 0.0006225 sin �+ 0.001267
hhi vv v v i
.
r ri i
and its components are given by: M = 9.81 ml cos ^{�}/ 2 =0.0287 cos ^{�}[N m]
r1 mmv v
M = 9.81 ml cos ^{�}=0.3943 cos ^{�}[N m]
r 2 mr mv v
M = 9.81 ml cos ^{�}=0.16 cos ^{�}[N m]
r3 ms mv v
M = + 9.81 ml cos ^{�}/ 2 = 0.0328 cos ^{�}[N m]
r 4 ttv v
M = + 9.81 ml cos ^{�}= 0.3263 cos ^{�}[N m]
r5 tr tv v
M = + 9.81 ml cos ^{�}= 0.12925 cos ^{�}[N m]
r6 ts tv v
M = 9.81 ml sin ^{�}/ 2 = 0.01618 sin ^{�}[N m]
r7 bbv v
M = 9.81 ml sin ^{�}= 0.03531 sin ^{�}[N m]
r8 cb cb v v
giving finally (Fig. 4.7)
��
M = _{ƒ}^{8 }M =(0.0947 cos + 0.05149 sin ) [N m] .
rri vv i
The moment of centrifugal forces is:
M = _{ƒ}^{6 }M ,
cf cfi i
where
� �
22 2
M = (m +m )l cos sin =0.01003 cos sin [N m]
cf 1 tr ts th �v �v h �v �v
� �
22 2
M = ml cos sin / 4 = 0.00144 cos sin [N m]
cf 2 tt h �v �v h �v �v
� �
22 2
M = ml cos sin / 4 =0.00025 cos sin [N m]
cf 3 bb h �v �v h �v �v
� �
22 2
M = ml cos sin =0.00054 cos sin [N m]
cf 4 cb cb h �v �v h �v �v
� �
22 2
M = ml cos sin / 4 =0.00118 cos sin [N m]
cf 5 mm h �v �v h �v �v
� �
22 2
M = (m +m )l cos sin =0.01150 cos sin [N m]
cf 6 mr ms mh �v �vh �v �v
giving finally (Fig. 4.8)
�
2 ��
M _{cf }= _{ƒ }^{6 }M _{cfi }= 0.024946 _{h }cos _{v }sin _{v }[N m] . i
4.5 Static characteristics
It is necessary to identify the following functions:
• Two nonlinear input characteristics determining dependence of the DCmotor
��
rotational speed on the input voltage (RPM characteristics): = H(U ) , = H(U )
vvv hhh
To measure the characteristics double click the Static characteristics button in TRAS Control Window. The window given in Fig. 4.9 opens. In this window one defines the minimal and maximal control values and a number of measured points. The control order can be set as: Ascending, Descending or Reverse. Also one can choose the pitch or azimuth static characteristic. Note, that the control signal is normalised and changes in the range [1, +1] what corresponding to the input voltage range [24V, +24V] .
Choose Azimuth axis (tail rotor) and click the Run button. The constant value of control activates the DC motor so long as is required to obtain a steady state of the shaft angular velocity. Then, the velocity is measured and the control value is changed to the next constant value and DC motor is activated again. These steps are repeated to the end of the control range. This action should be repeated for pitch axis (main rotor) to obtained the both characteristics. Examples of the measured static characteristic for the main and tail rotors are shown in Fig. 4.10.
RPM vs. PWM
Rotor velocity [RPM]
8000
6000
4000
2000
0 2000 4000 6000 8000
PWM control value
Fig. 4.10 Main and tail rotor static characteristics
If the characteristics is measured in Reverse mode (the control has been changed from –1 to +1 and reverse), there are two slightly different plots.
• Two nonlinear characteristics determining dependence of the propeller thrust on DC
��
motor rotational speed (thrust characteristics): F=F () ,F =F().
hhh vvv
The thrust static characteristics of the propellers should be measured in the case when the propellers were changed by a user. In this case a proper electronic balance (no delivered with the system) is necessary to measure the force created by rotational movements of the propellers. The characteristics included in the TRAS Toolbox and shown in this section were obtained by the manufacturer of the TRAS.
4.5.1 Main rotor thrust characteristics
To perform measurements correctly block the beam so that it could not rotate around the vertical axis, place the electronic balance under the beam in such a way that it is pulled by the propeller straight up. To balance the beam in the horizontal position attach a weight to the beam (as in Fig. 4.11) .
For further applications the measured characteristics should be replaced by their polynomial approximations. For this purposes one can use the MATLAB polyfit.m function. An example is given in Fig.3.6. The obtained polynomials have the form:
~ 18 5 16 4 11 3 8 2 5
F = 1.8 ⋅10 ω 7.8 ⋅10 ω+ 4.1 ⋅10 ω+ 2.7 ⋅10 ω+ 3.5 ⋅10 ω 0.014
vvv vvv
~ 3726 45 24 332 3
ω= 5.2 ⋅10 U 1.1 ⋅10 U +1.1 ⋅10 U +1.3 ⋅10 U 9.2 ⋅10 U 31 U + 6.1 ⋅10 U 4.5
v vvvvvvv
4.5.2 Tail rotor thrust characteristics
Fig. 4.14 shows laboratory setup for measuring thrust of the tail rotor.
To measure the static thrust characteristics one should to rearrange the laboratory setup as shown in Fig. 4.14 and the electronic balance should be used.
The measured by the producer of the TRAS thrust static characteristics of the tail motor are given in Fig. 4.15.
For further applications the characteristics can be replaced by their polynomial approximations. For this purposes one can use the MATLAB polyfit.m function. The obtained polynomials are as follows:
~ 20 �5 17 �4 12 �3 9 �2 5 �
F = 2.6 ⋅10 + 4.1⋅10 + 3.2 ⋅10 7.3⋅10 + 2.1⋅10 + 0.0091
h h hhhv
�~ 3524 33 22 3
= 2.2 ⋅10 U1.7 ⋅10 U4.5 ⋅10 U + 3⋅10 U + 9.8 ⋅10 U9.2
h hvvv v
5. RTWT model
In this section the process of building your own control system is described. The Real Time Windows Target (RTWT) toolbox is used. An example how to use the MSS software is shown later in section 5.3. In this section we give indications how to proceed in the RTWT environment.
Before start, test your MATLAB configuration and the compiler installation by building and running an example of realtime application. Realtime Windows Target includes the model rtvdp.mdl. Running this model will test the installation by running RealTime Workshop, your thirdparty Ccompiler, RealTime Windows Target, and the RealTime Windows Target kernel. In the MATLAB Command Window, type
rtvdp
Next, build and run the realtime model. For details refer to the RealTime Windows Target help, section Installation and Configuration.
To build the system that operates in the realtime mode the user has to:

create a Simulink model of the control system which consists of TRAS Device Driver and other blocks chosen from the Simulink library,

build the executable file under RTWT,

start the realtime code from the Simulation/Start realtime code pulldown menus; in this way the system runs in realtime.
5.2 Creating a model
The simplest way to create a Simulink model of the control system is to use one of the models included in the Tras Control Window as a template. For example, click on the PID Azimuth button and save it asMySystem.mdl name. The MySystem Simulink model is shown in Fig. 5.1.
Now, you can modify the model. You have absolute freedom to develop your own controller. Remember to leave the Tras Device driver model in the window. This is necessary to work in RTWT environment. Though it is not obligatory, we recommend you to leave the scope. You need a scope to watch how the system runs. The saturation blocks are built in the Tras driver block. They limit the currents to the DC motors for safety reasons. However they are not visible for the user who may amaze at the saturation of controls. Other blocks remaining in the window are not necessary for our new project. Creating your own model on the basis of an old example ensures that allinternal options of the model are set properly. These options are required to proceed with compiling and linking in a proper way. To put the Tras Device Driver into the realtime code a special makefile is required. This file is included to the TRAS software. You can apply most of the blocks from the Simulink library. However, some of them cannot be used (see RTW or RTWT references manual). The scope block properties are important for an appropriate data acquisition and watching how the system runs. The Scope block properties are defined in the Scope property window (see Fig. 5.2). This window opens after the selection of the Scope/Properties tab. You can gather measurement data to the Matlab Workspace marking the Save data to workspace checkbox. The data is placed under Variable name. The variable format can be set asstructure or matrix. The default Sampling Decimation parameter value is set to 1. This means that each measured point is plotted and saved. Often we select the Decimation parameter value equal to 5 or
10. This is a good choice to get enough points to describe the signal behaviour and to save the computer memory.
When the Simulink model is ready, click the Tools/External Mode Control Panel option and next click the Signal Triggering button. The window presented in Fig. 5.3 opens. Select Select All check button, set Sourceas manual, set Duration equal to the number of samples you intend to collect, and close the window.
5.3 Code generation and the build process
Once a model of the system has been designed the code for realtime mode can be generated, compiled, linked and downloaded into the processor. The code is generated by the use of Target Language Compiler (TLC) (see description of Simulink Target Language). The makefile is used to build and download object files to the target hardware automatically.
At the beginning you have to specify the simulation parameters of your Simulink model in the Simulation parameters dialog box. The RTW page appears when you select the RTW tab (Fig. 5.4). The RTW page is used to set the realtime build options and then to start the building process of the RTW.DLL executable file.
The system target file name is rtwin.tlc. It manages the code generation process. The tras_win_vc.tmf template makefile is devoted to C code generation using the Microsoft Visual C++ 6.0 compiler.
_{Û }Template makefile must correspond to the compiler in use.
The Solver page appears when you select the Solver tab (Fig. 5.5). The Solver page is used to set the simulation parameters. Several parameters and options are available in the window. The Fixedstep size editable text box is set to 0.002 (this is the sampling period given in seconds).
The Fixedstep solver is obligatory for realtime applications. If you use an arbitrary block from the discrete Simulink library or a block from the driver
library remember that different sampling periods must have a common divider.
The Start time has to be set to 0. The solver has to be selected. In our example the fifthorder integration method − ode5 is chosen.
If all parameters are set properly you can start the DLL executable building process. For this purpose press the Build push button on the RTW page (Fig. 5.4). Successful compilation and linking processes generate the following message:
### Created RealTime Windows Target module MySystem.rwd. ### Successful completion of RealTime Workshop build procedure for model: MySystem
Otherwise, an error massage is displayed in the MATLAB command window.
6. Controllers and realtime experiments
In the following section we propose three PID controllers. It is possible to tune the parameters of the controllers without analytical design. Such approach to the control problem seems to be reasonable if a well identified model of the TRAS is not available. The effectiveness of the PID controllers discussed here is illustrated by control experiments.
PID controllers
One degree of freedom (1DOF) control problem is the following. Design a controller that will stabilise the system, or make it follow a desired trajectory in one plane (one degree of freedom) while motion in the other plane is blocked mechanically or being controlled by another controller. If TRAS is free to move in both axes we refer to the control as two degree of freedom (2DOF). The four PID controllers for TRAS: PIDvv, PIDvh, PIDhvand PIDhh (hhorizontal (azimuth), vvertical (pitch)) are considered. The subscripts indicates the sourcesink relation for the controller. Each control signal (Uv and Uh) is the sum of two controller outputs. For example, vertical control denoted later as Uv is the sum of two output signals: PIDvv and PIDhv. The internal structure of each PID controller is shown in Fig. 6.15b. There are three parameters to be set for every controller: KP, Kiand Kd. The TRAS control in the vertical and horizontal planes requires setting altogether 12 (3×4) controller parameters. Saturation blocks introduce four additional Isat parameters: Ivvsat, Ivhsat, Ihhsat and Ihvsat, which are the limits of absolute values of the integrals of errors, and two: Uhmax and Uvmax parameters, which are the limits of absolute value of controls. These 18 (12+4+2) parameters have their default values.
6.2 1DOF controllers
The task of the onedegreeoffreedom (1DOF) controllers is to move the TRAS to an arbitrary position in the selected plane and to stabilise it there.
6.2.1 Vertical 1DOF control
At the beginning we restrict our control objective to stabilising the system in the vertical plane only (using the included clamp). We reduce the original system to the 1DOF system by mechanically blocking its freedom to move in the horizontal plane. A corresponding block diagram of the PID control system is presented in Fig. 6.1.
vd desired pitch Fig. 6.1 1DOF pitch control system
The block diagram below shows the system in a more detailed form (Fig. 6.2). Notice, that only the vertical part of the control system is considered.
6.2.2 Realtime 1DOF pitch control experiment
Fix the TRAS in the horizontal plane using the special plastic clamps delivered with TRAS. Set it in the neutral vertical position and wait until the all oscillations are finished. In the Tras Control Window double click theReset Encoders block. Click the PID Pitch controller button and the model shown in Fig. 6.3 opens. Set all PID controller coefficients as: K = 0.6784 K = 0.4415 and K = 1.31196 . Also set saturation
pi d
of the integral part of the controller to 1.43. Build the model and click on the Simulation/Connect to target option and Start realtime code option.
TRAS 1DOF PID Pitch
The results of the experiment are shown in Fig. 6.4. Notice, that control changes with high frequency. This phenomena appears due to the quantization effects of the signal caused by the differential part of the controller. For this reason the control signal is filtered. It is shown in the upper part of Fig. 6.4.
The details of the above experiment are shown in Fig. 6.5, Fig. 6.6 and Fig. 6.7.
time [s]
time [s] Pitch position and reference signal
0.3
0.2
0.1
0 0.1 0.2 0.3 0.4 0.5
time [s]
Fig. 6.7 The pitch position and reference signal
6.2.3 Horizontal 1DOF control
In the next experiment we will apply stabilising PID controller in the horizontal plane. We block the system in one axis so that it cannot move in the vertical plane (using the included fixing rectangle).. A corresponding block diagram of the control system is shown in Fig. 6.8, and in a more detailed form in Fig. 6.9.
hd desired azimuth Fig. 6.8 1DOF control closedloop system (azimuth stabilisation)
Notice that only the ‘horizontal’ part of the control system is considered.
6.2.4 Realtime 1DOF azimuth control experiment
Fix the TRAS in the vertical plane using the special fixing rectangle delivered with TRAS. Set it in the zero position and click on the Reset Encoders block in Tras Control Window. Click PID Azimuth controller and the model shown in Fig. 6.10 opens. Set all PID controller coefficients as K = 4.9395 K = 0.0022 and K = 5.1898 . Also set saturation
pi d
of the integral part of the controller to 1.0. Build the model and click on the Simulation/Connect to target and Start realtime code options.
The results of the experiment are shown in Fig. 6.11. Notice, that control similar to the pitch control changes with a high frequency. This phenomena appears due to the quantization effects of the signal caused by the differential part of the controller. For this reason the control signal is filtered. It is shown in the upper part of Fig. 6.11.
time [s] PID controller for azimuth position control
time [s]
Azimuth position and reference signal
0.5
0
0.5
0 5 10 15 20 25 30 time [s]
Fig. 6.14 The azimuth position and reference signal
6.3 2DOF PID controller
The structure of the crosscoupled multivariable PID controller is shown in Fig. 6.15.
b)
U
saturation block
Umax
saturation block Isat
Fig. 6.15 Structure of the crosscoupled PID controller
a) general b) single PID block
The controller is described by the equations given bellow. ε =α −α ,
v vd v
ε_{h }=α _{hd }−α _{h },
where: ε_{v },ε_{h }are errors of vertical (pitch) and horizontal angle (azimuth), α _{vd },α _{hd }are reference values of vertical and horizontal angles, α _{v },α _{h }are vertical and horizontal angles.
The integrators are described by the following equations:
t
I ()t = K —ε dt , for − I ≤ I ≤ I
vv ivv v vvsat vv vvsat
0
if ( I_{vv }> I ) then I = I , if ( I <−I ) then I_{vv }=−I ,
vvsat vv vvsat vv vvsat vvsat
t
I ()t = K —ε dt , for − I ≤ I ≤ I
vh ivh v vhsat vh vhsat
0
if ( I > I ) then I = I , if ( I <−I ) then I =−I ,
vh vhsat vh vhsat vh vhsat vh vhsat
t
I ()t = K —ε dt , for − I ≤ I ≤ I
hv ihv h hvsat hv hvsat
0
if ( I > I ) then I = I , if ( I <−I ) then I =−I ,
hv hvsat hv hvsat hv hvsat hv hvsat
t
I ()t = K —ε dt , for − I ≤ I ≤ I
hh ihh h hhsat hh hhsat
0
if ( I > I ) then I = I , if ( I <−I ) then I =−I ,
hh hhsat hh hhsat hh hhsat hh hhsat
where: K , K , K , K are gains of the I parts,
ivv ivh ihv ihh
I , I , I , I are saturation’s of the integrators.
vvsat vhsat hvsat hhsat
Finally, vertical and horizontal controls are:
dε dε
U = K ε+ I ()t + K^{v }+ K ε+ I ()t + K^{h }, for −U ≤ U ≤ U
v pvv v vv dvv pvh h vh dvh v max vv max
dt dt
if (U_{v }> U_{v max }) thenU_{v }= U_{v max }, if (U_{v }<−U_{v max }) thenU_{v }=−U_{v max },
dε _{v}dε _{h}
U_{h }= K_{phv}ε _{h }+ I_{hv }()t + K_{dhv }+ K_{phh}ε _{h }+ I_{hh }()t + K_{dhh }, for −U_{h max }≤ U_{h }≤ U_{h max}
dt dt
if (U > U ) thenU = U , if (U <−U ) thenU =−U ,
hh max hh max hh max hh max
where K , K , K , K , K , K , K , K are parameters of the controllers,
pvv pvh phv phh dvv dvh phv phh
U ,U are the saturation limits of the vertical and horizontal controls.
v max h max
6.3.1 Simple PID controller
The simple PID controller controls the vertical and horizontal movements separately. In this control system influence of one rotor on the motion in the other plane is not compensated by the controller structure. The system is not decoupled. The control system of this kind is presented in Fig. 6.16. The controller structure is presented in Fig.
6.17.
Fig. 6.17 The block diagram of the simple PIDcontroller
6.3.2 Realtime 2DOF control with the simple PID controller
The task in this case is the same as in the previous sections but TRAS is not mechanically blocked, and therefore it is free to move in both planes. Click the 2DOF controller button and the model shown in Fig. 6.18 opens. Set all coefficients of the crossed PID controllers to zero. In this way the simple PID controller is obtained. Set coefficients of the azimuth controller as follows: K = 3.1352 K = 0.0
phh ihh and K_{Dhh }= 2.2094 . The integral saturation set to 1.0. Set the coefficients of the pitch PID controllers as: K = 1.2627 K = 1.4014 and K =1.2074 . Set saturation of the
pvv ivv dvv
integral part of the controller to 1.43. Set the reference azimuth signal as square wave with
0.2 [rad] amplitude and 1/40 [Hz] frequency. Set the reference signal for pitch as sinusoidal wave with the amplitude and frequency as 1/30 [Hz]. Build the model and click on the Simulation/Connect to target option andStart realtime code option. The results of the experiment are shown in Fig. 6.19 and Fig. 6.20. The azimuth position does not reach to the desired position and the pitch position is weakly dumped when disturbances from the rapid motions of the azimuth axis occur.
Pitch Angle & Control
Azimuth position and reference signal
time [s]
TRAS User’s Manual 51
Pitch position and reference signal
0.3
0.2
0.1
0 0.1 0.2 0.3 0.4
Fig. 6.20 Results of the 2DOF control with the simple PID controller (pitch position)
6.3.3 Crosscoupled PID controller
The crosscoupled PID controller controls the system in the pitch and azimuth planes. In this control system influence of one rotor on the motion in the other plane can be compensated by the crosscoupled structure of the controller. The control system is shown in Fig. 6.21. The crosscoupled PID controller structure is shown in Fig. 6.22.
Fig. 6.22 The block diagram of the crosscoupled PID controller
6.3.4 Realtime 2DOF control with the crosscoupled PID controller
Click the 2DOF controller button and the model shown in Fig. 6.18 opens. Set the coefficients of the crossed PID controllers as follows:
PID_{hh }azimuth controller: K = 3.2465 K = 0.0367 and K = 2.152 . Set the integral saturation to 1.0.
phh ihh dhh
PID_{hv }cross azimuthpitch controller K =−0.9334 K = 0.0 and K =−0.7845 ,
phv ihv Dvv
PID_{vh}cross pitchazimuth controller K =−0.0363 K = 0.0 and K =−0.0223 ,
pvh ivh Dvh
PID_{vv}pitch controller K _{pvv }= 0.4978 K_{ivv }= 0.4392 and K = 0.4464 . Set the saturation of the integral part of
Dvv
the controller to 1.43.
Also set the reference signals as in the previous experiment: the reference azimuth signal as square wave with 0.2 [rad] amplitude and 1/40 [Hz] frequency, and the reference signal for azimuth as sin wave with the amplitude and frequency as before. Build the model and click on the Simulation/Connect to target option and Start realtime code option. The results of the experiment are shown in Fig. 6.23 and Fig. 6.24. The comparison of the system responses in the experiments with the simple and crosscoupled PID controllers are depicted in Fig. 6.25 and Fig. 6.26.
Azimuth position and reference signal
time [s]
time [s]
6.3.5 Comparison the simple and crosscoupled PID controller
Results of experiments for simple and crosscoupled controllers are compared in Fig. 6.25 and Fig. 6.26. It can be seen that compensating action of the coupling controller improves the control quality especially for the pitch angle.
time [s]
time [s]
7. PID controller parameters tuning
There are several methods of designing closedloop control systems. In order to obtain optimal (or suboptimal) settings of parameters for the PID controllers the socalled tuning methods may be used. The following tuning methods can be distinguished:

Tuning based on the time or frequency responses. An experiment is performed with the process and with the model of the process. Tuning rules are based on time or frequency responses of the system. This method is not used for TRAS.

More general method is the minimisation of a objective function. The idea of this method for TRAS with a PID controller is presented in Fig. 7.1.
ymd
Fig. 7.1.Schematic diagram of the PID parameters tuning
In the case of TRAS the following criterion is used to tune the PID parameters for the all experiments described in the previous section
22 2
Q = ^{T}^{k }(4ε +ε +(u + 0.1))dt
hv v o where: T_{k}= 80 [s] – simulation time , ε _{h }azimuth position error, ε_{v }pitch position error, u_{v }pitch control. The 0.1 coefficient is the value of the pitch control which keeps the beam in horizontal position. Note, that selection of the criterion is a rather complicated and difficult task. It is closely related to the project assumptions. The project assumptions consist a basis for its construction. The TRAS Toolbox includes the mfiles to perform optimisation procedures of PID controller parameters. These mfiles are as follows:
—

pid_azimuth.m

pid_pitch.m

pid_cross.m
• pid_simple.m. Each of these files uses his own simulation model and the criterion mfile in optimisation process. See the body of these files to learn how the optimisation procedure is performed.
8. Description of the CTRAS class properties
The CTRAS is a MATLAB class, which gives the access to all the features of the RTDAC4/PCI board equipped with the logic for the Twin Rotor Aerodynamical System model. The RTDAC4/PCI board is an interface between the control software executed by a PC computer and the powerinterface electronic of the TRAS model. The logic on the board contains the following blocks:

incremental encoder registers – two 32bit registers to measure the positions of the incremental encoders. There are two identical encoder inputs, that are applied to measure the azimuth and pitch angles;

incremental encoder resets logic. The incremental encoders generate different output waves when the encoder rotates clockwise and counterclockwise. The encoders are not able to detect the reference (“zero”) position. To determine the “zero” position the incremental encoder registers have to be set to zero by the computer program;

PWM generation blocks – generates the PulseWidth Modulation output signals applied to control the azimuth and pitch DC drives. Simultaneously the direction signals and the brake signals are generated to control the power interface module. The PWM prescalers determines the frequencies of the PWM wave;

power interface thermal flags –the thermal flags can be used to disable the operation of the overheated DC motors;

interface to the onboard analogtodigital converter. The A/D converter is applied to measure the output voltages from the tachogenerator.
All the parameters and measured variables from the RTDAC4/PCI board are accessible by appropriate properties of the CTRAS class. In the MATLAB environment the object of the CTRAS class is created by the command:
object_name = CTRAS; The get method is called to read a value of the property of the object: property_value = get( object_name, ‘property_name’ ); The set method is called to set a new value of the given property: set( object_name, ‘property_name’, new_property_value ); The display method is applied to display the property values when the object_name is entered in the MATLAB command window.
This section describes all the properties of the CTRAS class. The description consists of the following fields:
Purpose

Provides short description of the property

Synopsis

Shows the format of the method calls

Description

Describes what the property does and the restrictions subjected to the property

Arguments

Describes arguments of the set method

See

Refers to other related properties

Examples

Provides examples how the property can be used

8.2 BaseAddress
Purpose: Read the base address of the RTDAC4/PCI board.
Synopsis: BaseAddress = get( tr, ‘BaseAddress’ );
Description: The base address of RTDAC4/PCI board is determined by the computer. Each CTRAS object has to know the base address of the board. When a CTRAS object is created the base address is detected automatically. The detection procedure detects the base address of the first RTDAC4/PCI board plugged into the PCI slots.
Example: Create the CTRAS object:
tr = CTRAS;
Display their properties by typing the command:
tr
Type:

CTRAS Object

BaseAddress:

54272 / D400 Hex

Bitstream ver.:

x40F

Encoder:

[ 2

65517 ][bit]

Reset Encoder:

[ 0

0 ]

Input voltage:

[ 0.01

0.02 ][V]

PWM:

[ 0

0 ]

PWM Prescaler:

[ 1

1 ]

PWM Thermal Status: [ 0 0 ] PWM Thermal Flag: [ 1 1 ] Angle: [ 0.003068 0.029146 ][rad] RPM: [ 19 9 ][RPM] Time: 753.7 [sec]
Read the base address:
BA = get( tr, ‘BaseAddress’ );
8.3 BitstreamVersion
Purpose: Read the version of the logic stored in the RTDAC4/PCI board.
Synopsis: Version = get( tr, ‘BitstreamVersion’ );
Description: The property determines the version of the logic design for the RTDAC4/PCI board. The TRAS models may vary and the detection of the logic design version makes it possible to check if the logic design is compatible with the physical model.
8.4 Encoder
Purpose: Read the incremental encoder registers.
Synopsis: enc = get( tr, ‘Encoder’ );
Description: The property returns two digits. They are equal to the number of impulses generated by the corresponding encoders. The encoder counters are 16bit numbers so the values of this property is from –32768 to 32767. When an encoder counter is reset the value is set to zero. The first encoder register corresponds to the azimuth position and the second register corresponds to the pitch position. The incremental encoders generate 4096 pulses per rotation. The values of the Encoder property should be converted into physical units.
See: ResetEncoder, Angle, AngleScaleCoeff
8.5 Angle
Purpose: Read the angle of the encoders.
Synopsis: angle_rad = get( tr, ‘Angle’ );
Description: The property returns two angles of the corresponding encoders. The first value corresponds to the azimuth and the second to the pitch position. To calculate the angle the encoder counters are multiplied by the values defined as the AngleScaleCoeff property. The angles are expressed in radians.
See: Encoder, AngleScaleCoeff
8.6 AngleScaleCoeff
Purpose: Read the coefficients applied to convert the encoder counter values into physical units.
Synopsis: scale_coeff = get( tr, ‘AngleScaleCoeff’ );
Description: The property returns two digits. They are equal to the coefficients applied to convert encoder impulses into radians. The incremental encoders generate 4096 pulses per rotation so the coefficients are equal to 2*pi/4096.
See: Encoder, Angle
8.7 PWM
Purpose: Set the direction and duty cycle of the PWM control waves.
Synopsis: PWM = get( tr, ‘PWM’ ); set( tr, ‘PWM’, [ NewAzimuthPWM NewPitchPWM ] );
Description: The property determines the duty cycle and direction of the PWM control waves for the azimuth and pitch DC drives. The PWM waves and the direction signals are used to control the DC drives so in fact this property is responsible for the DC motor control signals. The NewAzimuthPWM and NewPitchPWM variables are scalars in the range from –1 to 1. The value of –1, 0.0 and +1 mean respectively: the maximum control in a given direction, zero control and the maximum control in the opposite direction to that defined by –1. The PWM wave is not generated if the corresponding thermal flag is set and the power amplifier is overheated.
See: PWMPrescaler, Therm, ThermFlag
Example: set( tr, ‘PWM’, [ 0.3 0.0 ] );
8.8 PWMPrescaler
Purpose: Determine the frequency of the PWM waves.
Synopsis: Prescaler = get( tr, ‘PWMPrescaler’ ); set( tr, ‘PWMPrescaler’, [ NewAzimuthPrescaler NewPitchPrescaler ] );
Description: The prescaler values can vary from 0 to 63. The 0 value generates the maximal PWM frequency. The value 63 generates the minimal frequency. The first prescaler value is responsible for the azimuth PWM frequency and the second for the pitch PWM frequency. The frequency of the generated PWM wave is given by the formula: PWMfrequency = 40MHz / 1023 / (Prescaler+1)
See: PWM
8.9 Stop
Purpose: Sets the control signal to zero.
Synopsis: set( tr, ‘Stop’ );
Description: This property can be called only by the set method. It sets the zero control of the DC motors and is equivalent to the set(tr, ‘PWM’, [ 0 0 ] ) call.
See: PWM
8.10 ResetEncoder
Purpose: Reset the encoder counters.
Synopsis: set( tr, ‘ResetEncoder’, ResetFlags );
Description: The property is used to reset the encoder registers. The ResetFlags is a 1x2 vector. Each element of this vector is responsible for one encoder register (the first value controls the reset signal of the azimuth encoder and the second controls the reset of the pitch encoder). If the reset flag is equal to 1 the appropriate register is set to zero. If the flag is equal to 0 the appropriate register counts encoder impulses.
See: Encoder
Example: To reset only the first encoder register execute the command: set( tr, ‘ResetEncoder’, [ 1 0 ] );
8.11 Voltage
Purpose: Read two voltage values.
Synopsis: Volt = get( tr, ‘Voltage’ );
Description: Returns the voltage of two analog inputs. The analog inputs are applied to measure the output of the tachogenerators.
See: RPM
8.12 RPM
Purpose: Read velocity of the propelers.
Synopsis: RPM = get( tr, ‘RPM’ );
Description: Returns the velocities of the propellers. The property contains two values. The first one is equal to the azimuth propeller velocity. The second one is equal to the pitch propeller velocity.
See: Voltage, RPMScaleCoeff
8.13 RPMScaleCoeff
Purpose: Read the coefficients applied to convert the tachgenerator voltage values into physical units.
Synopsis: scale_coeff = get( tr, ‘RPMScaleCoeff’ );
Description: The property returns two digits. They are equal to the coefficients applied to convert tachogenerator voltages into RPMs.
See: Voltage, RPM
8.14 Therm
Purpose: Read thermal status flags of the power amplifiers.
Synopsis: Therm = get( tr, ‘Therm’ );
Description: Returns the thermal flag of the power amplifier. When the temperature of a power amplifier is too high the corresponding flag is set to 1. The property contains two flags. The first one corresponds to the thermal status of the power interface for the azimuth DC drive. The second one corresponds to the thermal status of the pitch power amplifier.
See: ThermFlag
8.15 ThermFlag
Purpose: Control an automatic power down of the power amplifiers.
Synopsis: ThermFlag = get( tr, ‘ThermFlag’ ); set( tr, ‘ThermFlag’, [ NewAzimuthThermFlag NewPitchThermFlag ] );
Description: If the NewAzimuthThermFlag or/and NewPitchThermFlag are equal to 1 the azimuth or/and DC motors are not excited by from the PWM waves when the corresponding power interfaces is overheated.
See: Therm
8.16 Time
Purpose: Return time information.
Synopsis: T = get( tr, ‘Time’ );
Description: The CTRAS object contains the time counter. When a CTRAS object is created the time counter is set to zero. Each reference to the Time property updates its value. The value is equal to the number of milliseconds which elapsed since the object was created.
8.17 Quick reference table
Property name

Operation*

Description

BaseAddress

R

Read the base address of the RTDAC4/PCI board

BitstreamVersion

R

Read the version of the logic design for the RTDAC4/PCI board

Encoder

R

Read the incremental encoder registers

Angle

R

Read the angles of the encoders

AngleScaleCoeff

R

Read the coefficients applied to convert encoder positions into radians

PWM

R+S

Read/set the parameters of the PWM waves

PWMPrescaler

R+S

Read/set the frequency of the PWM waves

Stop

S

Set the control signal to zero

ResetEncoder

R+S

Reset the encoder counters or read the reset flags

Voltage

R

Read the input voltages

RPM

R

Read velocities of the propelers

RPMScaleCoeff

R

Read the coefficients applied to convert tachogenerator voltages into RPMs

Therm

R

Read the thermal flags of the power amplifiers

ThermFlag

R+S

Read/set the automatic power down flags of the power amplifiers

Time

R

Read time information

• R – readonly property, S – allowed only set operation, R+S –property may be read and set
8.18 CTRAS Example
To familiarise a reader with the CTRAS class this section presents an Mfile example that uses the properties of the CTRAS class to measure the static characteristics of the DC motor. The static characteristics is a diagram showing the relation between DC motor control signal and the velocity of the propellers. The Mfile changes the control signal and waits until the system reaches a steadystate. The velocity of the propeller is proportional to the voltage generated by the tachogenerator.
The Mfile is written in the Mfunction form. The name of the Mfunction is TRAS_PWM2RPM. The body of this function is given below. The comments within the function describe the main measurement stages.
The function requires five parameters:

SelectRotor – selects the propeller used during the measurements. Available values are: A for azimuth propeller, P for pitch propeller and AP for both propellers.

CtrlDirection a string that selects how to change the control value. The A string causes the control is changed in ascending manner (from minimal to maximal control value), the D string causes the control is changed in descending order (from maximal to minimal value) and the R string causes reverse double changes (from minimal to maximal and after that from maximal to minimal control values),

MinControl, MaxControlminimal and maximal control values. The control values must be set within the –1.0 to +1.0 range,

NoOfPoints number of characteristic points within the range where changes the control signal. The exact number of points of the characteristics declared by this parameter is enlarged to two points namely at the ends of the control range.
function ChStat = ... TRAS_PWM2RPM( SelectRotor, CtrlDirection, ... MinControl, MaxControl, NoOfPoints )
SelectRotor = lower( SelectRotor ); CtrlDirection = lower( CtrlDirection ); NoOfPoints = max( 1, NoOfPoints+1 );
% Calculate control signal step Step = (MaxControlMinControl) / NoOfPoints;
switch CtrlDirection case a Ctrl = MinControl:Step:MaxControl; case d Ctrl = MaxControl:Step:MinControl; case r Ctrl = [ MinControl:Step:MaxControl MaxControl:Step:MinControl]; otherwise % This should not happen error( The CtrlDirection must be A , D or R . ) end
% Select the rotor(s) used during the experiment switch SelectRotor case a ACtrl = Ctrl; PCtrl = 0*Ctrl; case p ACtrl = 0*Ctrl; PCtrl = Ctrl; case { ap , pa } ACtrl = Ctrl; PCtrl = Ctrl; otherwise % This should not happen error( The SelectRotor must be A , P or AP . ) end
% Create figure that presents the current measurements
FigNum = figure( Visible , on , ...
NumberTitle , off , ...
Name , Rotor velocity vs. PWM characteristic , ...
Menubar , none ); tr = ctras; ret = []; for i=1:length(Ctrl)
% Set control signal(s)
set( tr, PWM , [ACtrl(i) PCtrl(i)] );
% Wait for steadystate
pause( 10 )
ret(i,1) = Ctrl(i);
% Read a number of tacho voltages to calculate
% the average tacho output
AuxVolt = [0 0];
for j=1:10000
AuxVolt = AuxVolt + get( tr, RPM );
end
ret(i,2:3) = AuxVolt/10000;
% Plot results
plot( ret(:,1), ret(:,2:3), x );
hold on; plot( ret(:,1), ret(:,2:3) ); hold off; grid
title( RPM vs. PWM );
xlabel( PWM control value ); ylabel( Rotor velocity [RPM] ); end
% Set return variable ChStat.Control = ret(:,1); ChStat.RPM = ret(:,2:3); ChStat.Force = ret(:,4);
% Switch off the control signals set( tr, PWM , [0 0] );
The diagram generated by the call:
tras_pwm2rpm( ap , r , 0.5, 0.5, 11 )
is shown below. Two curves represent static characteristics of the azimuth and pitch propellers.
RPM vs. PWM
0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 PWM control value
inteco