Can someone help me rewriting my script from transform.position to transform.Translate?

Hi, I’m pretty new to programming and Unity. So i wanted to make a game object get faster over time until a specific time. And that worked with the script, but I found out that there is no friction if you use transform.position, so I want to change it to transform.Translate because it should work then. But since I’m not very experienced and all I’m not able to do it, I already tried it.
Can someone help me to rewrite the script to transform.Translate while retaining its functionality?

public class PlayerMovement : MonoBehaviour
{
    public Rigidbody rb;
    public float sidewaysForce;
    public float upwardForce;

    public float minSpeed;
    public float maxSpeed;
    public float accelerationTime;
    private float currentSpeed;
    private float time;

    void Start()
    {
        currentSpeed = minSpeed;
        time = 0;
    }

    void FixedUpdate()
    {
        currentSpeed = Mathf.SmoothStep(minSpeed, maxSpeed, time / accelerationTime);
        transform.position += Vector3.forward * currentSpeed * Time.deltaTime;
        time += Time.deltaTime;

        if (Input.GetKey("w")) 
        {
            rb.AddForce(0, upwardForce * Time.deltaTime, 0);
        }

        if (Input.GetKey("a"))
        {
            rb.AddForce(-sidewaysForce * Time.deltaTime, 0, 0);
        }

        if (Input.GetKey("d"))
        {
            rb.AddForce(sidewaysForce * Time.deltaTime, 0, 0);
        }

        if (Input.GetKey("s"))
        {
            rb.AddForce(0, -upwardForce * Time.deltaTime, 0);
        }

        Debug.Log(transform.position);
    }
}

This Video will give you an idea of how different movement methods work. Then, you can define which way suits your requirement most.

And, if you are intending to user WASD/Arrows or relevant keys to move your character, use Input.GetAxis(), rather than hard-coded inputs.