Summary

This document provides a lecture outline and detailed information on state space canonical forms, including phase variable, controllable, and observable canonical forms. Examples are included to demonstrate the application of these concepts.

Full Transcript

State Space Canonical forms Lecture Outline – Canonical forms of State Space Models Phase Variable Canonical Form Controllable Canonical form Observable Canonical form – Similarity Transformations Transformation of coordinates – Transformation to CCF...

State Space Canonical forms Lecture Outline – Canonical forms of State Space Models Phase Variable Canonical Form Controllable Canonical form Observable Canonical form – Similarity Transformations Transformation of coordinates – Transformation to CCF – Transformation OCF Canonical Forms Canonical forms are the standard forms of state space models. Each of these canonical form has specific advantages which makes it convenient for use in particular design technique. There are several canonical forms of state space models – Phase variable canonical form – Controllable Canonical form Companion forms – Observable Canonical form – Diagonal Canonical form Modal forms – Jordan Canonical Form It is interesting to note that the dynamics properties of system remain unchanged whichever the type of representation is used. Phase Variable Canonical form The method of phase variables possess mathematical advantage over other representations. This type of representation can be obtained directly from differential equations. Decomposition of transfer function also yields Phase variable form. Phase Variable Canonical form Consider an nth order linear plant model described by the differential equation 𝑑𝑛 𝑦 𝑑𝑛−1 𝑦 𝑑𝑦 𝑛 + 𝑎1 𝑛−1 + ⋯ + 𝑎𝑛−1 + 𝑎𝑛 𝑦 = 𝑢(𝑡) 𝑑𝑡 𝑑𝑡 𝑑𝑡 Where y(t) is the plant output and u(t) is the plant input. A state model for this system is not unique but depends on the choice of a set of state variables. A useful set of state variables, referred to as phase variables, is defined as: 𝑑 𝑛−1 𝑦 𝑥1 = 𝑦, 𝑥2 = 𝑦,ሶ 𝑥3 = 𝑦,ሷ ⋯ , 𝑥𝑛 = 𝑛−1 𝑑𝑡 Phase Variable Canonical form 𝑑 𝑛−1 𝑦 𝑥1 = 𝑦, 𝑥2 = 𝑦,ሶ 𝑥3 = 𝑦,ሷ ⋯ , 𝑥𝑛 = 𝑛−1 𝑑𝑡 Taking derivatives of the first n-1 state variables, we have 𝑥ሶ 1 = 𝑥2 , 𝑥ሶ 2 = 𝑥3 , 𝑥ሶ 3 = 𝑥4 ⋯ , 𝑥ሶ 𝑛−1 = 𝑥𝑛 𝑥ሶ 𝑛 = −𝑎𝑛 𝑥1 − 𝑎𝑛−1 𝑥2 − ⋯ − 𝑎1 𝑥𝑛 + 𝑢(𝑡)  x1   0 1 0  0   x1  0  x   0 0 1  0   x2  0  2                  u         xn 1   0 0 0  1   xn 1  0  xn   an  an 1  an 3   a1   xn  1 Phase Variable Canonical form 𝑑 𝑛−1 𝑦 𝑥1 = 𝑦, 𝑥2 = 𝑦,ሶ 𝑥3 = 𝑦,ሷ ⋯ , 𝑥𝑛 = 𝑛−1 𝑑𝑡 Output equation is simply  x1  x   2  y  1 0  0 0      xn 1   xn  Phase Variable Canonical form 𝑥ሶ 1 = 𝑥2 , 𝑥ሶ 2 = 𝑥3 , 𝑥ሶ 3 = 𝑥4 ⋯ , 𝑥ሶ 𝑛−1 = 𝑥𝑛 𝑥ሶ 𝑛 = −𝑎𝑛 𝑥1 − 𝑎𝑛−1 𝑥2 − ⋯ − 𝑎1 𝑥𝑛 + 𝑢(𝑡) y ( n1)  xn u (t ) y (n ) y  x2 y  x1 … ∫ ∫ ∫ ∫ + + y ( n2)  xn1  a1  a2   an 8 Phase Variable Canonical form 𝑥ሶ 1 = 𝑥2 , 𝑥ሶ 2 = 𝑥3 , 𝑥ሶ 3 = 𝑥4 ⋯ , 𝑥ሶ 𝑛−1 = 𝑥𝑛 𝑥ሶ 𝑛 = −𝑎𝑛 𝑥1 − 𝑎𝑛−1 𝑥2 − ⋯ − 𝑎1 𝑥𝑛 + 𝑢(𝑡) 1 x 1 1 1 u 1 x n n 1 x x1  x2 1 y s s n2 s s  x1  1 2 3    n 1 n 9 Phase Variable Canonical form (Example-1) Obtain the state equation in phase variable form for the following differential equation, where u(t) is input and y(t) is output. 𝑑3𝑦 𝑑2𝑦 𝑑𝑦 2 3 +4 2 +6 + 8𝑦 = 10𝑢(𝑡) 𝑑𝑡 𝑑𝑡 𝑑𝑡 The differential equation is third order, thus there are three state variables: 𝑥1 = 𝑦 𝑥2 = 𝑦ሶ 𝑥3 = 𝑦ሷ And their derivatives are (i.e state equations) 𝑥ሶ 1 = 𝑥2 𝑥ሶ 2 = 𝑥3 𝑥ሶ 3 = −4𝑥1 − 3𝑥2 − 2𝑥3 + 5𝑢(𝑡) Phase Variable Canonical form (Example-1) 𝑥ሶ1 = 𝑥2 𝑥1 = 𝑦 𝑥2 = 𝑦ሶ 𝑥3 = 𝑦ሷ 𝑥ሶ 2 = 𝑥3 𝑥ሶ 3 = −4𝑥1 − 3𝑥2 − 2𝑥3 + 5𝑢(𝑡) In vector matrix form  x1   0 1 0   x1  0 x    0 0 1   x   0u (t )  2   2     x3   4  3  2  x3  5  x1  y (t )  1 0 0 x2   x3  Home Work: Draw Sate diagram Phase Variable Canonical form (Example-2) Consider the transfer function of a third-order system where the numerator degree is lower than that of the denominator. 𝑌(𝑠) 𝑏𝑜 𝑠 2 + 𝑏1 𝑠 + 𝑏2 = 3 𝑈(𝑠) 𝑠 + 𝑎1 𝑠 2 + 𝑎2 𝑠 + 𝑎3 Transfer function can be decomposed into cascade form 𝑈(𝑠) 1 𝑊(𝑠) 𝑌(𝑠) 𝑏𝑜 𝑠 2 + 𝑏1 𝑠 + 𝑏2 𝑠 3 + 𝑎1 𝑠 2 + 𝑎2 𝑠 + 𝑎3 Denoting the output of the first block as W(s), we have the following input/output relationships: 𝑊(𝑠) 1 = 3 𝑈(𝑠) 𝑠 + 𝑎1 𝑠 2 + 𝑎2 𝑠 + 𝑎3 𝑌(𝑠) = 𝑏𝑜 𝑠 2 + 𝑏1 𝑠 + 𝑏2 𝑊(𝑠) Phase Variable Canonical form (Example-2) 𝑊(𝑠) 1 𝑌(𝑠) = 3 = 𝑏𝑜 𝑠 2 + 𝑏1 𝑠 + 𝑏2 𝑈(𝑠) 𝑠 + 𝑎1 𝑠 2 + 𝑎2 𝑠 + 𝑎3 𝑊(𝑠) Re-arranging above equation yields 𝑠 3 𝑊 𝑠 = −𝑎1 𝑠 2 𝑊 𝑠 − 𝑎2 𝑠𝑊 𝑠 − 𝑎3 𝑊(𝑠)+ 𝑈(𝑠) 𝑌(𝑠) = 𝑏𝑜 𝑠 2 𝑊(𝑠) + 𝑏1 𝑠𝑊(𝑠) + 𝑏2 𝑊(𝑠) Taking inverse Laplace transform of above equations. 𝑤 ഺ 𝑡 = −𝑎1 𝑤ሷ 𝑡 − 𝑎2 𝑤ሶ 𝑡 − 𝑎3 𝑤(𝑡)+ u(𝑡) 𝑦(𝑡) = 𝑏𝑜 𝑤ሷ 𝑡 + 𝑏1 𝑤ሶ 𝑡 + 𝑏2 𝑤(𝑡) Choosing the state variables in phase variable form 𝑥1 = 𝑤 𝑥2 = 𝑤ሶ 𝑥3 = 𝑤ሷ Phase Variable Canonical form (Example-1) State Equations are given as 𝑥ሶ1 = 𝑥2 𝑥ሶ 2 = 𝑥3 𝑥ሶ 3 = −𝑎3 𝑥1 − 𝑎2 𝑥2 − 𝑎1 𝑥3 + 𝑢(𝑡) And the output equation is 𝑦(𝑡) = 𝑏2 𝑥1 + 𝑏1 𝑥2 + 𝑏𝑜 𝑥3 𝑏𝑜 𝑏1 𝑏2 𝑎1 𝑎2 𝑎3 Phase Variable Canonical form (Example-1) State Equations are given as 𝑥ሶ1 = 𝑥2 𝑥ሶ 2 = 𝑥3 𝑥ሶ 3 = −𝑎3 𝑥1 − 𝑎2 𝑥2 − 𝑎1 𝑥3 + 𝑢(𝑡) And the output equation is 𝑦(𝑡) = 𝑏2 𝑥1 + 𝑏1 𝑥2 + 𝑏𝑜 𝑥3 𝑏𝑜 𝑏1 𝑏2 −𝑎1 −𝑎2 −𝑎3 Phase Variable Canonical form (Example-1) State Equations are given as 𝑥ሶ1 = 𝑥2 𝑥ሶ 2 = 𝑥3 𝑥ሶ 3 = −𝑎3 𝑥1 − 𝑎2 𝑥2 − 𝑎1 𝑥3 + 𝑢(𝑡) And the output equation is 𝑦(𝑡) = 𝑏2 𝑥1 + 𝑏1 𝑥2 + 𝑏𝑜 𝑥3 In vector matrix form  x1   0 1 0   x1  0 x    0 0 1   x2   0u (t )  2   x3   a3  a2  a1   x3  1  x1  y (t )  b2 b1 bo  x2   x3  Companion Forms Consider a system defined by n n 1 n n 1 y  a1 y    an 1 y  an y  bo u  b1 u    bn 1u  bnu where u is the input and y is the output. This equation can also be written as 𝑌(𝑠) 𝑏𝑜 𝑠 𝑛 + 𝑏1 𝑠 𝑛−1 + ⋯ + 𝑏𝑛−1 𝑠 + 𝑏𝑛 = 𝑛 𝑈(𝑠) 𝑠 + 𝑎1 𝑠 𝑛−1 + ⋯ + 𝑎𝑛−1 𝑠 + 𝑎𝑛 We will present state-space representations of the system defined by above equations in controllable canonical form and observable canonical form. Controllable Canonical Form 𝑌(𝑠) 𝑏𝑜 𝑠 𝑛 + 𝑏1 𝑠 𝑛−1 + ⋯ + 𝑏𝑛−1 𝑠 + 𝑏𝑛 = 𝑛 𝑈(𝑠) 𝑠 + 𝑎1 𝑠 𝑛−1 + ⋯ + 𝑎𝑛−1 𝑠 + 𝑎𝑛 The following state-space representation is called a controllable canonical form:  x1   0 1 0  0   x1  0  x   0 0 1  0   x2  0  2                  u         xn 1   0 0 0  1   xn 1  0  xn   an  an 1  an  2   a1   xn  1 Controllable Canonical Form 𝑌(𝑠) 𝑏𝑜 𝑠 𝑛 + 𝑏1 𝑠 𝑛−1 + ⋯ + 𝑏𝑛−1 𝑠 + 𝑏𝑛 = 𝑛 𝑈(𝑠) 𝑠 + 𝑎1 𝑠 𝑛−1 + ⋯ + 𝑎𝑛−1 𝑠 + 𝑎𝑛  x1  x   2  y  bn  anbo bn 1  an 1bo  b2  a2bo b1  a1bo     bou    xn 1   xn  Controllable Canonical Form d d … 1 dt dt  + d  n 1 dt u (t ) v (n) v  x2 v  x1 ∫ ∫ ∫ … ∫ n + +  1 2  n Controllable Canonical Form (Example) 𝑌(𝑠) 𝑠+3 = 2 𝑈(𝑠) 𝑠 + 3𝑠 + 2 Let us Rewrite the given transfer function in following form 𝑌(𝑠) 0𝑠 2 + 𝑠 + 3 = 2 𝑈(𝑠) 𝑠 + 3𝑠 + 2 a2  2 a1  3 b2  3 b1  1 bo  0  x1   0 1   x1  0  x    a      u  a1   x2  1  2  2  x1   0 1   x1  0  x    2  3  x   1u  2   2    Controllable Canonical Form (Example) 𝑌(𝑠) 0𝑠 2 + 𝑠 + 3 = 2 𝑈(𝑠) 𝑠 + 3𝑠 + 2 a2  2 a1  3 b2  3 b1  1 bo  0  x1  y  b2  a2bo b1  a1bo    bou x2   x1  y  3 1  x2  Controllable Canonical Form (Example) 𝑌(𝑠) 𝑠+3 = 2 𝑈(𝑠) 𝑠 + 3𝑠 + 2 By direct decomposition of transfer function Y (s) s3 s 2 P ( s )  2  2 U ( s ) s  3s  2 s P ( s ) Y (s) s 1 P ( s )  3s 2 P ( s )  U ( s ) P ( s )  3s 1 P ( s )  2 s  2 P ( s ) Equating Y(s) with numerator on the right hand side and U(s) with denominator on right hand side. Y ( s )  s 1 P ( s )  3s 2 P ( s )................(1) U ( s )  P ( s )  3s 1 P ( s )  2 s 2 P ( s )................(2) Controllable Canonical Form (Example) Rearranging equation-2 yields P ( s )  U ( s )  3s 1 P ( s )  2 s 2 P ( s )................(3) Draw a simulation diagram using equations (1) and (3) P ( s )  U ( s )  3s 1 P ( s )  2 s 2 P ( s ) Y ( s )  s 1 P ( s )  3s 2 P ( s ) -2 -3 x 2 3 U(s) 1/s 1/s Y(s) P(s) x2  x1 x1 1 Controllable Canonical Form (Example) -2 -3 x 2 3 U(s) 1/s 1/s Y(s) P(s) x2  x1 x1 1 State equations and output equation are obtained from simulation diagram. x1  x2 x 2  U ( s )  3 x2  2 x1 Y ( s )  3 x1  x2 Controllable Canonical Form (Example) x1  x2 x 2  U ( s )  3 x2  2 x1 Y ( s )  3 x1  x2 In vector Matrix form  x1   0 1   x1  0  x    2  3  x   1 f (t )  2   2     x1  y  3 1   x2  Observable Canonical Form 𝑌(𝑠) 𝑏𝑜 𝑠 𝑛 + 𝑏1 𝑠 𝑛−1 + ⋯ + 𝑏𝑛−1 𝑠 + 𝑏𝑛 = 𝑛 𝑈(𝑠) 𝑠 + 𝑎1 𝑠 𝑛−1 + ⋯ + 𝑎𝑛−1 𝑠 + 𝑎𝑛 The following state-space representation is called an observable canonical form:  x1  0 0  0  an   x1   bn  anbo   x  1 0  0  an 1   x2  bn 1  an 1bo   2                  u          xn 1  0 0  0  a2   xn 1   b2  a2bo   xn  0 0  1  a1   xn   b1  a1bo  Observable Canonical Form 𝑌(𝑠) 𝑏𝑜 𝑠 𝑛 + 𝑏1 𝑠 𝑛−1 + ⋯ + 𝑏𝑛−1 𝑠 + 𝑏𝑛 = 𝑛 𝑈(𝑠) 𝑠 + 𝑎1 𝑠 𝑛−1 + ⋯ + 𝑎𝑛−1 𝑠 + 𝑎𝑛  x1  x   2  y  0 0  0 1    bou    xn 1   xn  Observable Canonical Form (Example) 𝑌(𝑠) 𝑠+3 = 2 𝑈(𝑠) 𝑠 + 3𝑠 + 2 Let us Rewrite the given transfer function in following form 𝑌(𝑠) 0𝑠 2 + 𝑠 + 3 = 2 𝑈(𝑠) 𝑠 + 3𝑠 + 2 a2  2 a1  3 b2  3 b1  1 bo  0  x1  0  a2   x1  b2  a2bo   x   1  a   x    b  a b u  2  1  2   1 1 o  x1  0  2  x1  3  x   1  3  x   1u  2   2    Observable Canonical Form (Example) 𝑌(𝑠) 0𝑠 2 + 𝑠 + 3 = 2 𝑈(𝑠) 𝑠 + 3𝑠 + 2 a2  2 a1  3 b2  3 b1  1 bo  0  x1  y  0 1   bou x2   x1  y  0 1  x2  Similarity Transformations It is desirable to have a means of transforming one state-space representation into another. This is achieved using so-called similarity transformations. Consider state space model x (t )  Ax(t )  Bu (t ) y (t )  Cx (t )  Du (t ) Along with this, consider another state space model of the same plant x (t )  A x (t )  B u (t ) y (t )  C x (t )  D u (t ) Here the state vector 𝑥,ҧ say, represents the physical state relative to some other reference, or even a mathematical coordinate vector. Similarity Transformations When one set of coordinates are transformed into another set of coordinates of the same dimension using an algebraic coordinate transformation, such transformation is known as similarity transformation. In mathematical form the change of variables is written as, x(t )  T x (t ) Where T is a nonsingular nxn transformation matrix. The transformed state 𝑥(𝑡) ҧ is written as x (t )  T 1 x(t ) Similarity Transformations The transformed state 𝑥(𝑡) ҧ is written as x (t )  T 1 x(t ) Taking time derivative of above equation x (t )  T 1 x (t) x (t )  T 1 Ax(t )  Bu (t ) x (t )  Ax(t )  Bu (t ) x (t )  T 1 ATx (t )  Bu (t ) x(t )  T x (t ) x (t )  T 1 ATx (t )  T 1 Bu (t ) x (t )  A x (t )  B u (t ) A  T 1 AT B  T 1 B Similarity Transformations Consider transformed output equation y (t )  C x (t )  D u (t ) Substituting 𝑥ҧ 𝑡 = 𝑇 −1 𝑥(𝑡) in above equation y (t )  C T 1 x(t )  D u (t ) Since output of the system remain unchanged [i.e. 𝑦 𝑡 = 𝑦(𝑡)] ത therefore above equation is compared with 𝑦 𝑡 = 𝐶𝑥 𝑡 + 𝐷𝑢(𝑡) that yields C  CT DD Similarity Transformations Following relations are used to preform transformation of coordinates algebraically A  T 1 AT B  T 1 B C  CT DD Similarity Transformations Invariance of Eigen Values 1 sI  A  sI  T AT 1 1 1  sT T  T AT T T  I  T 1 sI  A T  sI  A sI  A  sI  A Transformation to CCF Transformation to CCf is done by means of transformation matrix P. P  CM  W Where CM is controllability Matrix and is given as 𝐶𝑀 = 𝐵 𝐴𝐵 ⋯ 𝐴𝑛−1 𝐵 and W is coefficient matrix  an 1 an  2  a1 1 a an 3  1 0  n2 W          a1 1  0 0  1 0  0 0 Where the ai’s are coefficients of the characteristic polynomial 𝑠𝐼 − 𝐴 = 𝑠 𝑛 + 𝑎1 𝑠 𝑛−1 + 𝑎2 𝑠 𝑛−2 + ⋯ + 𝑎𝑛−1 s+𝑎𝑛 Transformation to CCF Once the transformation matrix P is computed following relations are used to calculate transformed matrices. A  P 1 AP B  P 1 B C  CP DD Transformation to CCF (Example) Consider the state space system given below. 𝑥1 1 2 1 𝑥1 1 𝑥2 = 0 1 3 𝑥2 + 0 𝑢(𝑡) 𝑥3 1 1 1 𝑥3 1 Transform the given system in CCF. Transformation to CCF (Example) 𝑥1 1 2 1 𝑥1 1 𝑥2 = 0 1 3 𝑥2 + 0 𝑢(𝑡) 𝑥3 1 1 1 𝑥3 1 The characteristic equation of the system is 𝑠 − 1 −2 −1 𝑠𝐼 − 𝐴 = 0 𝑠 − 1 −3 = 𝑠 3 − 3𝑠 2 − 𝑠 − 3 −1 −1 𝑠 − 1 𝑎1 = −3, 𝑎2 = −1, 𝑎3 = −1  a2 a1 1   1  3 1 W   a1 1 0   3 1 0  1 0 0  1 0 0 Transformation to CCF (Example) 𝑥1 1 2 1 𝑥1 1 𝑥2 = 0 1 3 𝑥2 + 0 𝑢(𝑡) 𝑥3 1 1 1 𝑥3 1 Now the controllability matrix CM is calculated as 𝐶𝑀 = 𝐵 𝐴𝐵 𝐴2 𝐵 1 2 10 𝐶𝑀 = 0 3 9 1 2 7 Transformation matrix P is now obtained as 1 2 10 −1 −3 1 𝑃 = 𝐶𝑀 × 𝑊 = 0 3 9 −3 1 0 1 2 7 1 0 0 3 −1 1 𝑃= 0 3 0 0 −1 1 Transformation to CCF (Example) Using the following relationships given state space representation is transformed into CCf as A  P 1 AP B  P 1 B 0 1 0  A  P 1 AP  0 0 1 3 1 3 𝑠𝐼 − 𝐴 = 𝑠 3 − 3𝑠 2 − 𝑠 − 3 0  B  P 1 B  0 1 Transformation to OCF Transformation to CCf is done by means of transformation matrix Q. 1 Q  (W  OM ) Where OM is observability Matrix and is given as 𝑇 𝑂𝑀 = 𝐶 𝐶𝐴 ⋯ 𝐶𝐴𝑛−1 and W is coefficient matrix  an 1 an  2  a1 1 a an 3  1 0  n2 W          a1 1  0 0  1 0  0 0 Where the ai’s are coefficients of the characteristic polynomial 𝑠𝐼 − 𝐴 = 𝑠 𝑛 + 𝑎1 𝑠 𝑛−1 + 𝑎2 𝑠 𝑛−2 + ⋯ + 𝑎𝑛−1 s+𝑎𝑛 Transformation to OCF Once the transformation matrix Q is computed following relations are used to calculate transformed matrices. A  Q 1 AQ B  Q 1 B C  CQ DD Transformation to OCF (Example) Consider the state space system given below. 𝑥1 1 2 1 𝑥1 1 𝑥2 = 0 1 3 𝑥2 + 0 𝑢(𝑡) 𝑥3 1 1 1 𝑥3 1 𝑥1 𝑦(𝑡) = 1 1 0 𝑥2 𝑥3 Transform the given system in OCF. Transformation to OCF (Example) 𝑥1 1 2 1 𝑥1 1 𝑥2 = 0 1 3 𝑥2 + 0 𝑢(𝑡) 𝑥3 1 1 1 𝑥3 1 The characteristic equation of the system is 𝑠 − 1 −2 −1 𝑠𝐼 − 𝐴 = 0 𝑠 − 1 −3 = 𝑠 3 − 3𝑠 2 − 𝑠 − 3 −1 −1 𝑠 − 1 𝑎1 = −3, 𝑎2 = −1, 𝑎3 = −1  a2 a1 1   1  3 1 W   a1 1 0   3 1 0  1 0 0  1 0 0 Transformation to OCF (Example) 𝑥1 1 2 1 𝑥1 1 𝑥1 𝑥2 = 0 1 3 𝑥2 + 0 𝑢(𝑡) 𝑦(𝑡) = 1 1 0 𝑥2 𝑥3 1 1 1 𝑥3 1 𝑥3 Now the observability matrix OM is calculated as 𝑇 𝑂𝑀 = 𝐶 𝐶𝐴 𝐶𝐴2 1 1 0 𝑂𝑀 = 1 3 4 5 6 10 Transformation matrix Q is now obtained as 0.333 −0.166 0.333 −1 𝑄 = 𝑊 × 𝑂𝑀 = −0.333 0.166 0.666 0.166 0.166 0.166 Transformation to CCF (Example) Using the following relationships given state space representation is transformed into CCf as A  Q 1 AQ B  Q 1 B C  CQ DD 0 0 3 A  Q 1 AQ  1 0 1 0 1 3 C  CQ  0 0 1  3 B  Q 1 B  2 1  Home Work Obtain state space representation of following transfer function in Phase variable canonical form, OCF and CCF by – Direct Decomposition of Transfer Function – Similarity Transformation – Direct Approach 𝑌(𝑠) 𝑠 2 + 2𝑠 + 3 = 3 𝑈(𝑠) 𝑠 + 5𝑠 2 + 3𝑠 + 2

Use Quizgecko on...
Browser
Browser