Search
Code Directory ASP ASP.NET C/C++ CFML CGI/PERL Delphi Development Flash HTML Java JavaScript Pascal PHP Python SQL Tools Visual Basic & VB.NET XML
New Code The C# OCR Library 2020.11 SentiVeillance SDK Trial 7.3.2020.11.30 VaxVoIP WebPhone SDK 4.0.6.0 SentiMask SDK Trial 2.0_193121 C# QR Code Generator 2020.12 How to Read Text from an Image in C# 2020.12 The .Net PDF Library 2020.12.3 fsMediaLibrary.NET 2019.11.0 Entity Developer 6.9.1112 OrgChart JS 7.5.40 LinqConnect 4.9.2096 SSIS Data Flow Components 1.15 IP2Location Geolocation Database Oct.2020 Luxand FaceSDK 7.2 dbForge Data Compare for PostgreSQL 3.3.6
Top Code Uber Clone with Safety Measure Addons 2.0 Answers phpSoftPro 3.12 phpEnter 5.1. Quick Maps For Dynamics CRM 3.1 Single Leg MLM 1.2.1 Azizi search engine script PHP 4.1.10 Paste phpSoftPro 1.4.1 Extreme Injector 3.7 Apphitect Airbnb Clone Script 1.0 Deals and Discounts Website Script 1.0.2 Pro MLM 1 Solid File System OS edition 5.1 Classified Ad Lister 1.0 Aglowsoft SQL Query Tools 8.2 ICPennyBid Penny Auction Script 4.0
Report About Quaternion Library for Simulink 1.0

Quaternion Library for Simulink
Version 1.7 (JASP) 12-Dec-2009

This is a library of blocks that allows manipulation of quaternions.

The available blocks are:

Quaternion Normalize
Quaternion Conjugate
Quaternion Multiply

Quaternion Propagation
Quaternion Vector Transform
Quaternion Vector Rotation

Quaternion Decomposition
Quaternion to DCM
DCM to Quaternion

Row Major to Matrix
Matrix to Row Major

For purposes of this library, a quaternion, q, is just a four element vector where q(1:3) is the "imaginary" or "vector" portion of the hypercomplex number, and q(4) is the "real" or "scalar" portion. Consequently, if q represents a rotation, then:

q(1) = v1*sin(phi/2)
q(2) = v2*sin(phi/2)
q(3) = v3*sin(phi/2)
q(4) = cos(phi/2)

where phi is the amount of rotation about the unit vector [v1 v2 v3].

The DCM's produced by the "Quaternion to DCM" block and used by the DCM to Quaternion block are written in row major form instead of normal MATLAB matrices. Back when this library was first developed, Simulink signals could not be matrices, so were written in the C-friendly row-major format. To prevent the breakage of models that were written to use the row major signals, the interface to the blocks have not been changed but two blocks were added to aid with the translation of matrices to/from row major format.

IMPORTANT NOTE: For purposes of quaternion/DCM equivalence, the relationship is chosen to be:

R v = q* v q

Therefore a "transform" is (q* v q) and a "rotation" is (q v q*). This follows the convention used in "Spacecraft Attitude Determination and Control", edited by James R. Wertz, Copyright 1978. Note that many recent uses of quaternions choose the opposite convention (the "left" quaternion being the equivalent), including many computer graphics libraries.

See also QUATERNIONS, the quaternion manipulation toolbox for the MATLAB command line. RM2MAT and MAT2RM functions provided by the Matrix Library for Simulink are also useful for handling row-major form matrices.

Back