Maple/Phasors

From PrattWiki
Revision as of 03:58, 26 February 2013 by DukeEgr93 (talk | contribs)
Jump to navigation Jump to search

This page contains handy Maple functions for use with Phasors and Phasor analysis.

Processes

Entering a numerical value for phasor or complex number

To enter a complex number in rectangular coordinates, use \(I\) (capital I) as the imaginary number or else re-define the variable \(j\) as the imaginary number with

j:=I

at the start of your code.

For polar representations, you can use the polar(MAG, ANG) command. Keep in mind that the angle will need to be in radians. If you want to be able to use polar coordinates with degrees, you can define a new version of polar as follows:

polard:=(mag, angd)->polar(mag, angd*Pi/180)

Obtaining magnitude and phase values

To get the magnitude of a complex number, use the abs command. To get the angle, use argument but keep in mind the angle will be in radians. To get the angle in degrees, either multiple the output from argument by 180/Pi or create a new argumentd function for yourself:

argumentd:=(num)->argument(num)*180/Pi

Converting to rectangular coordinates

Use the evalc(NUM) command to convert to rectangular coordinates.

Simplifying solutions

Solutions involving the polar command must first be evaluated using the evalc command before using the simplify command.

Reporting Phasors as Magnitudes and Angles in Degrees

Maple can be asked to process a list of results to report them as phasors. The listphasors command takes an input argument that comes from the solve command and prints the results as a table of variables, magnitudes, and angles in degrees. The command is given below in the next section.

Handy commands

Given the above, here is a list of the handy commands that can be copied into the beginnings of a Maple worksheet:

j:=I;
polard:=(mag, angd)->polar(mag, angd*Pi/180);
argumentd:=(num)->argument(num)*180/Pi;
listphasors := proc (plist) local k; for k to nops(plist[]) do printf("%s = %f <%f deg\n", lhs(plist[][k]), evalf(abs(rhs(plist[][k]))), evalf(argumentd(rhs(plist[][k])))) end do end proc

(whee!)